Entity Framework üretime hazır mı? [kapalı]


10

Ben üstleneceğim yeni bir proje için Entity Framework'ü arıyorum ve araştırmamın bir parçası olarak, bazı endüstri profesyonellerine 'gerçek dünya' uygulaması için kararlı ve hazır olup olmadığını soruyorum.

Koşuda:

  • EF
  • NHibernate
  • DevExpress XPO

XPO ile zaten çok fazla deneyimim var, ancak bundan özellikle memnun değilim.

Yanıtlar:


8

Evet, ancak bazı uyarılarla:

  • Microsoft tarafından tamamen destekleniyor ve büyüyen bir topluluğa sahip - ancak en yakın rakibi nHibernate'den daha yeni olan, hala olgun bir topluluğa sahip değil.

  • Daha az olgun bir topluluğa sahip olmanın yanı sıra, EF4'te bir özelliğin mevcut olduğu ancak zar zor belgelendiği zamanlar olacaktır; veya EF4, Google'ın size yardımcı olamayacağı istisnalar atar.

  • Microsoft'un amaçladığı gibi kullanıldığında tam özelliklidir, ancak deneyimime göre mevcut bir sisteme uyarlamak oldukça zor olabilir. İdeal olarak,% 100 Microsoft yığınına sahip bir yeşil alan senaryosunda kullanacaksınız. Kesinlikle diğer sistemlerle karışacak kadar esnektir, ancak bunu yapmak zorluğu önemli ölçüde artırır.

Bununla birlikte, ana noktayı tekrarlamak için, üretim kullanımı için yeterince eksiksiz ve kararlıdır.


Belirtilmesi gereken kilit noktalardan biri , bariz gözüken ancak ağrıya neden olana kadar genellikle göz ardı edilen bir ORM'nin ilişkisel paradigmadan OO-paradigmasına eşleme çalışmasıdır. Bu katmanlardan herhangi biri kendi paradigmasının kurallarına uymazsa, ekstra incinmiş hissedeceksiniz.

Bu her iki yöne de gidebilir - eğer ilişkisel / set tabanlı SQL ve OOP paradigması konusunda bilgili iseniz, ORM iki tereyağın birbirine karışmasına izin verecektir. Veritabanınız OO olmak istiyor gibi görünüyorsa ve OO kodunuz kayıt tabanlı olmak istiyor gibi görünüyorsa, YMMV.


+1: Bilgi için teşekkürler. Neyse ki, proje neredeyse tamamen .NET yığınında bir yeşil alan (hala mysql ve sql sunucusu arasında tartışıyor) ve önce etki alanını modelleyeceğim (ve umarım tablo yapısını üreteceğim)
Steven Evers

@SnOrfus: FWIW EF'i MySQL'in üstünde son zamanlarda kullanmaya başladım ve gerçekten keyif aldım.
Eric King

5

EF'i çeşitli üretim uygulamalarında kullanıyoruz. Ayrıca çeşitli üretim uygulamalarında NHibernate var. STW'nin EF'in "Microsoft'un niyetinde kullanıldığında" en iyi çalıştığı yorumu kesinlikle doğrudur. NHibernate'in, NHibernate ekibinin amaçladığı kalıplara göre kullanıldığında en iyi şekilde çalıştığı da doğrudur. XPO hakkında hiçbir bilgim veya deneyimim yok.

NHibernate'i üretime soktuğuma pişman değilim.
Entity Framework'ü üretime soktuğuma pişman değilim.

EF'yi kullanmanın itici faktörlerinden biri LINQ ile entegrasyon idi. NHibernate'in LINQ ile de çok çalıştığını biliyorum, ancak henüz araştırmak için zamanı olmadı.


Her ikisiyle çalışmak, her ikisiyle de nasıl çalışılacağını öğrenmek için harika bir yoldur . Hem VB.NET hem de C # öğrenmeye benzer - farklılıklar gördüğünüzde sorular sorarsınız ve bu soruları sormak sonunda anlayışınızı büyük ölçüde artırır.
STW

3

EF4.1'i web projemiz için Kod İlkesi yaklaşımıyla kullanıyoruz ve daha önce belirtildiği gibi, Microsoft'un amaçladığı gibi kullanımı korumak sizi çok fazla sorundan uzak tutacaktır.

Ancak, sistemin henüz olgunlaşmamış olduğunu fark edebilirim ve bunu söylüyorum çünkü:

  1. Davranış hala çok değişiyor (CTP5'ten 4.1'e kıyasla)
  2. LINQ to Entities jeneratörü yalnızca temel türleri (Int, String, lot) işleyebilir
  3. Mevcut veri kümelerinde birleştirmeye çalıştığınızda bazı şeyler tamamen sezgisel olarak çalışmadı
    1. Yalnızca belirli dbsets için tablo tanımları oluşturmanıza izin vermez
    2. Tarihler gibi alanları eşlemek için Google'ı kullanmak gerekir.
  4. Bilinen Diğer Sorunları Görün

2

Aslında tam yığını kullanmadım, ancak ürünümüzde parçalı kullanıyoruz ve bazı parçaları ihtiyaçlarımıza uyarlamak zorunda kalsak da oldukça olgun görünüyor.


0

Ben öyle düşünürdüm. Çok kiracılı bir web uygulaması geliştirmek için önce EF4 kodunu (CTP) kullanıyorum.


+1 - Evet, çok büyük bir kurumsal projede yoğun olarak kullanan bir ekipte koçluk yaptım ve oldukça iyi çalıştı. Bu en son sürümle değil, ilk sürümdü. Bu yüzden en son sürümü kullanmanın% 100 güvenli olduğundan eminim.

Bir üretim ortamında çalıştırmadığınız herhangi bir yazılımdan nasıl% 100 emin olabileceğinizi bilmiyorum.
Jeremy

-1

Sanırım / umarım ... EF 4 ve yeni Model-First yaklaşımı ile bir projeye başlıyorum ...

Gördüğüm kadarıyla EF 4 çok sağlam ve ilk sürümde tam özellikli ... Bunu söyleyebilirim, gideceğimi biliyorum :)


-1

Evet, ancak güncellemeler çıktığında (diğer çerçevelerde olduğu gibi) uygulamanızı güncellemek ve yeniden test etmek için kaynakları ayırmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.