none
MVC - Qdo preciso de models ? RRS feed

  • 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

    segunda-feira, 2 de dezembro de 2013 17:14

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
    ----------------------------------------------------------


    segunda-feira, 2 de dezembro de 2013 18:12
    Moderador

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


    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
    ----------------------------------------------------------


    segunda-feira, 2 de dezembro de 2013 18:12
    Moderador