SlideShare uma empresa Scribd logo
Curso: Tecnologia em Análise e Desenvolvimento de
Sistemas
Disciplina: Arquitetura de Software
Prof. Msc. Petrônio Cândido Lima e Silva
Dupla: Aline Ferreira e Aricelio de Souza
Turma: 5º Período
- Histórico;
- Fundamentação Teórica;
- Exemplo de Implementação;
Padrões de Arquitetura:
MVC, MVP e MVVM
Padrão MVC
• Em 1979 Trygve Reenskaug sugeriu o
padrão TMVE ( Thing–Model–View–Editor),
predecessor do atual MVC,em razão da
impossibilidade, de reutilização de código,
na época.
Padrão MVC
o Thing (Coisa): algo de interesse do
usuário;
o Model: define a representação de uma
abstração na forma de dados
o View: representações visuais de um dado
Modelo
o Editor : Interface entre o usuário e a view;
Padrão MVC
• No mesmo ano propôs uma evolução do seu
até então padrão MVCE (Model- View-
Controller-Editor), onde:
• Model: é definido como um objeto que
representa o conhecimento;
Padrão MVC
• View: é a representação visual de uma
Model;
• Controller: conexão entre o usuário e o
sistema;
• Editor: Controller que permite ao usuário
alterar informações apresentadas na
view;
Padrão MVC
• Está ideia foi posteriormente implementada
por Jim Althoff, com algumas modificações,
sendo o atual padrão MVC ;
Padrão MVC
• A arquitetura MVC (Model-View-Controller),
consiste na divisão de uma aplicação em
três camadas físicas, separando a
informação de sua apresentação.
Padrão MVC
View
(Apresentação)
● Camada de interface com usuário;
● Inclui os elementos de exibição no cliente : HTML, XML,
ASP, Applets.
Model (Lógica
de Aplicação)
● Modela os dados e o comportamento por atrás do processo
de negócios;
● Responsável pela manipulação de dados;
Controller
(Controle)
● Intermediaria entre a camada de apresentação e a lógica;
● Controla e mapeia as ações;
Padrão MVC
Padrão MVC
• É indicada para sistemas maiores;
• Torna a aplicação escalavél;
• Model, view e controller são independentes;
Exemplo
Exemplo - Sistema de Votação
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrão MVP
• O MVP foi visto a primeira vez na IBM, e
posteriormente na Taligent, onde era
utilizado para o desenvolvimento de
aplicações em C++, tendo posteriormente
migrado para JAVA.
Padrão MVP
• Em 1997 Andy Bower e Blair McGlashan da
Dolphin Smalltalk adaptaram o padrão MVP
para formar a base para seu framework de
interface de usuário.
• Em 2006 foi inserido pela Microsoft na
documentação do .NET framework.
Padrão MVP
• O padrão MVP (Model-View-Presenter) ,
possui como objetivo, separar a camada de
apresentação das camadas de dados e
regras de negócio.
Padrão MVP
Padrão MVP
View ● Interface com o usuário;
● implementa uma interface que expõe os campos e
eventos que o Presenter necessita;
Model ● São os objetos que serão manipulados;
● Um objeto Model implementa uma interface que expõe
os campos que o Presenter irá atualizar quando sofrer
alguma alteração na View.
Presenter ● É a ligação entre a Model e a view;
● Ele é encarregado de atualizar a View quando o Model é
alterado e de sincronizar o Model em relação ao View.
Padrão MVP
• O MVP diferencia- se do MVC no conceito,
pois as funções do Presenter são
semelhantes a do Controller.
• A manutenção do sistema é muito mais
simples, já que, as responsabilidades estão
divididas em classes distintas.
Exemplo
Padrões Arquiteturais - MVC, MVP e MVVM
Exemplo
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Exemplo
Exemplo
Exemplo
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Exemplo
Exemplo
Exemplo
Padrão MVVM
• O MVVM (Model-View-ViewModel) é um
padrão criado em 2005 por John Gossman,
um dos arquitetos do WPF e Silverlight na
Microsoft.
• Este padrão é identico ao MVP e é
específico para a arquitetura do WPF e
Silverligh.
Padrão MVVM
• Também é uma especialização do padrão
PM (Presentation-Model), introduzido por
Martin Fowler em 2004.
Padrão MVVM
Padrão MVVM
Model ● Representa o conceito do negócio;
View
● Controle gráfico responsável pela apresentação de dados ao
usuário;
● Uma view pode ser uma janela WPF, uma página do
Silverlight, ou apenas um modelo de controle de dados
XAML.
View-
Model
● Contém a lógica de interface com o usuário, os comandos, os
eventos e uma referência ao modelo;
● A atualização de dados na interface é feita por um
componente fornecido pelo WPF e Silverligh;
Padrão MVVM
• A comunicação entre as camadas view e
view- model é feita por um mecanismo
denominado binding;
Padrão MVVM
Padrão MVVM
• A utilização da arquitetura MVVM requer a
divisão, do código da aplicação em
diferentes blocos denominados camadas;
• Código mais flexível, e fácil de testar;
Padrão MVVM
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo
<UserControl x:Class="Aplicando_MVVM.View.ClienteView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
<Grid>
<StackPanel HorizontalAlignment="Left">
<ItemsControl ItemsSource="{Binding Path=Clientes}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding Path=Nome, Mode=TwoWay}" Width="100" />
<TextBox Text="{Binding Path=Email, Mode=TwoWay}" Width="150" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Grid>
</UserControl>
Exemplo
Exemplo
Exemplo
Exemplo
<Window x:Class="Aplicando_MVVM.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:view="clr-namespace:Aplicando_MVVM.View"
Title="Usando o Padrão MVVM" Height="350" Width="525" Loaded="Window_Loaded">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="460*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="80*"/>
</Grid.RowDefinitions>
<Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="0">
<Label Height="30" Width="400" Content="Exemplo de utilização do Padrão MVVM - WPF"
Background="Aqua"/>
</Border>
<Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="1"
Margin="0,5,0,0" Background="Beige">
<view:ClienteView x:Name="ClienteView"/>
</Border>
</Grid>
</Window>
Exemplo
Exemplo
[1] de Souza, Carlos Eduardo Ferreira. Entendendo o Pattern Model-View-ViewModel (MVVM). Nov 2010.
Disponível em: <
http://imasters.com.br/artigo/18900/desenvolvimento/entendendo-o-pattern-model-view-viewmodel-mvvm/
>. Acesso em: 26 Abr. 2014.
[2] LUCIANO, Josué; ALVES, Wallison Joel Barabará. Padrão de Arquitetura MVC: Model-View-
Controller. 2011, Disponível em: <
http://www.unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/16112011142249.pdf>.
Acesso em: 26 Abr. 2014.
[3] Macoratti, José Carlos. Padrões de Projeto : O modelo MVC - Model View Controller. Disponível em:
<http://www.macoratti.net/vbn_mvc.htm>. Acesso em: 26 Abr. 2014.
[4] Macoratti, José Carlos. ASP.NET - MVC - Model-View-Controller – Introdução. Disponível em: <
http://www.macoratti.net/08/06/asp_mvc1.htm>. Acesso em: 26 Abr. 2014.
[5] Quicoli, Paulo. O Padrão MVP (Model-View-Presenter). Disponível em: <
http://www.devmedia.com.br/o-padrao-mvp-model-view-presenter/3043>. Acesso em: 26 Abr. 2014.
Referências
[6] ODISI, Francis Benito. Geração de código para acesso a dados utilizando os padrões MVC e DAO. Nov 2008. Disponível em:
<http://siaibib01.univali.br/pdf/Francis%20Benito%20Odisi.pdf>. Acesso em: 26 Abr. 2014.
[7] MAGELA, R. Engenharia de software aplicada: fundamentos. Rio de Janeiro: Alta Books, 2006.
[8] DE ALMEIDA, Rodrigo Rebouças. Model-View-Controller (MVC). Disponível em: <
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/arqu/mvc/mvc.htm>. Acesso em: 26 Abr. 2014.
[9] FOWLER, Martin. GUI Arquitectures. JUL 2006. Disponível em: <http://www.martinfowler.com/eaaDev/uiArchs.html>.
Acesso em: 27 Abr. 2014.
[10] POTEL, Mike. MVP: Model-View-Presenter - The Taligent Programming Model for C++ and Java. 1996. Disponível em: <
http://www.wildcrest.com/Potel/Portfolio/mvp.pdf>. Acesso em: 27 Abr. 2014.
[11] MARTINS, Daniel Fernandes .Apresentando Model-View-Presenter, o MVC focado na visualização. Out 2012. Disponível
em: <
http://javafree.uol.com.br/artigo/871446/Apresentando-ModelViewPresenter-o-MVC-focado-na-visualizacao.html
>. Acesso em: 28 Abr. 2014.
Referências
[12] C.M., Kelson. MVP (Model-View-Presenter/Modelo-Visão-Apresentador). Mai 2012. Disponível em: <
http://kelsoncm.com/tic/mvp-model-view-presentermodelo-visao-apresentador/>. Acesso em: 28
Abr. 2014.
[13] Macoratti, José Carlos. NET - Apresentando o padrão Model View ViewModel. Disponível em: <
http://www.macoratti.net/11/06/pp_mvvm1.htm>. Acesso em: 28 Abr. 2014.
[14] Balivo, Jefferson. Desvendando o padrão MVVM. Set 2012. Disponível em: <
http://www.balivo.com.br/desvendando-o-padrao-mvvm/>. Acesso em: 28 Abr. 2014.
Referências
Obrigado

Mais conteúdo relacionado

PDF
Microservicios
PPTX
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
PDF
Rational Team Concert Process Customization - What you can and cannot do
PPTX
A Linguagem sql
PPTX
Apresentação mvc
PDF
Gestão de defeitos e testes com Jira
PPTX
Pruebas de estres
PDF
Arquitetura de Software Na Pratica
Microservicios
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
Rational Team Concert Process Customization - What you can and cannot do
A Linguagem sql
Apresentação mvc
Gestão de defeitos e testes com Jira
Pruebas de estres
Arquitetura de Software Na Pratica

Mais procurados (20)

PDF
UX UI para Programadores
PPTX
API Testing.pptx
PPTX
React, Flux y React native
PDF
Desenvolvimento de Sistemas Web - Conceitos Básicos
PDF
Diagrama de Classes (8).pdf
ODP
Modelos de processos de software
PDF
Introdução à Programação Web com Angular
PPTX
Metodologías de Desarrollo de Software
PPTX
Aula sobre Condicionais ( if - else ) - Linguagem C
PDF
Redes de Pert
PDF
Diagrama de Processos PMBOK 4 Ed
DOCX
Maquetación Web
PDF
DevOps Implementation Roadmap
PPT
Metodologias De Desarrollo De Software
PDF
Paradigmas De Engenharia De Software
PPTX
Historia del internet
PDF
Postman: An Introduction for Developers
PPTX
Metodología RUP
PDF
Desenvolvimento Mobile: Híbrido x Nativo
UX UI para Programadores
API Testing.pptx
React, Flux y React native
Desenvolvimento de Sistemas Web - Conceitos Básicos
Diagrama de Classes (8).pdf
Modelos de processos de software
Introdução à Programação Web com Angular
Metodologías de Desarrollo de Software
Aula sobre Condicionais ( if - else ) - Linguagem C
Redes de Pert
Diagrama de Processos PMBOK 4 Ed
Maquetación Web
DevOps Implementation Roadmap
Metodologias De Desarrollo De Software
Paradigmas De Engenharia De Software
Historia del internet
Postman: An Introduction for Developers
Metodología RUP
Desenvolvimento Mobile: Híbrido x Nativo
Anúncio

Destaque (20)

PDF
Padrões de Projeto WEB e o MVC
PPTX
Programação aula002
PDF
Arquitetura de Software
PDF
Padrões-06 - Padrões Arquiteturais - Microkernel
PPT
Padrões Arquiteturais de Sistemas
PDF
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
PPTX
EmberJS - Primeiros Passos!
PPTX
Aquisição de Clientes usando Marketing Digital
PPTX
Arquitetura de Software
PDF
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
PPTX
MVVM ( Model View ViewModel )
PDF
A Startup Enxuta
PDF
Semanal fechada 6 ano
PDF
O uso dos porquês
PPT
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
PDF
Agile Brazil 2013 - Resumo
PPTX
Introdução aos Servlets e JSPs
PDF
Viva jovem, venha conhecer!
PDF
Boa Práticas no Desenvolvimento Java Enterprise
PDF
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Padrões de Projeto WEB e o MVC
Programação aula002
Arquitetura de Software
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões Arquiteturais de Sistemas
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
EmberJS - Primeiros Passos!
Aquisição de Clientes usando Marketing Digital
Arquitetura de Software
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
MVVM ( Model View ViewModel )
A Startup Enxuta
Semanal fechada 6 ano
O uso dos porquês
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
Agile Brazil 2013 - Resumo
Introdução aos Servlets e JSPs
Viva jovem, venha conhecer!
Boa Práticas no Desenvolvimento Java Enterprise
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Anúncio

Semelhante a Padrões Arquiteturais - MVC, MVP e MVVM (20)

PDF
MVC MVP MVVM para Web
PPT
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
PPT
Criandeiros - Grupo de estudos: MVC
PPTX
MVC Pattern
PPTX
MVVM Deep Dive - Paulo Aboim Pinto
PPTX
Historia do mvc, mvp e mvvm no android
PPTX
Asp.Net Mvc
PPTX
Padrões MVC
PPTX
4º FastShow - WPF Windows Presentation Foundation Overview
PPTX
MVVM – Hello World
PDF
Conceitos e Frameworks para Arquitetura MVC.pdf
PDF
Arquitetura para aplicações Android. Do MVP ao MVVM.
PPTX
Arquitetura e Frameworks para Arquitetura MVC.pptx
PDF
Padrões de Projeto Web e o MVC
ODP
Usando MVC para agilizar o desenvolvimento
PDF
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
PDF
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
PDF
Palestra ASP.NET MVC
PPTX
Desenvolvimento RIA com Silverlight 4
PPT
Mvc - Semifinal
MVC MVP MVVM para Web
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Criandeiros - Grupo de estudos: MVC
MVC Pattern
MVVM Deep Dive - Paulo Aboim Pinto
Historia do mvc, mvp e mvvm no android
Asp.Net Mvc
Padrões MVC
4º FastShow - WPF Windows Presentation Foundation Overview
MVVM – Hello World
Conceitos e Frameworks para Arquitetura MVC.pdf
Arquitetura para aplicações Android. Do MVP ao MVVM.
Arquitetura e Frameworks para Arquitetura MVC.pptx
Padrões de Projeto Web e o MVC
Usando MVC para agilizar o desenvolvimento
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Palestra ASP.NET MVC
Desenvolvimento RIA com Silverlight 4
Mvc - Semifinal

Mais de Aricelio Souza (8)

PPTX
Testes de Caixa Branca e Métricas de Código
PDF
Metodologia Ágil Scrum
PDF
Tipos de Servidores
PDF
Padrões de projeto - Martin Fowler - P of EAA
PDF
Sistemas NoSQL, surgimento, características e exemplos
PPTX
Ataques DOS, DDOS e Scamming
PDF
Documentação Ataques DOS, DDOS e Scamming
PPTX
NoSQL, Base VS ACID e Teorema CAP
Testes de Caixa Branca e Métricas de Código
Metodologia Ágil Scrum
Tipos de Servidores
Padrões de projeto - Martin Fowler - P of EAA
Sistemas NoSQL, surgimento, características e exemplos
Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e Scamming
NoSQL, Base VS ACID e Teorema CAP

Último (20)

PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Émile Durkheim slide elaborado muito bom
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Aula sobre banco de dados com firebase db
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Aula 18 - Manipulacao De Arquivos python
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Émile Durkheim slide elaborado muito bom
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Apple Pippin Uma breve introdução. - David Glotz
Aula sobre desenvolvimento de aplicativos
Aula sobre banco de dados com firebase db
Processos na gestão de transportes, TM100 Col18
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx

Padrões Arquiteturais - MVC, MVP e MVVM

  • 1. Curso: Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Arquitetura de Software Prof. Msc. Petrônio Cândido Lima e Silva Dupla: Aline Ferreira e Aricelio de Souza Turma: 5º Período
  • 2. - Histórico; - Fundamentação Teórica; - Exemplo de Implementação; Padrões de Arquitetura: MVC, MVP e MVVM
  • 3. Padrão MVC • Em 1979 Trygve Reenskaug sugeriu o padrão TMVE ( Thing–Model–View–Editor), predecessor do atual MVC,em razão da impossibilidade, de reutilização de código, na época.
  • 4. Padrão MVC o Thing (Coisa): algo de interesse do usuário; o Model: define a representação de uma abstração na forma de dados o View: representações visuais de um dado Modelo o Editor : Interface entre o usuário e a view;
  • 5. Padrão MVC • No mesmo ano propôs uma evolução do seu até então padrão MVCE (Model- View- Controller-Editor), onde: • Model: é definido como um objeto que representa o conhecimento;
  • 6. Padrão MVC • View: é a representação visual de uma Model; • Controller: conexão entre o usuário e o sistema; • Editor: Controller que permite ao usuário alterar informações apresentadas na view;
  • 7. Padrão MVC • Está ideia foi posteriormente implementada por Jim Althoff, com algumas modificações, sendo o atual padrão MVC ;
  • 8. Padrão MVC • A arquitetura MVC (Model-View-Controller), consiste na divisão de uma aplicação em três camadas físicas, separando a informação de sua apresentação.
  • 9. Padrão MVC View (Apresentação) ● Camada de interface com usuário; ● Inclui os elementos de exibição no cliente : HTML, XML, ASP, Applets. Model (Lógica de Aplicação) ● Modela os dados e o comportamento por atrás do processo de negócios; ● Responsável pela manipulação de dados; Controller (Controle) ● Intermediaria entre a camada de apresentação e a lógica; ● Controla e mapeia as ações;
  • 11. Padrão MVC • É indicada para sistemas maiores; • Torna a aplicação escalavél; • Model, view e controller são independentes;
  • 13. Exemplo - Sistema de Votação
  • 26. Padrão MVP • O MVP foi visto a primeira vez na IBM, e posteriormente na Taligent, onde era utilizado para o desenvolvimento de aplicações em C++, tendo posteriormente migrado para JAVA.
  • 27. Padrão MVP • Em 1997 Andy Bower e Blair McGlashan da Dolphin Smalltalk adaptaram o padrão MVP para formar a base para seu framework de interface de usuário. • Em 2006 foi inserido pela Microsoft na documentação do .NET framework.
  • 28. Padrão MVP • O padrão MVP (Model-View-Presenter) , possui como objetivo, separar a camada de apresentação das camadas de dados e regras de negócio.
  • 30. Padrão MVP View ● Interface com o usuário; ● implementa uma interface que expõe os campos e eventos que o Presenter necessita; Model ● São os objetos que serão manipulados; ● Um objeto Model implementa uma interface que expõe os campos que o Presenter irá atualizar quando sofrer alguma alteração na View. Presenter ● É a ligação entre a Model e a view; ● Ele é encarregado de atualizar a View quando o Model é alterado e de sincronizar o Model em relação ao View.
  • 31. Padrão MVP • O MVP diferencia- se do MVC no conceito, pois as funções do Presenter são semelhantes a do Controller. • A manutenção do sistema é muito mais simples, já que, as responsabilidades estão divididas em classes distintas.
  • 52. Padrão MVVM • O MVVM (Model-View-ViewModel) é um padrão criado em 2005 por John Gossman, um dos arquitetos do WPF e Silverlight na Microsoft. • Este padrão é identico ao MVP e é específico para a arquitetura do WPF e Silverligh.
  • 53. Padrão MVVM • Também é uma especialização do padrão PM (Presentation-Model), introduzido por Martin Fowler em 2004.
  • 55. Padrão MVVM Model ● Representa o conceito do negócio; View ● Controle gráfico responsável pela apresentação de dados ao usuário; ● Uma view pode ser uma janela WPF, uma página do Silverlight, ou apenas um modelo de controle de dados XAML. View- Model ● Contém a lógica de interface com o usuário, os comandos, os eventos e uma referência ao modelo; ● A atualização de dados na interface é feita por um componente fornecido pelo WPF e Silverligh;
  • 56. Padrão MVVM • A comunicação entre as camadas view e view- model é feita por um mecanismo denominado binding;
  • 58. Padrão MVVM • A utilização da arquitetura MVVM requer a divisão, do código da aplicação em diferentes blocos denominados camadas; • Código mais flexível, e fácil de testar;
  • 64. Exemplo <UserControl x:Class="Aplicando_MVVM.View.ClienteView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"> <Grid> <StackPanel HorizontalAlignment="Left"> <ItemsControl ItemsSource="{Binding Path=Clientes}"> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal"> <TextBox Text="{Binding Path=Nome, Mode=TwoWay}" Width="100" /> <TextBox Text="{Binding Path=Email, Mode=TwoWay}" Width="150" /> </StackPanel> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </StackPanel> </Grid> </UserControl>
  • 68. Exemplo <Window x:Class="Aplicando_MVVM.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:view="clr-namespace:Aplicando_MVVM.View" Title="Usando o Padrão MVVM" Height="350" Width="525" Loaded="Window_Loaded"> <Grid Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="460*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="80*"/> </Grid.RowDefinitions> <Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="0"> <Label Height="30" Width="400" Content="Exemplo de utilização do Padrão MVVM - WPF" Background="Aqua"/> </Border> <Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="1" Margin="0,5,0,0" Background="Beige"> <view:ClienteView x:Name="ClienteView"/> </Border> </Grid> </Window>
  • 71. [1] de Souza, Carlos Eduardo Ferreira. Entendendo o Pattern Model-View-ViewModel (MVVM). Nov 2010. Disponível em: < http://imasters.com.br/artigo/18900/desenvolvimento/entendendo-o-pattern-model-view-viewmodel-mvvm/ >. Acesso em: 26 Abr. 2014. [2] LUCIANO, Josué; ALVES, Wallison Joel Barabará. Padrão de Arquitetura MVC: Model-View- Controller. 2011, Disponível em: < http://www.unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/16112011142249.pdf>. Acesso em: 26 Abr. 2014. [3] Macoratti, José Carlos. Padrões de Projeto : O modelo MVC - Model View Controller. Disponível em: <http://www.macoratti.net/vbn_mvc.htm>. Acesso em: 26 Abr. 2014. [4] Macoratti, José Carlos. ASP.NET - MVC - Model-View-Controller – Introdução. Disponível em: < http://www.macoratti.net/08/06/asp_mvc1.htm>. Acesso em: 26 Abr. 2014. [5] Quicoli, Paulo. O Padrão MVP (Model-View-Presenter). Disponível em: < http://www.devmedia.com.br/o-padrao-mvp-model-view-presenter/3043>. Acesso em: 26 Abr. 2014. Referências
  • 72. [6] ODISI, Francis Benito. Geração de código para acesso a dados utilizando os padrões MVC e DAO. Nov 2008. Disponível em: <http://siaibib01.univali.br/pdf/Francis%20Benito%20Odisi.pdf>. Acesso em: 26 Abr. 2014. [7] MAGELA, R. Engenharia de software aplicada: fundamentos. Rio de Janeiro: Alta Books, 2006. [8] DE ALMEIDA, Rodrigo Rebouças. Model-View-Controller (MVC). Disponível em: < http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/arqu/mvc/mvc.htm>. Acesso em: 26 Abr. 2014. [9] FOWLER, Martin. GUI Arquitectures. JUL 2006. Disponível em: <http://www.martinfowler.com/eaaDev/uiArchs.html>. Acesso em: 27 Abr. 2014. [10] POTEL, Mike. MVP: Model-View-Presenter - The Taligent Programming Model for C++ and Java. 1996. Disponível em: < http://www.wildcrest.com/Potel/Portfolio/mvp.pdf>. Acesso em: 27 Abr. 2014. [11] MARTINS, Daniel Fernandes .Apresentando Model-View-Presenter, o MVC focado na visualização. Out 2012. Disponível em: < http://javafree.uol.com.br/artigo/871446/Apresentando-ModelViewPresenter-o-MVC-focado-na-visualizacao.html >. Acesso em: 28 Abr. 2014. Referências
  • 73. [12] C.M., Kelson. MVP (Model-View-Presenter/Modelo-Visão-Apresentador). Mai 2012. Disponível em: < http://kelsoncm.com/tic/mvp-model-view-presentermodelo-visao-apresentador/>. Acesso em: 28 Abr. 2014. [13] Macoratti, José Carlos. NET - Apresentando o padrão Model View ViewModel. Disponível em: < http://www.macoratti.net/11/06/pp_mvvm1.htm>. Acesso em: 28 Abr. 2014. [14] Balivo, Jefferson. Desvendando o padrão MVVM. Set 2012. Disponível em: < http://www.balivo.com.br/desvendando-o-padrao-mvvm/>. Acesso em: 28 Abr. 2014. Referências