Cercando di imparare come usare i servizi WCF in un'app WPF, usando MVVM

5

Stiamo lavorando a una grande riscrittura di un'app legacy VB6, in un'app WPF. Ho scritto diversi servizi WCF, che devono essere utilizzati con la nuova app WPF. Vogliamo utilizzare il modello di progettazione MVVM per farlo, ma non abbiamo esperienza in questo. Quindi, per imparare MVVM abbiamo visto un video su WindowsClient chiamato Come faccio: creare un'applicazione WPF basata sui dati utilizzando lo schema MVVM . Questa è un'ottima introduzione, e ci riferiamo molto, ma per la nostra situazione non ci dà abbastanza. Ad esempio, non siamo sicuri di come utilizzare i set di dati restituiti dai miei servizi WCF nella nostra nuova app WPF usando le idee che Todd Miranda ha introdotto nel video a cui ho fatto riferimento. Se facessimo ciò che pensiamo che dovremmo fare, dovremmo progettare una classe che sia esattamente come la classe di dati restituita nel mio servizio WCF. Ma ci stiamo chiedendo, perché farlo quando il servizio WCF ha già una classe simile? Eppure, la classe nell'app WPF deve almeno implementare l'interfaccia INotifyPropertyChanged. Quindi, non siamo sicuri su cosa fare.

    
posta Rod 07.10.2011 - 17:12
fonte

1 risposta

4

Gli oggetti dati di WCF dovrebbero idealmente essere solo oggetti di trasferimento dati leggeri. Vorrei riutilizzare solo gli oggetti dati di WCF se:

  • I miei modelli saranno sempre semplici oggetti POCO. Nessuna convalida, nessuna logica aziendale, nessuna notifica di modifica della proprietà, ecc.
  • Non mi interessa che l'intera classe sia visibile e completamente accessibile a chiunque l'abbia usata (non puoi avere proprietà di sola lettura in un modello di dati WCF)
  • La mia vista non si collega direttamente al modello e si lega invece alle proprietà ViewModel che espongono le proprietà del modello. Questo è l'approccio "purificatore MVVM", tuttavia se spesso è più difficile implementarlo di quanto valga la pena, è quindi accettabile legare la tua vista al tuo modello

Detto questo, non ho mai usato oggetti dati WCF come miei modelli. Di solito creo oggetti Modello separatamente, e il mio livello di accesso ai dati lato client converte gli oggetti dati WCF in Modelli che la mia applicazione deve utilizzare.

Di solito uso qualcosa Automapper per questo, che mapperà automaticamente i dati da una classe all'altra, a condizione che i nomi e i tipi siano gli stessi.

    
risposta data 17.11.2011 - 18:16
fonte

Leggi altre domande sui tag