Ho lavorato su più progetti di grandi dimensioni su scala aziendale e MVVM è stata la chiave per mantenerli scalabili e controllabili. Non riesco a immaginare di avere team di progettazione e sviluppo separati in grado di lavorare in vero parallelo senza il flusso di lavoro abilitato dal pattern, né saremmo stati in grado di far dividere il team tra livelli, cioè avere qualcuno che codifica il livello WCF / servizio, un altro gestisce i modelli di vista, un altro lavoro sulla persistenza, ecc., con test unitari per aiutare con il refactoring e persino con i test di integrazione prima che altri livelli diventassero disponibili.
Non ho iniziato con MVVM perché era un pattern molto popolare, l'ho selezionato quando ho dovuto passare a un'applicazione massiva di Silverlight e ho cercato il modo migliore per gestirlo.
I progetti includono un importante strumento di social media networking per Microsoft chiamato Looking Glass, il sistema di monitoraggio dello stato di back-end che gestiva le Olimpiadi Invernali di Vancouver 2010 per Microsoft, una complessa dashboard SharePoint per la gestione dei rischi con integrazione Silverlight per PriceWaterhousecoopers e il lettore Blio (KNFB ) che funziona sia su WPF che su Silverlight. Questi sono solo quelli di cui posso parlare. Le dimensioni del team variavano da poche a dozzine di sviluppatori e progettisti che lavoravano contemporaneamente.
Se le persone incontrano difficoltà nel ridimensionare grandi progetti con MVVM, o se li rallenta piuttosto che accelerare la consegna, stanno semplicemente sbagliando.
Direi anche che se si visualizzano 100 campi su un singolo display, si potrebbe voler chiamare un team di progettazione perché non conosco molti umani che possono elaborare tante informazioni contemporaneamente. Nei database con migliaia di informazioni, la bellezza di Silverlight è l'estrazione e la presentazione di tali informazioni in modo che l'utente sia in grado di gestire le informazioni sullo schermo in blocchi di dimensioni ridotte. Inoltre, se stai caricando manualmente questi campi, di nuovo, non stai semplicemente sfruttando gli strumenti e i modelli disponibili. In un progetto mi ci sono volute 2 ore per creare un generatore che potesse sputare le classi di base e quindi la logica aziendale era sovrapposta. Un breve investimento in anticipo per uno sviluppo più rapido sul back-end.
Norma tipica: se stai ripetendo la stessa cosa centinaia di volte, vai a trovare uno strumento o costruisci uno per automatizzarlo.