2013-07-25 21 views
7

DDD felsefesi ile başlıyorum ve burada sahip olduğumuz eski bir sistemle bütünleştirme uygulamak istiyorum. İnternetteki araştırmalarımda bazı makaleler ve örnekler buldum ama itiraf etmeliyim: bu entegrasyonu doğru bir şekilde nasıl yapılacağını anlamak oldukça zor. Bu soruyu sormak için önceYolsuzlukla Mücadele Katmanı nasıl uygulanır

, burada bir arama yaptım ama sonuç benim için kullanışlı değildi, bu yüzden göndermek ya da bana bir ACL bir uygulama örneği göstermek mümkün olup olmadığını öğrenmek istiyorum. İşte

bu öğeler var:

  • Legacy sistemi
  • Eski veritabanı (ı erişmesi gereken)
  • DDD yaklaşımı
kullanılarak oluşturulacak yeni bir uygulama

İlk fikir, bu veritabanına NHibernate boyunca erişmek, sadece bazı gerekli haritalama sınıflarını, etki alanı varlıklarını oluşturmak ve iş kurallarını uygulamaktır. Eric Evans'a göre, bu strateji [Bubble Context] [1] olarak adlandırılıyor. Bence bu strateji benim problemimi çözecek, ama bunu doğru bir şekilde yapmak için biraz örnek lazım.

Birisi bana yardımcı olabilir mi?

+2

Eric Evans'ın "Domain Driven Design" adlı kitabını okudunuz, acl hakkında bir bölüm var. Acl aslında DDD'de adaptör kalıbı uygulama örneğidir. – Hippoom

+1

Kişisel deneyimimden gelen bir öneri, NHibernate ile eski bir veritabanına erişmek için atlamamaktır çünkü bu, değerli olmayabilir. Bunun yerine, eski sistemi ACL aracılığıyla yeni uygulama tarafından erişilebilen bir hizmet ile kapsamaya odaklanın. – eulerfx

cevap

6

ACL yalnızca bir kod değil, yalnızca bir kalıptır. Açıkladığınız şeyi söylemediniz mi, eski sisteme güçlü bağımlılıklarınız var mı yoksa sadece mevcut sistemde yerleşik bağımsız bir kod parçası mı istiyorsunuz? Bununla, ACL'niz sadece veritabanına yönelik bir hizmete mi karar vereceğinize ya da eski sistem mantığına göre bir miktar sarılmış olacak mı?

ALC'ye yerleştireceğiniz gerçek parçalar uygulamanıza büyük ölçüde bağlıdır. istediğinin şeyin genel bir şema vardır: enter image description here

Sen Eric Evan's talk daha fazla bilgi 'bulabiliriz.