Curso - Padrões de Projeto Módulo 5: Model-View- Controller



Documentos relacionados
ALUNO: RONI FABIO BANASZEWSKI

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Padrões de Interação com o Usuário

WebApps em Java com uso de Frameworks

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Padrões de Projeto WEB e o MVC

MVC e Camadas - Fragmental Bliki

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Associação Carioca de Ensino Superior Centro Universitário Carioca

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Documento de Projeto de Sistema

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Desenvolvendo Aplicações Web com NetBeans

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Design de Software e Projeto Arquitetural de Software. Prof. Edison A M Morais prof@edison.eti.br

Web Services. (Introdução)

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Java II. Sérgio Luiz Ruivace Cerqueira

Java para WEB com Hibernate e Struts 2. Duração 52 horas/aula. Objetvo

PROGRAMAÇÃO MVC E ZEND FRAMEWORK

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Curso de Aprendizado Industrial Desenvolvedor WEB

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Documento de Análise e Projeto VideoSystem

Requisitos de Sistemas

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

4 O Workflow e a Máquina de Regras

Aplicativo Cliente/Servidor multicamadas para controle de uma rede de lojas via web utilizando Java

Desenvolvimento de Aplicações para Internet Aula 8

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Padrões Arquiteturais e de Integração - Parte 1

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

GERAÇÃO DE RELATÓRIOS

Capítulo 04: Persistência com SQLite

Técnicas de Reuso de Software aplicados na elaboração de Arquiteturas Corporativas

PHP - Orientação a Objeto MVC. Éderson T. Szlachta {Tecnólogo em Análise e Desenv. de Sistemas} - edersonszlachta@gmail.com

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Projeto: Simul-e Documento de Arquitetura de Software

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Analista de Negócio Pleno

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container TomCat Aula 05

Dados em Java. Introdução

CURSO DESENVOLVEDOR JAVA Edição 2009

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

TECNOLOGIAS E FRAMEWORKS PARA O DESENVOLMENTO DE INTERFACES WEB

Documento de Visão. Compras. T2Ti Tecnologia da Informação Ltda T2Ti.COM CNPJ: / Projeto T2Ti ERP. Versão 2.

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

Guia para Iniciantes do WebWork

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

UFG - Instituto de Informática

UFG - Instituto de Informática

WebWork 2. João Carlos Pinheiro.

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

5 Detalhes da Implementação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA)

MÓDULO Programação para Web 2

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

ANÁLISE COMPARATIVA ENTRE OS PRINCIPAIS FRAMEWORKS DE DESENVOLVIMENTO JAVA COMPARATIVE ANALYSIS BETWEEN MAIN DEVELOPMENT FRAMEWORKS IN JAVA

Análise e Projeto Orientados por Objetos

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Arquitetura de uma Webapp

Clóvis Diego Schuldt. Orientador: Prof. Wilson Pedro Carli

Introdução ao Modelos de Duas Camadas Cliente Servidor

Java II. Sérgio Luiz Ruivace Cerqueira

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Organização dos Estados Ibero-americanos. Para a Educação, a Ciência e a Cultura

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Interfaces Gráficas parte 3

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.

Escrevendo meu primeiro porlet. Gustavo Lira Consultor 4Linux

Transcrição:

Curso - Padrões de Projeto Módulo 5: Model-View- Controller Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net

Sobre o Instrutor Formação: Java: Graduação em Ciência da Computação, com ênfase em Engenharia de Software, pela Universidade Federal do Espírito Santo (UFES); Mestrado em Informática (em andamento) na mesma instituição. Desenvolvedor Java desde 1999; Especialista em desenvolvimento Web; Autor do blog Engenho www.javablogs.com.br/page/engenho. Profissional: Consultor em Desenvolvimento de Software Orientado a Objetos Engenho de Software Consultoria e Desenvolvimento Ltda. 2

Estrutura do Curso Módulo 1 Módulo 2 Módulo 3 Módulo 4 Módulo 5 Introdução Padrões de Criação Padrões de Estrutura Padrões de Comportamento O Padrão Model-View-Controller 3

Sistema em uma camada Aplicação Interface com o Usuário Persistência Lógica de Negócio Banco de Dados 4

Exemplo <html><body> <% sql = "SELECT * FROM..."; rset = stmt.executequery(sql); /*... */ Execução de queries ao banco de dados diretamente da página web. sql = "UPDATE Tabela SET..."; stmt.executeupdate(sql); %> </body></html> 5

Vantagens e desvantagens Sem complicações para desenvolver; Difícil manutenção: Código desorganizado; Difícil depuração; Alterações em qualquer camada afetam todas as outras. Difícil reuso. 6

Sistema em várias camadas Interface com o Usuário Persistência Lógica de Negócio Banco de Dados 7

Vantagens e desvantagens Maior complexidade no desenvolvimento; Manutenção mais simples: Código organizado; Depuração isolada de camadas; Alterações numa camada não afetam outras. Facilita o reuso. 8

O MVC Desenvolvido pelo Xerox PARC para o Smalltalk, em 1978; Objetivo: mapear entrada-processamento-saída em GUIs para OO: controle-modelo-visão; Usado para: Criação de componentes GUI reutilizáveis (proósito inicial); Estruturação da aplicações (pós-web). 9

MVC em GUIs JSlider 3) Altera os dados no modelo. 2) Envia estímulos do usuário Controller Model View 1) Usuário manipula componente gráfico 10

MVC em GUIs JSlider Controller 3) Atualiza seu estado, consultando os valores. 2) Notifica visão sobre a alteração Model View 1) Aplicação altera dados no modelo. 11

MVC em Aplicações Web HTTP Requisição Resposta Controlador (Servlet) 1) Lê a configuração. Configuração Navegador 3) Monta uma página (JSP, HTML, etc.) como resposta. 2) Executa uma ação, que acessa a lógica de negócio. Ação Também conhecido como Model 2 Páginas Web Lógica de Negócio 12

Estrutura Modelo (1) Consulta Estado Notifica Alteração Encapsula estado da aplicação; Responde a consultas de estado; Expõe funcionalidade da aplicação; Notifica a visão sobre alterações. Seleciona a Visão Altera Estado Visão (1..n) Exibe dados do modelo graficamente; Pede atualizações ao modelo; Envia estímulos do usuário ao controlador; Permite que o controlador selecione a visão. Controlador (1) Define comportamento da aplicação Transforma ações do usuário em atualizações no modelo; Seleciona a visão para resposta. Legenda: Eventos Chamada de Métodos Envia Estímulos do Usuário 13

MVC na API Swing Model: classe que encapsula um valor que o componente gráfico representa. View: classe que renderiza o componente gráfico no Look & Feel adequado. Controller: classe que recebe estímulos do usuário no componente gráfico exibido e altera o modelo. 14

MVC na Web Model: classes de lógica de negócio. View: páginas HTML, JSP e similares. Controller: Servlet que recebe as requisições HTTP, chama algum método de negócio e, dependendo do retorno, escolhe uma view e redireciona. 15

Demonstração 16

Arquitetura de 3 camadas Utilizada em sistemas enterprise ; Promove independência física e lógica; Também conhecido como 3-tier ou cliente magro. 17

Vantagens do MVC Facilita a manutenção do software; Simplifica a inclusão de um novo elemento de visão (ex.: cliente); Melhora a escalabilidade; Possibilita desenvolvimento das camadas em paralelo, se forem bem definidas. 18

Desvantagens do MVC Requer análise mais aprofundada (mais tempo); Requer pessoal especializado; Não aconselhável para aplicações pequenas (custo x benefício não compensa). 19

Frameworks Web para Java Diversos frameworks open-source implementam o MVC para a Web: JSF (futuro padrão JCP); Struts (Apache); Tapestry (Apache); WebWork (OpenSymphony); Dentre outros... 20

Aplicações É importante conhecer o MVC para entender melhor a API Swing; Ao utilizar MVC para estruturar suas aplicações elas produzirá componentes reutilizáveis e de manutenção mais simples; MVC já se tornou um padrão para a camada Web, e é importante conhecêlo para utilizar bem os frameworks. 21

Curso - Padrões de Projeto Módulo 5: Model-View- Controller Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net