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

Mais conteúdo relacionado

PPTX
Apresentação mvc
PDF
Arquitetura MVC
PDF
Padrões Arquiteturais - MVC, MVP e MVVM
PPTX
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
PDF
MVC MVP MVVM para Web
PDF
Padrões de Projeto WEB e o MVC
PDF
Padrões-05 - Padrões Arquiteturais - MVC
ODP
Arquitetura MVC, JavaBeans e DAO
Apresentação mvc
Arquitetura MVC
Padrões Arquiteturais - MVC, MVP e MVVM
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC MVP MVVM para Web
Padrões de Projeto WEB e o MVC
Padrões-05 - Padrões Arquiteturais - MVC
Arquitetura MVC, JavaBeans e DAO

Mais procurados (20)

PPT
Mvc - Semifinal
PDF
Arquitetura de Software Visão Geral
DOCX
Camadas
PDF
Arquitetura de Sofware
PPT
PPT
Padrões Arquiteturais de Sistemas
PPT
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
PPT
Apresentação Facelets_UNIFEI
PDF
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
PPTX
Introdução a arquitetura de sistemas com .NET
PPT
Arquitetura de sistemas web
PPT
Front Controller & Presentation-Abstract-contrll
PDF
Ebook AngularJS | Guia Introdutório
PDF
Arquitetura de Software
PPT
Modelagem Arquitetural e Visão 4+1
PPS
Arquitetura de Software
PDF
A importância da arquitetura de software
PDF
Arquitetura Model View Controller
PPTX
Arquitetura de Software EXPLICADA
DOCX
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Mvc - Semifinal
Arquitetura de Software Visão Geral
Camadas
Arquitetura de Sofware
Padrões Arquiteturais de Sistemas
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Apresentação Facelets_UNIFEI
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Introdução a arquitetura de sistemas com .NET
Arquitetura de sistemas web
Front Controller & Presentation-Abstract-contrll
Ebook AngularJS | Guia Introdutório
Arquitetura de Software
Modelagem Arquitetural e Visão 4+1
Arquitetura de Software
A importância da arquitetura de software
Arquitetura Model View Controller
Arquitetura de Software EXPLICADA
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Anúncio

Destaque (20)

PDF
Padrões-02 - Padrões Arquiteturais - Camadas
PDF
Arquitetura de Software Na Pratica
PDF
Model View Controller (MVC)
PDF
Padrões-06 - Padrões Arquiteturais - Microkernel
PPTX
Programação orientada a objetos
PDF
Mude seu jeito de pensar com MongoDB
PPTX
PPTX
ASP.NET - Recursos de Configuração
PPTX
Como se tornar um desenvolvedor faixa preta
PPTX
PHP Orientado a Objetos - 1a Parte
PPTX
Aula 01 - Curso PHP e MySQL
PDF
Php5 Orientado A Objetos
PPTX
PDF
Vssummit 2016 - DDD em cenários corporativos
PPTX
Domain driven design na Prática
PDF
Angular
PDF
TDD e BDD
PDF
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
PDF
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDO
PDF
MVC 1.0 / JSR 371
Padrões-02 - Padrões Arquiteturais - Camadas
Arquitetura de Software Na Pratica
Model View Controller (MVC)
Padrões-06 - Padrões Arquiteturais - Microkernel
Programação orientada a objetos
Mude seu jeito de pensar com MongoDB
ASP.NET - Recursos de Configuração
Como se tornar um desenvolvedor faixa preta
PHP Orientado a Objetos - 1a Parte
Aula 01 - Curso PHP e MySQL
Php5 Orientado A Objetos
Vssummit 2016 - DDD em cenários corporativos
Domain driven design na Prática
Angular
TDD e BDD
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDO
MVC 1.0 / JSR 371
Anúncio

Semelhante a Padrão Arquitetural MVC e suas aplicações para WEB (20)

PPT
Jsf – Java Sever Faces
PPTX
PPTX
Curso jsf
PPT
JavaServer Faces
PPTX
ASP.NET MVC
PPTX
Introdução ao Asp.NET MVC
PDF
Aula 1 ASP.NET Core com arquitetura MVC
PPT
Anatomia do JSF, JavaServer Faces
PDF
Framework struts2v2.5
PDF
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
PDF
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
PDF
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
PDF
Palestra ASP.NET MVC
PPTX
Curso jsf
PPTX
Desenvolvimento RIA com Silverlight 4
PDF
PPTX
Treinamento ASP.NET 2014
PPTX
Desenvolvimento de sistemas com mensageria
Jsf – Java Sever Faces
Curso jsf
JavaServer Faces
ASP.NET MVC
Introdução ao Asp.NET MVC
Aula 1 ASP.NET Core com arquitetura MVC
Anatomia do JSF, JavaServer Faces
Framework struts2v2.5
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
Palestra ASP.NET MVC
Curso jsf
Desenvolvimento RIA com Silverlight 4
Treinamento ASP.NET 2014
Desenvolvimento de sistemas com mensageria

Mais de Rafael França (7)

ODP
PDF
Apresentação ForkInSergipe
PDF
Apresentação de Ruby on Rails - Secomp/UFS
PDF
Desenvolvendo a REDEPESQ utilizando uma abordagem ágil
PPT
Metodologias Ageis
PPT
Apresentação Subversion
PPT
ERP - Semi Final
Apresentação ForkInSergipe
Apresentação de Ruby on Rails - Secomp/UFS
Desenvolvendo a REDEPESQ utilizando uma abordagem ágil
Metodologias Ageis
Apresentação Subversion
ERP - Semi Final

Último (11)

PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Eng. Software - pontos essenciais para o início
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Utilizando code blockes por andre backes
Viasol Energia Solar -Soluções para geração e economia de energia
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Arquitetura de computadores - Memórias Secundárias
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Eng. Software - pontos essenciais para o início
Manejo integrado de pragas na cultura do algodão
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Tipos de servidor em redes de computador.pptx
Design - Introdução a Gestalt e teoria das formas
Utilizando code blockes por andre backes

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

  • 1. Padrão Arquitetural MVC e suas aplicações para Web Rafael Mendonça França DCOMP - UFS
  • 2. Sumário Introdução Padrão MVC Evolução do desenvolvimento WEB Implementações do MVC JSF
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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.
  • 8. 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.
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13. Implementações do MVC .NET Microsoft UIP Maverick.NET ActionScript ARP PureMVC Java JavaServer Faces Spring Framework Struts PHP Zend Framework Symfony Framework
  • 14. 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.
  • 16. 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.
  • 17. 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.
  • 18. 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
  • 19. 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.
  • 20. 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.
  • 21. 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.
  • 23. 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