Produtividade na web com Groovy e Grails
Quem somos? Lucas Aquiles / @lucas_aquiles ADS / IFPI [email_address] lucasaquiles.com.br/blog Fco Marcos / @fcomarcosrocha ADS / IFPI Colaborador LAPESI fmarcosrocha@gmail.com
O Grails Inspiração Convenção ao invés de configuração
Ruby on Rails, Django, TurboGears Construído sobre gigantes Java/ JEE
Spring Framework
Hiberante Reduz a complexidade
Produtividade
O Grails GORM Baseado no Hiberante Camada de visão GSP (Groovy Server Pages)
TagLib dinâmicas e SiteMesh Camada de controle: Baseado no Spring MVC / Spring Web Flow Dependency Injection (DI)  Spring Container Internacionalização (i18n)
 
Grails - Instalação e Configuração http://www.grails.org/Downloads Descompacte o arquivo e configure o GRAILS_HOME
“Hello Grails” grails create-app helloword
grais create-controller HelloWord
grails- app/controllers/helloword/HelloWordController.groovy
def helloword = { render “meu 123487 hello word!” }
Comandos - Grails Comandos básicos grails  create-app  AppDemo
grails  create-domain-class  br.edu.ifpi.MinhaClass
grails  create-controller  br.edu.ifpi.MinhaClass
grails  create-service  br.edu.ifpi.MinhaClass
grails  generate-all  // gera as views os controlleres
grails  schema-export  // expora o esquema de tabelas
grails  console  // abre o console do groovy
grails  clean  // limpa aterações
grails  run-app  // roda a aplicação
Grails - Estrutura Arquivos de configuração: DataSource.groovy Config.groovy Bootstrap.groovy internacionalização web.xml Libs adicionais: ex mysql-connector.jar
DataSource - Grails DataSource - Arquivo de configuração de banco de dados
Configurado por padrão com o HSQLDB Um banco de dados leve, usado para testes Possui três ambientes de trabalho Test, Production e Development
DataSource - Grails
MVC - Grails M odelo – Tudo que será usado como Entidade ficá aqui. grails-app/domain/
grails create-domain-class
Separar a lógica de negócio do modelo
Cada classe de domínio corresponde à uma tabela do banco de dados relacional
MVC - Grails C ontroller: Toda regra de negócio fica no controller. grails-app/controller
grails create-controller
action:  São clousures que irão receber as requisições e fazer alguma coisa def actionQueFazAlgumaCoisa = {  render “\\o/” }
MVC - Grails Controller params:  é um map (hash) de parâmetros de uma requisição def  actionQuePegaOParamsEExibe = {  render “parametros: ${params}”  } flash:  map temporário que armazena objetos da seção, o hash é limpo a cada nova requisição  def actionQueMostraOFlashMessage = { flash.message = “${params}” }
MVC - Grails Controller render:  renderiza uma resposta

Produtividade na web_com_groovy_e_grails_pt2