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 in iOS presentation
MVVM in iOS presentationMVVM in iOS presentation
MVVM in iOS presentationG ABHISEK
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Introdução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareIntrodução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareLucas Amaral
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Elaine Cecília Gatto
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareRonney Moreira de Castro
 
MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)Yaroslav Voloshyn
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de SoftwareCloves da Rocha
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitoslicardino
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 

Mais procurados (20)

Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
MVVM in iOS presentation
MVVM in iOS presentationMVVM in iOS presentation
MVVM in iOS presentation
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Mvvm basics
Mvvm basicsMvvm basics
Mvvm basics
 
Mvc, mvp, mvvm...
Mvc, mvp, mvvm...Mvc, mvp, mvvm...
Mvc, mvp, mvvm...
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Introdução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareIntrodução à Gerência de configuração de Software
Introdução à Gerência de configuração de Software
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Qualidade de Software: MPS.BR
Qualidade de Software: MPS.BRQualidade de Software: MPS.BR
Qualidade de Software: MPS.BR
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de Software
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 

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

Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
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
 
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
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
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 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
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 

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