Uzależnienie warstwy aplikacji od warstwy prezentacji

1

W tej prezentacji prowadzący mówi, że warstwa aplikacji powinna być niezależna od warstwy prezentacji, aby można było łatwo zmienić UI w razie potrzeby. W kodzie pojawia się query handler, który zwraca CustomerDetailModel. Tylko że w typowej aplikacji MVC potrzebny jest nie Model, ale ViewModel zawierający jakieś adnotacje czy propertiesy ułatwiające wyświetlanie w widoku. Oznacza to, że jeśli chcemy mieć warstwę aplikacji niezależną od warstwy prezentacji, to musimy napisać dodatkową klasę i na wyjściu kontrolera wykonać kolejne mapowanie. Tylko że nie zawsze ma to sens, np. wtedy, gdy zakładamy, że ta aplikacja MVC nie będzie przepisywana na WebApi. Czy w takim przypadku należy po prostu odejść od "dobrych praktyk" i być pragmatycznym (tzn. zwracać z handlerów od razu viewmodele)?

2

To zależy :D.
Warstwa aplikacji służy do orkiestracji przypadków użycia, często przebieg tych przypadków użycia jest inny dla różnych warstw prezentacji. I wtedy nawet tworzy się oddzielne warstwy logiki aplikacji dla poszczególnych warstw prezentacji. Więc dopóki Twoja warstwa logiki aplikacji obsługuje jedną warstwę prezentacji, to nie ma nic złego w tym by zwracała specyficzne dla niej dane. Problemem byłoby gdybyś miał jedną warstwę logiki aplikacji która jest uzależniona od dwóch różnych warstw prezentacji. Wtedy albo trzeba byłoby uniezależnić warstwę logiki aplikacji od warstw prezentacji, albo podzielić vertykalnie na niezależne od siebie warstwy logiki aplikacji.

title

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