Conceito de MVC

3
MVC Origem: Wikipédia, a enciclopédia livre. Um diagrama simples exemplificando a relação entre Model, View e Controller. As linhas sólidas indicam associação direta e as tracejadas indicam associação indireta. Model-view-controller (MVC), em português modelo-visão-controlador, é um modelo de arquitetura de software que separa a representação da informação da interação do usuário com ele. O modelo (model) consiste nos dados da aplicaçã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 uma tabela ou um diagrama. É possível ter várias visões do mesmo dado, como um gráfico de barras para gerenciamento e uma visão tabular para contadores. O controlador (controller) faz a mediação da entrada, convertendo-a em comandos para o modelo ou visão. As ideias centrais por trás do MVC são a reusabilidade de código e separação de conceitos . Índice [esconder ] 1 História 2 Interação dos componentes 3 Uso em aplicações web 4 Justificativa 5 Plataformas de desenvolvimento o 5.1 ActionScript 3 o 5.2 ASP o 5.3 .NET o 5.4 Harmony o 5.5 Java o 5.6 Perl o 5.7 PHP o 5.8 Python o 5.9 Ruby 6 Referências

Transcript of Conceito de MVC

MVCOrigem: Wikipdia, a enciclopdia livre.

Um diagrama simples exemplificando a relao entreModel,VieweController. As linhas slidas indicam associao direta e as tracejadas indicam associao indireta.Model-view-controller(MVC), em portugusmodelo-viso-controlador, um modelo dearquitetura de softwareque separa a representao da informao da interao do usurio com ele. Omodelo(model) consiste nos dados da aplicao, regras de negcios, lgica e funes. Umaviso(view) pode ser qualquer sada de representao dos dados, como uma tabela ou um diagrama. possvel ter vrias vises do mesmo dado, como um grfico de barras para gerenciamento e uma viso tabular para contadores. Ocontrolador(controller) faz a mediao da entrada, convertendo-a em comandos para o modelo ou viso. As ideias centrais por trs do MVC so areusabilidade de cdigoeseparao de conceitos.ndice[esconder] 1Histria 2Interao dos componentes 3Uso em aplicaes web 4Justificativa 5Plataformas de desenvolvimento 5.1ActionScript 3 5.2ASP 5.3.NET 5.4Harmony 5.5Java 5.6Perl 5.7PHP 5.8Python 5.9Ruby 6Referncias 7Ver tambm 8Leitura adicionalHistria[editar|editar cdigo-fonte]O padro MVC foi descrito pela primeira vez em 19791porTrygve Reenskaug, que trabalhava noSmalltalk, naXerox PARC. A implementao original descrita em profundidade no artigo de Steve Burbeck, Ph.D. com o ttulo: "Applications Programming in Smalltalk-80: How to use ModelViewController".2Interao dos componentes[editar|editar cdigo-fonte]Alm de dividir a aplicao em trs tipos de componentes, o desenho MVC define as interaes entre eles. Umcontrolador(controller) pode enviar comandos para sua viso associada para alterar a apresentao da viso do modelo (por exemplo, percorrendo um documento). Ele tambm pode enviar comandos para o modelo para atualizar o estado do modelo (por exemplo, editando um documento). Ummodelo(model) notifica suas vises e controladores associados quando h uma mudana em seu estado. Esta notificao permite que as vises produzam sadas atualizadas e que os controladores alterem o conjunto de comandos disponveis. Uma implementaopassivado MVC monta estas notificaes, devido a aplicao no necessitar delas ou a plataforma de software no suport-las. Aviso(view) solicita do modelo a informao que ela necessita para gerar uma representao de sada.Uso em aplicaes web[editar|editar cdigo-fonte]Apesar de desenvolvida originalmente para computao pessoal, o MVC foi amplamente adaptado como uma arquitetura para as aplicaesWorld Wide Webem todas as linguagens de programao maiores. Muitosframeworks de aplicaocomerciais e no comerciais foram criados tendo como base esse modelo. Estes frameworks variam em suas interpretaes, principalmente no modo que as responsabilidades MVC so divididas entre ocliente e servidor.Os frameworks web MVC mais recentes levam uma abordagem dethin clientque colocou quase o modelo, a viso e a lgica do controlador inteiros no servidor. Nesta abordagem, o cliente envia requisies dehiperlinkou entrada deformulrioao controlador e ento recebe uma pgina web completa e atualizada (ou outro documento) da viso. O modelo existe inteiramente no servidor. Como as tecnologias de cliente amadureceram, frameworks comoJavaScriptMVCeBackboneforam criados o que permite que os componentes MVC executem parcialmente no cliente (ver tambmAJAX).Um caso prtico umaaplicao webem que a viso um documento HTML (ou derivado) gerado pela aplicao. O controlador recebe uma entradaGETouPOSTaps um estmulo do utilizador e decide como process-la, invocando objetos do domnio para tratar a lgica de negcio, e por fim invocando uma viso para apresentar a sadaJustificativa[editar|editar cdigo-fonte]Com o aumento da complexidade das aplicaes desenvolvidas, sempre visando a programao orientada a objeto, torna-se relevante a separao entre os dados e a apresentao das aplicaes. Desta forma, alteraes feitas nolayoutno afetam a manipulao de dados, e estes podero ser reorganizados sem alterar olayout.Esse padro resolve este problema atravs da separao das tarefas de acesso aos dados e lgica de negcio, lgica de apresentao e de interao com o utilizador, introduzindo um componente entre os dois: o controlador.Plataformas de desenvolvimento[editar|editar cdigo-fonte]