Mapowanie obiektu z modelu na viewmodel

0

Witajcie!
Dziś mam bardziej ogólne pytanie niż o sam kod.
Czy mapowanie obiektu z modelu na viewmodel i na odwrót powinno się odbywać w kontrolerze czy w biznesie? Czy to ma w ogóle jakiekolwiek znaczenie?
Osobiście wydaje mi się, że skoro mamy odsuwać klienta od naszych modeli to właśnie ta warstwa biznesu pośrednicząca między kontrolerem a modelem powinna być odpowiednia. Ciekaw jestem waszego zdania.
Pozdrawiam!

1

Warstwa biznesu nie pośredniczy między kontrolerem a modelem. Ona jest modelem.

2

Przecież warstwa biznesowa nie powinna wiedzieć nic o tym w jaki sposób prezentowane są dane, czy to jest kontroler MVC, czy konsola, czy apka UI. Nie powinna wiedzieć nic o żadnych view modelach. Mapowanie jak najbardziej w warstwie web/ui, a czy konkretnie w kontrolerze, czy też w jakiejś dedykowanej klasie mappera - to już od Ciebie zależy.

0

@somekind to ja czegoś nie rozumiem(.net core 3 MVC)
mając taki schemat:
widoki - kontroller - biznes(serwisy) - Model(obiekty bazodanowe)
biznesy i serwisy traktujemy jako model? A nie jako kolejną warstwę logiki oddzielającą model od kontrolera? Nie rozumiem, mógłbyś to rozwinąć?

@złoty Rozumiem, ale muszę zadać pytanie, a dlaczego?

1
Phoryn napisał(a):

@somekind to ja czegoś nie rozumiem(.net core 3 MVC)
mając taki schemat:
widoki - kontroller - biznes(serwisy) - Model(obiekty bazodanowe)
biznesy i serwisy traktujemy jako model? A nie jako kolejną warstwę logiki oddzielającą model od kontrolera? Nie rozumiem, mógłbyś to rozwinąć?

@złoty Rozumiem, ale muszę zadać pytanie, a dlaczego?

Model to nie tylko zasób ORM w bazie danych.

3
Phoryn napisał(a):

@somekind to ja czegoś nie rozumiem(.net core 3 MVC)
mając taki schemat:
widoki - kontroller - biznes(serwisy) - Model(obiekty bazodanowe)

No to jest błędny schemat.

Aplikacja zajmuje się jakimś wycinkiem świata rzeczywistego. Np. sklepem internetowym albo fabryką kanapek. Te rzeczy to dziedzina (lub domena) aplikacji.
W aplikacji nie możesz trzymać prawdziwych towarów ani kanapek (nawet jeśli uda Ci się jakąś włożyć do komputera, to raczej nie zadziała dobrze), więc musisz sobie zamodelować tę dziedzinę. Modelujesz przy użyciu różnych klas, np. w sklepie internetowym to będzie Produkt, Zamówienie, PozycjaZamówienia, Magazyn, a w fabryce kanapek: Pieczywo, Smarowidło, Dodatki, Nóż, Mama. I te wszystkie klasy opisujące realny problem, którym Twoja aplikacja się zajmuje, ta cała logika biznesowa, to jest właśnie Model.

Ty mylisz model ze strukturą danych zapisywanych w bazie. To też jest model, ale to model przechowywania danych.

0

@somekind no widzisz. Już wiem gdzie leżał mój problem.
To teraz pamiętam jak kiedyś byłem na rozmowie o pracę jako junior i dostałem właśnie takie pytanie gdzie umieściłbym logikę gdybym nie tworzył biznesu, Odpowiedziałem, że w kontrolerze. Teraz wiem skąd była skwaszona mina rekrutera ;)

1

Widzisz, a powinieneś odpowiedzieć pytaniem: Tak na logikę, to skoro nie ma biznesu, to skąd pieniądze na wypłatę dla Ciebie?

Niemniej jednak szacun dla gościa, że się skrzywił. Większość rekruterów oczekuje takiej odpowiedzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1