Śpieszę donieść, że właśnie pojawiła się nowa (0.5) wersję projektu DDDSample.Net. Ponieważ dawno o DDDSample nie pisałem, pozwolę sobie przypomnieć, co to takiego ten projekt i jaki jest jego aktualny stan. Projekt jest portem Java-owego DDDSample, demonstracją siły podejścia Domain-Driven Design w projektowaniu aplikacji biznesowych.

Obecnie funkcjonalności biznesowe obejmują:

  • Rejestrację nowego towaru do spedycji
  • Wyznaczenie (niekoniecznie) optymalnej trasy transportu
  • Rejestrację nowego “zdarzenia” transportowego (np. odebrano towar, załadowano towar)
  • Śledzenie postępu transportu

Interfejs użytkownika zbudowany jest w oparciu o ASP.NET MVC. Komendy użytkownika przekazywane są, za pośrednictwem warstwy aplikacji dokonującej translacji żądań, do Modelu Domeny. Model zawiera całość logiki aplikacji. Podzielony jest na 3 główne obszary (zwane agregatami):

  • Location – zawierający logikę związaną z lokalizacją – jest to właściwie generyczna poddomena.
  • Cargo – zawierający logikę związaną z rejestracją, wyznaczaniem trasy oraz śledzeniem postępu transportu
  • Handling – zawierający logikę związaną z rejestracją zdarzeń transportowych

Począwszy od wersji 0.5 komunikacja pomiędzy dwoma ostatnimi agregatami zrealizowana jest asynchronicznie, z wykorzystaniem NServiceBus. Co nam to daje? Podstawowe wykorzystanie agregatu Cargo to odczyt danych (na potrzeby śledzenia postępu). Podstawowe wykorzystanie agregatu Handling to zapis danych (na potrzeby rejestracji zdarzeń). Dzięki oddzieleniu tych dwóch możemy zastosować różne sposoby skalowania w tych dwóch obszarach systemu. A to tylko jeden z wielu przykładów…

Zapraszam do ściągnięcia DDDSample.Net i poeksperymentowania. Projekt dostępny jest w formie instalatora MSI (w sekcji downloads) lub w formie źródeł. MSI nie instaluje źródeł, a jedynie aplikację ASP.NET.

VN:F [1.9.13_1145]
Rating: 1.0/5 (1 vote cast)
DDDSample.Net 0.5, 1.0 out of 5 based on 1 rating