Model-view-controller (MVC) é um padrão de arquitetura de software.
Para facilitar a construção e manutenção de sistemas , tornou-se fundamental separar as camadas de Dados (Model) e o Layout (View). Deixando separadas, qualquer alteração do Layout ou de Dados, não interferem entre si. E para "manipular" a junção dos dados e Layout, vocÊ tem a camada Controladora (Controller).
MVC , é um padrão que veio evoluindo desde a Análise Estruturada, passando pela atual Orientação a objetos. Com este conceito, temos claramente divididos as funções dos profissionais, como o criador do layout que , teoricamente, não tem conhecimentos de programação, os programadores e os DBAs(Administradores de Banco de DAdos)
Model - Camada de acesso a Dados, como se fosse uma cópia do banco de dados.
View - Interface do usuário. (Onde ficam as florzinhas, cores etc)
Controller - Processa os eventos e requisições, consulta no model, faz os cálculos e apresenta no Layout a resposta.
MVC está sendo muito usado em aplicações WEB, onde a View é a página HTML, e o código que busca dados no banco e gera resultados no Layout é Controller. E o Model é representado pelo conteúdo de fato, geralmente armazenado em bancos de dados ou arquivos XML.
Para programar MVC, várias empresas criaram os famosos Frameworks, que são conjunto de "códigos prontos" que auxiliam a criação de um sistema. Segue abaixo uma lista de alguns Frameworks que utilizam a arquitetura MVC:
PHP
CodeIgniter - http://www.codeigniter.com/
CakePHP - http://www.cakephp.org/
Symfony - http://www.symfony-project.com/
Zend Framework - http://framework.zend.com
JAVA
Apache Struts - http://struts.apache.org/
VRaptor - http://www.vraptor.com.br/
WebWork - http://www.opensymphony.com/webwork
JSF - http://java.sun.com/javaee/javaserverfaces/
Escrito por ELJusticeiro.
