Introdução ao
       Framework Grails

Adriano Basto Antunes
Tópicos
                                Grails
 Contexto Histórico            Estudo de Caso
    Breve Histórico               Problema
    Surgimento do Grails          Desenvolvendo c/ Scrum
                                   Product Backlog
Surge o Grails                    Sprint Backlog
    O que é? Criadores e          Digrama de Classe
     Comunidade                    O Sistema
    Groovy                        Camada de Modelo
       Comparação com Java.       Camada de Controle
       Closures                   Camada de Visualização
                                   Testes
                                   Persistência de Dados
                                   Plugins
                                   Implantação
Breve Histórico

 Evolução ambiente computacional
 Desenvolvimento ágil
 Frameworks
Surgimento do Grails

    Java vs Ruby on RailsVantagens
      Vantagens do RoR sobre o Java
      Vantagens do Java sobre o RoR
      Soluções
          Implantar Ruby/Python em Java
          Criar nova ferramenta escrita em Groovy e
           baseada no RoR
Surge o Grails
 O que é?
 Criadores
 Comunidade
 Groovy
    O  que é?
     Principais Vantagens.
Closure
 Variáveis
 Bloco de códigos executaveis em lugar de
  um único valor
 Conceito antigo reutilizado ao máximo
  pelo Groovy
Exemplo de Closure
 Declaração
 def save = {
                  def usuarioInstance = new Usuario(params)
                  if (usuarioInstance.save(flush: true)) {
                  redirect(action: "show", id: usuarioInstance.id)
                  }
                  else {
                   render(view:"create", model:[usuarioInstance:
    usuarioInstance])
                  }
     }
 Referência/Execução
 def aba = new Usuario(nome:"Adriano Basto", login:"aba",
 senha:"123456")
 aba.save()
Grails
   Criando Uma aplicação Grails
     IDEs
          NetBeans, Eclipse
     Linha   de Comando

   Estudo de Caso
     Problema
     Soluçãoem Grails
     Desenvolvendo com Scrum
Product Backlog
       NOME DA ESTÓRIA     IMP   EST                       COMO DEMONSTRAR
 ID
                                                  Usuário faz login, clica em clientes, na página
         CADASTRO DE
 1                         10     1     clientes seleciona "criar novo", insere os dados e clica em
        CLIENTES
                                                                  salvar.
                                                Usuário faz login, clica em funcionários, e se for
         CADASTRO DE                      autorizado de acordo com seu papel na aplicação vai a
 2                          5     3
      FUNCIONÁRIOS                     pagina funcionários seleciona "criar novo", insere os dados e
                                                             clica em salvar.
                                              Possuirá dependência direta do controle de estoque e
 7    CONTROLE DE VENDAS   10     8
                                                                 de caixa.
                                              Se a forma de venda for a prazo, clica-se em Venda a
      CONTROLE DE VENDAS
 8                         10     2    prazo, clica em "Criar nova", seleciona cliente por código e
         A PRAZO
                                                   nome, insere dados da venda e salva.
                                               Depende do controle de vendas, serviços, compras,
 9    CONTROLE DE CAIXA     8    10
                                                                 despesas
                                               Clica em realizar venda na sessão venda, insere os
 15     REALIZAR VENDA     10    10
                                                 dados da venda e imprime cupom fiscal
      CONSULTAR VENDAS A                       Digita um dado sobre a venda no campo buscar da
 16                        10     2
          PRAZO                                  sessão vendas a prazo e clica em buscar
Sprint Backlog
       NOME DA ESTÓRIA       IMP   EST                    COMO DEMONSTRAR
ID

                                                 Usuário loga-se, clica em clientes, na página
1    CADASTRO DE CLIENTES    10     1    clientes seleciona "criar novo", insere os dados e clica
                                                               em salvar.

                                                 Se a forma de venda for a prazo, clica-se em
     CONTROLE DE VENDAS A
2                            10     2    Venda a prazo, clica em "Criar nova", seleciona cliente
          PRAZO
                                           por código e nome, insere dados da venda e salva.

     CONSULTAR VENDAS A                         Digita um dado sobre a venda no campo buscar
3                            10     2
          PRAZO                                da sessão vendas a prazo e clica em buscar

                                                   Digita um dado sobre o cliente no campo
4     CONSULTAR CLIENTES     10     3
                                              buscar da sessão clientes e clica em buscar

                                                    Clica em cliente e uma lista de clientes
5       LISTAR CLIENTES      10     1
                                                         cadastrados é exibida
                                                Clica em vendas a prazo e uma lista de vendas é
6    LISTAR VENDAS A PRAZO   10     2
                                                                 exibida
Diagramas de Classes
O Sistema
Estrutura de Diretórios
                            grails-app
   conf

domain
                          controllers
 services
                                 i18n
 utils
                          taglib

views                     lib

    src                   test


     Web-app
Camada de Modelo
 Constraints (Validações)
 Herança
 Relacionamento
Classe de Domínio
                            Herança




                                  Relacionamento




 Constraints (Validações)
Camada de Controle
   Scaffold
     Quando   usar? Como usar?
   Action Segurança
       Acesso e Autenticação de Usuários
   Filtros
     Administração   do Sistema
   Classes Utilitárias
     Codificação   de Senhas
Classe de Controle
                     Closure
                     No controller
                     chamada action
Camada de Visualização
 GSP – Groovy Server Pages
 SiteMesh
 Bibliotecas de Marcas (TagLibs)
     Templates   e Layout
Arquivo GSP
Testando a aplicação
 TDD
 Testes Unitários
 Hierarquia de teste em Grails
Persistência de Dados da
Aplicação
   DataSource.groovy
     Dbcreate
     Enviroments
       HSQLDB
       MySql

   GORM e Hibernate
Persistência de Dados
Expandindo a aplicação
 Plugins
 Spring
 O Plugin Searchale (busca rápida)
Implementação da Aplicação

   Deploy
   Tomcat
   War

             Árvore de
             diretórios war
Conclusão
Grails caracteriza-se por fim como:
 Recurso Aliado ao Java
 Implementar Desenvolvimento ágil
 Gerar soluções rápidas e eficientes
MUITO OBRIGADO!

Introdução ao framework grails slide

  • 1.
    Introdução ao Framework Grails Adriano Basto Antunes
  • 2.
    Tópicos  Grails  Contexto Histórico  Estudo de Caso  Breve Histórico  Problema  Surgimento do Grails  Desenvolvendo c/ Scrum  Product Backlog Surge o Grails  Sprint Backlog  O que é? Criadores e  Digrama de Classe Comunidade  O Sistema  Groovy  Camada de Modelo  Comparação com Java.  Camada de Controle  Closures  Camada de Visualização  Testes  Persistência de Dados  Plugins  Implantação
  • 3.
    Breve Histórico  Evoluçãoambiente computacional  Desenvolvimento ágil  Frameworks
  • 4.
    Surgimento do Grails  Java vs Ruby on RailsVantagens  Vantagens do RoR sobre o Java  Vantagens do Java sobre o RoR  Soluções  Implantar Ruby/Python em Java  Criar nova ferramenta escrita em Groovy e baseada no RoR
  • 5.
    Surge o Grails O que é?  Criadores  Comunidade  Groovy O que é?  Principais Vantagens.
  • 6.
    Closure  Variáveis  Blocode códigos executaveis em lugar de um único valor  Conceito antigo reutilizado ao máximo pelo Groovy
  • 7.
    Exemplo de Closure Declaração def save = { def usuarioInstance = new Usuario(params) if (usuarioInstance.save(flush: true)) { redirect(action: "show", id: usuarioInstance.id) } else { render(view:"create", model:[usuarioInstance: usuarioInstance]) } } Referência/Execução def aba = new Usuario(nome:"Adriano Basto", login:"aba", senha:"123456") aba.save()
  • 8.
    Grails  Criando Uma aplicação Grails  IDEs  NetBeans, Eclipse  Linha de Comando  Estudo de Caso  Problema  Soluçãoem Grails  Desenvolvendo com Scrum
  • 9.
    Product Backlog NOME DA ESTÓRIA IMP EST COMO DEMONSTRAR ID Usuário faz login, clica em clientes, na página CADASTRO DE 1 10 1 clientes seleciona "criar novo", insere os dados e clica em CLIENTES salvar. Usuário faz login, clica em funcionários, e se for CADASTRO DE autorizado de acordo com seu papel na aplicação vai a 2 5 3 FUNCIONÁRIOS pagina funcionários seleciona "criar novo", insere os dados e clica em salvar. Possuirá dependência direta do controle de estoque e 7 CONTROLE DE VENDAS 10 8 de caixa. Se a forma de venda for a prazo, clica-se em Venda a CONTROLE DE VENDAS 8 10 2 prazo, clica em "Criar nova", seleciona cliente por código e A PRAZO nome, insere dados da venda e salva. Depende do controle de vendas, serviços, compras, 9 CONTROLE DE CAIXA 8 10 despesas Clica em realizar venda na sessão venda, insere os 15 REALIZAR VENDA 10 10 dados da venda e imprime cupom fiscal CONSULTAR VENDAS A Digita um dado sobre a venda no campo buscar da 16 10 2 PRAZO sessão vendas a prazo e clica em buscar
  • 10.
    Sprint Backlog NOME DA ESTÓRIA IMP EST COMO DEMONSTRAR ID Usuário loga-se, clica em clientes, na página 1 CADASTRO DE CLIENTES 10 1 clientes seleciona "criar novo", insere os dados e clica em salvar. Se a forma de venda for a prazo, clica-se em CONTROLE DE VENDAS A 2 10 2 Venda a prazo, clica em "Criar nova", seleciona cliente PRAZO por código e nome, insere dados da venda e salva. CONSULTAR VENDAS A Digita um dado sobre a venda no campo buscar 3 10 2 PRAZO da sessão vendas a prazo e clica em buscar Digita um dado sobre o cliente no campo 4 CONSULTAR CLIENTES 10 3 buscar da sessão clientes e clica em buscar Clica em cliente e uma lista de clientes 5 LISTAR CLIENTES 10 1 cadastrados é exibida Clica em vendas a prazo e uma lista de vendas é 6 LISTAR VENDAS A PRAZO 10 2 exibida
  • 11.
  • 12.
  • 13.
    Estrutura de Diretórios grails-app conf domain controllers services i18n utils taglib views lib src test Web-app
  • 14.
    Camada de Modelo Constraints (Validações)  Herança  Relacionamento
  • 15.
    Classe de Domínio Herança Relacionamento Constraints (Validações)
  • 16.
    Camada de Controle  Scaffold  Quando usar? Como usar?  Action Segurança  Acesso e Autenticação de Usuários  Filtros  Administração do Sistema  Classes Utilitárias  Codificação de Senhas
  • 17.
    Classe de Controle Closure No controller chamada action
  • 18.
    Camada de Visualização GSP – Groovy Server Pages  SiteMesh  Bibliotecas de Marcas (TagLibs)  Templates e Layout
  • 19.
  • 20.
    Testando a aplicação TDD  Testes Unitários  Hierarquia de teste em Grails
  • 21.
    Persistência de Dadosda Aplicação  DataSource.groovy  Dbcreate  Enviroments  HSQLDB  MySql  GORM e Hibernate
  • 22.
  • 23.
    Expandindo a aplicação Plugins  Spring  O Plugin Searchale (busca rápida)
  • 24.
    Implementação da Aplicação  Deploy  Tomcat  War Árvore de diretórios war
  • 25.
    Conclusão Grails caracteriza-se porfim como:  Recurso Aliado ao Java  Implementar Desenvolvimento ágil  Gerar soluções rápidas e eficientes
  • 26.