Implementação MVC Pedro Antonino.

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

MOtivação Atender clientes com eficiência e rapidez .

JBanana.
Desenvolvimento Web.
UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
Framework para desenvolvimento web
Iniciando na plataforma Eclipse
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Módulo II Arquitetura em Camadas
Área de Desenvolvimento de Sistemas
Introdução a Linguagem JAVA
Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)
Sistema de Gestão de Manutenção
Estudo comparativo de arquitecturas para aplicações empresariais
Model-View-Controller (MVC) em Aplicações Web Eduardo Martins Guerra Desenvolvimento de Soluções WEB.
Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira.
Tecnologias para Internet
Inport – Aplicações Web Sandro Luís Baggio Nov/2008.
Introdução ao Teste Unitário com JUnit
Aplicativos Web Com Orientação a Objetos
Universidade Federal de Lavras - UFLA
Integração com Banco de Dados
Introdução ao Framework Django
JAVA - Struts. AULA 3.
Struts Java avançado – PCC Jobson Ronan
Prof. Alexandre Monteiro Recife
Professor: Márcio Amador
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Framework para mapeamento objeto-relacional
Arquitetura das JSP - Aula 2
Aplicações Web com Orientação a Objetos
Padrão- MVC Model, View, Controller
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
PROGRAMAÇÃO WEB AULA 01 Prof. Gustavo Linhares
Sistema de Gerenciamento de Competências Alexandre Pitta Guedes Julien Renaut Yugo Watari Supervisor: Valdemar W. Setzer.
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
ICMC – USP e UNICAMP Coordenadores: Prof. Dr. José Carlos Maldonado Profa. Dra. Elisa Yumi Nakagawa 20/05/2011.
Tópicos Especiais J2EE Prof. Cristina Valadares Curso de Ciência da Computação.
Padrões de Interação com o Usuário
Ultimos recursos Jobson Ronan
MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,
Framework MVC Francisco do Nascimento PSC - Programação de Softwares Corporativos UNIBRATEC, novembro de 2008.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução a Aplicações Web.
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
SISTEMA PROCESSUAL DIGITAL
.NET com C#.  Conceitos e Características  Vantagens do SOAP  Descrição do WebService  Gerenciamento de Estados  UDDI  Novidades do Framework 2.0.
Desenvolvimento Ágil para Web Utilizando PHP e o Framework Yii
1 Baseado em whitepapers/eclipse-overview.pdf Nelson Lago IME/USP 04/2003 A Plataforma Eclipse.
Análise de frameworks de sockets em Java Luciano Macedo Rodrigues.
ZEND Framework Alexsander Muraro.
Programação para Internet
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Aula 1 - Fundamentos Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros.
Aplicativos para Internet Prof. Wolley W. Silva
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
O que é? Um framework para facilitar a implementação de uma arquitetura MVC em aplicações web Oferece  Um servlet controlador configurável ( Front Controller.
Desenvolvimento WEB II Continuação AJAX Professora: Kelly de Paula Cunha.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Persistência de dados e padrão DAO
Prof.: Jean Carlo Mendes
Playframework 2.0. O que veremos hoje Playframework 2.0 Instalação Criação e Execução de uma Aplicação Estrutura de uma Aplicação Exemplos.
Transcrição da apresentação:

Implementação MVC Pedro Antonino

Agenda MVC Desenvolvendo com Play

MVC Separação das preocupações: Interação do usuário Apresentação Lógica de negocios Controller Model View

MVC Passivo Controllador Atualiza view Http response

MVC Passivo Browser HttpRequest Servidor HttpResponse View

MVC Passivo Browser HttpRequest Servidor HttpResponse View

Framework Conjunto de design patterns implementado e configurável para um dado projeto

Play Framework Framework Java Alta produtividade para Web Multi-plataforma: Windows, MacOS, Linux MVC 2.0.4

Porque Play Java EE Struts Play Muita configuração, Muito XML Vários frameworks JSF: simplifica Java EE Struts Simplifica a criação dos controllers Integrar com outros Frameworks Play Integração de alguns frameworks + Parte original de Play Pouca configuração, XML free

Pilha do Play

Desenvolvendo com Play Uma aplicação web simples usando Play Estrutura inicial do projeto Framework está OK Mapeamentos: requisições -> ações dos controllers Criar stubs das ações nos controllers Criar a lógica de negócio no pacote Model Criar as view para apresentação dos dados Implementar os stubs dos controllers

Exemplo: RealizarDOC A implementação de uma parte do caso de uso Por enquanto, temos uma transferência de uma conta para outra

Criação da estrutura inicial Através do console Play: Usando o commando new, criar a estrutura inicial da aplicação

Estrutura de um projeto Play

Diretório App Assets: Controllers Models (Não cria automaticamente) Javascript Stylesheets Controllers Models (Não cria automaticamente) Views

Diretório Conf Application.conf Routes

Desenvolvendo com Play Uma aplicação web simples usando Play Estrutura inicial do projeto Aplicação está OK Mapeamentos: requisições -> ações dos controllers Criar stubs das ações nos controllers Criar a lógica de negócio no pacote Model Criar as view para apresentação dos dados Implementar os stubs dos controllers

Servidor Executado com o comando run do console Play Mudanças no código são refletidas automaticamente no servidor de desenvolvimento

Desenvolvendo com Play Uma aplicação web simples usando Play Estrutura inicial do projeto Aplicação está OK Mapeamentos: requisições -> ações dos controllers Criar stubs das ações nos controllers Criar a lógica de negócio no pacote Model Criar as view para apresentação dos dados Implementar os stubs dos controllers

Funcionamento da aplicação HttpRequest Cliente (WebBrowser) Servidor HttpResponse

Roteamento Mapeamento: Requisição Http -> Ação de algum controller Se a complexidade aumenta podemos ter uma hierarquia de arquivos de roteamento

routes Ações Método URLs

Acessar URLs

Controllers Classe no pacote controllers Herdam da classe Controller Seus métodos são chamados de ações Devem retornar um Result(HTTP response)

Controller

Controllers Verificar mapeamento: Http request -> ação Stubs

/contas

Desenvolvendo com Play Uma aplicação web simples usando Play Estrutura inicial do projeto Aplicação está OK Mapeamentos: requisições -> ações dos controllers Criar a lógica de negócio no pacote Model Criar as view para apresentação dos dados Implementar os stubs dos controllers

Model Construção da suas classes de negócio, para a funcionalidade desejada Anotação das classes que serão persistidas

Model Classes de entidades No pacote models Classes que representam entidades persistidas: Anotadas Herdam da classe Model, do Play

Classe conta

Model Repositório: JPA + Play Herança de model: Finder save(), delete(), etc. Finder Objeto usado para fazer consultas a base.

RepConta

Models Aplicações complexas: Aplicações simples: Estrutura complexa Pode ser organizado em camadas Aplicações simples: apenas classes de persistência Model: Classe de dados + Repositório

CadastroContas

Controlador

Fachada

Controlador != Controller Preocupações diferentes: Controlador: Implementar a lógica de negocio usando cadastros Implementa um seviço Controller: Tratar requisições do usuário Delegar ao model a execução da lógica de negócio Atualizar a view(Passive View)

Estrutura do model

Configuração do BD

Configurar o BD arquivo de configuração: H2: Application.conf Banco em memória Padrão

application.conf

Plugin de evolução do BD BD desatualizado: Servidor de desenvolvimento -> aplicar script SQL

Gerenciar o BD Genciar a base H2 atraves do browser Comando h2-browser

h2-browser

H2 console

H2 console

Desenvolvendo com Play Uma aplicação web simples usando Play Estrutura inicial do projeto Aplicação está OK Mapeamentos: requisições -> ações dos controllers Criar a lógica de negócio no pacote Model Criar as view para apresentação dos dados Implementar os stubs dos controllers

View Templates HTML de resposta: Lógica de apresentação: liguagem de templates + HTML

View Conveção de nome: Criação de método de atualização: nome.scala.html Criação de método de atualização: views.html.nome.render(parametros)

Forms Classe auxiliar que dada um classe basica cria um formulario. Simples e muito util em aplicações webs.

Desenvolvendo com Play Uma aplicação web simples usando Play Estrutura inicial do projeto Aplicação está OK Mapeamentos: requisições -> ações dos controllers Criar a lógica de negócio no pacote Model Criar as view para apresentação dos dados Implementar os stubs dos controllers

Controller Ação: Implementar os controladores tratam das requisições do usuario delega ao model a execução da funcionalidade responde com a a view atualizada Implementar os controladores

Validação dos dados

Desenvolvendo com Play Uma aplicação web simples usando Play Estrutura inicial do projeto Aplicação está OK Mapeamentos: requisições -> ações dos controllers Criar a lógica de negócio no pacote Model Criar as view para apresentação dos dados Implementar os stubs dos controllers

Pronto Controller Model View Requisição do cliente Trata a requisição do cliente Requisita o model View retornada como uma HTTP response Atualiza a view a ser rederizada

IDE Comando “eclipsefy” no console Play Tem um comando para IntelliJ

eclipsify

Problemas Falsas marcações de erros no Controller

Projeto Para 2 casos de uso Modelar como um sistema Web O model deve ser estruturado com fachada, controladores, cadastros de negócio e de dados Usar o Play, Grails ou outro Framework Mostrar como o MVC foi aplicado Implementar pelo menos mais um padrão, como Abstract Factory, Observer, Command, State ... 1 CRUD 1 Caso mais complexo

Referências Site do Framework: 1o Capítulo do Livro “Play for Java” http://www.playframework.org/ 1o Capítulo do Livro “Play for Java” http://www.manning.com/leroux/leroux_meap_ch01.pdf