Il singolo grande vantaggio di MVVM è che la completa separazione di logica e dati dal layout lo rende testabile . Questo spesso non è un problema per i coder stand-alone , ma nel settore IT Sviluppo guidato da test (TDD) è ora un'abilità attesa.
Troviamo anche MVVM "ha più senso" dato che il codice tende ad essere più pulito e guardiamo i problemi da una prospettiva più ampia rispetto al vecchio "basta fare doppio clic e aggiungere ancora un altro gestore".
Dopo aver iniziato a lavorare su progetti di grandi dimensioni, consiglio vivamente anche di esaminare il framework / linee guida PRISM. Aggiunge un ulteriore livello di separazione che consente di sviluppare moduli di 100 da parte di team separati senza che questi si inciampino l'uno sull'altro in ogni momento.
L'unica cosa addizionale su cui mi tirerò il collo è: MVVM non preclude la necessità di classi di controller. Troviamo che fanno il punto più ragionevole per appendere la logica di risposta dell'applicazione (non in code-behind, non nel ViewModel e certamente non nei DataModels). Forse dovrebbe essere MVCVM? :)