Şu anda kullanıma hazır nesne-ilişkisel eşleyici kullanma veya kendimizi döndürme arasında seçim yapma şansımız olan bir durumdayız
Veri katmanı ve iş katmanının maalesef bir araya getirildiği eski bir uygulamamız (ASP.NET + SQL Server) var. Sistem, veri erişimi açısından özellikle karmaşık değildir. İlişkili tablolardan oluşan büyük bir gruptan (35-40) veri okur, bellekte manipüle eder ve özet formatında diğer bazı tablolara geri kaydeder. Şimdi bazı yeniden düzenleme fırsatları var ve Veri Erişimimizi ayırmak ve düzgün bir şekilde yapılandırmak için kullanılacak aday teknolojileri inceliyoruz.
Hangi teknolojiye karar verirsek verelim:
- Etki Alanı Modelimizde Kalıcılık Bilgisiz POCO nesneleri var
- Etki alanı model nesnelerimizi, alay konusu bir veri kaynağına karşı Birim Test Etmemize izin veren bir soyutlama katmanına sahip olmak
Açıkçası bu konuda Desenler ve Çerçeveler vb. Açısından çok fazla şey var.
Şahsen EF'i ADO.NET Birimi Test Edilebilir Depo Oluşturucu / POCO Varlık Oluşturucu ile birlikte kullanmak için bastırıyorum . Tüm gereksinimlerimizi karşılar, bir Repo / UnitOfWork Kalıbı içinde kolayca paketlenebilir ve DB Yapımız, modelde günlük değişiklikler yapmayacak şekilde makul ölçüde olgunlaşır (zaten bir refactor geçirmiş).
Ancak gruptaki diğer kişiler kendi DAL'ımızı tamamen sıfırdan tasarlamayı / yuvarlamayı öneriyor. (Özel DataMappers, DataContexts, Repository, Her yerdeki arayüzler, Somut nesneler oluşturmak için Bağımlılık Enjeksiyonu aşıldı, Özel LINQ-Temel Sorgu Çevirisi, Özel Önbellek Uygulamaları, Özel FetchPlan Uygulamaları ...) liste uzayıp gidiyor beni delilik olarak.
Hakkında atılan argümanlardan bazıları "En azından kendi kodumuzu kontrol edeceğiz" ya da "Ah, önceki bir projede L2S / EF kullandım ve baş ağrılarından başka bir şey değildi". (Her ne kadar daha önce Üretimde kullandım ve arasında çok az ve çok yönetilebilir ve çok yönetilebilir herhangi bir sorun buldum)
Öyleyse uber deneyimli geliştiricilerinizden / mimarlarınızdan herhangi biri, bu ürünü tam bir felaket gibi göründüğümden uzaklaştırmamı sağlayacak herhangi bir bilgelik sözüne sahip mi? EF sorunlarından kaçmakla elde edilen herhangi bir faydanın , tekerleği yeniden icat etmeye çalışarak çabucak kaybedileceğini düşünemiyorum .