O documento compara os padrões arquiteturais MVC, MVP e MVVM, discutindo suas definições, objetivos e quando cada um é mais apropriado. O MVC é mais adequado para aplicações web, o MVP para interfaces com usuário e o MVVM é melhor para aplicações WPF que utilizam associação de dados bidirecional.
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
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
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
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