Padrões Arquiteturais - MVC, MVP e MVVM

1.899 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.899
No SlideShare
0
A partir de incorporações
0
Número de incorporações
23
Ações
Compartilhamentos
0
Downloads
87
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Padrões Arquiteturais - MVC, MVP e MVVM

  1. 1. Curso: Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Arquitetura de Software Prof. Msc. Petrônio Cândido Lima e Silva Dupla: Aline Ferreira e Aricelio de Souza Turma: 5º Período
  2. 2. - Histórico; - Fundamentação Teórica; - Exemplo de Implementação; Padrões de Arquitetura: MVC, MVP e MVVM
  3. 3. Padrão MVC • Em 1979 Trygve Reenskaug sugeriu o padrão TMVE ( Thing–Model–View–Editor), predecessor do atual MVC,em razão da impossibilidade, de reutilização de código, na época.
  4. 4. Padrão MVC o Thing (Coisa): algo de interesse do usuário; o Model: define a representação de uma abstração na forma de dados o View: representações visuais de um dado Modelo o Editor : Interface entre o usuário e a view;
  5. 5. Padrão MVC • No mesmo ano propôs uma evolução do seu até então padrão MVCE (Model- View- Controller-Editor), onde: • Model: é definido como um objeto que representa o conhecimento;
  6. 6. Padrão MVC • View: é a representação visual de uma Model; • Controller: conexão entre o usuário e o sistema; • Editor: Controller que permite ao usuário alterar informações apresentadas na view;
  7. 7. Padrão MVC • Está ideia foi posteriormente implementada por Jim Althoff, com algumas modificações, sendo o atual padrão MVC ;
  8. 8. Padrão MVC • A arquitetura MVC (Model-View-Controller), consiste na divisão de uma aplicação em três camadas físicas, separando a informação de sua apresentação.
  9. 9. Padrão MVC View (Apresentação) ● Camada de interface com usuário; ● Inclui os elementos de exibição no cliente : HTML, XML, ASP, Applets. Model (Lógica de Aplicação) ● Modela os dados e o comportamento por atrás do processo de negócios; ● Responsável pela manipulação de dados; Controller (Controle) ● Intermediaria entre a camada de apresentação e a lógica; ● Controla e mapeia as ações;
  10. 10. Padrão MVC
  11. 11. Padrão MVC • É indicada para sistemas maiores; • Torna a aplicação escalavél; • Model, view e controller são independentes;
  12. 12. Exemplo
  13. 13. Exemplo - Sistema de Votação
  14. 14. Padrão MVP • O MVP foi visto a primeira vez na IBM, e posteriormente na Taligent, onde era utilizado para o desenvolvimento de aplicações em C++, tendo posteriormente migrado para JAVA.
  15. 15. Padrão MVP • Em 1997 Andy Bower e Blair McGlashan da Dolphin Smalltalk adaptaram o padrão MVP para formar a base para seu framework de interface de usuário. • Em 2006 foi inserido pela Microsoft na documentação do .NET framework.
  16. 16. Padrão MVP • O padrão MVP (Model-View-Presenter) , possui como objetivo, separar a camada de apresentação das camadas de dados e regras de negócio.
  17. 17. Padrão MVP
  18. 18. Padrão MVP View ● Interface com o usuário; ● implementa uma interface que expõe os campos e eventos que o Presenter necessita; Model ● São os objetos que serão manipulados; ● Um objeto Model implementa uma interface que expõe os campos que o Presenter irá atualizar quando sofrer alguma alteração na View. Presenter ● É a ligação entre a Model e a view; ● Ele é encarregado de atualizar a View quando o Model é alterado e de sincronizar o Model em relação ao View.
  19. 19. Padrão MVP • O MVP diferencia- se do MVC no conceito, pois as funções do Presenter são semelhantes a do Controller. • A manutenção do sistema é muito mais simples, já que, as responsabilidades estão divididas em classes distintas.
  20. 20. Exemplo
  21. 21. Exemplo
  22. 22. Exemplo
  23. 23. Exemplo
  24. 24. Exemplo
  25. 25. Exemplo
  26. 26. Exemplo
  27. 27. Exemplo
  28. 28. Padrão MVVM • O MVVM (Model-View-ViewModel) é um padrão criado em 2005 por John Gossman, um dos arquitetos do WPF e Silverlight na Microsoft. • Este padrão é identico ao MVP e é específico para a arquitetura do WPF e Silverligh.
  29. 29. Padrão MVVM • Também é uma especialização do padrão PM (Presentation-Model), introduzido por Martin Fowler em 2004.
  30. 30. Padrão MVVM
  31. 31. Padrão MVVM Model ● Representa o conceito do negócio; View ● Controle gráfico responsável pela apresentação de dados ao usuário; ● Uma view pode ser uma janela WPF, uma página do Silverlight, ou apenas um modelo de controle de dados XAML. View- Model ● Contém a lógica de interface com o usuário, os comandos, os eventos e uma referência ao modelo; ● A atualização de dados na interface é feita por um componente fornecido pelo WPF e Silverligh;
  32. 32. Padrão MVVM • A comunicação entre as camadas view e view- model é feita por um mecanismo denominado binding;
  33. 33. Padrão MVVM
  34. 34. Padrão MVVM • A utilização da arquitetura MVVM requer a divisão, do código da aplicação em diferentes blocos denominados camadas; • Código mais flexível, e fácil de testar;
  35. 35. Padrão MVVM
  36. 36. Exemplo
  37. 37. Exemplo
  38. 38. Exemplo
  39. 39. Exemplo
  40. 40. Exemplo <UserControl x:Class="Aplicando_MVVM.View.ClienteView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"> <Grid> <StackPanel HorizontalAlignment="Left"> <ItemsControl ItemsSource="{Binding Path=Clientes}"> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal"> <TextBox Text="{Binding Path=Nome, Mode=TwoWay}" Width="100" /> <TextBox Text="{Binding Path=Email, Mode=TwoWay}" Width="150" /> </StackPanel> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </StackPanel> </Grid> </UserControl>
  41. 41. Exemplo
  42. 42. Exemplo
  43. 43. Exemplo
  44. 44. Exemplo <Window x:Class="Aplicando_MVVM.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:view="clr-namespace:Aplicando_MVVM.View" Title="Usando o Padrão MVVM" Height="350" Width="525" Loaded="Window_Loaded"> <Grid Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="460*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="80*"/> </Grid.RowDefinitions> <Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="0"> <Label Height="30" Width="400" Content="Exemplo de utilização do Padrão MVVM - WPF" Background="Aqua"/> </Border> <Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="1" Margin="0,5,0,0" Background="Beige"> <view:ClienteView x:Name="ClienteView"/> </Border> </Grid> </Window>
  45. 45. Exemplo
  46. 46. Exemplo
  47. 47. [1] de Souza, Carlos Eduardo Ferreira. Entendendo o Pattern Model-View-ViewModel (MVVM). Nov 2010. Disponível em: < http://imasters.com.br/artigo/18900/desenvolvimento/entendendo-o-pattern-model-view-viewmodel-mvvm/ >. Acesso em: 26 Abr. 2014. [2] LUCIANO, Josué; ALVES, Wallison Joel Barabará. Padrão de Arquitetura MVC: Model-View- Controller. 2011, Disponível em: < http://www.unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/16112011142249.pdf>. Acesso em: 26 Abr. 2014. [3] Macoratti, José Carlos. Padrões de Projeto : O modelo MVC - Model View Controller. Disponível em: <http://www.macoratti.net/vbn_mvc.htm>. Acesso em: 26 Abr. 2014. [4] Macoratti, José Carlos. ASP.NET - MVC - Model-View-Controller – Introdução. Disponível em: < http://www.macoratti.net/08/06/asp_mvc1.htm>. Acesso em: 26 Abr. 2014. [5] Quicoli, Paulo. O Padrão MVP (Model-View-Presenter). Disponível em: < http://www.devmedia.com.br/o-padrao-mvp-model-view-presenter/3043>. Acesso em: 26 Abr. 2014. Referências
  48. 48. [6] ODISI, Francis Benito. Geração de código para acesso a dados utilizando os padrões MVC e DAO. Nov 2008. Disponível em: <http://siaibib01.univali.br/pdf/Francis%20Benito%20Odisi.pdf>. Acesso em: 26 Abr. 2014. [7] MAGELA, R. Engenharia de software aplicada: fundamentos. Rio de Janeiro: Alta Books, 2006. [8] DE ALMEIDA, Rodrigo Rebouças. Model-View-Controller (MVC). Disponível em: < http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/arqu/mvc/mvc.htm>. Acesso em: 26 Abr. 2014. [9] FOWLER, Martin. GUI Arquitectures. JUL 2006. Disponível em: <http://www.martinfowler.com/eaaDev/uiArchs.html>. Acesso em: 27 Abr. 2014. [10] POTEL, Mike. MVP: Model-View-Presenter - The Taligent Programming Model for C++ and Java. 1996. Disponível em: < http://www.wildcrest.com/Potel/Portfolio/mvp.pdf>. Acesso em: 27 Abr. 2014. [11] MARTINS, Daniel Fernandes .Apresentando Model-View-Presenter, o MVC focado na visualização. Out 2012. Disponível em: < http://javafree.uol.com.br/artigo/871446/Apresentando-ModelViewPresenter-o-MVC-focado-na-visualizacao.html >. Acesso em: 28 Abr. 2014. Referências
  49. 49. [12] C.M., Kelson. MVP (Model-View-Presenter/Modelo-Visão-Apresentador). Mai 2012. Disponível em: < http://kelsoncm.com/tic/mvp-model-view-presentermodelo-visao-apresentador/>. Acesso em: 28 Abr. 2014. [13] Macoratti, José Carlos. NET - Apresentando o padrão Model View ViewModel. Disponível em: < http://www.macoratti.net/11/06/pp_mvvm1.htm>. Acesso em: 28 Abr. 2014. [14] Balivo, Jefferson. Desvendando o padrão MVVM. Set 2012. Disponível em: < http://www.balivo.com.br/desvendando-o-padrao-mvvm/>. Acesso em: 28 Abr. 2014. Referências
  50. 50. Obrigado

×