Padrão Arquitetural MVC e suas aplicações para Web Rafael Mendonça França DCOMP - UFS
Sumário <ul><li>Introdução </li></ul><ul><li>Padrão MVC </li></ul><ul><li>Evolução do desenvolvimento WEB </li></ul><ul><l...
Introdução <ul><li>A luta pela qualidade no Software vem produzindo a anos padrões e técnicas para construção de sistemas ...
Introdução <ul><li>Aplicações de uma camada: </li></ul><ul><ul><li>Antigamente um aplicativo era desenvolvido para ser usa...
Introdução <ul><li>Aplicações de duas camadas: </li></ul><ul><ul><li>Surgiram com a necessidade de compartilhar a lógica d...
Introdução <ul><li>Aplicações de n camadas: </li></ul><ul><ul><li>Separa a lógica de negócio da interface com o usuário. <...
Padrão MVC: Model-View-Controller <ul><li>É um padrão arquitetural que divide as aplicações em 3 camadas independentes. </...
Padrão MVC: Model-View-Controller <ul><li>Camadas do MVC: </li></ul><ul><ul><li>Camada de Apresentação (View)‏ </li></ul><...
Padrão MVC: Model-View-Controller
Evolução do desenvolvimento WEB <ul><li>Sem o MVC </li></ul><ul><ul><li>Na primeira fase da evolução apenas eram produzida...
Evolução do desenvolvimento WEB <ul><li>Model 1: Arquitetura centrada na página </li></ul><ul><ul><li>As páginas JSP trata...
Evolução do desenvolvimento WEB <ul><li>Model 2: Arquitetura centrada no Servlet </li></ul><ul><ul><li>As aplicações imple...
Implementações do MVC <ul><li>.NET </li></ul><ul><ul><li>Microsoft UIP </li></ul></ul><ul><ul><li>Maverick.NET </li></ul><...
JSF – JavaServer Faces <ul><li>É uma implementação do Model 2. </li></ul><ul><li>É também uma especificação da JCP – Java ...
JSF – JavaServer Faces
JSF – JavaServer Faces <ul><li>Principais partes do JSF </li></ul><ul><ul><li>Componentes de Interface com o usuário </li>...
JSF – JavaServer Faces <ul><li>Principais partes do JSF (continuação)‏ </li></ul><ul><ul><li>Validadores </li></ul></ul><u...
JSF – JavaServer Faces <ul><li>Principais partes do JSF (continuação)‏ </li></ul><ul><ul><li>Conversores </li></ul></ul><u...
JSF – JavaServer Faces <ul><li>Principais partes do JSF (continuação)‏ </li></ul><ul><ul><li>Mensagens </li></ul></ul><ul>...
JSF – JavaServer Faces <ul><li>Ciclo de vida do processo de requisição </li></ul><ul><ul><li>O clico de vida da requisiçõe...
JSF – JavaServer Faces <ul><li>Ciclo de vida do processo de requisição (continuação)‏ </li></ul><ul><ul><li>Os  listeners ...
JSF – JavaServer Faces
Bibliografia <ul><li>K. D. Mann. JavaServer Faces In Action. Manning, 2005 </li></ul><ul><li>G. Seshadri. Understanding Ja...
Upcoming SlideShare
Loading in...5
×

Padrão Arquitetural MVC e suas aplicações para WEB

10,145

Published on

Published in: Technology
1 Comment
6 Likes
Statistics
Notes
  • Muito legal....o Slide está muito bom...Parabéns!!!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
10,145
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
449
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide

Transcript of "Padrão Arquitetural MVC e suas aplicações para WEB"

  1. 1. Padrão Arquitetural MVC e suas aplicações para Web Rafael Mendonça França DCOMP - UFS
  2. 2. Sumário <ul><li>Introdução </li></ul><ul><li>Padrão MVC </li></ul><ul><li>Evolução do desenvolvimento WEB </li></ul><ul><li>Implementações do MVC </li></ul><ul><li>JSF </li></ul>
  3. 3. Introdução <ul><li>A luta pela qualidade no Software vem produzindo a anos padrões e técnicas para construção de sistemas com menos defeitos e de manutenção mais fácil e simples. </li></ul><ul><li>O uso de camadas é um padrão arquitetural que ajuda na tarefa de separar responsabilidades, promovendo baixo acoplamento e alta coesão </li></ul>
  4. 4. Introdução <ul><li>Aplicações de uma camada: </li></ul><ul><ul><li>Antigamente um aplicativo era desenvolvido para ser usado em uma única máquina. </li></ul></ul><ul><ul><li>Esse aplicativo continha todas a funcionalidades em um único módulo gerado por uma grande quantidade de linhas de código e de manutenção nada fácil. </li></ul></ul><ul><ul><li>A entrada do usuário, verificação, lógica de negócio e acesso a banco de dados estava presente em um mesmo lugar. </li></ul></ul>Lógica de Apresentação Lógica de Negócios Acesso a Dados
  5. 5. Introdução <ul><li>Aplicações de duas camadas: </li></ul><ul><ul><li>Surgiram com a necessidade de compartilhar a lógica de acesso a dados. </li></ul></ul><ul><ul><li>A base de dados geralmente é colocada em uma máquina específica. </li></ul></ul><ul><ul><li>Aplicativos instalados em estações clientes contendo toda a lógica da aplicação. </li></ul></ul><ul><ul><li>Grande problema com o gerenciamento de versões. </li></ul></ul>Lógica de Apresentação Lógica de Negócios Acesso a Dados
  6. 6. Introdução <ul><li>Aplicações de n camadas: </li></ul><ul><ul><li>Separa a lógica de negócio da interface com o usuário. </li></ul></ul><ul><ul><li>Cada camada é auto-contida o suficiente de forma que a aplicação pode ser dividida em vários computadores numa rede distribuída. </li></ul></ul><ul><ul><li>Possibilita que vários usuários tenham acesso as mesmas aplicações sem ter que instala-las em suas máquinas. </li></ul></ul><ul><ul><li>Torna os sistemas mais flexíveis permitindo que as partes possam ser alteradas de forma independente. </li></ul></ul><ul><ul><li>Facilita a reutilização e manutenção. </li></ul></ul>Lógica de Apresentação Lógica de Negócios Acesso a Dados
  7. 7. Padrão MVC: Model-View-Controller <ul><li>É um padrão arquitetural que divide as aplicações em 3 camadas independentes. </li></ul><ul><li>Permite que um mesmo aplicativo possa ser visualizado através de vária interfaces. </li></ul>
  8. 8. Padrão MVC: Model-View-Controller <ul><li>Camadas do MVC: </li></ul><ul><ul><li>Camada de Apresentação (View)‏ </li></ul></ul><ul><ul><ul><li>Inclui os elementos de exibição no cliente: HTML, XML, Applets, MIDlets. </li></ul></ul></ul><ul><ul><ul><li>É usada para receber a entradas de dados e apresentar o resultado. </li></ul></ul></ul><ul><ul><li>Camada de Lógica da Aplicação (Model)‏ </li></ul></ul><ul><ul><ul><li>Modela os dados e o comportamento por trás do processo de negócio. </li></ul></ul></ul><ul><ul><ul><li>Se preocupa apenas com o armazenamento e geração dos dados. </li></ul></ul></ul><ul><ul><li>Camada de Controle </li></ul></ul><ul><ul><ul><li>Interpreta as ações do usuário e as mapeia para chamadas do modelo. </li></ul></ul></ul><ul><ul><ul><li>É responsável pelo fluxo da aplicação. </li></ul></ul></ul>
  9. 9. Padrão MVC: Model-View-Controller
  10. 10. Evolução do desenvolvimento WEB <ul><li>Sem o MVC </li></ul><ul><ul><li>Na primeira fase da evolução apenas eram produzidas páginas em HTML estático para mostrar informações estáticas. </li></ul></ul><ul><ul><li>Na próxima fase evolutiva, foram usadas tecnologias de geração dinâmica de páginas como o CGI, Servlets e JSP. </li></ul></ul>
  11. 11. Evolução do desenvolvimento WEB <ul><li>Model 1: Arquitetura centrada na página </li></ul><ul><ul><li>As páginas JSP tratam todos os aspectos da aplicação – apresentação, controle e processos de negócio – utilizando JavaBean para processar a lógica e links para a navegação. </li></ul></ul>
  12. 12. Evolução do desenvolvimento WEB <ul><li>Model 2: Arquitetura centrada no Servlet </li></ul><ul><ul><li>As aplicações implementadas utilizando o Model 2 são mais fáceis de manter e extender. </li></ul></ul>
  13. 13. Implementações do MVC <ul><li>.NET </li></ul><ul><ul><li>Microsoft UIP </li></ul></ul><ul><ul><li>Maverick.NET </li></ul></ul><ul><li>ActionScript </li></ul><ul><ul><li>ARP </li></ul></ul><ul><ul><li>PureMVC </li></ul></ul><ul><li>Java </li></ul><ul><ul><li>JavaServer Faces </li></ul></ul><ul><ul><li>Spring Framework </li></ul></ul><ul><ul><li>Struts </li></ul></ul><ul><li>PHP </li></ul><ul><ul><li>Zend Framework </li></ul></ul><ul><ul><li>Symfony Framework </li></ul></ul>
  14. 14. JSF – JavaServer Faces <ul><li>É uma implementação do Model 2. </li></ul><ul><li>É também uma especificação da JCP – Java Community Process. (JSR-127)‏ </li></ul><ul><li>Foi criado com o intuito de facilitar o desenvolvimento de interfaces web. </li></ul><ul><li>Facilita a integração com IDEs. </li></ul><ul><li>Possui um conjunto padrão de componentes. </li></ul><ul><li>Possui uma API para validação dos dados. </li></ul><ul><li>Especifica um modelo para internacionalização e localização. </li></ul>
  15. 15. JSF – JavaServer Faces
  16. 16. JSF – JavaServer Faces <ul><li>Principais partes do JSF </li></ul><ul><ul><li>Componentes de Interface com o usuário </li></ul></ul><ul><ul><ul><li>Foca na interatividade com o usuário final. </li></ul></ul></ul><ul><ul><ul><li>Diferente dos componentes Swing eles ficam residentes no lado do servidor, não do cliente. </li></ul></ul></ul><ul><ul><ul><li>Os componentes tem a capacidade de guardar informações de estado entre as requisições. </li></ul></ul></ul><ul><ul><li>Renderizadores </li></ul></ul><ul><ul><ul><li>São responsáveis por gerar as diferentes formas de visualização (HTML, WML, SVG, applet, etc.)‏ </li></ul></ul></ul><ul><ul><ul><li>São organizados em Render Kits. </li></ul></ul></ul>
  17. 17. JSF – JavaServer Faces <ul><li>Principais partes do JSF (continuação)‏ </li></ul><ul><ul><li>Validadores </li></ul></ul><ul><ul><ul><li>Responsável por validar os dados digitados pelo usuário. </li></ul></ul></ul><ul><ul><ul><li>Os dados são validados no lado do servidor. </li></ul></ul></ul><ul><ul><li>Backing beans </li></ul></ul><ul><ul><ul><li>É responsável pela interação entre a camada de visão e a de modelo. </li></ul></ul></ul><ul><ul><ul><li>Geralmente contém propriedades que serão utilizadas pelos usuários e tratadores de eventos que processarão essas propriedades e irão manipular a interface ou fazer algum processamento da aplicação. </li></ul></ul></ul>
  18. 18. JSF – JavaServer Faces <ul><li>Principais partes do JSF (continuação)‏ </li></ul><ul><ul><li>Conversores </li></ul></ul><ul><ul><ul><li>Responsável por converter um objeto em String para mostra-lo na tela, e de uma String de entrada para um objeto. </li></ul></ul></ul><ul><ul><li>Eventos e listeners </li></ul></ul><ul><ul><ul><li>São responsáveis por capturar e tratar os meios que o usuário interage com os componentes de interface. </li></ul></ul></ul><ul><ul><ul><ul><li>Tipos de eventos: </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Eventos de mudança de valor </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Eventos de ações </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Eventos de modelo de dados </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Eventos de fase </li></ul></ul></ul></ul></ul>
  19. 19. JSF – JavaServer Faces <ul><li>Principais partes do JSF (continuação)‏ </li></ul><ul><ul><li>Mensagens </li></ul></ul><ul><ul><ul><li>Auxiliam a informar o usuários erros na aplicação. </li></ul></ul></ul><ul><ul><ul><li>As mensagens podem ser de dois tipos: </li></ul></ul></ul><ul><ul><ul><ul><li>Mensagens de erros na aplicação </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mensagens de erros na entrada do usuário </li></ul></ul></ul></ul><ul><ul><li>Navegação </li></ul></ul><ul><ul><ul><li>O Faces possibilita um sistema de navegação elegante, onde o tratador de navegação é responsável que página vai ser carregada de acordo com a lógica da ação. </li></ul></ul></ul>
  20. 20. JSF – JavaServer Faces <ul><li>Ciclo de vida do processo de requisição </li></ul><ul><ul><li>O clico de vida da requisições do Faces são divididos em 6 fases. </li></ul></ul><ul><ul><ul><li>Fase 1: Restaurar árvore de componentes </li></ul></ul></ul><ul><ul><ul><li>Fase 2: Aplicar valores da requisição </li></ul></ul></ul><ul><ul><ul><li>Fase 3: Processar validação </li></ul></ul></ul><ul><ul><ul><li>Fase 4: Atualizar valores do Modelo </li></ul></ul></ul><ul><ul><ul><li>Fase 5: Chamar aplicação </li></ul></ul></ul><ul><ul><ul><li>Fase 6: Renderizar resposta </li></ul></ul></ul><ul><ul><li>Após cada fase o JSF irá enviar os eventos para os listeners interessados. Esses listeners irão processar lógica de negócio ou manipular componentes. </li></ul></ul>
  21. 21. JSF – JavaServer Faces <ul><li>Ciclo de vida do processo de requisição (continuação)‏ </li></ul><ul><ul><li>Os listeners podem se necessário pular para a fase final: “Renderizar resposta”. </li></ul></ul><ul><ul><li>Quatro dessas fases geram mensagens: “Aplicar valores da requisição”, “Processar validação”, “Atualizar valores do Modelo”, “Chamar aplicação”. Com ou sem mensagem é a fase “Renderizar resposta” que envia as saídas para o usuário. </li></ul></ul>
  22. 22. JSF – JavaServer Faces
  23. 23. Bibliografia <ul><li>K. D. Mann. JavaServer Faces In Action. Manning, 2005 </li></ul><ul><li>G. Seshadri. Understanding JavaServer Pages Model 2 architecture: Exploring the MVC design pattern. JavaWorld.com, 1999. </li></ul><ul><li>Arquitetura MVC baseada em modelos. PUC-RIO. </li></ul><ul><li>The J2EE tuturial 1.4: The Life Cycle of a JavaServer Faces Page. Sun. </li></ul><ul><li>Disponível em: http://java.sun.com/j2ee/1.4/docs/tutorial </li></ul><ul><li>Página da web: http://jcp.org </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×