Breve introdução. Uma breve introdução. Simplicidade e Poder. Rápido Dinâmico Robusto



Documentos relacionados
Frameworks - Grails. Aécio Costa

Produtividade na web com Groovy e Grails

Introdução. Entendendo os Controles. Definindo um controle. Introdução MOCKDOMAIN() Testando uma classe de domínio mockdomain

Análise comparativa de produtividade entre Groovy e Java, aplicado no desenvolvimento web

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

Grails e as novidades

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

Projeto Arquitetural do IEmbedded

JavaServer Faces. Parte 2

Procedimentos para Instalação do Sisloc

Especificação do Trabalho

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC TurmaBC TurmaBC TurmaBC

Procedimentos para Reinstalação do Sisloc

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Programação de Computadores - I. Profª Beatriz Profº Israel

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

STK (Start Kit DARUMA) Procedimento de Instalação do Min200E Conexão USB

Instalação do VOL Backup para Sistemas Unix-Like

Capítulo 04: Persistência com SQLite

ASP.NET MVC em Ação. Jeffrey Palermo Ben Scheirman Jimmy Bogard. Novatec. Prefácio de Phil Haack

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Tutorial: Serviços web e suas composições

Tutorial Eclipse (IDE)

Introdução ao Tableau Server 7.0

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

Instalação rápida do Expresso

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

Entendendo como funciona o NAT


Manual de Instalação e Configuração do SQL Express

Exibindo o Catálogo (Tarefa C) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. Rodrigo Hjort. Robson Ximenes

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

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

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Programação Web Aula 8 - Rails (Introdução)

4 O Workflow e a Máquina de Regras

Guia rápido de recursos Wi-Fi GZ-EX210

OPERANDO COM A NOTA FISCAL ELETRÔNICA

ADIANTI FRAMEWORK PARA PHP

Procedimentos para Instalação do SISLOC

Java Server Pages: Apresentação e Instalação

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

STK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork

Criando uma agenda simples com NetBeans 6.5

MANUAL DE SUPORTE. Controle de Suporte. Este manual descreve as funcionalidades do controle de suporte.

Manual Xerox capture EMBRATEL

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

STK (Start Kit DARUMA) Procedimento de Instalação da FS700/MACH Conexão USB

Tutorial Básico. Instalando e testando o Ruby on Rails no Windows

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

Validação de formulário : CEP, e CPF

Java e JavaScript. Krishna Tateneni Tradução: Lisiane Sztoltz

CURSO DE PROGRAMAÇÃO EM JAVA

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

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de Rafael Polo e Sabrina Arêas

Guia de instalação para ambiente de Desenvolvimento LINUX

Agendador de tarefas. Morgan N. Sandquist Desenvolvedor: Gary Meyer Revisor: Lauri Watts Tradução: Henrique Marks

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Acesso Remoto Placas de captura

STK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork

Manual de Instalação e Utilização Betha Compras AutoCotação

II Semana de Tecnologia da Informação. Rails Framework

Scriptlets e Formulários

Manual do Assinador de Documentos

Java. Marcio de Carvalho Victorino

Introdução ao Android

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

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

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

JDBC Java Database Connectivity

PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

PBX. Guia do usuário

Lógica de Programação

Curso Básico de Visual FoxPro 8.0

Persistência de dados com JPA. Hélder Antero Amaral Nunes

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB

Parte I. Demoiselle Mail


Nome N Série: Ferramentas

PROJETO PEDAGÓGICO DE CURSOS

Boletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web,

Laboratório de ENGSOF Estudo de Caso. Prof. André Pereira, MSC, PMP

DESENVOLVIMENTO DE SISTEMAS COM GRAILS + IREPORT

Fundamentos de Programação II. Introdução à linguagem de programação C++

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP

WebWork 2. João Carlos Pinheiro.

Criando sua primeira aplicação JAVA com o Eclipse

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

Adapti - Technology Solutions Leonor cardoso nº 331 Fone : (041) Curitiba - PR MANUAL DO USUÁRIO

WebApps em Java com uso de Frameworks

Omega Tecnologia Manual Omega Hosting

Transcrição:

Breve introdução Uma breve introdução Rápido Dinâmico Robusto Simplicidade e Poder Linguagem dinâmica Arquitetura Mapeamento Objeto Relacional Convenção DRY YAGNI KISS Groovy MVC Hibernate Sobre configuração Dont Repeat Yourself Youaintgonnaneedit KeepIt Simple, Stupid 1

Não apenas um framework Um ambiente full-stack Plataforma Groovy Eco-sistema Java Servidor web Banco de dados Crud em 5 minutos! Criação de projeto e Crud em 5 minutos Uma aplicação Uma classe para o Crud Nome do projeto: jctunes 2

Tempo!!! Ufa... Instalando e testando Um gostinho de Grails Exige Java 5.0 ou superior Download Grails: http://grails.org/download Descompacte Cria uma variável de ambiente GRAILS_HOME Adicione GRAILS_HOME\bin ao seu PATH Valide a instalação grails Use 'grails help' for more info or Criando a primeira aplicação: 6 passos Executar o comando para criar a aplicação grails create-app jctunes Navegar até o diretório da nova aplicação cd jctunes Criar nosso primeiro controlador grails create-controller loja Escrever algum código no melhor estilo hello... Escrever o código de teste e executar os testes grails test-app Executar a aplicação grails run-app 3

grails create-app jctunes cd jctunes grails create-controller Loja grails create-controller Loja Criação de 2 classes Loja Controller.groovy No diretório controllers/jctunes Classe de teste 4

Exibindo uma mensagem Para todo controlador, por default Grails cria uma ação chamada index package jctunes class LojaController { def index = { package jctunes render 1 dos métodos implícitos class LojaController { def index = { render "Seja benvindo a Loja jctunes!" Por convenção tenta renderizar uma view chamada grails-app/views/loja/index.gsp Testes de integração Para todo o ambiente desenvolvido incluindo a base de dados Geralmente, mais lentos Aplicação deve possuir alguma completude Testando o código com Grails Testes unitários Rápidos Fazem uso de mocks e stubs Escrevendo o código de testes package jctunes import grails.test.* class LojaControllerTests extends ControllerUnitTestCase { protected void setup() { super.setup() protected void teardown() { super.teardown() void testpaginaprincipal() { controller.index() assertequals "Seja benvindo a Loja jctunes!", controller.response.contentasstring grails test-app 5

target/test-reports Testando o Código grails run-app grails run-app Porta em Conflito??? Iniciando Grails CRUD, Scaffolding e Domínio 6

Scaffolding Classes de Domínio Permite gerar rapidamente interfaces de CRUD para classes de domínio Facilita o entendimento de como a Visão e o Controle interagem no Grails Lógica do negócio São persistidas Classes de Domínio Mapeadas automaticamente para tabelas de banco de dados Hibernate Localização grails-app\domain\nomedoprojeto Criação grails create-domain-class grails create-domain-class Musica grails create-domain-class Musica class Musica { static constraints = { 7

Again... grails create-domain-class Musica class Musica { String titulo String artista Integer duracao Date lancamento static constraints = { Scaffolding Dinâmicos Lógica do controle e visões são geradas em tempo de execução Estáticos Criação de templates grails create-controller jctunes.musica class MusicaController { Habilitando o Scaffolding dinâmico class MusicaController { def index = { def scaffold = Musica 8

Vamos testar... Relacionamentos com classes Nova classe 1 para 1 1 para muitos Muitos para 1 Muitos para muitos... * 1 Como definir uma relação 1 para muitos? static hasmany = [musicas: Musica] 9

Classe Album static hasmany = [musica: Musica] Esta relação é unidirecional class Album { String titulo Para torná-la bidirecional inclua uma referência de Album na classe Musica static hasmany = [musica: Musica] static constraints = { Altere a classe Musica para tornar a relação bi-direcional class Musica {... Album album... class AlbumController { AlbumController Geração do código das visões e dos controles Scaffolding estático def scaffold = Album Pode ajudar na familiarização com o Grails e como o todo trabalha junto Ponto de partida para adicionar para casos de uso que precisam de uma lógica além CRUD 10

Scaffolding estático 3 targets básicos grails generate-views Gera as visões para uma classe de domínio específico grails generate-controller Gera o controle para uma classe de domínio específico grails generate-allall Gera ambos controle e visões associados Como o controle já existe Grails fará 2 perguntas ele pergunta se você deseja sobrescrever a classe AlbumController e sua classe de teste -> responda Y (yes) Milhares de linhas? 10 camadas??? DAO Controle Classe de Negócio TO POJO Vamos examinar o código gerado 11

Vamos examinar o código gerado Repita o processo para a classe Música Gere o controlador de Musica novamente grails generate-controller jctunes.musica Gere as visões novamente grails generate-views jctunes.musica Dúvidas??? Obrigado! 12