Silverlight 5 e MVVM. Ho davvero bisogno di altri quadri? Qual è il modo migliore per un rapido sviluppo?

1

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:

  1. 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?
  2. 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?
  3. 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.
  4. 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!

    
posta katit 06.08.2011 - 20:22
fonte

1 risposta

2

Ho creato un'applicazione MVVM (WPF) per un client circa un anno fa. L'app consisteva di più moduli, decine di schermate con fino a 50 campi per schermata. Ho usato Prism per il framework MVVM per la gestione dello schermo / regione. Ho aggiunto un altro semplice framework per gestire il supporto multilingue e costruito la sicurezza da solo.

Mi è sembrato utile avere Prism che gestiva tutte le cose dello schermo. Era un pezzo di lavoro di cui non dovevo preoccuparmi, in più potevo trovare esempi di lavoro e aiuto on-line quando si trattava di problemi. In alcune aree mancava la guida o la luce (finestre popup e sicurezza sul campo) sono andato per la mia strada. Prism ha gestito tutte le funzionalità di rilevamento dei moduli e gestione schermo. Silverlight avrà una serie diversa di preoccupazioni, come la latenza della rete. Queste preoccupazioni sarebbero state affrontate se si utilizza un framework esistente.

Alcuni dei miei moduli hanno back-end di servizi Web, quindi avevano VM e modelli codificati a mano. Uno aveva un back-end di Entity framework, quindi la VM era codificata a mano e il modello è stato generato. Abbiamo esaminato brevemente un back-end RIA che sembrava ben impostato per una demo di 5 minuti, non sono sicuro di quanto sarebbe scalabile per un'applicazione complessa con molta logica di business.

Lungo e breve, se stai seguendo il percorso MVVM completo, ti suggerisco di utilizzare un framework MVVM, ma tieni presente che potrebbe non coprire tutto ciò che ti serve. Se l'applicazione è davvero così semplice, il binding diretto a RIA potrebbe funzionare ma convalidarlo sullo schermo più complesso prima di eseguirlo, ovvero controllare la sicurezza e la convalida e anche le cose semplici.

    
risposta data 07.08.2011 - 00:43
fonte

Leggi altre domande sui tag