MVVM Reporting App Approcci? Livello di accesso ai dati?

5

Sto cercando di seguire lo schema MVVM in un'applicazione di reporting / statistiche che sto creando in C # / WPF.

Ho creato molte classi di modelli per mantenere le proprietà come punto di partenza. Alcuni di questi modelli sono fatti per incapsulare diverse statistiche in modo da poter presentare dati che possono essere incrociati.

Penso che il prossimo passo sia creare un livello di accesso ai dati con classi e metodi per connettersi a un database e prendere i valori per popolare questi modelli.

Stavo pensando di creare una connessione e passare una classe. Poi altre classi per ogni specifico insieme di dati che mi serviranno per i modelli. (costruendo query per passare)

Da quanto ho capito, chiamerò questi metodi del livello di accesso ai dati dal modello di visualizzazione per popolare le istanze dei miei modelli. Che presenterò con la vista.

Il mio approccio in teoria è il modo standard corretto per affrontare questo problema? Eventuali suggerimenti? O materiale di riferimento?

    
posta Bat Masterson 16.01.2012 - 03:20
fonte

2 risposte

6

Sei decisamente sulla strada giusta per creare un Data Access Layer, anche se suggerirei di renderlo più simile a una misteriosa scatola nera i cui meccanismi interni sono sconosciuti.

Ciò che intendo per questo sono i tuoi oggetti dovrebbero essere in grado di usare il DAL per ottenere / salvare oggetti, ma non dovrebbero avere idea di come i dati siano effettivamente ottenuti.

Ad esempio, invece di ViewModel che dice DAL.GetDataSet(someConnection, someQuery) , dovresti chiamare DAL.GetAccounts() che restituisce un elenco di oggetti AccountModel . Il ViewModel non deve preoccuparsi di come o dove i dati vengono ottenuti, solo che può ottenere magicamente gli oggetti di cui ha bisogno dal misterioso oggetto DAL.

Questo mantiene il tuo livello dati completamente separato, quindi se hai mai bisogno di cambiarlo o aggiustare le query, è tutto in una posizione centrale.

Come nota a margine, il tuo ViewModels dovrebbe essere il livello che accede al DAL. I modelli sono semplicemente oggetti stupidi che contengono dati. Non dovrebbero avere funzionalità avanzate, come l'accesso ai dati.

    
risposta data 24.01.2012 - 21:00
fonte
0

Da quanto ho imparato con MVVM devi solo consentire al Modello di accedere al livello dati e quindi ViewModel può interagire con il Modello per ottenere le informazioni di cui ha bisogno. il ViewModel può quindi trasmettere queste informazioni alla vista.

Hai considerato di utilizzare qualsiasi framework MVVM per alleggerire il carico di sviluppo?

In caso contrario, posso suggerire di utilizzare Caliburn.Micro con Unity ?

Entrambi ti aiuteranno a iniziare con MVVM e sono molto utili.

    
risposta data 16.01.2012 - 12:12
fonte

Leggi altre domande sui tag