SlideShare uma empresa Scribd logo
1 de 21
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisAPPI 306 Alexandre Ricardo Nardi Jorge Tressino Rua Consultores Microsoft Brasil
O queVeremos e o queNãoVeremos Veremos: Uma investigação de comodiferentespadrões de arquitetura de software se relacionam com diferentestecnologias de desenvolvimento da Microsoft Uma discussão de “ondeusar o quê” NãoVeremos: Uma discussãoexaustivasobrepadrões de arquitetura de software
VisãoGeral O que, porquee comosobreospadrõesarquiteturais Model View Controller (MVC)  Model View Presenter (MVP) Model View ViewModel (MVVM) Exemplos MVC: ASP.Net MVC 3 MVP: SharePoint MVVM: WPF O queusaronde?
O que é Model View (C ou P ou VM)? Padrõesquedescrevemumaabordagemparadesenvolvimento de software Osmódulosincluem Model – Dados e comportamento View – Camada de apresentação C ou VM ou P – Lógicapara “grudar as coisas” Essespadrões se baseiamem “Separação de Responsabilidades” Como emmuitos outros tipos de frameworks de sistemas Como isto é diferente do desenvolvimentoem n-camadas dos anos 90 Quem se lembra do Distributed interNet Architecture (DNA)?
Porque Model View (C ou P ou VM)? Ospadrõespossuemobjetivossemelhantes. Contudo, o fazem de modosdiferentes Osobjetivos dos padrõessãoaumentar: Modularidade Flexibilidade Testabilidade Mantenibilidade
Model View Controller (MVC) Descritoinicialmenteem 1979 paraSmalTalkpara Xerox PARC O controller é a peça central quedesacopla o Model e o View Fluxo de controle: Evento de interação do usuário Controllermanipula o evento e o converteparaumaação do usuárioque o Modelpossaentender Modelgerencia o comportamento e dados do domínio da aplicação O Viewinterage com o Controller e o Modelparagerar a interface com o usuário
Client/Server (DNA) vs MVC Controller Client-----------------------Objetos de Negócio Model Server-----------------------Dados dos Objetos de Negócio View
PadrãoMVC Observer Controller Model View
demo ASP.Net MVC 3
Model View Presenter (MVP) MVP originou-se no início dos anos 1990 MVP é derivado do MVC Doistipos de implementação Passive View Supervising Controller Presenter assume a funcionalidade do MVC Controller View é responsávelpormanipularoseventos da IU Modeltorna-se estritamente um Modelo de Domínio (Domain Model) Maisvoltado a Interface com Usuário (IU)
MVC vs MVP (Passive View) Presenter Controller Model View Model View
MVP (Supervising Controller) Presenter Model View
demo MVP Usando SharePoint
Model View ViewModel (MVVM) Histórico Especialização do MVP, conhecidacomoModelo de Apresentação (Presentation Model) Construídoespecificamenteparaosambientes WPF e Silverlight Model e Viewfuncionamcomo no MVC ViewModel é um “Model da View” Eleestende o Model com comportamentos (behaviors) que o Viewpossausar Associação de dados (data binding) entre View e Model Passacomandos entre View e Model
MVP (Passive View) vs MVVM ViewModel Presenter View Model Model View
demo MVVM Usando WPF
O queusaronde? Model View Controller (MVC) ASP.Net MVC 3  Aplicações web desconectadas Model View Presenter (MVP) Web Forms/SharePoint, Windows Forms  Lógica de estadoda IU Model View ViewModel (MVVM) Silverlight, WPF Associação de dados (data binding) bidirecional
Recursos Recursospara IT Pros http://technet.microsoft.com/pt-br RecursosparaDesenvolvedores http://msdn.microsoft.com/pt-br
Obrigatorio Nãoesqueça de preenchersuaavaliação online www.teched.com.br/avaliacao
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mais conteúdo relacionado

Mais procurados

MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )Ahmed Emad
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
 
MVVM in iOS presentation
MVVM in iOS presentationMVVM in iOS presentation
MVVM in iOS presentationG ABHISEK
 
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
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSJinkyu Kim
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
Design patterns in android
Design patterns in androidDesign patterns in android
Design patterns in androidZahra Heydari
 
Padrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyPadrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyJoão Carlos Ottobboni
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais okMarcos Morais de Sousa
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Elaine Cecília Gatto
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 

Mais procurados (20)

MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
 
MVVM in iOS presentation
MVVM in iOS presentationMVVM in iOS presentation
MVVM in iOS presentation
 
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
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Design patterns in android
Design patterns in androidDesign patterns in android
Design patterns in android
 
Padrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyPadrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e Strategy
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais ok
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Semelhante a MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais

Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 
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
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoAlexandre Andrade
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIFelipe Knappe
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010joselinoneto
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBRafael França
 

Semelhante a MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais (20)

MVC MVP MVVM para Web
MVC MVP MVVM para WebMVC MVP MVVM para Web
MVC MVP MVVM para Web
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
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
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
MVC Pattern
MVC PatternMVC Pattern
MVC Pattern
 
Camadas
CamadasCamadas
Camadas
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
 
Angular js
Angular jsAngular js
Angular js
 
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
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEI
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
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
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
ASP .NET MVC na Prática
ASP .NET MVC na PráticaASP .NET MVC na Prática
ASP .NET MVC na Prática
 
Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 

MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais

  • 1.
  • 2. MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisAPPI 306 Alexandre Ricardo Nardi Jorge Tressino Rua Consultores Microsoft Brasil
  • 3. O queVeremos e o queNãoVeremos Veremos: Uma investigação de comodiferentespadrões de arquitetura de software se relacionam com diferentestecnologias de desenvolvimento da Microsoft Uma discussão de “ondeusar o quê” NãoVeremos: Uma discussãoexaustivasobrepadrões de arquitetura de software
  • 4. VisãoGeral O que, porquee comosobreospadrõesarquiteturais Model View Controller (MVC) Model View Presenter (MVP) Model View ViewModel (MVVM) Exemplos MVC: ASP.Net MVC 3 MVP: SharePoint MVVM: WPF O queusaronde?
  • 5. O que é Model View (C ou P ou VM)? Padrõesquedescrevemumaabordagemparadesenvolvimento de software Osmódulosincluem Model – Dados e comportamento View – Camada de apresentação C ou VM ou P – Lógicapara “grudar as coisas” Essespadrões se baseiamem “Separação de Responsabilidades” Como emmuitos outros tipos de frameworks de sistemas Como isto é diferente do desenvolvimentoem n-camadas dos anos 90 Quem se lembra do Distributed interNet Architecture (DNA)?
  • 6. Porque Model View (C ou P ou VM)? Ospadrõespossuemobjetivossemelhantes. Contudo, o fazem de modosdiferentes Osobjetivos dos padrõessãoaumentar: Modularidade Flexibilidade Testabilidade Mantenibilidade
  • 7. Model View Controller (MVC) Descritoinicialmenteem 1979 paraSmalTalkpara Xerox PARC O controller é a peça central quedesacopla o Model e o View Fluxo de controle: Evento de interação do usuário Controllermanipula o evento e o converteparaumaação do usuárioque o Modelpossaentender Modelgerencia o comportamento e dados do domínio da aplicação O Viewinterage com o Controller e o Modelparagerar a interface com o usuário
  • 8. Client/Server (DNA) vs MVC Controller Client-----------------------Objetos de Negócio Model Server-----------------------Dados dos Objetos de Negócio View
  • 11. Model View Presenter (MVP) MVP originou-se no início dos anos 1990 MVP é derivado do MVC Doistipos de implementação Passive View Supervising Controller Presenter assume a funcionalidade do MVC Controller View é responsávelpormanipularoseventos da IU Modeltorna-se estritamente um Modelo de Domínio (Domain Model) Maisvoltado a Interface com Usuário (IU)
  • 12. MVC vs MVP (Passive View) Presenter Controller Model View Model View
  • 13. MVP (Supervising Controller) Presenter Model View
  • 14. demo MVP Usando SharePoint
  • 15. Model View ViewModel (MVVM) Histórico Especialização do MVP, conhecidacomoModelo de Apresentação (Presentation Model) Construídoespecificamenteparaosambientes WPF e Silverlight Model e Viewfuncionamcomo no MVC ViewModel é um “Model da View” Eleestende o Model com comportamentos (behaviors) que o Viewpossausar Associação de dados (data binding) entre View e Model Passacomandos entre View e Model
  • 16. MVP (Passive View) vs MVVM ViewModel Presenter View Model Model View
  • 18. O queusaronde? Model View Controller (MVC) ASP.Net MVC 3 Aplicações web desconectadas Model View Presenter (MVP) Web Forms/SharePoint, Windows Forms Lógica de estadoda IU Model View ViewModel (MVVM) Silverlight, WPF Associação de dados (data binding) bidirecional
  • 19. Recursos Recursospara IT Pros http://technet.microsoft.com/pt-br RecursosparaDesenvolvedores http://msdn.microsoft.com/pt-br
  • 20. Obrigatorio Nãoesqueça de preenchersuaavaliação online www.teched.com.br/avaliacao
  • 21. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notas do Editor

  1. MVC was first described in 1979[2] by TrygveReenskaug, then working on Smalltalk at Xerox PARC.
  2. Exemplo de observer (especialização/subset do publisher/subscriber): serviço de notificação do TFS (método Notify)GoF:ErichGammaRichardHelmRalphJohnsonJohnVlissides
  3. Demo 1 - MVCDemonstrar o pattern MVC através do framework ASP.NET MVC 3 com a aplicação de exemplo MVC Music Store. Utilizar um caso de uso da loja como exemplo. Referênciashttp://www.asp.net/mvc/mvc3http://mvcmusicstore.codeplex.com/
  4. Demo 2 - MVPDemonstrar o pattern MVP através de uma implementação de WebPart no SharePoint. O objetivo é recuperar os dados de uma custom list e fazer bind em uma View que contém um grid. Referênciashttp://msdn.microsoft.com/en-us/library/ff649571.aspxhttp://msdn.microsoft.com/en-us/magazine/cc188690.aspxhttp://weblogs.asp.net/bsimser/archive/2006/07/18/Model_2D00_View_2D00_Presenter-Pattern-with-SharePoint-Web-Parts.aspxhttp://charlescho.wordpress.com/2008/07/27/mvp-pattern-with-sharepoint/http://www.henrycordes.nl/post/2009/04/Model-View-Presenter-design-pattern-in-Sharepoint.aspx
  5. Demo 3 - MVVMDemonstrar o pattern MVVM através do framework PRISM com uma aplicação Windows Presentation Foundation. Referências