Abordagem do App de Relatórios MVVM? Camada de acesso a dados?

5

Estou tentando seguir o padrão MVVM em um aplicativo de relatórios / estatísticas que estou criando em C # / WPF.

Eu fiz muitas classes de modelo para manter as propriedades como ponto de partida. Alguns desses modelos são feitos para encapsular diferentes estatísticas, de modo que eu possa apresentar dados que possam ser cruzados de forma cruzada.

Estou pensando que o próximo passo é criar uma camada de acesso a dados com classes e métodos para se conectar a um banco de dados e pegar os valores para preencher esses modelos.

Eu estava pensando em criar uma classe de passagem de conexão e consulta. Em seguida, outras classes para cada conjunto específico de dados que eu preciso para os modelos. (construindo consultas para passar)

Pelo que entendi, chamarei esses métodos de camada de acesso a dados do modelo de visualização para preencher instâncias de meus modelos. Que vou apresentar com a visão.

A minha abordagem é, em teoria, a maneira padrão correta de abordar esse problema? Alguma sugestão? Ou material de referência?

    
por Bat Masterson 16.01.2012 / 03:20
fonte

2 respostas

6

Você está definitivamente no caminho certo ao criar uma Camada de Acesso a Dados, embora eu sugira torná-la mais como uma misteriosa caixa preta cujo funcionamento interno é desconhecido.

O que quero dizer com isso é que seus objetos devem ser capazes de usar o DAL para obter / salvar objetos, mas eles não devem ter ideia de como os dados são realmente obtidos.

Por exemplo, em vez de seu ViewModel dizer DAL.GetDataSet(someConnection, someQuery) , você deve chamar DAL.GetAccounts() , que retorna uma lista de AccountModel objetos. O ViewModel não deve se importar como ou de onde os dados são obtidos, apenas que ele pode magicamente obter os objetos que ele precisa do misterioso objeto DAL.

Isso mantém sua camada de dados totalmente separada, portanto, se você precisar alterá-la ou ajustar as consultas, tudo estará em um local central.

Como observação, seus ViewModels devem ser a camada que acessa o DAL. Modelos são simplesmente objetos burros que contêm dados. Eles não devem ter nenhuma funcionalidade avançada, como acesso a dados.

    
por 24.01.2012 / 21:00
fonte
0

Pelo que aprendi com o MVVM, você deve permitir que o Model acesse a camada de dados e, em seguida, o ViewModel possa interagir com o Model para obter as informações necessárias. o ViewModel pode então passar essa informação para a View.

Você já pensou em usar estruturas de MVVM para aliviar a carga de desenvolvimento?

Se não, sugiro usar Caliburn.Micro com Unity ?

Eles ajudarão você a começar a usar o MVVM e serão muito úteis.

    
por 16.01.2012 / 12:12
fonte

Tags