/ / Jaka jest różnica między ViewModel a kontrolerem w ASP MVC - asp.net-mvc, wpf, silverlight, mvvm

Jaka jest różnica między ViewModel i kontrolerem w ASP MVC - asp.net-mvc, wpf, silverlight, mvvm

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 № 1

Mieszanie 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.