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

33 %
67 %
Information about Padrão Arquitetural MVC e suas aplicações para WEB

Published on February 25, 2008

Author: rafael.ufs

Source: slideshare.net

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

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

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

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.

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

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.

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

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.

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.

É 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.

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.

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.

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.

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

.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.

É 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.

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.

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

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.

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.

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.

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. Disponível em: http://java.sun.com/j2ee/1.4/docs/tutorial Página da web: http://jcp.org

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

Add a comment

Related pages

MVC - O padrão de arquitetura de software

Neste tutorial vamos conhecer um pouco sobre o padrão MVC. ... em aplicações para Web, ... como padrão de projeto arquitetural ...
Read more

Introdução ao Padrão MVC - DevMedia - Tutoriais, Videos ...

No restante do artigo veremos mais sobre o padrão arquitetural MVC ... Objetos utilizados no MVC e suas ... da GUI para diferentes aplicações com ...
Read more

Padrões de Projeto - O modelo MVC - Model View Controller

... que instalar estas aplicações em suas ... de aplicações Web essas ações do ... O padrão MVC define uma abordagem para a interação ...
Read more

MVC – Wikipédia, a enciclopédia livre

O padrão MVC foi descrito pela ... Uso em aplicações web ... Apesar de desenvolvida originalmente para computação pessoal, o MVC foi amplamente ...
Read more

arquitetura de software - É vantajoso utilizar o padrão ...

Já li vários artigos relacionados ao MVC, suas vantagens na ... pena manter o padrão MVC mesmo para aplicações ... ao MVC para aplicações Web.
Read more

Edu-blog:: TEES

... Padrão Arquitetural MVC e suas aplicações ... Venho aqui apresentar a minha proposta de tema para pesquisa que ... Padrão Arquitetural MVC e ...
Read more

Spring MVC: Desenvolvendo aplicações web com Hibernate ...

Esse artigo é útil por explicar como o padrão arquitetural MVC pode ser ... suas ações. Para ... para aplicações ...
Read more