.NET veri katmanı oluşturmak için Microsoft'un mevcut en iyi uygulamaları? Peki ya gerçek?


13

Çalıştığım geliştirme ekibi yakında .NET 4.0'a geçecek, ancak kullandığımız veri erişim sınıfı kitaplığı hala SqlDataReader , DataTable ve benzeri anlamına gelen ADO.NET "klasik" kullanıyor . Bu arada, Microsoft gibi görünüyor ve muhtemelen dünyanın geri kalanı Entity Framework ve WCF Data Services ile ilerliyor . MSDN'de Microsoft'un hangi veri erişim teknolojilerinden en iyi uygulamaları düşündüğünü belirten hiçbir şey bulamadım.

Microsoft'un bir tercihi var mı? Çoğu kişi şu anda hangi veri erişimini kullanıyor? ADO.NET classic ile kalmak ve Entity Framework'e taşınmamak için iyi nedenler var mı?


İyi soru. Bir nit: "veri katmanı" daha kesin bir terim olabilir. "Katmanlar" ayrıca, dağıtılmış bir sistemin ayrı kutularda çalıştırılabilen kısımları anlamına da gelebilir.
azheglov

1
@azheglov, "veri katmanı" ilk düşüncemdi, ama sonra buna baktım ve MSDN'de gördüğüm terminolojiyle devam etmeyi düşündüm: msdn.microsoft.com/en-us/library/bb384398.aspx . Veri katmanının daha kesin olduğunu kabul ediyorum.
T.Webster

Webster: Yukarıya bakmak ve açıklama için teşekkürler
azheglov

Yanıtlar:


4

Firmamızda EF kullanıyoruz. Küçük projemize uygun güzel bir ORM. Gerçekte insanlar EF veya NHibernate kullanıyor. Her iki çerçeve de iyidir. EF'in mükemmel bir MS desteği var ve Visual Studio ile birlikte gelen harika araçları bulabilirsiniz. NHibernate, EF'den daha iyi kabul edilir, ancak daha büyük bir "öğrenme eğrisi" vardır, bu yüzden onu benimsemek için daha fazla zaman harcayacaksınız.

Sanırım, Ado.Net "klasik" iseniz EF deneyin. Basit bir proje oluşturun ve bazı DAL yöntemlerini değiştirin. Nasıl çalıştığını ve kodu nasıl yönetebileceğinizi / değiştirebileceğinizi kontrol edin. Basit "SqlDataReader" yöntemleri ile karşılaştırın ve hangisinin daha iyi olduğuna karar verin. Her teknoloji değişiminin benimsenmesi için biraz zamana ihtiyacı olduğunu unutmayın, bu nedenle bu değişikliğin uzun vadede şirketiniz için faydalı olup olmadığını hesaplamanız gerekir.


5

Ekibim EF'e taşınmanın gerçekliğini biraz acıtıyor. Çünkü EF kötü ya da kullanışlı değil, ancak mevcut veri katmanlarımızı (oldukça büyük) ADO.Net framework 2.0'dan kaynaklanan güçlü tip veri setlerinden EF'e dönüştürme kapsamı, gerçekten kazanamayan çok yoğun bir çalışma bize bir şey. Yeni şeyler için hala oldukça yırtılmışız çünkü hepimizin fikirleri ve hedefleri var. Silverlight projelerimiz için yalnızca EF ve RIA hizmetlerine odaklanıyoruz, ancak web projeleri (webforms ve MVC 3) için öncelikle Linq2Sql kullanıyoruz.

Linq2Sql kullanarak daha az baş ağrısı ve daha hızlı gelişme buluyoruz, ancak Microsoft'un EF gündemini (özellikle WCF ve RIA hizmetleriyle) zorladığını biliyorum. Linq2Sql hiçbir yere gitmiyor, ancak tüm yeni oyuncaklar ve havalı özellikler EF'e odaklanacak. Erken bir seçeneğiniz varsa, EF başlamak için iyi bir yer olacağını söyleyebilirim. Zaten orta akıştaysanız, geçiş yapmanın çok kolay olacağını bilmiyorum.


3

Varlık Çerçevesi gitmek için tercih edilen yoldur. LinqToSql desteklenecek ve korunacak, ancak ilerideki geliştirme odağı Entity Framework üzerindedir. ADO.NET Entity Framework ve LINQ to SQL arasında seçim yapma


ve şu anda ne kullanıyorsun?
T. Webster

2
Bence herkes linq2sql kullanıyor
cnd

@ nCdy: Ekibimizin bazı üyeleri Linq2Sql'i çok "konuşkan" olarak kabul etse de, EF'in L2S'nin atladığı çok gereksiz gereksiz çöpleri otomatik olarak oluşturduğu görüşündeyiz.
Joel Etherton
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.