SlideShare una empresa de Scribd logo
1 de 74
Descargar para leer sin conexión
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ã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
Exemplo
Exemplo
Exemplo
Exemplo
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

Más contenido relacionado

La actualidad más candente

Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Programação Estruturada em Python - Introducao
Programação Estruturada em Python - IntroducaoProgramação Estruturada em Python - Introducao
Programação Estruturada em Python - IntroducaoEduardo S. Pereira
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de softwareleopp
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de PrototipaçãoJuliano Pires
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAndré Constantino da Silva
 

La actualidad más candente (20)

Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Programação Estruturada em Python - Introducao
Programação Estruturada em Python - IntroducaoProgramação Estruturada em Python - Introducao
Programação Estruturada em Python - Introducao
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Análise e Modelagem com UML
Análise e Modelagem com UMLAnálise e Modelagem com UML
Análise e Modelagem com UML
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
 

Destacado

Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCAlmir Neto
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Aricelio Souza
 
Aquisição de Clientes usando Marketing Digital
Aquisição de Clientes usando Marketing DigitalAquisição de Clientes usando Marketing Digital
Aquisição de Clientes usando Marketing DigitalRegy Andrade
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosEduardo Nicola F. Zagari
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )Ahmed Emad
 
Semanal fechada 6 ano
Semanal fechada 6 anoSemanal fechada 6 ano
Semanal fechada 6 anoRebeca Kaus
 
O uso dos porquês
O uso dos porquêsO uso dos porquês
O uso dos porquêsRebeca Kaus
 
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O IgnacioFAETEC - ETESC
 
Agile Brazil 2013 - Resumo
Agile Brazil 2013 - ResumoAgile Brazil 2013 - Resumo
Agile Brazil 2013 - ResumoBruno Nardini
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPsLuiz Ricardo Silva
 
Viva jovem, venha conhecer!
Viva jovem, venha conhecer!Viva jovem, venha conhecer!
Viva jovem, venha conhecer!Rebeca Kaus
 
Boa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java EnterpriseBoa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java EnterpriseOziel Moreira Neto
 

Destacado (20)

Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
 
EmberJS - Primeiros Passos!
EmberJS - Primeiros Passos!EmberJS - Primeiros Passos!
EmberJS - Primeiros Passos!
 
Aquisição de Clientes usando Marketing Digital
Aquisição de Clientes usando Marketing DigitalAquisição de Clientes usando Marketing Digital
Aquisição de Clientes usando Marketing Digital
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 
A Startup Enxuta
A Startup EnxutaA Startup Enxuta
A Startup Enxuta
 
Semanal fechada 6 ano
Semanal fechada 6 anoSemanal fechada 6 ano
Semanal fechada 6 ano
 
O uso dos porquês
O uso dos porquêsO uso dos porquês
O uso dos porquês
 
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
 
Agile Brazil 2013 - Resumo
Agile Brazil 2013 - ResumoAgile Brazil 2013 - Resumo
Agile Brazil 2013 - Resumo
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPs
 
Viva jovem, venha conhecer!
Viva jovem, venha conhecer!Viva jovem, venha conhecer!
Viva jovem, venha conhecer!
 
Boa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java EnterpriseBoa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java Enterprise
 

Similar a Padrões Arquiteturais - MVC, MVP e MVVM

Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoAlexandre Andrade
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Historia do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no androidHistoria do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no androidPaulo Sato
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...anybalrocha
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvcTargettrust
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 

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

MVC MVP MVVM para Web
MVC MVP MVVM para WebMVC MVP MVVM para Web
MVC MVP MVVM para Web
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Historia do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no androidHistoria do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no android
 
Mvc - Semifinal
Mvc - SemifinalMvc - Semifinal
Mvc - Semifinal
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
MVC Pattern
MVC PatternMVC Pattern
MVC Pattern
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
 
Treinamento MVC .Net
Treinamento MVC .NetTreinamento MVC .Net
Treinamento MVC .Net
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvc
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 

Más de Aricelio Souza

Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoAricelio Souza
 
Metodologia Ágil Scrum
Metodologia Ágil ScrumMetodologia Ágil Scrum
Metodologia Ágil ScrumAricelio Souza
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAAricelio Souza
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Ataques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAtaques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAricelio Souza
 
Documentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingDocumentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingAricelio Souza
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 

Más de Aricelio Souza (8)

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

Último

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

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
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 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.
  • 33.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 47.
  • 48.
  • 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