Apakah Kerangka Entitas siap untuk produksi? [Tutup]


10

Saya melihat ke dalam Kerangka Entitas untuk proyek baru yang akan saya ambil dan sebagai bagian dari penelitian saya di dalamnya, saya bertanya kepada beberapa profesional industri apakah itu stabil dan siap untuk implementasi 'dunia nyata'.

Dalam menjalankannya adalah:

  • EF
  • NHibernate
  • DevExpress XPO

Saya sudah memiliki banyak pengalaman dengan XPO, tapi saya tidak terlalu senang dengannya.

Jawaban:


8

Ya, tetapi dengan beberapa peringatan:

  • Ini sepenuhnya didukung oleh Microsoft, dan memiliki komunitas yang berkembang - tetapi menjadi lebih baru dari pesaing terdekatnya, nHibernate, masih belum memiliki komunitas yang cukup matang.

  • Seiring dengan memiliki komunitas yang kurang matang, akan ada waktu di mana fitur tersedia dengan EF4 tetapi hampir tidak didokumentasikan; atau EF4 akan memberikan pengecualian yang Google tidak dapat membantu Anda.

  • Ini fitur lengkap ketika digunakan sebagai Microsoft bermaksud, tetapi dalam pengalaman saya itu bisa sangat sulit untuk retrofit ke sistem yang ada. Idealnya Anda akan menggunakannya dalam skenario greenfield dengan tumpukan Microsoft 100%. Ini tentu saja cukup fleksibel untuk berbaur dengan sistem lain, tetapi hal itu meningkatkan kesulitan secara substansial.

Namun, untuk menegaskan kembali poin utama, itu lengkap dan cukup stabil untuk penggunaan produksi.


Satu hal kunci untuk ditunjukkan, yang tampak jelas tetapi sering diabaikan sampai menyebabkan rasa sakit, adalah bahwa ORM berfungsi untuk memetakan dari paradigma relasional ke paradigma OO. Jika salah satu dari tingkatan ini tidak mengikuti aturan paradigma masing-masing maka Anda akan merasa sangat terluka.

Ini bisa dua arah - jika Anda fasih dalam paradigma relasional / set-based dari SQL dan OOP maka ORM akan membiarkan keduanya berbaur seperti mentega. Jika basis data Anda sepertinya ingin menjadi OO, dan kode-OO Anda sepertinya ingin menjadi berbasis catatan, maka YMMV.


+1: Terima kasih atas informasinya. Untungnya, proyek ini adalah bidang pertama yang hampir seluruhnya ada di tumpukan .NET (masih diperdebatkan antara server mysql dan sql), dan saya akan memodelkan domain terlebih dahulu (dan semoga menghasilkan struktur tabel)
Steven Evers

@SnOrfus: FWIW Saya mulai menggunakan EF di atas MySQL baru-baru ini, dan sangat menikmatinya.
Eric King

5

Kami telah menggunakan EF di beberapa aplikasi produksi. Kami juga memiliki NHibernate di beberapa aplikasi produksi. Komentar oleh STW bahwa EF bekerja paling baik "saat digunakan sesuai keinginan Microsoft" tentu benar. NHibernate juga berfungsi dengan baik bila digunakan mengikuti pola yang dimaksudkan oleh tim NHibernate. Saya tidak memiliki pengetahuan atau pengalaman dengan XPO.

Saya tidak menyesal menempatkan NHibernate ke dalam produksi.
Saya tidak menyesal memasukkan Entity Framework ke dalam produksi.

Salah satu faktor pendorong untuk menggunakan EF adalah integrasi dengan LINQ. Saya tahu bahwa NHibernate telah melakukan banyak pekerjaan dengan LINQ juga tetapi belum memiliki waktu untuk menyelidiki itu.


Bekerja dengan keduanya adalah cara yang bagus untuk belajar bagaimana bekerja dengan keduanya. Ini seperti mempelajari VB.NET dan C # - Anda mengajukan pertanyaan saat melihat perbedaan, dan mengajukan pertanyaan itu sangat meningkatkan pemahaman Anda pada akhirnya.
STW

3

Kami menggunakan EF4.1 dengan pendekatan Code First untuk proyek web kami dan seperti yang dinyatakan sebelumnya menjaga penggunaan sebagaimana yang dimaksudkan Microsoft akan membuat Anda keluar dari banyak masalah.

Orang dapat melihat bahwa sistemnya belum benar-benar matang dan saya mengatakan ini karena:

  1. Perilaku masih banyak berubah (dibandingkan dari CTP5 hingga 4.1)
  2. Generator LINQ to Entities hanya dapat menangani tipe dasar (Int, String, lot)
  3. Beberapa hal tidak berfungsi sepenuhnya secara intuitif ketika Anda mencoba untuk menggabungkan dalam dataset yang ada
    1. Itu tidak memungkinkan Anda untuk hanya membuat definisi tabel untuk dbset tertentu
    2. Memetakan bidang-bidang seperti datetimes membutuhkan Googling.
  4. Lihat Masalah yang Diketahui lainnya

2

Saya belum benar-benar menggunakan tumpukan penuh, tetapi kami menggunakannya sedikit demi sedikit dalam produk kami dan tampaknya cukup matang, meskipun kami harus menyesuaikan beberapa bagian untuk kebutuhan kami.


0

Saya akan berpikir begitu. Saya menggunakan kode-EF4 pertama (CTP) untuk mengembangkan aplikasi web multi-penyewa.


+1 - Ya, saya telah melakukan beberapa pelatihan dalam sebuah tim yang menggunakannya secara intensif dalam proyek perusahaan yang sangat besar, dan itu bekerja dengan cukup baik. Itu dengan versi pertama, bukan yang terbaru. Jadi saya yakin 100% aman untuk menggunakan versi terbaru.

Saya tidak tahu bagaimana Anda bisa 100% yakin dengan perangkat lunak apa pun yang belum Anda jalankan di lingkungan produksi.
Jeremy

-1

Saya pikir / harap begitu ... Saya memulai proyek dengan EF 4 dan pendekatan Model-First yang baru ...

Untuk apa yang saya lihat EF 4 jauh lebih kuat dan fitur lengkap bahwa versi pertama ... Saya akan mengatakan pergi untuk itu, saya tahu saya akan :)


-1

Ya itu, namun Anda harus mengalokasikan sumber daya untuk memperbarui dan menguji ulang aplikasi Anda ketika pembaruan keluar (seperti halnya kerangka kerja lainnya).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.