Bir .NET 4.5 C # Web API RESTful çözümü oluşturuyorum ve birisinin bana proje çözümümün Domain Driven Design kullanılarak tasarlanmış bir çözüm için doğru ve / veya akıllı (-enough?) Olup olmadığını söylemesini istiyorum.
Çözüm 6 projeye ayrıldı:
- / Taban
(Hiçbir şey tarafından referans verilmemiştir)
Web projesi ve çözüm ile dış dünya arasındaki arayüzü oluşturur. Web API denetleyicilerini içerir. İstek nesnelerinden değer toplamanın ve BizApi katmanından iş istemenin ötesinde neredeyse hiç mantık içermez.
- /Biz.Api
(Baz tarafından referanslandırılmıştır])
Etki alanı hizmetlerini sağlar ve / Base arabirimi projesinin /Biz.Domain projesindeki etki alanı iş mantığı nesnelerine erişmesine izin verir.
- /Biz.Domain
(Referans: Biz.Api)
Biz.Api katmanı için etki alanı sınıflarını sağlar. Bunlar, işin bellekteki verilerini işlemek için yöntemler sağlar.
- /Dal.Db
(Referans: Biz.Api)
Veritabanı veri havuzu katmanı. Veritabanlarına erişir ve döndürülen verileri / Interfaces katmanında tanımlanan dahili DTO'lara eşler.
- /Dal.Services
(Referans: Biz.Api)
Web hizmetleri gibi harici bağımlılıklara bir proxy katmanı sağlar ve döndürülen verilerini / Interfaces projesinde tanımlanan dahili DTO'larla eşler.
- / Bağlantı
(Yukarıdaki çoğu proje tarafından başvurulmuştur)
IoC gibi şeyler için sözleşmeleri tanımlamak amacıyla çözüm ve C # arayüzlerine veri aktarımı için DTO sınıflarını içerir.