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

8.957 visualizações

Publicada em

0 comentários
12 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
8.957
No SlideShare
0
A partir de incorporações
0
Número de incorporações
16
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
12
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • MVC was first described in 1979[2] by TrygveReenskaug, then working on Smalltalk at Xerox PARC.
  • Exemplo de observer (especialização/subset do publisher/subscriber): serviço de notificação do TFS (método Notify)GoF:ErichGammaRichardHelmRalphJohnsonJohnVlissides
  • 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/
  • 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
  • Demo 3 - MVVMDemonstrar o pattern MVVM através do framework PRISM com uma aplicação Windows Presentation Foundation. Referências  
  • MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais

    1. 1.
    2. 2. MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisAPPI 306<br />Alexandre Ricardo Nardi<br />Jorge Tressino Rua<br />Consultores<br />Microsoft Brasil<br />
    3. 3. O queVeremos e o queNãoVeremos<br />Veremos:<br />Uma investigação de comodiferentespadrões de arquitetura de software se relacionam com diferentestecnologias de desenvolvimento da Microsoft<br />Uma discussão de “ondeusar o quê”<br />NãoVeremos:<br />Uma discussãoexaustivasobrepadrões de arquitetura de software<br />
    4. 4. VisãoGeral<br />O que, porquee comosobreospadrõesarquiteturais<br />Model View Controller (MVC) <br />Model View Presenter (MVP)<br />Model View ViewModel (MVVM)<br />Exemplos<br />MVC: ASP.Net MVC 3<br />MVP: SharePoint<br />MVVM: WPF<br />O queusaronde?<br />
    5. 5. O que é Model View (C ou P ou VM)?<br />Padrõesquedescrevemumaabordagemparadesenvolvimento de software<br />Osmódulosincluem<br />Model – Dados e comportamento<br />View – Camada de apresentação<br />C ou VM ou P – Lógicapara “grudar as coisas”<br />Essespadrões se baseiamem “Separação de Responsabilidades”<br />Como emmuitos outros tipos de frameworks de sistemas<br />Como isto é diferente do desenvolvimentoem n-camadas dos anos 90<br />Quem se lembra do Distributed interNet Architecture (DNA)?<br />
    6. 6. Porque Model View (C ou P ou VM)?<br />Ospadrõespossuemobjetivossemelhantes. Contudo, o fazem de modosdiferentes<br />Osobjetivos dos padrõessãoaumentar:<br />Modularidade<br />Flexibilidade<br />Testabilidade<br />Mantenibilidade<br />
    7. 7. Model View Controller (MVC)<br />Descritoinicialmenteem 1979 paraSmalTalkpara Xerox PARC<br />O controller é a peça central quedesacopla o Model e o View<br />Fluxo de controle:<br />Evento de interação do usuário<br />Controllermanipula o evento e o converteparaumaação do usuárioque o Modelpossaentender<br />Modelgerencia o comportamento e dados do domínio da aplicação<br />O Viewinterage com o Controller e o Modelparagerar a interface com o usuário<br />
    8. 8. Client/Server (DNA) vs MVC<br />Controller<br />Client-----------------------Objetos de Negócio<br />Model<br />Server-----------------------Dados dos Objetos de Negócio<br />View<br />
    9. 9. PadrãoMVC Observer<br />Controller<br />Model<br />View<br />
    10. 10. demo<br />ASP.Net MVC 3<br />
    11. 11. Model View Presenter (MVP)<br />MVP originou-se no início dos anos 1990<br />MVP é derivado do MVC<br />Doistipos de implementação<br />Passive View<br />Supervising Controller<br />Presenter assume a funcionalidade do MVC Controller<br />View é responsávelpormanipularoseventos da IU<br />Modeltorna-se estritamente um Modelo de Domínio (Domain Model)<br />Maisvoltado a Interface com Usuário (IU)<br />
    12. 12. MVC vs MVP (Passive View)<br />Presenter<br />Controller<br />Model<br />View<br />Model<br />View<br />
    13. 13. MVP (Supervising Controller)<br />Presenter<br />Model<br />View<br />
    14. 14. demo<br />MVP Usando SharePoint<br />
    15. 15. Model View ViewModel (MVVM)<br />Histórico<br />Especialização do MVP, conhecidacomoModelo de Apresentação (Presentation Model)<br />Construídoespecificamenteparaosambientes WPF e Silverlight<br />Model e Viewfuncionamcomo no MVC<br />ViewModel é um “Model da View”<br />Eleestende o Model com comportamentos (behaviors) que o Viewpossausar<br />Associação de dados (data binding) entre View e Model<br />Passacomandos entre View e Model<br />
    16. 16. MVP (Passive View) vs MVVM<br />ViewModel<br />Presenter<br />View<br />Model<br />Model<br />View<br />
    17. 17. demo<br />MVVM Usando WPF<br />
    18. 18. O queusaronde?<br />Model View Controller (MVC)<br />ASP.Net MVC 3 <br />Aplicações web desconectadas<br />Model View Presenter (MVP)<br />Web Forms/SharePoint, Windows Forms <br />Lógica de estadoda IU<br />Model View ViewModel (MVVM)<br />Silverlight, WPF<br />Associação de dados (data binding) bidirecional<br />
    19. 19. Recursos<br />Recursospara IT Pros<br />http://technet.microsoft.com/pt-br<br />RecursosparaDesenvolvedores<br />http://msdn.microsoft.com/pt-br<br />
    20. 20. Obrigatorio<br />Nãoesqueça de preenchersuaavaliação online<br />www.teched.com.br/avaliacao<br />
    21. 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.<br />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.<br />

    ×