Solucja z 4 projektami. X jest nazwą twojej aplikacji.
X.Application - Zawiera logikę biznesową aplikacji. Nie związany ze sposobem w jaki aplikacja jest np. uruchamiana.X.Domain - Zawiera encje i obiekty domenowe. Bez logiki.X.Infrastructure - Zawiera kod, który służy do komunikacji z elementami infrastruktury tj. baza danych, zewnętrzne API, Pliki.X.WebApi - Warstwa prezentacji. Projekt zawierający API z elementami związanymi wyłącznie ze sposobem uruchamiania/hostowania aplikacji.Domain - jest centralnym projektem niezależnym od niczego innegoApplication - ma referencję tylko do Domain ponieważ korzysta z obiektów domenowych w logice biznesowej.Infrastructure - ma referencję do Domain oraz Application. Implementuje część interfejsów z warstwy Application korzystając z obiektów domenowych w DomainWebApi - w teorii ta warstwa powinna mieć referencję jedynie do Application. W praktyce jednak odpowiada również za konfigurację Dependency Injection i aby uprościć kod, podłączamy także referencję do Infrastructure. To połączenie wykorzystujemy jedynie do konfiguracji klas w Dependency Injection.