PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Documentos relacionados
PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Noções do padrão MVC e DAO

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

Criando uma aplicação web

Criando uma aplicação web. Parte 1

PROGRAMAÇÃO SERVIDOR SESSÃO E LOGIN EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Arquitetura em Camadas

PROGRAMAÇÃO PARA SERVIDOR APRESENTAÇÃO EM SISTEMAS WEB DA DISCIPLINA. Prof. Dr. Daniel Caetano

Unidade 6: Java Server Pages Prof. Daniel Caetano

Módulo II Arquitetura em Camadas

PROGRAMAÇÃO PARA SERVIDOR INTRODUÇÃO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

ALUNO: RONI FABIO BANASZEWSKI

Introdução ao Desenvolvimento de

Programação Estruturada Orientada a Objetos

ESET Secure Authentication

Algoritmos Computacionais

PROGRAMAÇÃO SERVIDOR RECURSOS ADICIONAIS EM SISTEMAS WEB DOS SERVLETS. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO SERVIDOR MIDDLEWARE JDBC: USANDO O JAVA DB EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Desenvolvimento Web TCC Turma A-1

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

Portal Inteligente Senior TI Baseado em Data Webhouse

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites.

Framework Hibernate/JPA

Introdução à Programação para Dispositivos Móveis

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

M V C P R O F. M E. H É L I O E S P E R I D I Ã O

Persistência BD / drivers

EA975 - Laboratório de Engenharia de Software

3 Tecnologias Relacionadas

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

5 Arquitetura de implementação

Abordagem Teórico-Prática

Web Presentation Patterns - Controllers

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos

Model-View-Controller (MVC) Fernando de Freitas Silva

Linguagens de Domínio Específico

Desenvolvimento de Software I

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

Curso online de Fundamentos em Android. Plano de Estudo

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Marcela Mariotti Peres Arquitetura em três camadas Parte 1 [conceito]

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

Objetos e Componentes Distribuídos: EJB

Java para Desenvolvimento Web Carga Horária: 40 Horas.

Televisao tamanho tela emitirsom. conectarperifericos

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Aula 1: Apresentação, Computação Corporativa

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Enterprise JavaBeansTM

PROGRAMAÇÃO SERVIDOR PADRÕES DAO, VIEW CONTROL E FRONT CONTROL EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Grupo de Usuários Java do Noroeste Paulista. Introdução à tecnologia Java

CONTEÚDO PROGRAMÁTICO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO. Prof. Dr. Daniel Caetano

CURSO DE TÉCNICO DE INFORMÁTICA - PLANO DE DISCIPLINA/2016 PROGRAMAÇÃO PARA MODELAGEM DE SISTEMA

Aula 01. Prof. Diemesleno Souza Carvalho

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Continuação... Criando a Interface e adiante

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

INTRODUÇÃO À TECNOLOGIA SERVLETS

AULA 1 INTRODUÇÃO AO JAVA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO I INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA. Prof. Dr. Daniel Caetano

Leynner Sérgio Roque de Lima Bacharel em Sistemas de Informação Universidade Federal Rural da Amazônia.

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

CHRONOS SISTEMA DE PLANEJAMENTO ACADÊMICO

Introdução à Análise e Projeto de Sistemas

Frameworks - Introdução. Professor: Hyggo Almeida

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java

Padrão de projeto de software

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Pró-Reitoria de Graduação - PROGRAD Plano de Ensino 2018/2

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA E BARRAMENTOS DE SISTEMA. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO PARA INTERNET RICA AJAX

Padrões de Arquitetura de Software. Leandro Tonietto Unisinos fev-09

Aplicações Web com Servlets e JSP

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

PATI-MVC: Padrões MVC para Sistemas de Informação. Gabriela T. De Souza Instituto Atlântico

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA E BARRAMENTOS DE SISTEMA. Prof. Dr. Daniel Caetano

PROJETO PEDAGÓGICO DE CURSOS

MAPEAMENTO OBJETO RELACIONAL COM HIBERNATE EM APLICAÇÕES JAVA WEB

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

ESTRUTURA DE DADOS ORDENANDO LISTAS

Projeto de Sistemas para Internet

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos.

Módulo III Camada de Persistência

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

Transcrição:

PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2011-2

Visão Geral 1 2 3 4 5 6 7 Padrão de Desenvolvimento? O Conceito de Padrão de Projeto Padrão MVC Persistência MVC Nível 1 e 2 Padrão DAO Outros Padrões de Persistência

Material de Estudo Material Notas de Aula Apresentação Material Didático Acesso ao Material http://www.caetano.eng.br/aulas/psw/ (Aula 8) http://www.caetano.eng.br/aulas/psw/ (Aula 8) Padrões de Arquitetura de Aplicações Corporativas, páginas 37 a 44, 71 a77 e 295 a 317 Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto Google Design Patterns

Objetivos Compreender o conceito de Padrões de Projeto Compreender o Padrão MVC Conhecer o princípio de alguns dos padrões de persistência, como o padrão DAO Tomar primeiro contato com a ideia da Java Persistence API

O QUE É PADRÃO DE DESENVOLVIMENTO?

Introdução Nos primeiros exemplos... Tínhamos um Servlet único... Que foi dividido: Processamento e Apresentação

Introdução Essa separação é uma ideia aleatória? Será que é a melhor forma de fazer?

Padrões de Desenvolvimento Desenvolvimento Dúvida Como dividir o sistema em partes menores? Partes pequenas o suficiente (para implementar) Grandes o suficiente (para fazer algo significativo) Diretrizes Manutibilidade (flexibilidade e extensibilidade) Custos Reusabilidade Como fazer?

Padrões de Desenvolvimento Muitas coisas para pensar... Como fazer?

Padrões de Desenvolvimento Ei, que tal fazer como nossos ancestrais têm feito? É! Vamos lá resolver essa parada...

Padrões de Desenvolvimento Padrões de Desenvolvimento Conjunto das Melhores Práticas conhecidas Isso significa que não vamos ter que pensar?

Padrões de Desenvolvimento Pensar no que é importante... Vamos direto ao ponto!

PADRÕES DE PROJETO

O Que é um Padrão de Projeto Dividir e Organizar um Sistema......de maneira elegante Solucionar problemas comuns...... de maneira elegante, mas não óbvia!

O Que é um Padrão de Projeto Há diversos níveis de detalhamento Há padrões mais genéricos Diretrizes sobre organização Padrões de Arquitetura Há padrões mais específicos Como resolver um problema específico Padrões de Implementação Padrões de Criação Padrões de Estrutura Padrões de Comportamento

O Que é um Padrão de Projeto Todo padrão de projeto tem: Um nome Que identifique claramente o que o padrão faz Um objetivo Que descreva com detalhes a razão de ser do padrão Um problema Uma situação de projeto cuja solução não é óbvia Uma solução Detalhes de implementação da solução elegante Consequências Não existe almoço grátis...

PADRÕES MVC

Padrão MVC Modelo... Visão... Controle... modelagem dos dados apresentação da aplicação processamento da aplicação Mas o que é esse padrão? Para entender... Vejamos os problemas que levaram a ele

Padrão MVC Um mesmo aplicativo... Diversos tipos de equipamento

Padrão MVC Um mesmo aplicativo... Diversos tipos de equipamento

Padrão MVC Um mesmo aplicativo... Diversos tipos de equipamento Repetição de Código!

Padrão MVC Um mesmo aplicativo... Diversos tipos de equipamento Retrabalho!

Padrão MVC Separar apresentação e processamento?

Padrão MVC Reaproveitar modelos de dados... Cliente é usado em várias aplicações

Padrão MVC Separar modelo do restante

Padrão MVC Objetivo: facilitar desenvolvimento, manutenção e reaproveitamento de código Mudanças mais frequentes Interface com o Usuário (visão) Mudanças comuns Modelo de dados Mudanças menos comuns Processo de negócio (processamento)

Padrão MVC Objetivo: facilitar desenvolvimento, manutenção e reaproveitamento de código Desejamos Mudar a interface sem mudar o resto Mudar os dados sem mudar o resto Mudar o processo sem mudar o resto A separação em três conjuntos facilita!

Padrão MVC Solução Modelo Componentes de Dados e Persistência Armazenam os dados Visão Componentes de interação com usuário Janelas, formulários etc. Controle Componentes de processamento Coordenam todos os componentes para produzir o resultado desejado pelo usuário

Padrão MVC Solução Modelo Componentes de Dados e Persistência Armazenam os dados Visão Um não se intromete na Componentes de interação com usuário Janelas, formulários etc. função do outro! Controle Componentes de processamento Coordenam todos os componentes para produzir o resultado desejado pelo usuário

Padrão MVC Solução

Padrão MVC na Web MVC: Aplicações Desktop Seguir à risca? Seguir linhas gerais? No caso de Aplicações Web em Java... Visão: HTML e formulários Usualmente JSPs Modelo: Classes de Entidade Dados não nativos Controle: Processo de negócio Usualmente Servlets

Padrão MVC na Web MVC: Aplicações Desktop Seguir à risca? Seguir linhas gerais? No caso de Aplicações E o Banco Web em Java... Visão: HTML e formulários Usualmente JSPs de Dados? Modelo: Classes de Entidade Dados não nativos Controle: Processo de negócio Usualmente Servlets

PERSISTÊNCIA

Persistência Modelo MVC Concebido para sistemas de memória persistente Exemplo atual: celular com java Não há disco x memória O programa nunca para de executar... ele só é congelado Se você criou um cliente, ele fica lá! Para que armazenar? Isso é o mesmo que ocorre no PC?

Persistência No PC, a memória é volátil! Desligar: cliente da memória vai pro brejo Precisamos simular a persistência Criar um elemento que armazene e recupere nossos clientes quando necessário A ideia é armazenar os dados não nativos em um banco de dados! Dados Não Nativos: Classes de Entidade...... a mesma do Entidade-Relacionamento

Persistência Existem duas formas básicas de implementar a persistência MVC Nível 1 A própria entidade cuida de sua persistência Ela é quem acessa o banco de dados... MVC Nível 2 Um elemento externo cuida da persistência Isola as classes de entidade do banco de dados

PADRÃO DAO

Padrão DAO Uso inicial do MVC no PC MVC Nível 1 Entidades acessavam o banco de dados

Padrão DAO Uso inicial do MVC no PC MVC Nível 1 Mas cada contrato exigia o seu banco de dados

Padrão DAO Solução: Separar o acesso ao banco! MVC Nível 2

Padrão DAO Esses caras... São objetos de acesso a dados Data Access Objects Padrão criado pela Microsoft É um construtor de objetos com base nas informações do banco de dados

Padrão DAO Padrão de Nome NomeDaEntidadeDAO Cliente... ClienteDAO Produto... ProdutoDAO Como usar isso?

Padrão DAO Armazenar um cliente? ClienteDAO.acidiona(objeto_cliente); Buscar um cliente? Cliente c; c = ClienteDAO.busca( 012.345.678-90 ); Fácil!

OUTROS PADRÕES DE PERSISTÊNCIA

Outros Padrões de Persistência DAO é o único padrão? Claro que não! Mas, talvez nem precisemos nos preocupar... Existem frameworks prontos para persistência! Castor... Hibernate... Speeder... TopLink... Dentre muitos outros...

Outros Padrões de Persistência Cada framework funcionava de um jeito... Então a Sun criou o JPA Java Persistence API O que é uma API? Quais comandos deve ter a biblioteca/framework Define como esses comandos devem funcionar O que fazem Como são usados (nome, parâmetros etc.)

Outros Padrões de Persistência Maiora dos frameworks: implementa JPA Hibernate JPA OpenJPA TopLink Dentre outros... Veremos JPA no final do curso!

CONCLUSÕES

Resumo Padrões de Desenvolvimento oferecem diretrizes ou soluções para resolver problemas comuns Não resolve a vida do programador, mas simplifica! Às vezes implementar um padrão não é o jeito mais fácil, mas é o melhor a longo prazo TAREFA Trabalho 2a para turmas de 4ª!

Próxima Aula Como implementar isso tudo?! Como criar a entidade (bean) MVC Nível 1

PERGUNTAS?

BOM DESCANSO A TODOS!