Friday, June 7, 2019

Entity Framework vs Dapper siapa yang lebih enak?

Pada saat membuat aplikasi menggunakan .NET terdapat beberapa pertimbagan ORM mana yang mau di pakai. Apakah ORM yang cepat dan efisien tapi minim fitur? atau ORM yang dengan kecepatan sedikit lebih lambat tapi memiliki fitur lengkap? hmmm ...

Dalam artikel ini saya akan membandingkan dua ORM yang biasa digunakan di dalam pengembangan apliaksi menggunakan .NET yaitu Dapper dan Entity Framework.

Sebelum kita mulai berikut pengertian dari ORM. Secara sederhana ORM (Object Relational Mapping) adalah sebuah layer di dalam pemrograman yang menjembatani/ memetakan database dengan object di dalam aplikasi.


Oke kita mulai perbandingan antara EF dengan Dapper

1. Entity Framework

Entity Framework adalah framework buatan microsoft. EF memberikan kemudahan bagi developer seperti men generate table dari class yang dibuat, men generate fungsi CRUD dan lain lain.

Berikut kelebihan dan kekurangan dari EF.

Kelebihan

  • Memberikan fitur generate code secara otomatis
  • Memberikan fitur desain secara visual model dan mapping object
  • Support LINQ (bahasa untuk query query an bikinan microsoft juga)
  • Grrratis (sudah include untuk versi .NET 3.5 SP1 keatas)
Kekurangan
  • Keterbatasan modifikasi, karena code dan query sudah di generate
  • Jika ada perubahan skema di dalam database, skema di EF juga harus di update
  • Kurang cocok untuk domain model/ aplikasi yang besar
  • Lazy Loading (silahkan di gugel)
2. Dapper

Dapper adalah ORM yang dikembangkan secara open source. Jika di kategorikan, dapper masuk kedalam kategori Micro ORM. Micro ORM adalah ORM versi lite dengan versi dasar seperlunya yang berorientasi pada performa. Dapper memiliki julukan "King Of Micro ORM" dengan performa yang dapat diandalkan. 

Berikut kelebihan dan kekurangan dari Dapper 

Kelebihan 
  • Kemudahan merubah hasil query menjadi object
  • Cepat dan efisien
  • Kemudahan eksekusi query
  • Grrratis (Open source)
Kekurangan
  • Tidak men generate class model ( harus bikin sendiri )
  • Tidak men generate query ( harus bikin sendiri )
  • Tidak dapat menelusuri object dan perubahan nya ( salah satu fitur full ORM )

Kesimpulan
Dari pemaparan di atas EF dan Dapper memiliki tempat nya masing - masing tergantung dari kepentingan dan keperluan dari developer. Entah itu EF dengan kecepatan development nya yang memberikan kemudahan bagi developer dengan men generate ini dan itu? atau Dapper dengan kecepatan query nya yang dapat diandalkan tapi beberapa bagian harus bikin sendiri? It's up to our need sebagai developer.

Namun preferensi pribadi saya, saya lebih memilih dapper dengan performa query nya meskipun dalam beberapa kasus Full ORM bisa lebih cepat karena ada fitur cache di dalam nya, namun hal itu hanya berlaku untuk pemanggilan objek yang sama saja. Kekurangan nya yang tidak memberikan fitur "Generate" justru menurut saya merupakan kelebihan dimana kebebasan modifikasi ada di tangan kita sebagai developer. Bagaimana menurut anda? manakah yang lebih gurih? silahkan tinggalkan komentar ... 


Share:
Location: Jakarta, Daerah Khusus Ibukota Jakarta, Indonesia

0 comments:

Post a Comment