Quali sono i pro e i contro dell'architettura MVVM? [chiuso]

4

Oggi in classe siamo stati introdotti nell'architettura MVVM per Silverlight / WinPhone / WPF; sembra bello per i grandi progetti, ma quali sono i tuoi pensieri su MVVM?

Quali sono i pro e i contro?

Voglio ottenere di più nell'architettura in modo che io sappia quando dovrei usarlo.

    
posta Tom Kerkhove 25.10.2011 - 17:21
fonte

3 risposte

11

MVVM è (ancora un'altra) variazione su modelli che separano le preoccupazioni di una presentazione tipica, molto simile a MVC e MVP. Indipendentemente da queste variazioni, le preoccupazioni di base sono la seguente triade:

  • il modello (i dati sottostanti e gli oggetti del dominio).
  • la vista (ciò che l'utente vede e interagisce con)
  • la facciata che si traduce tra il modello e la vista. (il ViewModel in questo caso)

Fare ciò porta a benefici per se stessi che non hanno nulla a che fare con la tecnologia della piattaforma, inclusa l'aumentata testabilità che deriva dall'assunzione di logica che potrebbe essere accorpata nella vista in altro modo.

La particolarità del ViewModel di MVVM è che promuove l'uso del binding dei dati, che è un strong esempio delle tecnologie che tendono ad usarlo (wpf, silverlight).

In teoria, è così! In pratica, ciò implica capacità ed esperienza nel collegamento dei dati. OOP e test - quindi potrebbe esserci una curva di apprendimento. Ci sono anche diversi modi per eseguire il pattern, quindi i primi tentativi potrebbero sembrare un po 'schiaccianti.

Ma avrai la sicurezza dei tuoi test man mano che acquisisci esperienza e rifletti su usi più eleganti. Il test è essenziale per qualsiasi progetto IMO non banale, indipendentemente dalla sua dimensione massima. Ho già detto che MVVM promuove la testabilità?

    
risposta data 25.10.2011 - 20:13
fonte
0

La cosa che mi piace di più di MVVM (oltre alla capacità di test), almeno dal punto di vista dell'interfaccia Web, è che non devo scrivere un bel po 'di codice per collegare tutti i miei gestori di eventi al pagina ... È anche molto più facile pensare in termini di comportamenti e distinte unità di responsabilità quando si utilizza questo approccio.

    
risposta data 31.08.2013 - 16:13
fonte
-1

Nella mia esperienza, piccoli progetti che hanno successo diventano grandi progetti. Quindi, presumi sempre che il tuo progetto sarà un successo e un piano per il futuro. Progettalo in modo tale da poter aggiungere funzionalità senza forzare.

Quindi MVVM è un ottimo strumento per questo. Una volta che hai impostato alcuni progetti e capito come funziona, scoprirai che non c'è molto di più di quello in cui si sta spostando il lavoro dall'inizio. E una volta che sei pronto per partire, puoi decollare e creare la tua applicazione. Per quanto riguarda quando usarlo in qualsiasi momento è necessaria una robusta interfaccia utente dinamica.

    
risposta data 25.10.2011 - 17:32
fonte

Leggi altre domande sui tag