Azure Table Storage dengan ASP.NET MVC (Part 1)

Banyak developer yang tidak mengetahui apa itu azure table storage, dan ada sebagian developer yang belum tahu benar apa kegunaan dari azure table storage. Bagi kebanyakan developer pengalaman menggunakan table storage adalah menggunakan database relasional seperti SQL Server atau MySQL. Database relasional terdiri dari banyak table, dan setiap table memiliki kolom yang sudah terdefinisi secara jelas. Anda dapat mendefinisikan satu atau lebih kolom sebagai kolom identitas (primary key). Kolom identitas tersebut juga digunakan untuk merelasikan antar table.

Azure menyediakan beberapa cara untuk penyimpanan dan pengaturan data yaitu: SQL Azure untuk menyimpan relasional data, DocumentDb, Blob, dan Table Storage. Bagi developer yang familiar dengan relasional database, Azure Table Storage kadang dirasa janggal dan banyak yang belum paham dengan cara kerjanya.

Secara desain Azure table storage mempunyai potensi untuk menyimpan data dengan jumlah besar, dan menyediakan cara yang efisien untuk pengaksesan kembali datanya. Tidak seperti relational database yang memiliki berbagai macam aturan seperti constrain, relationship, view, store procedure, dll. Pada table storage anda hanya berurusan dengan data. Azure table menggunakan keys yang efisien untuk digunakan meng-query data. Anda juga dapat menggunakan PartitionKey untuk kebutuhan load balancing jika anda memutuskan untuk menyimpan data pada lebih dari satu server. Table storage juga tidak memiliki schema yang spesifik. Table storage hanya merupakan baris data yang terstruktur. Anda dapat memiliki table yang hanya menyimpan satu jenis tipe data saja atau dapat juga menyimpan beberapa jenis tipe data dalam satu table.

image

image 

Langkah pertama yang harus dilakukan adalah menambahkan Storage Account baru pada layanan Azure. Jika anda belum memiliki akun Microsoft Azure anda dapat mendaftar untuk mendapatkan versi trial pada url berikut https://azure.microsoft.com/en-us/pricing/free-trial/

Kemudian tambahkan Storage Account baru, pada contoh berikut

image

image

Pada tahap ini anda sudah berhasil untuk membuat Storage Account baru, pada tutorial selanjutnya kita akan membuat project ASP.NET MVC baru dan menambahkan Azure Table Storage dan Blob kedalam Storage Account yang sudah kita buat.

Pilih mana DocumentDb, Azure Table Storage, atau SQL Azure?

Microsoft Azure kini memiliki tiga macam services untuk penyimpanan data yang dapat digunakan oleh developer yaitu:

  • DocumentDb
  • Azure Table
  • SQL Azure

DocumentDb adalah layanan penyimpanan data No-SQL (bukan merupakan database relasional) yang menyimpan dokumen JSON secara native dan menyedikanan kemampuan index dan berbagai fitur yang lain.  Azure Table juga merupakan opsi lain untuk  penyimpanan data No-SQL yang mempunyai fitur lebih sedikit dibandingkan dengan DocumentDb. Sedangkan Azure SQL merupakan layanan penyimpanan data relasional

Dari perspektif penyimpanan data, Azure SQL adalah satu-satunya layanan database relasional yang disediakan, ini berarti bahwa Azure SQL akan menyediakan skema dan strongly typed data store. Ini membuat Azure SQL memiliki keunggulan pada performa pencarian data pada table dengan index yang kompleks. Table Storage dan DocumentDb adalah penyimpanan bertipe No-SQL yang tidak memiliki skema yang pasti. DocumentDb menyimpan data sebagai objek JSON, dan memperbolehkan attachment pada dokumen, sedangkan Table Storage secara default menyimpan data berupa dokumen XML (walaupun anda dapat mengambil data dalam format JSON). Kelebihan menyimpan data pada format JSON adalah kita dengan mudah dapat melakukan mapping data kedalam JSON object pada aplikasi client. Dibandingkan dengan documentDb, Azure Storage memiliki kapasitas yang lebih terbatas, yaitu hanya dapat menyimpan data sebesar 500GB untuk satu database.

Jika dilihat dari fitur indexing, ketiga model penyimpanan data tesebut mendukung indexing. Azure SQL menawarkan fitur index yang paling lengkap seperti penambahan index pada banyak kolom dan fitur yang lain seperti penggunaan keyword WHERE ketika memfilter data berdasarkan kolom tertentu. DocumentDb juga memiliki fitur penambahan index yang di buat secara otomatis pada dokumen dan juga fitur untuk membuat query yang komplek sama seperti Azure SQL. Azure Table Storage hanya mendukung index pada PartitionKey dan RowKey sehingga kita harus jeli dalam menentukan properti mana yang akan dipilih, karena untuk memfilter data menggunakan kolom lain akan berdampak pada kecepatan pencarian data.

Dari sisi fitur program, Azure SQL menyediakan fasilitas pemrograman server side seperti store procedure, trigger, integrity check, view, dan function. Bahasa pemrograman yang digunakan pada Azure SQL adalah T-SQL. DocumentDb juga memiliki fitur server side programming menggunakan native javascript yang akan memudahkan developer yang sudah familiar dengan pemrograman javascript. Azure Tables tidak menawarkan pemrograman server side.

Untuk fitur integritas data dan transaksi, Azure SQL mempunyai fitur RDBMS referential integrity, dan mendukung transaksi, dengan menggunakan T-SQL, developer dapat menggunakan objek transaksi di sisi server dan menjalankan perintah commit/rollback. DocumentDb tidak memiliki strong referential integrity seperti pada Azure SQL seperti konsep foreign key, tetapi DocumentDb mendukung transaksi melalui bahasa pemrograman javascript pada sisi server. Developer juga dapat menggunakan javascript untuk melakukan pengecekan referential integrity pada sisi server. Azure Table Storage hanya mendukung transaksi dasar menggunakan operasi batch dengan beberapa limitasi.

Untuk perbandingan berdasarkan harga layanan, SQL Azure menawarkan banyak alternatif pilihan berdasarkan kebutuhan. Sebagai contoh untuk layanan paling dasar (basic) dengan tipe single database dan ukuran database sampai dengan 2GB, harga yang ditawarkan adalah mulai dari $5 per bulan. Harga akan bertambah secara signifikan berdasarkan spesifikasi server dan kapasitas layanan yang ditawarkan. Harga paling mahal untuk model elastic database dan kapasistas sampai dengan 1TB yaitu $2700 per bulan.

image 

image

Untuk layanan DocumentDb harga yang ditawarkan mulai dengan $25 per bulan. Harga ditentukan berdasarkan besar penyimpanan dan request unit.

image

Sedangkan Azure Table Storage menawarkan harga yang sangat terjangkau yaitu mulai dari $0.048 per GB per bulan untuk tipe Geographically Redundant Storage (GRS).

image 

Kesimpulan dari pembahasan diatas adalah pemilihan jenis data storage yang disediakan pada layanan Azure dapat dipilih sesuai dengan kebutuhan dari aplikasi yang akan dikembangkan oleh developer, karena masing-masing memiliki keunggulan dan kelemahan. Azure SQL memiliki fitur referential integrity yang lebih baik namun kurang dari segi kapasitas penyimpanan data karena hanya mendukung penyimpanan data sampai dengan 1TB. DocumentDb menawarkan implementasi No-SQL dan pemrograman server side dengan javascript namun memiliki harga yang lebih mahal dibandingkan dengan Azure Table Storage. Sedangkan Azure Table Storage memiliki fitur yang paling sedikit dibandingkan kedua data storage yang lain namun memiliki harga yang sangat terjangkau dan sudah mendukung geographically redundant.

ASP.NET 4.5.1 Training with PT.IKIN

Pada tanggal 6-10 Mei 2015 telah dilaksanakan inhouse training dengan materi Aplikasi Web dengan ASP.NET 4.5 Web Form. Peserta pelatihan adalah 5 orang developer dari PT IKIN Semarang. PT IKIN sendiri merupakan salah satu perusahaan software yang fokus untuk mengembangkan  platform BPM (Business Process Management).

Detail materi yang disampaikan pada pelatihan ini dapat diunduh pada tautan berikut

IMG_20150509_151015.

IMG_20150509_151028

ASP.NET MVC Training with PT. Idea Domina Jakarta

Pada tanggal 20-25 April 2015 telah dilangsungkan pelatihan ASP.NET MVC yang diikuti oleh 8 orang developer dari PT.Idea Domina Jakarta. Pelatihan kali ini fokus pada pengembangan framework berbasis ASP.NET MVC, selanjutnya framework yang sudah dibangun dapat digunakan sebagai pondasi dari aplikasi yang lebih kompleks.

Detail daftar materi yang disampaikan pada pelatihan ini dapat di diunduh pada tautan berikut.

IMG_20150416_112629

ttd

Autentikasi Aplikasi ASP.NET MVC dengan Azure Active Directory

Pada tutorial ini akan dibahas bagaimana cara autentikasi dengan melakukan sign-in dari ASP.NET MVC menggunakan Azure AD (Active Directory). Beberapa tahapan yang akan kita lakukan adalah sebagai berikut:

  • Membuat akun pada Azure Active Directory
  • Membuat aplikasi ASP.NET MVC baru yang menggunakan Azure AD untuk autentikasi

Membuat Azure Active Directory

Langkah pertama yang harus dilakukan adalah membuat akun di Azure Active Directory.

image

Setelah anda berhasil membuat Azure Active Directory, tambahkan user yang akan digunakan untuk login kedalam aplikasi ASP.NET anda.

image

Tambahkan user baru kedalam Active Directory. Pada contoh dibawah ini akan ditambahkan user baru yaitu jovan@cloudemia.onmicrosoft.com

image

Tambahkan role dari user yang baru saja anda buat sebagai Global Administrator.

image

Kemudian anda dapat menggenerate password untuk user tersebut.

image

Anda dapat login sebagai user jovan dan mengganti password dengan login terlebih dahulu pada halaman berikut https://account.activedirectory.windowsazure.com/.

Membuat Aplikasi ASP.NET MVC

Buat project ASP.NET MVC, kemudian pilih tombol Change Authentication, kemudian pilih Organizational Account

image

image

Tambahkan domain Azure Active Directory anda pada isian Domain, dan pilih Access Level: Single Sogn On, Read derectory data.

image

Jika muncul halaman sign-in, anda dapat memasukan user Azure Active Directory anda.

image

Anda dapat mempublish aplikasi ASP.NET MVC yang anda buat ke Microsoft Azure Website.

image

image

image

Anda diharuskan melakukan login ke Azure AD terlebih dahulu sebelum dapat mengakses aplikasi web.

image

image

Training ASP.NET Web API dan Android

Pada tanggal 12-17 januari 2015 telah diselenggarakan pelatihan inhouse dengan materi ASP.NET Web API dan Android. Peserta pelatihan ini adalah PT.Sanata System yang merupakan software house yang fokus pada pengembangan aplikasi untuk sistem informasi rumah sakit.

Pelatihan ini membahas bagaimana cara mengembangkan REST web services sebagai backend dan kemudian diakses oleh beberapa client yang berbeda seperti aplikasi Desktop, Web, dan aplikasi Mobile berbasis Android.

20150112_14314520150116_170605

New FREE E-Book: Pengenalan ASP.NET SignalR 2

FREE E-Book ini menjelaskan tentang bagaimana menggunakan pustaka SignalR 2 untuk mengembangkan aplikasi web Real-Time pada ASP.NET, dan mendeploy aplikasi tersebut pada Microsoft Azure.

Pengenalan ASP.NET SignalR 2

Adapun daftar isi dari E-Book ini adalah sebagai berikut :

1. Pendahuluan

  • Socket
  • Multicast
  • Aplikasi Web
  • WebSocket
  • ASP.NET SignalR
  • SignalR dan WebSocket
  • Transport dan Fallback
  • Model Komunikasi
  • Platform

2. Lingkungan Pengembangan

3. Hub

  • Hello World
  • Chat Room
  • TimerHub

4. Persistent Connection

  • Hello World
  • Chat Room

5. Client Windows Forms

6. Client Windows Phone

7. Client Windows App

8. Hosting SignalR: Self-Host

  • Membuat Server: Console Application
  • Membuat Client: Web Application

9. Hosting SignalR: Azure

  • Publish Project

10. Scaleout dengan Service Bus

  • Backplane dengan Azure Service Bus
  • Publish Aplikasi

Untuk mendapatkan ebook ini dapat mengunduh di sini.