Mam w aplikacje warstwe modelu biznesowego. Z tego co czytałem ten model nie powinien byc przekazywany do GUI. Chce wyswietlic uzytkownikowi dane ktore znajduja sie w kilku klasach modelu biznesowego. Jak to zrobić zgodnie ze sztuką?
Czy mam utworzyć jakąś klasę Dto, ktora będzie zawierała wszystkie potrzebne w GUI rzeczy i zmapować kilka klas modelu domenowego na tą klasę Dto?
Zbudować model, który zawiera wszystkie informacje, które chcesz wyświetlić w GUI ? Osobiście według mnie trochę ciężko by GUI nie bazowało na modelu biznesowym bo właśnie to elementy tego modelu chcesz wyświetlić :). Według mnie powinieneś zrobić klasę dla GUI, jeśli chcesz by GUI było niezależne od modelu to zamiast przekazywać całego modelu będziesz przekazywał interesujące cię pola :).
goodfather napisał(a):
Czy mam utworzyć jakąś klasę Dto, ktora będzie zawierała wszystkie potrzebne w GUI rzeczy i zmapować kilka klas modelu domenowego na tą klasę Dto?
Tak.
I nazywać ja viewmodelem, bo to bardziej specyficzne pojęcie niż DTO.
I nazywać ja viewmodelem, bo to bardziej specyficzne pojęcie niż DTO.
Można nazwać bardziej "profesjonalnie" czyli np.: projection
. Jakoś dziwnie się czuję kiedy backend zwraca mi viewmodel. :-)
@grzesiek51114: w przypadku WebAPI przyznam rację, ale w przypadku kontrolera w MVC albo prezentera w MVP nie widzę w tym nic dziwnego.