Jakie są obowiązki jednego kontra drugiego? Jaka logika powinna iść w jednej linii z drugą? Który trafia na usługi i bazy danych? Jak zdecydować, czy mój kod powinien przejść do viewmodel czy kontrolera?
dla przypomnienia, używam asp mvc
Odpowiedzi:
3 dla odpowiedzi № 1Mieszanie kontrolerów z ViewModels nie jest niczym niezwykłym. W takim scenariuszu możesz przypisać następujące obowiązki do ról:
ViewModel reprezentuje stan i zachowanie prezentacji.
Kontroler odpowiada za obieg aplikacji. Ponadto pośredniczy między modelami ViewModels. Promuje więc luźne sprzężenie, uniemożliwiając ViewModels jawne odwoływanie się do siebie.
Więcej informacji o tych rolach: Połączyć
2 dla odpowiedzi nr 2
Cóż, MVVM to tak naprawdę wzorzec projektowy WPF i Silverlight. W szczególności opiera się na tych technologiach i wiąże je w zakresie wiązania danych, dowodzenia i tworzenia szablonów.
Jeśli korzystasz z ASP.NET MVC, MVVM nie jest odpowiednią architekturą. Z definicji jest on zbudowany na Model-View-Controller (stąd ASP.NET MVC) i wykorzystuje ten wzorzec projektu architektonicznego.
1 dla odpowiedzi nr 3
Zgadzam się jednak z Reedem w sprawie Hanselminutesostatnio Phil Haak mówił o asp.net MVC 2 i wiele razy odwoływał się do „ViewModel” - więc doszedłem do wniosku, że maszyny wirtualne można tworzyć, nawet jeśli używasz MVC
Ponadto - zawsze uważam, że aplikacja MVVM korzysta z co najmniej jednej maszyny wirtualnej zawierającej obawy dotyczące całej aplikacji, takiej jak nawigacja, którą uważam za bardziej kontroler niż model ViewModel ...
0 dla odpowiedzi nr 4
Zgadzam się z oboje, ale chcę dodaćinny wzorzec MVP (Model View Presenter), który najlepiej nadaje się do ASP.Net i Windows, ale nie można go używać w WPF i Silverlight. MVVM jest specjalnie zaprojektowany dla aplikacji WPF i Silverlight.