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

المعايير التربوية والفنية لبرامج الوسائط المتعددة التعليمية
المعايير التربوية والفنية لبرامج الوسائط المتعددة التعليميةالمعايير التربوية والفنية لبرامج الوسائط المتعددة التعليمية
المعايير التربوية والفنية لبرامج الوسائط المتعددة التعليمية
amy Jamy
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso Cognitivo
Laís Berlatto
 
بيئات التعلم الالكتروني
بيئات التعلم الالكترونيبيئات التعلم الالكتروني
بيئات التعلم الالكتروني
ashwaq76
 

Mais procurados (20)

المعايير التربوية والفنية لبرامج الوسائط المتعددة التعليمية
المعايير التربوية والفنية لبرامج الوسائط المتعددة التعليميةالمعايير التربوية والفنية لبرامج الوسائط المتعددة التعليمية
المعايير التربوية والفنية لبرامج الوسائط المتعددة التعليمية
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Microservices
Microservices Microservices
Microservices
 
Introduction to mvc architecture
Introduction to mvc architectureIntroduction to mvc architecture
Introduction to mvc architecture
 
QAOps - Agile Trends 2021
QAOps - Agile Trends 2021QAOps - Agile Trends 2021
QAOps - Agile Trends 2021
 
iOS Architectures
iOS ArchitecturesiOS Architectures
iOS Architectures
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso Cognitivo
 
Exercicios
ExerciciosExercicios
Exercicios
 
بيئات التعلم الالكتروني
بيئات التعلم الالكترونيبيئات التعلم الالكتروني
بيئات التعلم الالكتروني
 
Design patterns in android
Design patterns in androidDesign patterns in android
Design patterns in android
 
Gang of Four in Java
Gang of Four in Java Gang of Four in Java
Gang of Four in Java
 
「落ちない」AWSのインフラ構成、システム要件にあわせたパターンをご紹介
「落ちない」AWSのインフラ構成、システム要件にあわせたパターンをご紹介「落ちない」AWSのインフラ構成、システム要件にあわせたパターンをご紹介
「落ちない」AWSのインフラ構成、システム要件にあわせたパターンをご紹介
 
Roteiro de elabora o de um caso de uso
Roteiro de elabora o de um caso de usoRoteiro de elabora o de um caso de uso
Roteiro de elabora o de um caso de uso
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
 
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)
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMailAWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
 
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
 

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

Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
Rodrigo Kono
 
Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010
joselinoneto
 

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