Click here to load reader
Upload
henryque
View
222
Download
1
Embed Size (px)
DESCRIPTION
MVC
Citation preview
09/09/2015 MVC – Wikipédia, a enciclopédia livre
https://pt.wikipedia.org/wiki/MVC 1/5
Um diagrama simples exemplificandoa relação entre Model, View eController. As linhas sólidas indicamassociação direta e as tracejadasindicam associação indireta.
MVCOrigem: Wikipédia, a enciclopédia livre.
Modelviewcontroller (MVC), em português modelovisãocontrolador, é um padrão de arquitetura de software (designpattern) que separa a representação da informação da interaçãodo usuário com ele. O modelo (model) consiste nos dados daaplicação, regras de negócios, lógica e funções. Uma visão (view)pode ser qualquer saída de representação dos dados, como umatabela ou um diagrama. É possível ter várias visões do mesmodado, como um gráfico de barras para gerenciamento e umavisão tabular para contadores. O controlador (controller) faz amediação da entrada, convertendoa em comandos para o modeloou visão. As ideias centrais por trás do MVC são a reusabilidadede código e separação de conceitos.
Índice
1 História2 Interação dos componentes3 Uso em aplicações web4 Justificativa5 Plataformas de desenvolvimento
5.1 COLDFUSION5.2 ActionScript 35.3 ASP5.4 .NET5.5 Harmony5.6 Java5.7 Perl5.8 PHP5.9 Python5.10 Ruby
6 Referências7 Ver também8 Leitura adicional
História
O padrão MVC foi descrito pela primeira vez em 1979 por Trygve Reenskaug, que trabalhava noSmalltalk, na Xerox PARC. A implementação original é descrita em profundidade no artigo de SteveBurbeck, Ph.D. com o título: "Applications Programming in Smalltalk80: How to use Model–View–Controller".
Interação dos componentes
[1]
[2]
09/09/2015 MVC – Wikipédia, a enciclopédia livre
https://pt.wikipedia.org/wiki/MVC 2/5
Além de dividir a aplicação em três tipos de componentes, o desenho MVC define as interações entreeles.
Um controlador (controller) pode enviar comandos para sua visão associada para alterar aapresentação da visão do modelo (por exemplo, percorrendo um documento). Ele também podeenviar comandos para o modelo para atualizar o estado do modelo (por exemplo, editando umdocumento).Um modelo (model) notifica suas visões e controladores associados quando há uma mudança emseu estado. Esta notificação permite que as visões produzam saídas atualizadas e que oscontroladores alterem o conjunto de comandos disponíveis. Uma implementação passiva do MVCmonta estas notificações, devido a aplicação não necessitar delas ou a plataforma de software nãosuportálas.A visão (view) solicita do modelo, através do controlador, a informação que ela necessita paragerar uma representação de saída.
Uso em aplicações web
Apesar de desenvolvida originalmente para computação pessoal, o MVC foi amplamente adaptado comouma 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 tendo como base essemodelo. Estes frameworks variam em suas interpretações, principalmente no modo que asresponsabilidades MVC são divididas entre o cliente e servidor.
Os frameworks web MVC mais recentes levam uma abordagem de thin client que colocou quase omodelo, a visão e a lógica do controlador inteiros no servidor. Nesta abordagem, o cliente enviarequisições de hiperlink ou entrada de formulário ao controlador e então recebe uma página webcompleta e atualizada (ou outro documento) da visão. O modelo existe inteiramente no servidor. Comoas tecnologias de cliente amadureceram, frameworks como JavaScriptMVC e Backbone foram criados oque 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 pelaaplicação. O controlador recebe uma entrada GET ou POST após um estímulo do utilizador e decide comoprocessála, invocando objetos do domínio para tratar a lógica de negócio, e por fim invocando umavisão para apresentar a saída
Justificativa
Com o aumento da complexidade das aplicações desenvolvidas, sempre visando a programaçãoorientada a objeto, tornase relevante a separação entre os dados e a apresentação das aplicações. Destaforma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizadossem alterar o layout.
Esse padrão resolve este problema através da separação das tarefas de acesso aos dados e lógica denegócio, lógica de apresentação e de interação com o utilizador, introduzindo um componente entre osdois: o controlador.
Plataformas de desenvolvimento
COLDFUSION
ColdBox
09/09/2015 MVC – Wikipédia, a enciclopédia livre
https://pt.wikipedia.org/wiki/MVC 3/5
FW/1FarCryFuseBoxCF WheelsMachIIColdSpringModelGlueLightWire
ActionScript 3
Cairngorm da AdobePureMVCSwiz
ASP
ASP Xtreme EvolutionToikaAJAXED
.NET
ASP.NET MVC oficial da MicrosoftC♯ oficial da MicrosoftVersões Existentes : MVC 2, MVC 3, MVC 4,MVC 5ASP .NET MVC na prática (http://www.tiselvagem.com.br/desenvolvimento/videoaulaaspnetmvcnapraticaparte1/) Comunidade
Harmony
Harmony Framework Oficial da Vilesoft
Java
Apache StrutsBrutos Framework (https://en.wikipedia.org/wiki/Brutos_Framework)Click FrameworkJSFMentawaiNeo FrameworkPlayFramework (https://en.wikipedia.org/wiki/Play_Framework)Spring MVCTapestryVRaptorWebWork
Perl
CatalystMojoliciousGantry
09/09/2015 MVC – Wikipédia, a enciclopédia livre
https://pt.wikipedia.org/wiki/MVC 4/5
PHP
AkelosCakePHP para as versões 4 e 5CodeIgniter para as versões 4 e 5FuelPHP para versões 5.3+iGrapeKohana Framework para a versão 5LightVC para a versão 5.Laravel para a versão 5.3+Megiddo (http://github.com/Suga/Megiddo) para a versão 5Oraculum PHP Framework para a versão 5PageletBox IDE para Celular WAP com framework MVC embutido em PHP 5Phalcon (http://phalconphp.com/pt) Extensão em C visando alta performance e baixo consumode recursos para a versão 5PHPBurnPHPonTrax para a versão 5PRADO para a versão 5SeagullSpaghetti*Symfony para a versão 5Vórtice FrameworkXPT Framework para a versão 5Yii Framework para a versão 5Zend Framework da ZEND, mantenedora oficial do PHP 5 no padrão MVCZend Framework da ZEND, mantenedora oficial do PHP 6 no padrão MVC
Python
DjangoTurboGearsWeb2py
Ruby
RailsMerb
Referências1. Trygve M. H. Reenskaug/MVC (http://heim.ifi.uio.no/~trygver/themes/mvc/mvcindex.html)—XEROX
PARC 1978792. How to use Model–View–Controller ALLAN (MVC) (http://stwww.cs.uiuc.edu/users/smarch/st
docs/mvc.html)
Ver também
Arquitetura multicamadaModelo em três camadasClienteservidorClusterLista de protocolos de redes
09/09/2015 MVC – Wikipédia, a enciclopédia livre
https://pt.wikipedia.org/wiki/MVC 5/5
Protocolo RPCRedes de computadoresSistema de processamento distribuídoSockets
Leitura adicional
MVC e Camadas (http://fragmental.com.br/wiki/index.php/MVC_e_Camadas.html)
Obtida de "https://pt.wikipedia.org/w/index.php?title=MVC&oldid=43132503"
Categoria: Padrões de projeto de software
Esta página foi modificada pela última vez à(s) 16h19min de 16 de agosto de 2015.Este texto é disponibilizado nos termos da licença Creative Commons Atribuição CompartilhaIgual 3.0 Não Adaptada (CC BYSA 3.0); pode estar sujeito a condições adicionais. Para maisdetalhes, consulte as Condições de Uso.