Usuário com melhor resposta
MVC - Qdo preciso de models ?

Pergunta
-
Pessoal,
Estudando MVC vejo que criamos um modelo e o passamos para a view afim de poder usar suas propriedades e dataanotations.
Mas qdo utilizo Models e qdo escrevo diretamente na view ?
Exemplo:
1. Se quero escrever apenas um texto, uma pagina institucional, eu precisaria de um model ?
2. Utilizaria models somente qdo tenho um formulario com input types, buttons, etc ?
3. E o dataannotations Display, seria pra mostrar apenas um texto na pagina ?Valeu
Respostas
-
Models sao templates para que sua view saiba como representar a informaçao... Ela pode ser responsavel pelo acesso ao banco dados, mas nao é uma necessidade.
O correto seria usar padrao MVVM (http://en.wikipedia.org/wiki/Model_View_ViewModel) ao inves do MVC (evita confusao).. este modelo separa totalmente os conceitos. Note que neste caso o "model" nao é nada mais que uma representaçao magra daquilo que a view precisa. A camada DAO é que é responsavel por trazer os dados e alimentar o ViewModel... e a BLL por pegar as informaçoes e devolver ao banco.
Entao dito tudo isto:
>1. Se quero escrever apenas um texto, uma pagina institucional, eu precisaria de um model ?
Toda view precisa de um Model, mas esta pode ser vazia. Veja o exemplo do "About" no template inicial do MVC. Ele nao possui um model definido, mas ele utiliza a viewbag, que funciona com um "model" temporario. Sim. vc pode usar MVC sem modelos (mesmo viewbag) para exibir paginas estaticas, mas nesnte caso eeste padrao nao poderia ser chamado de MVC (questao de filosofia.. sem o Model, vai cai no padrao VC)
>2. Utilizaria models somente qdo tenho um formulario com input types, buttons, etc ?
Normalmente é o caso... Mas vc pode ter uma pagina sem model com botoes e inputs.. o unico problema é que o controler nao vai saber como trata-los e vc teria que fazer o tratamento com jquery (por exemplo).. O MVC veio para facilitar isso.
>3. E o dataannotations Display, seria pra mostrar apenas um texto na pagina ?
O dataanotations (incluindo o Dsiplay) serve para "temperar" o model... Ele poupa tempo, pois server para exibir textos padroes, formatos, etc... Tem que ver se o helper utilizado é capaz (e quais) de manipular Dataannotations . Mas isso é um recurso que nem todo mundo gosta, porque acaba com o conceito de POCO (ou POJO).
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Sugerido como Resposta Thiago Patrocinio segunda-feira, 2 de dezembro de 2013 18:17
- Editado William John Adam TrindadeModerator terça-feira, 3 de dezembro de 2013 13:14
- Marcado como Resposta William John Adam TrindadeModerator quinta-feira, 5 de março de 2015 20:39
Todas as Respostas
-
1 - Suas models são necessárias para acesso ao banco de dados.
3 - Sim
Alguns links de ajuda.
http://codeigniterbrasil.com/passos-iniciais/mvc-model-view-controller/
http://www.subrotina.com.br/o-conceito-e-as-duvidas-sobre-o-mvc/
http://www.macoratti.net/vbn_mvc.htm
Video Aulas:http://cleytonferrari.com/
Abraço.
Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs
- Editado Fernando Mamprin segunda-feira, 2 de dezembro de 2013 17:22
-
Models sao templates para que sua view saiba como representar a informaçao... Ela pode ser responsavel pelo acesso ao banco dados, mas nao é uma necessidade.
O correto seria usar padrao MVVM (http://en.wikipedia.org/wiki/Model_View_ViewModel) ao inves do MVC (evita confusao).. este modelo separa totalmente os conceitos. Note que neste caso o "model" nao é nada mais que uma representaçao magra daquilo que a view precisa. A camada DAO é que é responsavel por trazer os dados e alimentar o ViewModel... e a BLL por pegar as informaçoes e devolver ao banco.
Entao dito tudo isto:
>1. Se quero escrever apenas um texto, uma pagina institucional, eu precisaria de um model ?
Toda view precisa de um Model, mas esta pode ser vazia. Veja o exemplo do "About" no template inicial do MVC. Ele nao possui um model definido, mas ele utiliza a viewbag, que funciona com um "model" temporario. Sim. vc pode usar MVC sem modelos (mesmo viewbag) para exibir paginas estaticas, mas nesnte caso eeste padrao nao poderia ser chamado de MVC (questao de filosofia.. sem o Model, vai cai no padrao VC)
>2. Utilizaria models somente qdo tenho um formulario com input types, buttons, etc ?
Normalmente é o caso... Mas vc pode ter uma pagina sem model com botoes e inputs.. o unico problema é que o controler nao vai saber como trata-los e vc teria que fazer o tratamento com jquery (por exemplo).. O MVC veio para facilitar isso.
>3. E o dataannotations Display, seria pra mostrar apenas um texto na pagina ?
O dataanotations (incluindo o Dsiplay) serve para "temperar" o model... Ele poupa tempo, pois server para exibir textos padroes, formatos, etc... Tem que ver se o helper utilizado é capaz (e quais) de manipular Dataannotations . Mas isso é um recurso que nem todo mundo gosta, porque acaba com o conceito de POCO (ou POJO).
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Sugerido como Resposta Thiago Patrocinio segunda-feira, 2 de dezembro de 2013 18:17
- Editado William John Adam TrindadeModerator terça-feira, 3 de dezembro de 2013 13:14
- Marcado como Resposta William John Adam TrindadeModerator quinta-feira, 5 de março de 2015 20:39