Sesaltı Vs NHibernate

oy
72

diğer adversed bu araçlardan birini ne zaman kullanılacağı hakkında konsensüs nedir? Ben hızlı bir şekilde halletmek alma açısından Sesaltı çok faydalı buluyorum, ancak büyük projelerde bu veritabanı modeline alan adı modeli ölçekli değildir eğilimindedir ve bağları. size veritabanı modeli ile alakasız olan hafif Pocos verir ama kurulum süresi çok daha uzun olduğu gibi Nhibernate devreye giriyor budur.

Oluştur 04/08/2008 saat 17:29
kaynak kullanıcı
Diğer dillerde...                            


15 cevaplar

oy
83

Bu soruyu çok sorulan ve gerçekten bu size keman istediğiniz ne kadar aşağı gelir. Chris Cyvas yorumları, olmuştur Sesaltı ölçeklendirme RE ne kadar zarar söyleyemem - ve :( beri bu hiç yanıt oldum.

anlaşma - perf-bilge, Sesaltı çok güzel ölçekler. Proje büyüme açısından - Kullanmak HERHANGİ aracı dikkatinizi gerektirecektir. Hatta NHibernate.

Ben DI ile Depo deseni nasıl kullanılacağı hakkında bir yazı yazdı Sesaltı 2.1 ile (eğer NHib ya da bu konuda herhangi bir araç ile olduğu gibi):

http://blog.wekeroad.com/blog/subsonic-writing-decoupled-testable-code-with-subsonic-2-1/

Ayrıca ses altı performansı üzerinde bir yazı yazdı:

http://blog.wekeroad.com/blog/subsonic-scaling/

Bu yardımcı olur umarım.

Cevap 12/09/2008 saat 22:54
kaynak kullanıcı

oy
45

Proje veritabanı modeli olduğunu ActiveRecord görünümü ile çalışıp çalışmadığını SubSonic öneriyoruz. Masanın başına bir sınıf alırsınız ve herşey sihirli çalışır. Tabii çimdik ve şeyleri geçersiz, ancak siz (veya proje) temelde sınıf başına masanın yaklaşımla uyuşmaması durumunda haritalama daha karmaşık (ama daha esnek) yaklaşımı ile başlar beri NHibernate bakardık edebilirsiniz veritabanınıza alanı modeli.

Eğer kontrol altında nispeten basit bir veritabanı kullanıyorsanız, ben SubSonic yapmazsa Sesaltı ile başlayan ve NHibernate hareket öneriyoruz (olduğu gibi bir veritabanı bölme gözetim Teftiş kuruluna sekiz formları göndermeden sütunları değiştirebilir) ihtiyaçlarınızı karşılamak.

Cevap 06/08/2008 saat 22:47
kaynak kullanıcı

oy
31

Ne onun değer için ... Ben bu soruyu soran beri oldukça abit daha iki teknolojiyi kullanma fırsatı oldu. Ve ben bu teknolojilerin eğer konularda çok az seçim hangi kalmak zorunda. Tabii NHibernate iş kuruluşlar biraz daha az veritabanı yapısına bağlı olmasını sağlar, ama yine de hala veritabanının iradesine eğmek zorunda birçok durum vardır bulmak.

Bence bu tamamen Veritabanı modelinden Alan Modeli ayırmak için tek gerçek yolu, kendi yazmaktır DTOS (yaklaşık verilerinin geçirilmesi için esas Pocos) ve ardından veri katmanında geri seçtiğiniz ORM bunları harita. Ancak çoğu durumda, bu yaklaşım onun değer daha bana daha sorunsuz olacak.

Cevap 05/03/2009 saat 10:23
kaynak kullanıcı

oy
13

Biraz konu dışı, ancak benzer bir damarda. Baktığınız mı Castle ActiveRecord bunun üzerine yazılır NHibernate ve veritabanına kodundan zaman oluşturarak XML eşleştirmeleri geçirmek gereğini ortadan kaldırır. NHibernate gibi istediğiniz kadar alan adı nesneleri yapılandırmak ve daha sonra bu yapıdan bir veritabanı şemasını oluşturabilir.

Kullanılması ActiveWriter bir katkı aracı, kolayca etki alanı nesneleri için veritabanından eşleştirebilirsiniz.

Cevap 05/08/2008 saat 06:07
kaynak kullanıcı

oy
9

Sen Akıcı NHibernate bakarak düşünebilirsiniz; o yönetmek NHibernate bir esinti yapar. Emin değil ne kadar zor varolan şema geçiş olacağını, ancak yeni bir uygulama geliştiriyorsunuz eğer aklınıza gelebilecek hemen hemen her DB sunucusunda veritabanı alanı modeli tanımlamak ve oluşturmak için güzel. Burada diğer yorumları okuduktan sonra, ben Akıcı NHibernate yapılandırma kolaylığı için SubSonic ile eşit NHibernate getiriyor düşünüyorum.

Cevap 04/03/2009 saat 21:17
kaynak kullanıcı

oy
7

Ben bir blog yazısı yazdı o ses altı ve ActiveRecord sahip .NET ORMs hakkında son zamanlarda. Benim deneyim Eğer SQL gelen ancak NHibernate bunun ontop daha varsa, Sesaltı çok daha iyi olanı proje yapıyor bağlıdır. ActiveRecord küçük projeler için iyidir, ben NHibernate yapışmasını daha büyük projeler için hızlı olduğuna ikna olmuş değilim.

Cevap 07/10/2008 saat 11:10
kaynak kullanıcı

oy
7

Ben henüz aslında bir proje üzerinde NHibernate kullanılmaz ettik iyi bir karşılaştırma veremem, ama SubSonic kullanmış ve çok memnun olmuştur. bunu kullanırken Şimdiye kadar herhangi bir büyük engel ulaşamadım.

Check out Bu yayını Rob Conery, SubSonic yaratıcıları birinden. O app geri kalanından sizin Sesaltı kod ayrıştırmak için nasıl bahsediyor. Hatta bu mimari sonradan böyle to SQL NHibernate veya LINQ gibi diğer bazı veri erişim katmanı için ses altı takas sağlayacak gerçeğini bahseder.

Ben aslında sorunuza cevap vermedi biliyorum, ama bu yine de yardımcı olur.

Cevap 04/09/2008 saat 20:25
kaynak kullanıcı

oy
5

Hem değerlendirdik ve o Hedefleriniz ne anlamadan birini diğerine tavsiye etmek adil olmaz inanıyoruz. Sorunuza size iyi farklılıkları ifade ve bunun belirleyici bir faktör olabilir gerekiyor inanıyoruz. Şahsen ben de kullandım ve proje üzerinde hem bağlı kullanmaya devam edecektir.

  • NHibernate hafif POCO en onun kullanımları nedeniyle daha büyük ölçekli projeler için benim seçimim. Şimdiye kadar benim ORM dışarı geçiş olsaydı bu refactor çok daha kolay olurdu "İnanıyorum".
  • Daha küçük çaplı bir proje varken Sesaltı benim seçimim. O performans akıllıca Sesaltı iyi ölçekler inanıyoruz. o nedenle projemin kazındı çünkü Ancak, ben sıkıca onunla birleştiğinde hissediyorum. Kod tabanı çok küçük ve gerçekten reklamı olarak beni kodunu söküp yardımcı olduğu küçük projede ben hala dışarı geçiş yapabilirsiniz.
Cevap 26/01/2009 saat 14:37
kaynak kullanıcı

oy
4

Yine biraz konu dışı ama olacak ikinci Kalesi ActiveRecord - ziyade Modelinizle (Sesaltı yaklaşım) veya XML spagetti içinde harcama saat (NHibernate yaklaşım) basitçe yer modeliniz sınıfları üzerinde niteliklerini olarak veritabanı kullanarak daha.

Hatta ActiveRecord alabilirsiniz veritabanı şema oluşturmak sizin için.

Biz şimdi epeyce projelerde bu yaklaşımı kullandım ve aşağıdaki gibi faydaları şunlardır:

  • NHibernate kolay yükseltme yolu ileride gerekirse
  • Destek basit kalıtım modelleri - örneğin. Araba -> Araç
  • Ürettiği şema yine de yarattık nasıl büyük olasılıkla, bu nedenle senkronize model / db tutmak endişesi ziyade uygulama oluşturmaya daha fazla zaman geçirebilirsiniz.
Cevap 16/09/2008 saat 13:15
kaynak kullanıcı

oy
4

Ben hemen hemen çivilenmiş düşünüyorum. Sesaltı kodu üretir, bu nedenle iş nesneleri veritabanı yapısının yansıtıcı olacaktır. nHibernate istediğiniz gibi Nesnelerinizin yapılandırılmış böylece veritabanına iş nesneleri map haritalama dosyalarını kullanır.

Bu ne kadar büyük bir projenin mı? Uzun vadeli destek gerekli olacak mı? SUBSONIC maliyet etkinliği olası ölçeklendirme sorunları ofset olacak mı?

Cevap 04/08/2008 saat 18:12
kaynak kullanıcı

oy
3

ActiveRecord düşünürken Takımınızı ve proje boyutunu düşünün.

Tecrübelerime göre, ActiveRecord daha karmaşık senaryolar çalışırken bir elek gibi sızan başlar NHibernate üstünde bir soyutlamadır.

Eğer bir orta için ağır komplike olan veya olmayan basit bir şema varsa, NHibernate ile sopa. Sen dilim ve yakın mükemmellik için zar olabilir.

Eğer bir orta karmaşık sorgu ihtiyaç duyduğunuzda derde girebilir diğer bir yerdir. ActiveRecord NHibernate uygulanma çok gizler ... ama sen HQL tamamen yabancı iseniz çok zor hale gelecektir karmaşık bir sorgu için gerekir. Be dikkatli ekip üyeleri sadece yerine NHibernate ve HQL öğrenme kenarlarında uzak kesmek gerekmez.

Cevap 02/10/2008 saat 20:26
kaynak kullanıcı

oy
3

Biz ses altı ile bootstrapped ve şimdi şimdi ses altı ağrı noktalarında olduklarını nhibernate geçmek için gidiyoruz eğer değerlendirmek için çalışıyoruz.

Bizim Diğer seçenek biz sorgulamak ve keyfi bir linq tarzı sql deyimi kapalı bir isim bazlı eşleştirmeyi yapar onların "Yazılan liste olarak yürütmek" işlevselliği ile keyfi nesneleri yüklemek için ses altı kullanan bazı orta yol oluşturmaktır. Veya denemek ve nhibernate içinde bir kısmı yeniden ve geri kalanı refactor.

Bu yüzden, biz örtüşen doğrulama kodu ve kod öncesi / sonrası özellikle zor zamanlar sahip olayları tetikleyen ses altı küçük uygulamalarda mantıklı ama ses altı uygulamalar üzerinde bakım oldukça kıllı aldığını varsayalım. Aktif bir rekor kalıbı için, ses altı orada kesinlikle% 80 olmakla birlikte, kesintili bir şekilde birşeyler yapar ve her sınıf geri o tabloya almak için bir tablo miras gerektiğinden, sizin kalıtım hiyerarşisi üzerinde herhangi bir gerçek kontrole sahip alıkoyar.

Cevap 30/08/2008 saat 07:18
kaynak kullanıcı

oy
2

Ben size iyi yararlanabilirler biri tutması gerektiğini düşünüyoruz. Nihai hedef verimlilik ve iyi performans gösteren kaliteli kodudur. Eğer dışarı Sesaltı ve biliyorsanız o zaman sopa ve NHibernate derinlik sopa NHibernate biliyorsanız. Bu çok sübjektif bir sorudur. Ayrıca takım üyesi uzmanlık yaşıyorsanız ne gerçeğini göz önünde bulundurmalıdır. Bu işte iyi iseniz kolayca korumak mümkün olacaktır.

NHibernate zaten ünlü ve yaygın olarak kullanılan oysa ses altı kullanarak büyük projeler gördüm.

Toplama ORM karar vermez , sadece ORM kendisi bağlıdır.

Cevap 03/11/2009 saat 06:52
kaynak kullanıcı

oy
2

Empedans Uyuşmazlığı kucaklayın!

Bu kontrol

:)

Ya yapma. Eğer performansı istiyorsanız, kendiniz yapmak. Eğer hızlı ve kolay istiyorsanız, NHibernate ve ActiveRecord ile gidin. ADO.Net - Eğer kendiniz yapmak .. err ... aslında sadece veri erişim düzeyinde neler olup bittiğini bilmek NHibernate kullanın ve gidiş pek bir sayıda almak için gün boyu XML ile oturup ... Ya da taklit etmek gibi olursa FTW!

Cevap 08/02/2009 saat 02:51
kaynak kullanıcı

oy
0

Ben konuyla ilgili kazanılmış sonra tavsiye Sesaltı size daha gelişmiş bir ORM üzerinden takas için çalışan bir iş bitireceğiz o yolda giderseniz daha karmaşık senaryoları ve böylece işlemek için ölçeklenebilir olmamasıdır.

Ben böylece karmaşık durumlarda, basit durumlar için kale Aktif Record için NHibernate kullanarak ilgileniyorum ve NHibernate (kongre tabanlı haritalama desteği geliştirilmiş özellikle kez) çok daha kolay haritalama yapmalıdır Akıcı NHibernate göz kulak ediyorum.

Cevap 25/10/2008 saat 15:20
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more