2013-08-15 8 views
5

I opracowali aplikację z następujących warstw: warstwy dostępugdzie obsłużyć DTO <-> firma konwersja obiektu

  • dane oparte na Fluent NHibernate
  • reguł biznesowych
  • warstwa
  • aktywność (bardziej abstrakcyjnych niż reguł biznesowych i użyj pewnych reguł biznesowych). Warstwa usługi oparta na WCF, która wysyła niektóre DTO do świata zewnętrznego i odbiera DTO.

Jeśli po jakimś czasie otrzymałem DTO, mogę odwzorować DTO na obiekty biznesowe w warstwie usług i skonfigurować aplikację do pracy z obiektami biznesowymi. w takim przypadku, gdy wykonywane są pewne funkcje w niższych warstwach, nic nie wie o starym obiekcie, więc trudno jest obsłużyć i zweryfikować zmianę stanu, a także występuje eksplozja klasy dla adapterów DTO. z drugiej strony, jeśli dto jest mapowane do obiektu biznesowego na wyższych warstwach, gdy spadło, dolne warstwy nie wiedziały nic o nazwie usługi, więc nie mogą nie wiedzieć, w jaki sposób to dto musi zmienić obiekty biznesowe (1 DTO może być używane przez różne usługi na różne sposoby)

, więc pytanie brzmi, jakie jest prawdziwe rozwiązanie?

+0

Czy możesz pokazać trochę kodu? Na przykład: Jak nazywa się jedna z metod usługi WCF? Jak nazywa się odpowiednia metoda/klasa w warstwie biznesowej? Jaki jest przykład funkcji w niższych warstwach? – Halvard

Odpowiedz

2

Od widowisko, jestem rodzajem Zakładając, że dążą do realizacji DDD bazie

pierwsze, niektóre założenia do pomocy map to bardziej wspólnej terminologii: Zakładam, że Twój „Business Rules” warstwa jest tylko używane przez twoją warstwę aktywności, a tym samym można ją uznać za część warstwy domeny.

Wspominałeś o obiektach biznesowych. Zakładam, że masz warstwę domeny. To może być Twoja "warstwa aktywności". Powinna to być warstwa, która wie, jak aktualizować obiekty i zwracać je do warstwy usługi.

Warstwa usług (lub "warstwa aplikacji" w warunkach DDD) powinna odwzorowywać DTO i wywoływać usługi domenowe. MS ma przyzwoity schemat here. Ale w zasadzie przepływu pracy powinny być:

  1. Wyślij dto do usługi warstwy
  2. warstwie usług wywołuje adaptery dto do tworzenia obiektów domeny/podmioty z DTOs.
  3. Warstwa usług wywołuje usługi domeny do wykonywania logiki biznesowej (wywołuje zasady)
  4. usług domenowych obiektów domeny zmiana w wyniku reguł biznesowych
  5. Trwałość warstwa jest wywoływana przez służby domen, ile potrzeba
  6. usługi domenowe powrotu uaktualnionej domenie obiekty do warstwy usług
  7. usługi domeny mapy warstwa obiektów z powrotem do DTO i zwraca im

Istnieje oczywiście wiele wariacji na ten temat, ale powinno to być ty r punkt wyjścia.

Powiązane problemy