Array
(
)

Arquitetura em camadas para Windows Forms Application

William Maximo
|
MVP
    07 mai 2014

Boa noite.
Normalmente vejo é num formulário de Cadastro de produto, ter todos os objetos de conexão com banco e utilizar um datareader para percorrer o banco quando necessário e popular os componentes em tela, como textbox ou combobox, o problema é que desta forma o mesmo codigo para obter os dados do produto por exemplo é criado novamente em outra tela, como numa tela de venda, onde teria que trazer novamente estas informações. Somente neste processo, ja tenho 2 vezes o mesmo codigo declarado em locais diferentes que fazer exatamente a mesma função.
Para uma aplicação desktop, compensa e existe algum Padrão de Arquitetura que possa separar a aplicação em camadas, pois procurei exemplos na internet, e todos ensinam um básico, mostrando um cadastro de clientes em três camadas, utilizando as vezes DLLs (BLL,DAL, MODEL) e outras separadas por namespace dentro de um unico projeto, mas nunca se aprofundam, detalhando como seria o relacionamento entre classes, como Produto, Venda e ItemVenda.
Desde já agradeço qualquer ajuda ou comentário.

Joel Rodrigues
   - 29 mai 2014

Olá, essa é uma divisão bastante comum. Qual é exatamente sua dúvida? Sobre o relacionamento entre as classes?
O Entity Framework relaciona essas classes quando você faz o mapeamento das tabelas. Em geral são criados relacionamentos das seguintes formas:

1) Relacionamento 1 para 1
ClasseA possui um atributo do tipo ClasseB e vice versa.

2) Relacionamento 1 para N
ClasseA possui uma lista (IEnumerable) de ClasseB.

3) Relacionamento N para N
ClasseA possui uma lista (IEnumerable) de ClasseB e vice versa.