2013-07-25 10 views
7

Zaczynam od filozofii DDD i chciałbym wdrożyć integrację z istniejącym systemem, który mamy tutaj. W swoich badaniach w Internecie znalazłem kilka artykułów i próbek, ale muszę przyznać: dość trudno jest zrozumieć, jak poprawnie wykonać tę integrację.Jak poprawnie wdrożyć warstwę antykorupcyjną

Zanim zadałem to pytanie, przeszukano tutaj, ale wyniki były dla mnie nieprzydatne, więc chciałbym się dowiedzieć, czy można wysłać lub pokazać przykład implementacji listy ACL.

Tutaj mam to pozycje:

  • System Legacy
  • Baza Legacy (muszę dostępu)
  • nowej aplikacji, który zostanie utworzony przy użyciu podejścia DDD

Początkowym pomysłem jest uzyskanie dostępu do tej bazy danych poprzez NHibernate, tworzenie tylko niektórych potrzebnych klas mapowania, jednostek domeny i wdrożenie reguł biznesowych. Według Erica Evansa ta strategia nazywa się [Kontekst bąbelkowy] [1]. Myślę, że ta strategia rozwiąże mój problem, ale potrzebuję próbki, aby to zrobić we właściwy sposób.

Czy ktoś może mi pomóc?

+2

Czy przeczytałeś książkę Eric Evansa "Domain Driven Design", jest tam rozdział o acl. Acl jest w rzeczywistości przykładem zastosowania wzoru adaptera w DDD. – Hippoom

+1

Jedną z sugestii, jaką mam z własnego doświadczenia, jest nieskrępowanie dostępu do starszej bazy danych za pomocą NHibernate, ponieważ może nie być to warte zachodu. Zamiast tego skoncentruj się na zamknięciu dotychczasowego systemu usługą, do której będzie można uzyskać dostęp przez nową aplikację za pośrednictwem listy ACL. – eulerfx

Odpowiedz

6

Lista ACL jest wzorcem, a nie tylko fragmentem kodu. W tym, co opisałeś, nie powiedziałeś, że masz silne zależności od starego systemu lub po prostu chcesz mieć jakiś niezależny kawałek kodu wbudowany w obecny system? Dzięki temu mógłbyś zadecydować, że ACL będzie tylko usługą do bazy danych, czy też będzie zawierał zawijanie w oparciu o starszą logikę systemu?

Rzeczywiste elementy, które można umieścić w ALC są w dużym stopniu zależne od implementacji. Jest to ogólny schemat co prosisz: enter image description here

Można znaleźć więcej informacji w Eric Evan's talk.

Powiązane problemy