Ho letto e guardato video su MVVM e Silverlight. Sono piuttosto nuovo a Silverlight ma non nuovo a .NET. Interessante notare che ho usato MVVM nelle mie app WPF senza sapere che è MVVM. Stavo creando classi facilmente associabili per fungere da livello tra i dati e XAML:)
Il progetto che avvieremo verrà eseguito con Silverlight 5 e WCF su un back-end.
Il progetto sarà piuttosto grande con diversi moduli 50 o schermi ciascuno, idealmente vorrei caricarli su richiesta. La MAGGIOR PARTE (non tutta) dell'interfaccia utente sarà immediata.
Sto cercando di vedere quale dovrebbe essere la nostra architettura e in che modo ci saranno utili in futuro.
Penso di OTTENGARLO per quanto riguarda MVVM e WHY. Ho anche controllato Caliburn Micro (e ho capito cosa fa). Vedo ReactiveUI e MVVMLight. Ad essere onesti, non mi piacciono le librerie / dipendenze esterne. Inoltre, non mi interessa davvero usare le convenzioni di denominazione per un framework esterno soddisfacente e perfettamente OK con l'associazione in XAML. Dal momento che abbiamo un buon supporto per i comandi e il debug di XAML in SL5, non penso di aver bisogno di un framework esterno.
Quindi, ritengo che avere ViewModels e il binding tramite XAML con codice di visualizzazione minimale in code-behind sarà perfetto per me.
Ecco il mio dilemma:
- Se utilizzo i servizi RIA. L'80% della mia interfaccia utente si legherà perfettamente alle cose generate da RIA con alcuni convertitori, naturalmente. Sarà una cattiva architettura avere tutto ciò che si lega direttamente e solo alcune viste più complesse per usare ModelView?
- Devo usare i servizi RIA ?! Penso di si. Sono tutto per il codice generato, specialmente quando si tratta di una semplice raccolta di dati. Mantiene il codice client sincronizzato con il lato server?
- Da quello che vedo - ModelView deve essere codificato manualmente. Ho ragione? Ancora una volta, per l'80% del progetto, probabilmente sarà uno spreco di energie.
- Se voglio avere più file xap che caricano su richiesta, dovrei usare qualche tipo di framework? Penso che tenerlo in un file possa diventare troppo grande.
Grazie!