Entity Framework Part 1
Intro ORM
Sebelum kita membahas apa itu Entity Framework, kita akan singgung sedikit mengenai ORM (Object Relational Mapping).
ORM adalah framework yang memetakan tabel pada database relasional ke objek dengan menggunakan informasi pada metadata. Metadata dapat berupa file XML atau custom atribute pada entity class.
Saat ini sudah banyak pilihan ORM yang dapat meningkatkan produktivitas kita sebagai seorang developer. Ketika kita membangun sebuah aplikasi database dengan menggunakan OOP, maka harus dibuatkan sebuah persisten objek yang memodelkan objek dari database seperti tabel, view , relationship dan objek database lainnya.
Persisten objek (Object Persistence)
Hampir semua aplikasi membutuhkan persistensi data. Jika tidak, ketika aliran listrik dimatikan maka data tersebut akan hilang.
Ketika akan menyimpan data secara permanen, database relasional adalah pilihan terbaik, sedangkan ketika harus bekerja dengan data yang ada di memori, objek adalah cara yang terbaik.
Fitur seperti pewarisan, enkapsulasi dan fitur OOP lainnya memungkinkan penulisan kode yang lebih baik dan menyederhankan pengembangan aplikasi.
Ketika memodelkan persisten objek, makin besar aplikasi yang kita buat, maka makin rumit pemodelan yang dilakukan. Pemodelan dengan “tangan kosong” bukanlah ide yang baik. Selain banyak waktu yang terbuang karena banyak perkerjaan yang di lakukan berulang-ulang, bisa jadi banyak kesalahan yang tidak bisa dihindari.
Salah satu solusi yang digunakan untuk mengatasi pemodelan dengan “tangan kosong” ini adalah dengan menggunakan ORM.
ORM mempunyai kemampuan untuk mengenerate secara otomatis persisten objek berdasarkan schema dari database, konfigurasi file XML atau custom atribute pada entity class.
Pendekatan ORM bisa jadi lebih efektif dan produktif, tetapi tetap saja ada kekurangannya yaitu eksekusi program cenderung lebih lambat daripada tanpa menggunakan ORM. Hal ini disebabkan adanya proses mapping terlebih dahulu terhadap tabel di database. Proses ini mengubah ”record/tupel” menjadi objek atau objek collection. Namun dengan perkembangan kecepatan processor dan kapasitas memory saat ini kekurangan ini dapat diatasi.
Berikut beberapa alasan mengapa menggunakan ORM :
- Productivity : Mempermudah penulisan kode pengaksesan data (DAO/Access Object)
- Maintainability : Kode lebih mudah di maintenance, karena tidak perlu lagi menulis perintah SQL bersama-sama dengan kode utama, bahkan tidak perlu menuliskan SQL sekali.
- Performance : Kode lebih efesien sehingga bisa dioptimasi lebih lanjut
- Vendor Independence : Tidak tergantung penyedia DBMS. Jika terjadi perubahan data cukup diubah konfigurasi koneksi saja
- Mengatasi Paradigm “impedance mismatch” : Penyimpanan data dalam RDBMS dan objek sama sekali berbeda. ORM menjadi layer perantara RDBMS dengan pemrograman berbasis objek.
Entity Framework
Entity Framework adalah salah satu ORM yang dibuat dan direkomendasikan Microsoft dalam pengembangan aplikasi.
Kita akan membahas lebih lanjut tentang Entity Framework pada postingan berikutnya, insyaAlloh
Dan sebagai penutup postingan kali ini, saya akan menampilkan cuplikan source code untuk mengakses database baik menggunakan library ADO.NET secara langsung dan menggunakan ORM Entity Framework.
Untuk database saya menggunakan SQL Server Express 2008 R2.
1. Menggunakan library ADO.NET secara langsung
Penulisan kode seperti di atas, dengan menggunakan objek DataReader untuk menampung hasil SELECT, mirip dengan programmer VB classic yang menggunakan objek Recordset untuk menampung data, di mana kita masih berhubungan dengan baris dan kolom.
Makanya ketika kita ingin menampilkan nama supplier kita harus menyebutkan fieldnya yaitu “NamaSupplier” atau dengan menyebutkan indexnya.
Penulisan nama field “NamaSupplier”, masih berbasis teks sehingga IDE Visual Studio yang canggih pun tidak bisa berbuat banyak untuk membantu kita mengingat nama field apa saja yang tersedia untuk tabel Supplier berikut tipe datanya.
2. Menggunakan ORM Entity Framework
Pendekatan yang kedua ini kita sudah tidak lagi berhubungan dengan baris dan kolom tetapi langsung berhubungan dengan objek dari masing-masing class entity/model. Sehingga ketika kita menuliskan objek supplier kemudian diikuti dengan karakter titik (.), IDE Visual Studio bisa membantu kita dengan fasilitas IntelliSensenya untuk menampilkan daftar property apa saja yang tersedia.
Sehingga aktivitas mengingat nama field berikut tipe datanya sudah tidak ada lagi disini , bahkan kita tidak perlu menuliskan secara manual perintah SQL yang digunakan untuk menampilkan data Supplier, semuanya semua pekerjaan ini sudah diambil alih oleh Entity Framework.
Dari sisi kecepatan, jelas menggunakan library ADO.NET secara langsung adalah pemenangnya, tetapi dari sisi kemudahan penulisan kode dan pengembangan aplikasi, Anda dan Saya pasti sepakat bahwa menggunakan ORM adalah pemenangnya
Selamat MENCOBA
Referensi :
Comments