to, co nazywasz DTO, to jednostki w ORM-ach. Zazwyczaj są częścią modelu domeny, który zawiera logikę biznesową i zawiera zwykle więcej danych, niż potrzeba do renderowania poszczególnych widoków. Moja osobista zasada
Stosować podmioty w widokach, gdy nie ma warstwy przejściowej między DAL i widok i tam jest trochę logiki biznesowej:
- Zalety:
- jednego modelu
- nie ma potrzeby mapowania między modelami
- łatwiejsze korzystanie z leniwego ładowania
- Wady:
- każda zmiana w modelu oznacza zmianę poglądów
- wiele disadvatages z warstwy nośnej patrz niżej
Mapa podmiotów do DTOs kiedy jest warstwa nośna i/lub dane viewdata różnią się od jednostek lub agregują wiele różnych jednostek.
- Zalety:
- DTOs/widoki nie trzeba zmieniać, gdy występują zmiany do modeli
- unikać wysyłania jednostki, na drucie, który ma mnóstwo problemów (lazy loading wyjątki, o wiele niepotrzebnych danych przesyłanych, wystawiać sensownej informacji. ..)
- Model ma mniej obowiązków (serializacja), co ułatwia ich ponowne wykorzystanie (np. przetwarzanie backend)
- Wady:
- więcej klas napisać
- kod tłumaczyć podmiotom DTOs
Obiekty DTO i wartości to to samo. DTO oznacza * Obiekt transferu danych *. Trwały obiekt Hibernacji nazywa się * entity *. –