Model-view-controller (MVC) é um padrão de arquitetura de software que visa a separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos.
Índice
|
História
O MVC foi descrito originalmente em 1979[1] por Trygve Reenskaug, então trabalhando 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]
Componentes
O modelo (model) é usado para definir e gerenciar o domínio da informação e notificar observadores sobre mudanças nos dados. Ele é uma representação detalhada da informação que a aplicação opera. A lógica de negócio adiciona valor semântico aos dados, e quando há mudança de estado o modelo notifica seus observadores. Por exemplo, aluno, professor e turma fazem parte do domínio de um sistema acadêmico. Operações como calcular a média final do aluno ou o índice de faltas da turma fazem parte da lógica de domínio. A forma como o dado é armazenado ou acessado não é de interesse do MVC, assume-se que é de responsabilidade do modelo.
A visão (view) apresenta o modelo num formato adequado ao utilizador, na saída de dados, e diferentes visões podem existir para um mesmo modelo, para diferentes propósitos.
O controlador (controller) recebe a entrada de dados e inicia a resposta ao utilizador ao invocar objetos do modelo, e por fim uma visão baseada na entrada. Ele também é responsável pela validação e filtragem da entrada de dados.
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.
Justificativa
Com o aumento da complexidade das aplicações desenvolvidas, 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.
Plataformas de desenvolvimento
ActionScript 3
- Cairngorm - da Adobe
- PureMVC
- Swiz
ASP
- ASP Xtreme Evolution
- Toika
- AJAXED
.NET
- ASP.NET MVC - oficial da Microsoft
Java
- Apache Struts
- Mentawai
- Tapestry
- VRaptor
- WebWork
- Neo Framework
- Play! Framework
- Spring MVC
- JSF
- Click Framework
- Brutos
Perl
- Catalyst
- Mojolicious
- Gantry
PHP
- Zend Framework - da ZEND, mantenedora oficial do PHP 5 no padrão MVC
- CakePHP - para as versões 4 e 5
- CodeIgniter - para as versões 4 e 5
- Kohana Framework - para a versão 5
- LightVC - para a versão 5
- PHPonTrax - para a versão 5
- PRADO - para a versão 5
- Symfony - para a versão 5
- Megiddo - para a versão 5
- XPT Framework - para a versão 5
- Yii Framework - para a versão 5
- PageletBox - IDE para Celular WAP com framework MVC embutido em PHP 5
- Spaghetti*
- PHPBurn
- iGrape
Python
- Django
- TurboGears
- Web2py
Ruby
- Rails
- Merb
Referências
- ↑ Trygve M. H. Reenskaug/MVC—XEROX PARC 1978-79
- ↑ How to use Model–View–Controller ALLAN (MVC)
Leitura adicional
- MVC e Camadas
- Padrões de projeto de software
fonte.wikipedia
| < Anterior | Próximo > |
|---|
Pluriverso empresa de software
Contate-nos para maiores informações. Basta clicar em Atendimento, a empresa Pluriverso é especialista em Desenvilvimento de Software, Outsourcing de T.I, Consultoria, licenças de software e serviços globais em T.I

