MVC: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
m Foram revertidas as edições de 177.140.147.143 para a última revisão de 88.214.187.199, de 09h49min de 19 de outubro de 2018 (UTC)
Etiqueta: Reversão
Iuuuk (discussão | contribs)
Exemplo em aplicações web
Linha 24:
Os frameworks web MVC mais recentes levam uma abordagem de [[thin client]] que colocou quase o modelo, a visão e a lógica do controlador inteiros no servidor. Nesta abordagem, o cliente envia requisições de [[hiperlink]] ou entrada de [[Formulário (HTML)|formulário]] ao controlador e então recebe uma página web completa e atualizada (ou outro documento) da visão. O modelo existe inteiramente no servidor. Como as tecnologias de cliente amadureceram, frameworks como [[JavaScriptMVC]] e [[Backbone.js|Backbone]] foram criados o que permite que os componentes MVC executem parcialmente no cliente (ver também [[AJAX]]).
 
Um caso prático é uma [[aplicação web]] em que a visão é um documento HTML (ou derivado) gerado pela aplicação. O controlador recebe uma entrada <code>GET</code> ou <code>POST</code> após um estímulo do utilizador e decide como processá-la, invocando objetos do domínio para tratar a lógica de negócio, e por fim invocando uma visão para apresentar a saída.
 
Praticamente todo sistema web funciona com MVC atualmente, por exemplo, quando é digitado um endereço no browser, ele vai até a aplicação (apache, IIS, jBoss), onde vai ter um roteador (routes), que vai ler a url digitada e achar o ''controller'' necessário para ela.
 
No ''controller'', é feita algumas verificações, como ver se o usuário tem permissão para visualizar aquela página ou fazer determinadas alterações. Caso não tenha permissão, será retornado 404 (''Not Found'') ou 500 (''Internal Server Error'').
 
Também é no ''controller'' que é feita a comunicação com o banco de dados, ou seja, se na url tiver, por exemplo, o id de um usuário, ele verifica se existe no banco de dados (''model'') e, se existe passa para a próxima página, se não retorna mensagem de erro.
 
Depois do ''controller'' fazer o que precisa, ele instância a ''view'' e a retorna ao usuário.
 
É possível criar somente um arquivo para o ''model'', a ''view'' e o ''controller'', o que faz com que fique mais fácil de criar, porém as chances de ocorrerem erros e bugs são bem maiores, sem contar que dificulta muito a manutenção e interpretação.
 
Por isso, é extremamente recomendável que faça em arquivos separados, um para o ''model'', um para a ''view'' e um para o ''controller,'' ou até mesmo dois para a mesma ''view''. Isto facilita futuras manutenções e interpretações do código. Além disso, deixa extremamente mais ágil de criar uma ''view'' para desktop, uma para mobile e inclusive uma para API.
 
== Justificativa ==