MVC: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
sobre as camadas/componentes do MVC |
|||
Linha 1:
[[Ficheiro:ModelViewControllerDiagram2.svg|thumb|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.]]
'''Arquitetura Modelo-Visão-
Normalmente usado para o desenvolvimento de [[Interface do usuário|interfaces de usuário]] que divide uma aplicação partes (camadas/componentes) interconectadas. Isto é feito para separar representações de informação internas dos modos como a informação é apresentada para e aceita pelo usuário,<ref>"More deeply, the framework exists to separate the representation of information from user interaction." [http://www.artima.com/articles/dci_vision.html The DCI Architecture: A New Vision of Object-Oriented Programming] {{Wayback|url=http://www.artima.com/articles/dci_vision.html |date=20170929001352 }} – [[Trygve Reenskaug]] and [[James Coplien]] – 20 de março de 2009.</ref><ref>Burbeck (1992): "... the user input, the modeling of the external world, and the visual feedback to the user are explicitly separated and handled by three types of object."</ref> levando ao desenvolvimento paralelo de maneira eficiente.
== História ==▼
Tradicionalmente usado para [[Interface gráfica do usuário|interfaces gráficas de usuário]] (GUIs), esta arquitetura tornou-se popular para projetar [[aplicações web]] e até mesmo para aplicações móveis, para desktop e para outros clientes.<ref>{{citar jornal|url=http://blog.iandavis.com/2008/12/what-are-the-benefits-of-mvc/|título=What Are The Benefits of MVC?|último =Davis|primeiro =Ian|jornal=Internet Alchemy|acessodata=29-11-2016}}</ref> Linguagens de programação populares como [[Java (linguagem de programação)|Java]], [[C#]], [[Ruby]], [[PHP]] e outras possuem frameworks MVC populares que são atualmente usados no desenvolvimentos de aplicações web.▼
A arquitetura MVC (Model-View-Controller) foi criada nos anos 80 na Xerox Parc, por Trygve Reenskaug, que iniciou em 1979 o que viria a ser o nascimento do padrão de projeto MVC. A implementação original foi descrita no artigo “Applications Programming in Smalltalk-80: How to use Model-View-Controller”. <ref>[http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html Trygve M. H. Reenskaug/MVC]—XEROX PARC 1978-79</ref>▼
== Os componentes do MVC ==
'''Camada de apresentação ou visualização''' (View) - Não se dedica em saber como o conhecimento foi retirado ou de onde ela foi obtida, apenas mostra a referência. Segundo Gamma et al (2006), ”A abordagem MVC separa a View e Model por meio de um protocolo inserção/notificação (subscribe/notify). Uma View deve garantir que sua expressão reflita o estado do Model. Sempre que os dados do Model mudam, o Model altera as Views que dependem dele. Em resposta, cada View tem a oportunidade de modificar-se”. Adiciona os elementos de exibição ao usuário : HTML, ASP, XML, Applets. É a camada de interface com o usuário. É utilizada para receber a entrada de dados e apresentar visualmente o resultado.▼
▲Tradicionalmente usado para [[Interface gráfica do usuário|interfaces gráficas de usuário]] (GUIs), esta arquitetura tornou-se popular para projetar [[aplicações web]] e até mesmo para aplicações móveis, para desktop e para outros clientes.<ref>{{citar jornal|último=Davis|primeiro=Ian|título=What Are The Benefits of MVC?|url=http://blog.iandavis.com/2008/12/what-are-the-benefits-of-mvc/
=== '''Camada de modelo ou da lógica da aplicação''' (Model) ===
'''Camada de lógica da aplicação''' (Model) - É o coração da execução, responsável por tudo que a aplicação vai fazer a partir dos comandos da camada de controle em um ou mais elementos de dados, respondendo a perguntas sobre o sua condição e a instruções para mudá-las. O modelo sabe o que o aplicativo quer fazer e é a principal estrutura computacional da arquitetura, pois é ele quem modela o problema que está se tentando resolver. Modela os dados e o comportamento por atrás do processo de negócios. Se preocupa apenas com o armazenamento, manipulação e geração de dados. É um encapsulamento de dados e de comportamento independente da apresentação.▼
Modelo é a ponte entre as camadas Visão (''View'') e Controle (''Controller''),<ref name=":0" /> consiste nos dados da aplicação, regras de negócios, lógica e funções. Permite o acesso para os dados serem coletados, gravados e, exibidos.<ref name=":0" />
▲
'''Camada de controle''' (Control) - É responsável por interpretar as ações de entrada através do mouse e teclado realizadas pelo usuário. O Controle (Controller) envia essas ações para o Modelo (Model) e para a janela de visualização (View) onde serão realizadas as operações necessárias.▼
=== '''Camada de apresentação ou visualização''' (View) ===
▲== História ==
Visão pode ser qualquer saída de representação dos dados, como uma tabela ou um diagrama. É onde os dados solicitados do Modelo (''Model'') são exibidos.<ref name=":0" /> É 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. A Visão também provoca interações com o usuário, que interage com o Controle (''Controller''). O exemplo básico disso é um botão gerado por uma Visão, no qual um usuário clica e aciona uma ação no Controle.<ref name=":0" />
▲A arquitetura MVC (Model-View-Controller) foi criada nos anos 80 na Xerox Parc, por Trygve Reenskaug, que iniciou em 1979 o que viria a ser o nascimento do padrão de projeto MVC. A implementação original foi descrita no artigo “Applications Programming in Smalltalk-80: How to use Model-View-Controller”. <ref>[http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html Trygve M. H. Reenskaug/MVC]—XEROX PARC 1978-79</ref>
▲
=== '''Camada de controle ou controlador''' (Controller) ===
Controle é o componente final da tríade, faz a mediação da entrada, convertendo-a em comandos para o modelo ou visão. É onde são manipulados os dados que o usuário insere ou atualiza o Modelo de acordo.<ref name=":0" /> O foco do Controle é a ação do usuário.<ref name=":0" />
▲
== Interação dos componentes ==
Linha 19 ⟶ 29:
Além de dividir a aplicação em três tipos de componentes, o desenho MVC define as interações entre eles.
*
* Um '''modelo''' ('''model''') armazena dados e notifica suas visões e controladores associados quando há uma mudança em seu estado. Estas notificações permitem que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis. Uma implementação ''passiva'' do MVC monta estas notificações, devido a aplicação não necessitar delas ou a plataforma de software não suportá-las.
* A '''visão''' ('''view''') gera uma representação (Visão) dos dados presentes no modelo solicitado, fazendo a exibição dos dados, sendo ela por meio de um html ou xml.
Linha 75 ⟶ 85:
=== ActionScript 3 ===
* [[Cairngorm]]
* [[PureMVC]]
* [[Swiz]]
Linha 85 ⟶ 95:
=== .NET ===
* [[ASP.NET#ASP.NET_MVC|ASP.NET MVC]]
* [[C Sharp|C♯]]
* [[Versões Existentes ]]: [[MVC 2, MVC 3, MVC 4]],MVC 5
=== Delphi ===
* [[MVCBr]]
=== Harmony ===
* [[Harmony Framework]]
=== Java ===
|