MVC, MVP e MVVM: Uma
Comparação de Padrões Arquiteturais
APPI 306
Alexandre Ricardo Nardi
Jorge Tressino Rua
Consultores
Microsoft Brasil
O que Veremos e o que Não Veremos
Veremos:
Uma investigação de como diferentes padrões de
arquitetura de software se relacionam com diferentes
tecnologias de desenvolvimento da Microsoft
Uma discussão de “onde usar o quê”
Não Veremos:
Uma discussão exaustiva sobre padrões de arquitetura
de software
Visão Geral
O que, por que e como sobre os padrões
arquiteturais
Model View Controller (MVC)
Model View Presenter (MVP)
Model View ViewModel (MVVM)
Exemplos
MVC: ASP.Net MVC 3
MVP: SharePoint
MVVM: WPF
O que usar onde?
O que é Model View (C ou P ou VM)?
Padrões que descrevem uma abordagem para
desenvolvimento de software
Os módulos incluem
Model – Dados e comportamento
View – Camada de apresentação
C ou VM ou P – Lógica para “grudar as coisas”
Esses padrões se baseiam em “Separação de
Responsabilidades”
Como em muitos outros tipos de frameworks de sistemas
Por que Model View (C ou P ou VM)?
Os padrões possuem objetivos semelhantes.
Contudo, o fazem de modos diferentes
Os objetivos dos padrões são aumentar:
Modularidade
Flexibilidade
Testabilidade
Mantenibilidade
Model View Controller (MVC)
Descrito inicialmente em 1979 para SmalTalk para Xerox
PARC
O controller é a peça central que desacopla o Model e o
View
Fluxo de controle:
Evento de interação do usuário
Controller manipula o evento e o converte para uma ação do
usuário que o Model possa entender
Model gerencia o comportamento e dados do domínio da
aplicação
O View interage com o Controller e o Model para gerar a
interface com o usuário
Client/Server (DNA) vs MVC
Client
Controller
----------------------Objetos de Negócio
Server
----------------------Dados dos Objetos
de Negócio
View
Model
Padrão MVC Observer
Controller
View
Model
ASP.Net MVC 3
Model View Presenter (MVP)
MVP originou-se no início dos anos 1990
MVP é derivado do MVC
Dois tipos de implementação
Passive View
Supervising Controller
Presenter assume a funcionalidade do MVC Controller
View é responsável por manipular os eventos da IU
Model torna-se estritamente um Modelo de Domínio
(Domain Model)
Mais voltado a Interface com Usuário (IU)
MVC vs MVP (Passive View)
Presenter
Controller
View
Model
View
Model
MVP (Supervising Controller)
Presenter
View
Model
MVP Usando SharePoint
Model View ViewModel (MVVM)
Especialização do MVP, conhecida como Modelo de
Apresentação (Presentation Model)
Construído especificamente para os ambientes WPF e
Silverlight
Model e View funcionam como no MVC
ViewModel é um “Model da View”
Ele estende o Model com comportamentos (behaviors) que o
View possa usar
Associação de dados (data binding) entre View e Model
Passa comandos entre View e Model
MVP (Passive View) vs MVVM
Presenter
View
Model
ViewModel
View
Model
MVVM Usando WPF
O que usar onde?
Model View Controller (MVC)
ASP.Net MVC 3
Aplicações web desconectadas
Model View Presenter (MVP)
Web Forms/SharePoint, Windows Forms
Lógica de estado da IU
Model View ViewModel (MVVM)
Silverlight, WPF
Associação de dados (data binding) bidirecional
Get the free mobile app for your phone
http:/ / gettag.mobi
http://technet.microsoft.com/pt-br
Get the free mobile app for your phone
http:/ / gettag.mobi
http://msdn.microsoft.com/pt-br
Não esqueça de preencher sua
avaliação online
www.teched.com.br/avaliacao
Get the free mobile app for your phone
http:/ / gettag.mobi
© 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.
Download

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