padrão arquitetural mvc e suas aplicações para web

23
Padrão Arquitetural MVC e suas aplicações para Web Rafael Mendonça França DCOMP - UFS

Upload: rafael-franca

Post on 28-May-2015

9.905 views

Category:

Technology


0 download

TRANSCRIPT

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

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

Rafael Mendonça FrançaDCOMP - UFS

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

Sumário

Introdução Padrão MVC Evolução do desenvolvimento WEB Implementações do MVC JSF

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

Introdução

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.

O uso de camadas é um padrão arquitetural que ajuda na tarefa de separar responsabilidades, promovendo baixo acoplamento e alta coesão

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

Introdução

Aplicações de uma camada: Antigamente um aplicativo era desenvolvido

para ser usado em uma única máquina. 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.

A entrada do usuário, verificação, lógica de negócio e acesso a banco de dados estava presente em um mesmo lugar.

Lógica de Apresentação Lógica de Negócios Acesso a Dados

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

Introdução

Aplicações de duas camadas: Surgiram com a necessidade de compartilhar a

lógica de acesso a dados. A base de dados geralmente é colocada em

uma máquina específica. Aplicativos instalados em estações clientes

contendo toda a lógica da aplicação. Grande problema com o gerenciamento de

versões.

Lógica de Apresentação Lógica de Negócios Acesso a Dados

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

Introdução

Aplicações de n camadas: Separa a lógica de negócio da interface com o usuário. Cada camada é auto-contida o suficiente de forma que a

aplicação pode ser dividida em vários computadores numa rede distribuída.

Possibilita que vários usuários tenham acesso as mesmas aplicações sem ter que instala-las em suas máquinas.

Torna os sistemas mais flexíveis permitindo que as partes possam ser alteradas de forma independente.

Facilita a reutilização e manutenção.

Lógica de Apresentação Lógica de Negócios Acesso a Dados

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

Padrão MVC: Model-View-Controller

É um padrão arquitetural que divide as aplicações em 3 camadas independentes.

Permite que um mesmo aplicativo possa ser visualizado através de vária interfaces.

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

Padrão MVC: Model-View-Controller

Camadas do MVC: Camada de Apresentação (View)

Inclui os elementos de exibição no cliente: HTML, XML, Applets, MIDlets.

É usada para receber a entradas de dados e apresentar o resultado.

Camada de Lógica da Aplicação (Model) Modela os dados e o comportamento por trás do

processo de negócio. Se preocupa apenas com o armazenamento e

geração dos dados. Camada de Controle

Interpreta as ações do usuário e as mapeia para chamadas do modelo.

É responsável pelo fluxo da aplicação.

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

Padrão MVC: Model-View-Controller

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

Evolução do desenvolvimento WEB

Sem o MVC Na primeira fase da evolução apenas eram

produzidas páginas em HTML estático para mostrar informações estáticas.

Na próxima fase evolutiva, foram usadas tecnologias de geração dinâmica de páginas como o CGI, Servlets e JSP.

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

Evolução do desenvolvimento WEB

Model 1: Arquitetura centrada na página 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.

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

Evolução do desenvolvimento WEB

Model 2: Arquitetura centrada no Servlet As aplicações implementadas utilizando o Model

2 são mais fáceis de manter e extender.

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

Implementações do MVC

.NET Microsoft UIP Maverick.NET

ActionScript ARP PureMVC

Java JavaServer Faces Spring Framework Struts

PHP Zend Framework Symfony Framework

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

JSF – JavaServer Faces

É uma implementação do Model 2. É também uma especificação da JCP – Java

Community Process. (JSR-127) Foi criado com o intuito de facilitar o

desenvolvimento de interfaces web. Facilita a integração com IDEs. Possui um conjunto padrão de componentes. Possui uma API para validação dos dados. Especifica um modelo para

internacionalização e localização.

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

JSF – JavaServer Faces

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

JSF – JavaServer Faces

Principais partes do JSF Componentes de Interface com o usuário

Foca na interatividade com o usuário final. Diferente dos componentes Swing eles ficam

residentes no lado do servidor, não do cliente. Os componentes tem a capacidade de guardar

informações de estado entre as requisições. Renderizadores

São responsáveis por gerar as diferentes formas de visualização (HTML, WML, SVG, applet, etc.)

São organizados em Render Kits.

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

JSF – JavaServer Faces

Principais partes do JSF (continuação) Validadores

Responsável por validar os dados digitados pelo usuário.

Os dados são validados no lado do servidor. Backing beans

É responsável pela interação entre a camada de visão e a de modelo.

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.

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

JSF – JavaServer Faces

Principais partes do JSF (continuação) Conversores

Responsável por converter um objeto em String para mostra-lo na tela, e de uma String de entrada para um objeto.

Eventos e listeners São responsáveis por capturar e tratar os meios que

o usuário interage com os componentes de interface. Tipos de eventos:

Eventos de mudança de valor Eventos de ações Eventos de modelo de dados Eventos de fase

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

JSF – JavaServer Faces

Principais partes do JSF (continuação) Mensagens

Auxiliam a informar o usuários erros na aplicação. As mensagens podem ser de dois tipos:

Mensagens de erros na aplicação Mensagens de erros na entrada do usuário

Navegação 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.

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

JSF – JavaServer Faces

Ciclo de vida do processo de requisição O clico de vida da requisições do Faces são

divididos em 6 fases. Fase 1: Restaurar árvore de componentes Fase 2: Aplicar valores da requisição Fase 3: Processar validação Fase 4: Atualizar valores do Modelo Fase 5: Chamar aplicação Fase 6: Renderizar resposta

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.

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

JSF – JavaServer Faces

Ciclo de vida do processo de requisição (continuação) Os listeners podem se necessário pular para a

fase final: “Renderizar resposta”. 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.

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

JSF – JavaServer Faces

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

Bibliografia

K. D. Mann. JavaServer Faces In Action. Manning, 2005 G. Seshadri. Understanding JavaServer Pages Model 2

architecture: Exploring the MVC design pattern. JavaWorld.com, 1999.

Arquitetura MVC baseada em modelos. PUC-RIO. The J2EE tuturial 1.4: The Life Cycle of a JavaServer Faces

Page. Sun. Disponível em: http://java.sun.com/j2ee/1.4/docs/tutorial Página da web: http://jcp.org