Choosing a non-relational database; why we migrated from MySQL to MongoDB

Server Density Blog

Update 23 Oct 2010: A discussion about the value of shortened field names has generated a lot of traffic to this post over the last 24 hours. A response has been posted here.

Update 28 Feb 2010: A followup was published here.

Until recently, our server monitoring application, Server Density, was running using MySQL for the backend. Although we primarily provide it as a hosted service, it has been written to work as a standalone application for customers that wish to install on their own servers. This means each customer had their own MySQL database.

We collect a lot of data – the monitoring agent reports back every 60 seconds and includes various statistics, of which the server snapshot has the most data (because it is collecting details on every running process). Over time, this results in millions of rows in the database, even for…

View original post 1,469 more words

Visual Studio LightSwitch #4: Relasi dan Computed Data

Hai.. Kembali lagi ke LightSwitch, setelah bermain-main dengan Interface dan Bahasa kali ini saya akan membahas tentang Relasi dan Computed Data.

Sedari awal kita hanya menggunakan sebuah table, bagaimana kalo kita punya banyak table dan memiliki relasi? Mari kita lakukan!

Kita buat dua table baru, seperti contoh-contoh pada umumnya, kita ambil kasus penjualan. Tabel pertama adalah TransaksiHeader, dimana table ini akan memiliki relasi dengan Customer (Customer melakukan transaksi), dan table kedua adalah TransaksiDetail dimana table ini akan berhubungan dengan TransaksiHeader (TransaksiDetail adalah item dari TransaksiHeader).

Dari Solution Explorer, klik kanan pada ApplicationData, Add Table, lalu perhatikan pada item-item diatas nama table, pilih Add: Relationship, dan bentuk relasi one to many dari Customer ke TransaksiHeader (lihat gambar). Visual Studio LightSwitch 2011 akan membantu kita dengan memberikan deskripsi tentang relasi yang kita buat di bawah gambar relasi. Lalu OK.

Lalu, pada TransaksiHeader kita tambahkan TanggalTransaksi dengan tipe Date. Hasilkan akan tampak seperti ini.

Lanjut ke table kedua, buat lagi table baru dengan langkah awal yang sama, beri nama TransaksiDetail. Buat relationship one to many dari TransaksiHeader ke TransaksiDetail.

Yap, dengan begitu kita sudah memiliki table yang saling ber-relasi. Customer – TransaksiHeader – TransaksiDetail.

Kita langsung lanjut ke acara Computed Data. Nah, kita tambahkan lagi atribut pada TransaksiDetail:

  • NamaItem, tipe data String
  • HargaSatuan, tipe data Money, ubah currency menjadi IDR
  • Quantity, tipe data Integer
  • SubTotal, tipe data Money, ubah currency menjadi IDR

Sekarang kita pilih SubTotal, lalu ke window Properties, lihat ada Is Computed? Check itu. Sekejap muncul link button Edit Method, klik saja, dan kita akan meluncur ke TransaksiDetail.cs, mari mulai sedikit menulis 😀

Hasil dari pengolahan harus di-set ke dalam variable result. Dalam contoh ini saya membuat perhitungan agar atribut SubTotal akan terisi dengan hasil dari HargaSatuan * Quantity.

Kita buat satu atribut Computed lagi ya. Kali ini kita buat di TransaksiHeader. Tambahkan lagi sebuah atribut dengan nama GrandTotal dengan tipe data Money. GrandTotal akan berisi jumlah dari SubTotal item-item yang memiliki relasi dengan TransaksiHeader.

Seperti tadi, kita masuk ke Edit Method, TransaksiHeader.cs, lalu tuliskan:

Nah, membuat computed atribut sudah selesai, tapi jangan buru-buru di Run dulu, soalnya kita belum membuat screen untuk table Transaksi ini. Mari kita buat dulu.

Seperti cara yang sebelumnya telah dibahas. Solution ExplorerScreensAdd ScreenList and Detail Screen – untuk Screen Data pilih TransaksiHeaders – lalu jangan sampai ketinggalan centang TransaksiHeader TransaksiDetails.

Kita centang TransaksiHeader TransaksiDetails maksudnya supaya screen tersebut selain menampilkan details (atribut-atribut) dari TransaksiHeader sendiri, menampilkan juga TransaksiDetail- TransaksiDetail yang ber-relasi dengan TransaksiHeader yang dipilih. Setelah selesai membuat screen, silahkan Run.

Ketika kita Add TransaksiHeader, customer akan berupa list karena TransaksiHeader telah memiliki relasi dengan Customer. Ketika kita Add TransaksiDetail, SubTotal dan GrandTotal akan secara otomatis terhitung. Begitulah contoh penggunaan relasi table dan computed atribut.

Selesai sudah bahan kali ini.. Semoga bermanfaat. Topik selanjutnya akan membahas tentang Web – Desktop Switching, Publishing, dan Mekanisme Update

Terima kasih 🙂

Visual Studio LightSwitch #1: Membuat Project, Database, dan Simple Screen

Hola! Setelah membaca sedikit tentang Visual Studio LightSwitch di (Microsoft Visual Studio) LightSwitch? Apa itu?, mari kita mulai untuk mencoba praktek langsung.

Kali ini saya akan membahas tentang bagaimana membuat project LightSwitch, membuat database untuk LightSwitch, dan membuat sebuah screen sederhana.

Pertama, pastikan Anda sudah meng-install Visual Studio LightSwitch 2011, jalankan aplikasi tersebut. Lalu pilih New Project dan gunakan template Lightswitch. Akan ada dua pilihan default, yaitu C# dan VB (dua teratas), sesuaikan dengan kebutuhan Anda. Dalam contoh ini, saya menggunakan C#.

Silahkan mengganti nama project, lokasi, dll jika perlu. Setelah itu tekan OK. Menunggu sebentar, akan muncul tampilan dimana Anda dipersilahkan untuk menentukan database yang mau digunakan. Apakah membuat database baru atau menggunakan database yang sudah ada. Pilih Create new table untuk database baru atau Attach to external Data Source untuk menghubungkan project ini dengan database yang sudah ada. Dalam contoh ini saya menggunakan database baru.

Setelah memilih Create new table, akan muncul sebuah tampilan yang table yang siap digunakan, silahkan buat table sesuai dengan kebutuhan Anda. Dalam contoh kali ini saya membuat sebuah table Customer dengan atribut berupa: Nama, Alamat, dan Telepon.

Setelah table Customer terbentuk. Sekarang kita tinggal membuat sebuah screen sebagai interface dari table Customer. Caranya dengan membuka Solution Explorer Klik kanan pada folder Screens Add Screen.

Akan muncul tampilan untuk memilih jenis screen yang mau kita gunakan. Dalam contoh ini saya gunakan List and Details Screen dan jangan lupa untuk mengubah Screen Data dari None menjadi table yang kita inginkan (Customers), lalu klik OK. Untuk jenis-jenis screen yang lain, silahkan dibaca atau dicoba sendiri 🙂

Selesai membuat screen, kita akan dibawa ke tampilan berbentuk hirarki yang merupakan komponen dari screen yang baru saja kita buat. Tidak usah diutak-atik, silahkan Run (F5). Dan…

Boom! Jadilah sebuah screen yang memiliki fungsi View, Add, Edit, Delete, Export data to Excel, Search, Filter & Sort dan Paging. Silahkan Anda coba untuk bermain dengan fungsi-fungsi yang ada. Setelah melakukan aktifitas, jangan lupa untuk menekan tombol Save di kiri atas untuk memastikan perubahan yang Anda lakukan tersimpan ke database.

Sekian untuk babak pertama. Bagaimana? Berapa menit yang Anda habiskan untuk membuat aplikasi seperti itu? Penasaran dengan fitur lainnya? Silahkan baca babak berikutnya yang akan membahas Validasi dan Format Data di Visual Studio LightSwitch #2: Validasi dan Format Data

Terima kasih 🙂