Inquiridor
Padrão MVC

Pergunta
-
Estou com uma dúvida!
Imaginem que vou construir um cadastro de alunos... Certamente terei uma classe com os atributos "Nome, endereço, idade" (por exemplo).
A VIEW seria o formulário em si. O usuário digita os dados do aluno, a VIEW cria um objeto e envia para o controller
O Controller recebe o objeto e repassa para a MODEL.
A MODEL valida os valores e insere no banco.
1º) Isso está correto?
2º) Onde exatamente ficou a classe inicial Aluno?
Pesquisei em diversos lugares e vi muitas respostas divergentes..Ex: A view recebe, valida e cria o objeto; O controller insere no banco e a model são as classes em si
Thiago Rodrigo
Thiago Rodrigo
Todas as Respostas
-
Thiago,
Eu procuro quebrar o que vc chamou de Model em camadas como serviços (negócio) e repositório (acesso a dados). Há varias abordagens possíveis, mas tudo acaba recaindo em um modelo que gira em torno de Domain-Driven Design e Multicamadas.
De antemão, não recomendo vc incluir lógica de negócio ou acesso a dados na View e no Controller. Isso fere as boas práticas e certamente vai gerar trannstornos a médio e longo prazo.
Escrevi alguns artigos nos últimos tempos sobre MVC. Não sei se vc é assinante das revistas .NET Magazine e Easy.net, mas acredito que os links abaixo possam te ajudar:
http://www.devmedia.com.br/aplicacoes-multicamadas-em-net-parte-1/28685
http://www.devmedia.com.br/aplicacoes-multicamadas-em-net-parte-2/29164
http://www.devmedia.com.br/entity-framework-code-first/30705
Com o ASP.NET MVC novo pretendo disponibilizar alguns posts aqui pelo Technet do MSDN mesmo, com exemplos parecidos com esses das revista. É algo que coloquei como meta agora para 2015. De qualquer forma, espero que as informações que passei possam ser úteis.
Abs
- Sugerido como Resposta Diego de Oliveira Neves quarta-feira, 21 de janeiro de 2015 13:02
-
Agradeço a resposta e estou dando uma olhada nos links, porém infelizmente não sou assinante mvp.
No caso o controller receberia as informações da VIEW e enviaria para a MODEL validar e, se necessário, inserir em um banco, por exmeplo?
Obrigado novamente!
Thiago Rodrigo
-
A princípio, esta é a função dos controllers, fazer a parte de processamento de dados - recebendo-os das páginas (VIEWS) e, através da Model ( como citado acima pode ter-se aqui diversas divisões como persistência, classes, regras de negócio, etc.) também inserir estes dados na base de dados.
-
Acho que uma boa analogia para entender a função do Controller é encarar o mesmo como um "orquestrador": recebendo os dados da View, o mesmo controla para onde as informações serão repassadas.
Na prática a Model está mais para uma representação lógica em muitos projetos MVC, já que partes como lógica de negócio e acesso a dados são implementadas em projetos à parte.