Sto lavorando a un'applicazione WPF e lo sto strutturando utilizzando il pattern MVVM. Inizialmente ho avuto l'idea che i ViewModels dovrebbero essere riutilizzabili, ma ora non ne sono più sicuro.Come riutilizzabili dovrebbero essere le classi ViewModel?
- Devo essere in grado di riutilizzare il mio ViewModels se ho bisogno di funzionalità simili per un'applicazione WinForms?
- Silverlight non supporta tutte le cose che WPF fa - dovrei essere in grado di riutilizzare per le applicazioni Silverlight?
- E se volessi creare una GUI Linux per la mia applicazione. Quindi ho bisogno del ViewModel per costruire in Mono - è questo qualcosa per cui dovrei lottare?
- E così via ..
Così; si dovrebbe scrivere classi ViewModel con una Vista specifica in mente, o pensare alla riusabilità?
Questa è una vecchia domanda, ma [la risposta da MSDN] (https://msdn.microsoft.com/en-us/library/hh563947 (v = vs.110) .aspx) è molto chiara (e contraria a tutte le risposte pubblicate di seguito): ViewModel è concepito in modo specifico per essere condiviso da molte visualizzazioni su vari SO. Fare altrimenti porterebbe inevitabilmente al codice ridondante. – kmote