2009-07-20 14 views
6

Burada Subsonic3 ve Entity Framework ile çalışan herkes bana artılarını ve eksilerini söyleyebilir? Bu, bunları denemeye ilk denemedir. Subsonic, Entity Framework gibi kurulumu kolaydır. Entity Framework'ün, MySql PGsql vb. Gibi SubSonic gibi diğer veritabanlarıyla çalışıp çalışmadığından emin değilim. Bu yazıyı okudum (http://www.timacheson.com/Blog/2009/jun/entity_framework_vs_subsonic), SubSonic üzerinden Entity Framework'ü seçecek kadar ikna edicidir. Ama ikinci bir açılış istedim.Subsonic 3 VS Entity Framework

+2

Tim'in benchmarkları tipik testler değil - SubSonic'in yüklenmesi o kadar uzun sürmez. http://blog.wekeroad.com/subsonic/subsonic-scaling/ –

cevap

17

Bu iki hayvan oldukça farklıdır!

Subsonic 3, veritabanı sınıfının hemen hemen 1: 1 gibi bir veritabanı yapısını basit ve kolay bir şekilde eşlemek için harika bir araçtır; her sınıf, altta yatan veritabanındaki tablonun tam bir temsili olacaktır (Linq'de olduğu gibi). de-SQL'e).

Entity Framework, etki alanı veya nesne modelinizin (sınıflarınız) veritabanı tablolarına 1: 1 eşleşmeyeceği çok daha karmaşık senaryoları hedefler. Bu yüzden EF'in XML dosyalarının bir üçlemesi vardır - biri kavramsal seviyeyi (alan nesnelerinizi), bir depolama düzeyini (veri tabanı düzenini) ve bu ikisi arasındaki haritalamayı açıklar.

IMHO, Subsonic 3 ve Linq-to-SQL, hızlı, küçük ve orta ölçekli projeler için idealdir; veritabanınız gerektiğinde değişebilecek kadar esnektir ve nesnelerin tablolara oldukça basit bir şekilde eşlenmesini sağlar. . EF, veritabanı düzeyinizin taşa yerleştirilebileceği büyük ölçekli kurumsal uygulamalarda gerçekten parlar ve bunu değiştiremezsiniz - veya altyazı veritabanı değişse bile uygulamanızın "ayakta kalması" gerekir.

Tamamen farklı seyirciler, tamamen farklı hayvanlar.

Marc

Not: Tim gerçekten bu karşılaştırma Sesaltı 3 kullanıyordum ve tam ne yaptığını merak ediyorum. Benim bağırsak duygularım EF'in "daha büyük" yük olacağı ve bu yüzden biraz daha az performans sergileyebileceği (ancak daha esnek ve Kurumsal senaryolarda, bu, bazı performanslarından ödün vermeden bile, altın ağırlığına değecek) olurdu.

+0

Harika yanıt için teşekkürler. – Shuaib

+0

PS'inize ek olarak, makale "Subsonic 2.1 (3.0 ile benzer sonuçlar üretildi") diyor. Sizin gibi, daha hafif SubSonic daha hızlı olurdu. Ve SS kullanarak temel kodlama kullanarak küçük bir performans verdiğimi biliyorum, ancak esneklik kesinlikle buna değer. – kevinw

3

Bu durumun yardımcı olması durumunda, benim referans noktalarında Subsonic 2.1 (belirtildiği gibi) kullanmış ve orta yük senaryosu (belirtilen metodoloji) karşılaştırdım. Kodu sağladım, bu yüzden testim kolayca çoğaltılabilir.

Sistemi yüklemeye tabi tutarsanız, EF kullanım sırasında bir web uygulamasında koşulları yeniden üretiyorsanız, çok daha iyi bir performans sunmayı başarır.. Tüm web uygulamasının yük testleri bunu onaylar. Daha karmaşık testlerde, EF'in tembel yükleme gibi optimizasyon yetenekleri, Subsonic'e göre daha büyük performans avantajları sunabilir. Tek tek veri erişim işlemlerini karşılaştırırsanız, örn. Basit bir birim testinde, Subsonic daha hızlı görünür. Özellikle, Subsonic daha hızlı başlatıldı.

Performans önemli bir konu ise Fluent NHibernate veya Entity Framework'ü öneririm.