MVC – Wikipédia, A Enciclopédia Livre

5

Click here to load reader

description

MVC

Transcript of MVC – Wikipédia, A Enciclopédia Livre

Page 1: MVC – Wikipédia, A Enciclopédia Livre

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.

Model­view­controller (MVC), em português modelo­visão­controlador, é 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, convertendo­a 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 Smalltalk­80: How to use Model–View–Controller".

Interação dos componentes

[1]

[2]

Page 2: MVC – Wikipédia, A Enciclopédia Livre

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, torna­se 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

Page 3: MVC – Wikipédia, A Enciclopédia Livre

09/09/2015 MVC – Wikipédia, a enciclopédia livre

https://pt.wikipedia.org/wiki/MVC 3/5

FW/1FarCryFuseBoxCF WheelsMach­IIColdSpringModelGlueLightWire

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/video­aula­asp­net­mvc­na­pratica­parte­1/) ­ 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

Page 4: MVC – Wikipédia, A Enciclopédia Livre

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/mvc­index.html)—XEROX

PARC 1978­792. How to use Model–View–Controller ALLAN (MVC) (http://st­www.cs.uiuc.edu/users/smarch/st­

docs/mvc.html)

Ver também

Arquitetura multicamadaModelo em três camadasCliente­servidorClusterLista de protocolos de redes

Page 5: MVC – Wikipédia, A Enciclopédia Livre

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 BY­SA 3.0); pode estar sujeito a condições adicionais. Para maisdetalhes, consulte as Condições de Uso.