Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Camada de apresentação - pasta Models

Bom dia, Marcelo! Me esclarece uma dúvida por favor. Estou criando um projeto somente para estudo, pois estou construindo o front todo em javascript, jquery e bootstrap para exercitar o que estudei com vocês no alura. Tenho uma camada de Infraestrutura e a camada de Apresentação. Em infraestrutura tenho minhas entidades, repositórios... e na Apresentação... A minha dúvida é o seguinte: na pasta Models é necessário replicar as minhas entidade para ela para que seja usado o padrão MVC correto, ou apenas uso-a para quando quiser criar um modelo que faça junção de atributos, onde posso obter as informações necessárias, como um DTO?

Agradeço desde já!

1 resposta
solução!

Olá, Ivanostik

Acho que sua dúvida é sobre usar o Model direto ou o ViewModel, certo?

Já que estamos trabalhando com code first no curso, as classes do Model devem replicar as entidades do banco de dados, e vice-versa.

Se você quiser criar um model que sirva exclusivamente para uma página (view), então você deve criar uma ViewModel. Note que uma classe ViewModel não reflete necessariamente o banco de dados. Ela serve como um intermediário para os dados que são fornecidos para a página e os dados que são postados pela página. Isso exige um pouco mais de trabalho, porque você precisa "desembrulhar" um ViewModel para criar instâncias do Model antes de salvar no banco de dados. Porém, você consegue bastante flexibilidade e liberdade ao trabalhar com ViewModel.

Boa sorte com seu projeto!