Padrão Arquitetural MVC e suas aplicações para WEB - Presentation Transcript
Padrão Arquitetural MVC e suas aplicações para Web Rafael Mendonça França DCOMP - UFS
Sumário
Introdução
Padrão MVC
Evolução do desenvolvimento WEB
Implementações do MVC
JSF
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
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
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
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
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.
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.
Padrão MVC: Model-View-Controller
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.
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.
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.
Implementações do MVC
.NET
Microsoft UIP
Maverick.NET
ActionScript
ARP
PureMVC
Java
JavaServer Faces
Spring Framework
Struts
PHP
Zend Framework
Symfony Framework
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.
JSF – JavaServer Faces
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.
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.
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
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.
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.
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.
JSF – JavaServer Faces
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.
1 comments
Comments 1 - 1 of 1 previous next Post a comment