Quali sono le responsabilità dell'uno contro l'altro? Che tipo di logica dovrebbe andare in uno contro l'altro? Quale colpisce servizi e database? Come decido se il mio codice dovrebbe andare nel viewmodel o nel controller?
per la cronaca, sto usando asp mvc
risposte:
3 per risposta № 1Non è raro combinare controller con ViewModels: in uno scenario di questo tipo è possibile assegnare le seguenti responsabilità ai ruoli:
ViewModel rappresenta lo stato e il comportamento della presentazione.
controllore è responsabile per il flusso di lavoro dell'applicazione. Inoltre, media tra i ViewModels. Quindi promuove l'accoppiamento lento mantenendo i ViewModels dal riferirsi l'uno all'altro in modo esplicito.
Ulteriori informazioni su questi ruoli: collegamento
2 per risposta № 2
Bene, MVVM è davvero un modello di progettazione specifico per WPF e Silverlight. In particolare, si basa e richiede le capacità di associazione di dati, comando e modello di queste tecnologie.
Se si utilizza ASP.NET MVC, MVVM non è un'architettura applicabile. Esso, per definizione, è costruito attorno a Model-View-Controller (quindi ASP.NET MVC) e utilizza questo modello di progettazione architettonica.
1 per risposta № 3
Sono d'accordo con Reed, anche se su Hanselminutesrecentemente Phil Haak ha parlato di asp.net MVC 2 e ha fatto più riferimenti a "ViewModel" - quindi ho dedotto che le VM possono essere create anche se stai usando MVC
Inoltre, penso sempre che un'app MVVM tragga beneficio da almeno una VM che contiene problemi a livello di applicazione, come la navigazione, che ritengo più un Controller che un ViewModel ...
0 per risposta № 4
Sono d'accordo con entrambi, ma mi piace aggiungereun altro pattern MVP (Model View Presenter) che è più adatto per ASP.Net e Windows ma che non può essere utilizzato per WPF e Silverlight MVVM è appositamente progettato per le applicazioni WPF e Silverlight.