MVC
Model-view-controller (MVC) é um modelo de desenvolvimento de Software, atualmente considerado um Design Pattern (padrão de projeto) utilizado na Engenharia de Software. O modelo isola a "lógica" (A lógica da aplicação) da interface do usuário (Inserir e exibir dados), permitindo desenvolver, editar e testar separadamente cada parte.
Índice |
[editar] História
O padrão MVC foi descrito pela primeira vez em 19791 por Trygve Reenskaug, que trabalhava no Smalltalk, na Xerox PARC. A implementação original é descrita em profundidade no artigo "Applications Programming in Smalltalk-80: How to use Model–View–Controller".2
[editar] Interação dos componentes
Além de dividir a aplicação em três tipos de componentes, o desenho MVC define as interações entre eles.
- Um controlador (controller) pode enviar comandos para sua visão associada para alterar a apresentação da visão do modelo (por exemplo, percorrendo um documento). Ele também pode enviar comandos para o modelo para atualizar o estado do modelo (por exemplo, editando um documento).
- Um modelo (model) notifica suas visões e controladores associados quando há uma mudança em seu estado. Esta notificação permite que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis. Uma implementação passiva do MVC monta estas notificações, devido a aplicação não necessitar delas ou a plataforma de software não suportá-las.
- A visão (view) solicita do modelo a informação que ela necessita para gerar uma representação de saída.
[editar] Uso em aplicações web
Apesar de desenvolvida originalmente para computação pessoal, o MVC foi amplamente adaptado como uma arquitetura para as aplicações World Wide Web em todas as linguagens de programação maiores. Muitos frameworks de aplicação comerciais e não comerciais foram criados, que aplicam o modelo. Estes frameworks variam em suas interpretações, principalmente no modo que as responsabilidades MVC são divididas entre o cilente e servidor.
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 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 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 GET ou POST 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
[editar] Justificativa
Com o aumento da complexidade das aplicações desenvolvidas,sempre visando a programação orientada a objeto nao devemos esquecer que torna-se relevante a separação entre os dados e a apresentação das aplicações. Desta forma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.
Esse padrão resolve este problema através da separação das tarefas de acesso aos dados e lógica de negócio, lógica de apresentação e de interação com o utilizador, introduzindo um componente entre os dois, o controlador.
[editar] Plataformas de desenvolvimento
[editar] ActionScript 3
[editar] ASP
[editar] .NET
- ASP.NET MVC - oficial da Microsoft
- C#.NET MVC - oficial da Microsoft
- Versões Existentes : MVC 3, MVC 3, MVC 4
[editar] Java
- Mentawai
- VRaptor
- Neo Framework
- Brutos Framework
- Apache Struts
- Tapestry
- WebWork
- Play! Framework
- Spring MVC
- JSF
- Click Framework
[editar] Perl
[editar] PHP
- Akelos
- CakePHP - para as versões 4 e 5
- CodeIgniter - para as versões 4 e 5
- FuelPHP - para versões 5.3+
- iGrape
- Kohana Framework - para a versão 5
- LightVC - para a versão 5.
- Megiddo - para a versão 5
- Oraculum PHP Framework - para a versão 5
- PageletBox - IDE para Celular WAP com framework MVC embutido em PHP 5
- PHPBurn
- PHPonTrax - para a versão 5
- PRADO - para a versão 5
- Seagull
- Spaghetti*
- Symfony - para a versão 5
- Vórtice Framework
- XPT Framework - para a versão 5
- Yii Framework - para a versão 5
- Zend Framework - da ZEND, mantenedora oficial do PHP 5 no padrão MVC
[editar] Python
[editar] Ruby
Referências
- ↑ Trygve M. H. Reenskaug/MVC—XEROX PARC 1978-79
- ↑ How to use Model–View–Controller ALLAN (MVC)