Daniel@techdm.com.

Slides:



Advertisements
Apresentações semelhantes
Aplicação de exemplo Struts Aplicação de exemplo
Advertisements

Desenvolvimento Web.
Programação em Java Prof. Maurício Braga
Framework para desenvolvimento web
Web Application Interface Grupo ECFJ Edson e Jorge.
Iniciando na plataforma Eclipse
Java Server Pages (JSPs)
Introdução a Linguagem JAVA
Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)
Ferramenta para teste de software
Selenium CONFIGURAÇÃO DE TESTE.
WebWork e JSP Keven andrade
Geração Dinâmica de Páginas com JSP Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação.
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
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Servidor HTTP (Apache)
Hibernate com JPA Prática
Groovy e Grails Hugo Sena.
Seminários Avançados 3 Conceitos Java EE Servidor de aplicação Tomcat
JAVA - Struts
Administração de Sistema Operacional de Rede WindowsServer-2003 WindowsServer-2003 Ricardo de Oliveira Joaquim TECNOLÓGICOS.
Programação II Prof.: Bruno Rafael de Oliveira Rodrigues.
Desenvolvendo para a web com Grails
Introdução ao Desenvolvimento Web
Gpnet Criando um novo módulo.
Framework gpnet.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Integração com Banco de Dados
Introdução ao Framework Django
Instalação  A tela abaixo é a primeira a aparecer durante a instalação do Caché 5. O diretório selecionado será usado para salvar alguns arquivos usados.
Introdução ao Hibernate
Struts Java avançado – PCC Jobson Ronan
Prof. Alexandre Monteiro Recife
Felipe Ferreri Tonello
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Ruby (2/2) André Braga Patrícia Lustosa. Intro Peguem a aula de ontem em /~plvr para ter como referência para os exercícios de hoje.
Configuração do Ambiente de programação
Implementação MVC Pedro Antonino.
JSP JavaServer Pages Marco Antonio, Arquiteto de Software – TJDF Dezembro/2005.
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
Decisão #1 Decisão-chaveUtilização de C para desenvolvimento do MCTCore. DriversRNF: O código deve ser escrito na linguagem C. Descrição O sistema legado.
RequisitePro Ismênia Galvão Lourenço da Silva ANÁLISE E ESPECIFICAÇÃO DE REQUISITOS CENTRO DE INFORMÁTICA UNIVERSIDADE FEDERAL DE PERNAMBUCO.
Linguagem de programação. Histórico  Concebida em 1993 por Yukihiro Matsumoto  Primeiro livro em inglês saiu em setembro de 2000  Ruby on Rails é lançado.
Decisão #1 Decisão-chaveUtilização de C para desenvolvimento do MCTCore. Drivers RNF: O MCTCore deve ser escrito em C. RNF: O MCTAlarms deve exibir os.
Framework MVC Francisco do Nascimento PSC - Programação de Softwares Corporativos UNIBRATEC, novembro de 2008.
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
Fórmula Visual RM.
Aglets.
.NET com C#.  Conceitos e Características  Vantagens do SOAP  Descrição do WebService  Gerenciamento de Estados  UDDI  Novidades do Framework 2.0.
ZEND Framework Alexsander Muraro.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
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
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução ao Projeto.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
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.
Programação para Web I AULA 2 BANCO DE DADOS.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Apache Struts 1. Idéias principais Model View Controller Front Controller Action Mapping Form Beans Struts Tags Plugins Desenvolvimento web com Java #
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
1 AJAX em aplicações Rails Lívia Monnerat Castro
Django Por Bruno soares(bss3).
Vamos usar um widget para montar um formulário para criação de alunos! Para isso, usaremos o TableForm. Comece importando no controllers.py (caso ainda.
Persistência de dados e padrão DAO
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
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:

daniel@techdm.com

O que é Grails? Grails é um framework open source para a construção de aplicações Java/JEE. Ou seja, aplicações “enterprise” que executam em um Web Container ou Application Server.

Por que Grails? Baseia-se em frameworks como Rails e Django, sendo guiado pelas mesma práticas e princípios, como CoC (convention over configuration) e DRY (don't repeat yourself); É full stack e construído sobre tecnologias maduras como Groovy, ANT, Log4J, Sitemesh, Spring Framework e Hibernate, entre outras; É extensível via plugins;

Por que Grails? Dispõe de ampla variedade de plugins (já implementados e testados) para a realização das mais diferentes tarefas; É compatível com a especificação JEE; Permite a migração incremental de outras aplicações “legado”; Dispõe de dynamic or static scaffolding para operações CRUD (Create, Read, Update and Delete);

Por que Grails? Está licenciado sob a Apache License, Version 2.0.

Criando uma aplicação grails create-app testapp

Iniciando a aplicação cd testapp ; grails run-app

Acessando a aplicação

Diretórios mais importantes da aplicação grails-app - diretório base para os artefatos Grails conf - arquivos de configuração controllers - web controllers (C do MVC) domain - classes de domínio services - camada de serviço views - .jsp, .gsp, .ftl (V do MVC) lib - bibliotecas de suporte (.jar) src - classes Groovy e Java de suporte para a aplicação scripts - Gant scripts test - testes unitários e integrados

Criando uma classe de domínio grails create-domain-class Trip

Modificando a classe de domínio

Modificando a classe de domínio

Gerando um controller grails create-controller Trip

Modificando o controller para usar scaffolding dinâmico

Modificando o controller para usar scaffolding dinâmico

Iniciando a aplicação novamente grails run-app

Acessando a aplicação novamente

Acessando a aplicação novamente

Adicionando mais uma propriedade à classe de domínio

F5/Refresh no browser

Adicionando mais uma action ao controller

Acessando a nova action criada http://localhost:8080/testapp/trip/myList

Navegando pela aplicação

Navegando pela aplicação

Navegando pela aplicação

Adicionando obrigatoriedade à propridade name

Agora, ao tentar cadastrar Trip sem name

Agora, ao tentar cadastrar Trip sem name

Gerando o controller e as views para utilização sem scaffolding grails generate-all testapp.Trip

Iniciando a aplicação novamente grails run-app

E acessando a aplicação

Entendendo o controller gerado Se abrirmos o controller novamente, podemos entender o que acontece quando a action “save” é invocada (botão create da tela de cadastro de Trip).

Entendendo o controller gerado

Entendendo o controller gerado Uma nova instância de Trip é criada a partir de um mapa chamado “params” (esse mapa contém todos os parâmetros e respectivos valores enviados na requisição); Há uma tentativa de salvar essa Trip. Se a Trip pôde ser salva, uma mensagem de sucesso é exibida e o usuário é redirecionado para a action “show”; Se a Trip não pôde ser salva, o usuário é encaminhado para a view “create”.

Entendendo o controller gerado Ao encaminhar para a view create, o controler indica que o model conterá um Map com um elemento sob a chave 'tripInstance'. Se observarmos essa view, saberemos como esse elemento é acessado. No caso, a view gerada é um gsp (Groovy Server Page), mas poderíamos usar jsp, ftl (FreeMarker template) ou qualquer outra forma de view suportada pelo Spring MVC.

Entendendo a view gerada

Entendendo a view gerada Na parte marcada do create.gsp, vemos que a grails tag g:hasErrors é usada para verificar se há algum erro associado à tripInstance. Se houver, a grails tag g:renderErrors é usada para exibir a lista de erros. É isso que gera a mensagem quando não preenchemos o valor para o campo name.

Entendendo o controller gerado

Entendendo a view gerada

Entendendo a classe de domínio Voltando um pouco ao controller, vemos que ele faz uso de métodos como Trip.save(), Trip.get() e Trip.list(). Esses são métodos dinâmicos adicionados pelo GORM (Grails' object relational mapping), cuja implementação padrão é feita sobre o Hibernate. São esses métodos que irão, eventualmente, inserir os dados no banco de dados, alterá-los ou consultá-los. Outro método que vale destacar é o DomainClass.find().

Instalando e usando um plugin Uma vez que a recomendação é que todo acesso a dados seja feito a partir de uma classe de serviço (que conterá a lógica de negócio de aplicação e também garantirá a transacionalidade da ação), mas queremos manter a aplicação simples, vamos instalar um plugin que torna as “actions” dos controllers transacionais: É o transactional-controller.

Instalando e usando um plugin grails install-plugin transactional-controller

Instalando e usando um plugin De acordo com a documentação do plugin, precisamos indicar as “actions” que serão transacionais. Vamos marcar a save e a update, ainda que, nessa aplicação de exemplo, isso não seja realmente necessário.

Instalando e usando um plugin

Iniciando a aplicação novamente grails run-app

Acessando a aplicação e navegando por ela

E removendo o plugin, no caso de “imprevistos” ;-) grails uninstall-plugin transactional-controller

Alterando configurações específicas de um ambiente Agora suponha que o banco de dados de produção não seja do mesmo tipo que o de desenvolvimento (no caso do nosso exemplo, o hsqldb que acompanha o Grails) ou não seja acessado da mesma forma. Para prepararmos nossa aplicação para produção, poderíamos (por exemplo), incluir o driver JDBC necessário no diretório lib e modificar a seção “production” do arquivo DataSource.groovy.

Alterando configurações específicas de um ambiente

Gerando o pacote (.war) para a implantação Uma vez que a aplicação já esteja testada (todos os testes automáticos e manuais tenham sido executados com sucesso) e validada, podemos gerar o .war para ser implantado em produção

Gerando o pacote (.war) para a implantação grails war

Gerando o pacote (.war) para a implantação

Fim Obrigado. daniel@techdm.com