Szukam opinii na temat mojej architektury aplikacji CMS opartej na MVC ASP.NET.ASP.NET MVC architektura aplikacji "wytyczne"
Model domeny - zależy wyłącznie od klas Systemowych, aby zdefiniować typy. Na razie głównie anemiczny.
Repository Warstwa - wydobywane dostępu do danych, tylko nazywa się przez warstwę usług
Usługi layer - wykonuje logikę biznesową na model domeny. Odsłania modele widoków do kontrolerów.
ViewModelMapper - usługa, która przekłada się tam iz powrotem między widokami modeli i model domeny
Kontrolery - Super cienki „drogówki” funkcjonalność styl, który współdziała z warstwą usług i tylko rozmów w warunkach widzenia modeli, nie model domeny
Mój model domeny jest najczęściej używany jako obiekt przesyłania danych (DTO) i ma obecnie minimalną logikę. Zauważyłem, że jest to miłe, ponieważ zależy od niczego (nawet klas w warstwie usług).
Warstwa usług jest nieco trudna ... Chcę tylko, aby kontrolery miały dostęp do podglądów w celu ułatwienia programowania GUI. Jednak niektóre usługi muszą ze sobą rozmawiać. Na przykład mam usługę zdarzeń, która powiadamia inne usługi programu nasłuchującego, gdy treść jest oznaczana tagami, kiedy tworzone są posty na blogu itd. Obecnie metody, które pobierają modele domen jako dane wejściowe lub zwracają, są oznaczone jako wewnętrzne, więc nie mogą być używane przez kontrolerzy.
Brzmi jak przesada? Za mało abstrakcji? Robię to głównie jako ćwiczenie w byciu surowym o architekturze, a nie o rzeczywisty produkt, więc proszę nie odpowiadać na pytania w kategoriach "prawo zależy od tego, co chcesz robić".
dziękuję!
To, że udało ci się tak wiele wyrazić w tak niewielu słowach, powinno dać ci wskazówkę, że jesteś na dobrej drodze. – pdr