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
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTC# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTDr. Awase Khirni Syed
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34Mayara Fernandes
 
Low code platform and Outsystems
Low code platform and Outsystems Low code platform and Outsystems
Low code platform and Outsystems Dzung Nguyen
 
Create Amazing Reports in OutSystems
Create Amazing Reports in OutSystemsCreate Amazing Reports in OutSystems
Create Amazing Reports in OutSystemsOutSystems
 
[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트
[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트
[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트Atlassian 대한민국
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Ambientes virtuais de aprendizagem
Ambientes virtuais de aprendizagemAmbientes virtuais de aprendizagem
Ambientes virtuais de aprendizagemJuFRodrigues
 
OutSystems: A more efficient way to build apps!
OutSystems: A more efficient way to build apps!OutSystems: A more efficient way to build apps!
OutSystems: A more efficient way to build apps!Russ Fustino
 
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 SangIn Choung
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeterEdlaine Zamora
 
다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...
다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...
다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...Joseph Yonggoo Yeo
 
Automation Framework Presentation
Automation Framework PresentationAutomation Framework Presentation
Automation Framework PresentationBen Ngo
 
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...Rosa Sampaio
 

Mais procurados (20)

MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTC# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENT
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34
 
Low code platform and Outsystems
Low code platform and Outsystems Low code platform and Outsystems
Low code platform and Outsystems
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
JSP: Introdução Parte 1
JSP: Introdução Parte 1JSP: Introdução Parte 1
JSP: Introdução Parte 1
 
Create Amazing Reports in OutSystems
Create Amazing Reports in OutSystemsCreate Amazing Reports in OutSystems
Create Amazing Reports in OutSystems
 
[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트
[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트
[AIS 2018] [Team Tools_Basic] Confluence는 어떻게 쓰나요 - 모우소프트
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
API Management in Azure
API Management in AzureAPI Management in Azure
API Management in Azure
 
Ambientes virtuais de aprendizagem
Ambientes virtuais de aprendizagemAmbientes virtuais de aprendizagem
Ambientes virtuais de aprendizagem
 
OutSystems: A more efficient way to build apps!
OutSystems: A more efficient way to build apps!OutSystems: A more efficient way to build apps!
OutSystems: A more efficient way to build apps!
 
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeter
 
다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...
다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...
다른 회사는 어떻게 QA, 테스팅을 하고 있을까? (google, facebook, atlass...
 
Automation Framework Presentation
Automation Framework PresentationAutomation Framework Presentation
Automation Framework Presentation
 
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
 

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
 
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
 

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
 
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
 

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