SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
SESTINFO 2012


          Desenvolva aplicativos Java Web
         em pouco passos com Spring Roo
                          Eder Magalhães
                        twitter.com/edermag
                          www.yaw.com.br

                                              Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Agenda
       Mercado e oportunidades;
       Desafios em relizar uma idéia;
       Características do Spring Roo;
       Demo I: primeiro projeto;
       Tecnologias ao redor do Spring Roo;
       Demo II: relacionamento entre entidades;
       Como o Spring Roo gera código Java;
       Demo III: Spring + JSF 2;
       Engenharia reversa;
       Links;
                                        Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Oportunidades

       O Brasil é a bola da vez;

       Mercado aquecido;

       Startups brotando em todos os lugares;




                                        Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Colocar em prática!

       Realizar é uma idéia não é fácil;


       A escolha da tecnologia é um dos desafios!




                                           Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
A escolha da tecnologia

      Java é uma ótima escolha!
      Tecnologia madura e eficiente;
      Adotada em grande escala;
      Utilizada em diversos cenários;
      Oferece diversas tecnologias complementares;
      Viabiliza integração a outras linguagens;




                                       Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
A escolha da tecnologia

      Java é uma ótima escolha!
      Tecnologia madura e eficiente;
      Adotada em grande escala;
      Utilizada em diversos cenários;
      Oferece diversas tecnologias complementares;
      Viabiliza integração a outras linguagens;




                                       Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Algumas premissas
      Criar software de qualidade e eficiente;
      Escalável, seguro e rápido;
      Ágil, a prova de mudanças no decorrer do
      projeto;
      E principalmente:
         Desenvolver com produtividade!




                                       Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Spring Roo




      O Spring Roo atende a essas premissas;
      Desenvolvimento web, utilizando Java, com
      alta produtividade;


                                       Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Características do Roo
      Text based: shell com comandos alto nível;
      Fácil de usar;
      Elimina a burocracia de projetos Java;
      Utiliza algumas das melhores tecnologias
      (frameworks) Java;
      Adota modelo de implementação baseado em
      patterns;
      Extensível;
      Integrado a IDE (Eclipse / Spring Tools Suite)

                                         Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Chega de teoria! Demo I
      Vamos experimentar o Roo;
      Alguma sugestão para desenvolvimento da
      aplicação Demo?




                                     Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Demo I: comandos executados

  roo> project --topLevelPackage br.com.yaw.pizzameto
  roo> persistence setup --provider HIBERNATE
  --database HYPERSONIC_IN_MEMORY

  roo> entity jpa --class ~.model.Pizza
  roo> field string --fieldName sabor --notNull --sizeMin 3
  roo> field number --type java.lang.Double --fieldName
  preco

  roo> web mvc setup
  roo> controller all --package ~.web
  perform package




                                           Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Tecnologias suportadas pelo Roo


                         Web	
  MVC
                         Security
                         JavaScript         JUnit
                         Dojo
            JPA          JSF

                         JSF


                        PrimeFaces

                                      Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Outras características

      Também agiliza o deploy e a implatanção;
      Geração de código é: Ativa ou Passiva;
      Suporte a diferentes soluções para front-end;
      Framework web baseado em REST;
      Conversor de Java para JSON e vice-versa;
      Gera artefatos para testes unitários e
      integrado;
      A qualquer momento pode ser desligado;


                                        Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Demo II: complementar nosso aplicativo

      Criar relacionamento com outra entidade;
      Analisar os artefatos gerado pelo Roo;




                                       Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Demo II: comandos executados
  roo> perform eclipse
  roo> entity jpa --class ~.model.Receita

  roo> field string descricao

  roo> focus --class ~.model.Pizza

  roo> field reference --fieldName receita
  --type ~.model.Receita

  roo> controller all --package ~.web
  #deploy pelo eclipse




                                             Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Gerador de código

                                                          Produto.java
         AspectJ	
  IDTs   escreve     Roo       lê       preco: double
                                      Add-on
      Produto_Roo_
      JavaBean.aj                                lê

     getPreco()...
     SetPreco(...)           lê                 escreve
                                     AspectJ              Produto.class
                                     Compiler             preco: double

                                                          getPreco()...
                                                          setPreco(...)




                                                          Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Demo III: Spring Roo com JSF 2

      Utilizar a mesma idéia de aplicação, mas
      utilizando JSF 2 (+ Primefaces) como
      framework web;




                                        Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Demo III: comandos executados
  roo> project --topLevelPackage br.com.yaw.pizzameto2
  roo> persistence setup --provider HIBERNATE
  --database HYPERSONIC_IN_MEMORY

  roo> entity jpa --class ~.model.Pizza
  roo> field string --fieldName sabor --notNull --sizeMin 3
  roo> field number --type java.lang.Double
  --fieldName preco

  roo> web jsf setup --implementation ORACLE_MOJARRA
  --theme BLUESKY
  roo> web jsf all --package ~.jsf
  roo> perform package



                                           Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Engenharia reversa!

      Gerar um cadastro a partir de uma tabela:

  roo> project --topLevelPackage br.com.yaw.rev

  roo> persistence setup --provider HIBERNATE
  --database MYSQL --databaseName test
  --hostName root --password root

  roo> database reverse engineer --schema test
  --package ~.model --includeTable “produto”


                                           Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Spring Roo + JQuery + BootStrap

      Projeto que modifica os tag files do Roo
      (Spring MVC), para utilizar JQuery ao invés do
      Dojo e Bootstrap (css);

      http://github.com/edermag/roo-jquery




                                         Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Links

   http://www.springsource.org/roo
   http://blog.globalcode.com.br/search/label/Spring%20Roo
   http://forum.springsource.org/forumdisplay.php?f=67
   http://static.springsource.org/spring-roo/reference/html-
 single/index.html
   http://blog.springsource.com/category/roo/
   http://www.yaw.com.br/screencast
   http://github.com/edermag



                                            Globalcode	
  –	
  Open4education
Wednesday, May 16, 12
Obrigado !

                         eder@yaw.com.br
                        twitter.com/edermag




                                        Globalcode	
  –	
  Open4education
Wednesday, May 16, 12

Weitere ähnliche Inhalte

Was ist angesagt?

[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import
[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import
[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e importLoiane Groner
 
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...Loiane Groner
 
[Curso Java Basico] Aula 23: Como debugar no Netbeans
[Curso Java Basico] Aula 23: Como debugar no Netbeans[Curso Java Basico] Aula 23: Como debugar no Netbeans
[Curso Java Basico] Aula 23: Como debugar no NetbeansLoiane Groner
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Jonathan Prates
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para IniciantesLoiane Groner
 
[Curso Java Basico] Aula 21: For Each (for melhorado)
[Curso Java Basico] Aula 21: For Each (for melhorado)[Curso Java Basico] Aula 21: For Each (for melhorado)
[Curso Java Basico] Aula 21: For Each (for melhorado)Loiane Groner
 
Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...
Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...
Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...Joao Galdino Mello de Souza
 
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoCurso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoLoiane Groner
 
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratasLoiane Groner
 
[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
[Curso Java Basico - Orientacao a Objetos] Aula 44: InterfacesLoiane Groner
 
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...Loiane Groner
 
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOfLoiane Groner
 
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave superLoiane Groner
 
[Curso Java Basico] Aula 22: Como debugar no Eclipse
[Curso Java Basico] Aula 22: Como debugar no Eclipse[Curso Java Basico] Aula 22: Como debugar no Eclipse
[Curso Java Basico] Aula 22: Como debugar no EclipseLoiane Groner
 
[Curso Java Básico] Aula 07: Entendendo os Erros
[Curso Java Básico] Aula 07: Entendendo os Erros[Curso Java Básico] Aula 07: Entendendo os Erros
[Curso Java Básico] Aula 07: Entendendo os ErrosLoiane Groner
 
[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe Object
[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe Object[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe Object
[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe ObjectLoiane Groner
 
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-EndsSingle-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-EndsDaiana Cambruzzi Avila
 
[Curso Java Basico - Exceptions] Aula 51: tipos de erros no Java
[Curso Java Basico - Exceptions] Aula 51: tipos de erros no Java[Curso Java Basico - Exceptions] Aula 51: tipos de erros no Java
[Curso Java Basico - Exceptions] Aula 51: tipos de erros no JavaLoiane Groner
 
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...Loiane Groner
 

Was ist angesagt? (20)

[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import
[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import
[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import
 
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...
 
[Curso Java Basico] Aula 23: Como debugar no Netbeans
[Curso Java Basico] Aula 23: Como debugar no Netbeans[Curso Java Basico] Aula 23: Como debugar no Netbeans
[Curso Java Basico] Aula 23: Como debugar no Netbeans
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para Iniciantes
 
[Curso Java Basico] Aula 21: For Each (for melhorado)
[Curso Java Basico] Aula 21: For Each (for melhorado)[Curso Java Basico] Aula 21: For Each (for melhorado)
[Curso Java Basico] Aula 21: For Each (for melhorado)
 
JavaFX Mobile
JavaFX MobileJavaFX Mobile
JavaFX Mobile
 
Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...
Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...
Java 9 – Produtividade, Performance e Competitividade, mais do que uma nova v...
 
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoCurso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
 
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
 
[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
 
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
 
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
 
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
[Curso Java Basico - Orientacao a Objetos] Aula 38: Herança: Palavra chave super
 
[Curso Java Basico] Aula 22: Como debugar no Eclipse
[Curso Java Basico] Aula 22: Como debugar no Eclipse[Curso Java Basico] Aula 22: Como debugar no Eclipse
[Curso Java Basico] Aula 22: Como debugar no Eclipse
 
[Curso Java Básico] Aula 07: Entendendo os Erros
[Curso Java Básico] Aula 07: Entendendo os Erros[Curso Java Básico] Aula 07: Entendendo os Erros
[Curso Java Básico] Aula 07: Entendendo os Erros
 
[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe Object
[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe Object[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe Object
[Curso Java Basico - Orientacao a Objetos] Aula 43: Classe Object
 
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-EndsSingle-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
 
[Curso Java Basico - Exceptions] Aula 51: tipos de erros no Java
[Curso Java Basico - Exceptions] Aula 51: tipos de erros no Java[Curso Java Basico - Exceptions] Aula 51: tipos de erros no Java
[Curso Java Basico - Exceptions] Aula 51: tipos de erros no Java
 
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
 

Andere mochten auch

O que aprendi com WordPress
O que aprendi com WordPressO que aprendi com WordPress
O que aprendi com WordPressCristina Luz
 
Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Dr. Spock
 
Java NIO.2: Mais uma API para I/O?
Java NIO.2: Mais uma API para I/O?Java NIO.2: Mais uma API para I/O?
Java NIO.2: Mais uma API para I/O?OzJUG
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?tdc-globalcode
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeEder Magalhães
 
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...Leonam Pereira Dias
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAislan Rafael
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Pablo Dall'Oglio
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
Demoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaDemoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaVanderson Silva
 
Startups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papelStartups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papelLeonardo Velozo
 
Como colaborar com a comunidade WordPress
Como colaborar com a comunidade WordPressComo colaborar com a comunidade WordPress
Como colaborar com a comunidade WordPressGuga Alves
 

Andere mochten auch (16)

O que aprendi com WordPress
O que aprendi com WordPressO que aprendi com WordPress
O que aprendi com WordPress
 
Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!
 
Jheat
JheatJheat
Jheat
 
Java NIO.2: Mais uma API para I/O?
Java NIO.2: Mais uma API para I/O?Java NIO.2: Mais uma API para I/O?
Java NIO.2: Mais uma API para I/O?
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o Forge
 
Mobilize-se com WordPress
Mobilize-se com WordPressMobilize-se com WordPress
Mobilize-se com WordPress
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro Código
 
Extração de Dados do Facebook com o NetVizz
Extração de Dados do Facebook com o NetVizzExtração de Dados do Facebook com o NetVizz
Extração de Dados do Facebook com o NetVizz
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Demoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaDemoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a hora
 
Startups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papelStartups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papel
 
Como colaborar com a comunidade WordPress
Como colaborar com a comunidade WordPressComo colaborar com a comunidade WordPress
Como colaborar com a comunidade WordPress
 

Ähnlich wie Desenvolvimento Produtivo com Spring Roo

Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EEEder Magalhães
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem PráticaEder Magalhães
 
Produtividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App EngineProdutividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App EngineDr. Spock
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaDr. Spock
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Sergio Lima
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringEder Magalhães
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JSRodrigo Urubatan
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesEder Magalhães
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDr. Spock
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151alderleysousa444
 

Ähnlich wie Desenvolvimento Produtivo com Spring Roo (20)

Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EE
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem Prática
 
Produtividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App EngineProdutividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App Engine
 
Spring Roo
Spring RooSpring Roo
Spring Roo
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com Java
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e Spring
 
TDC 2012 - JDF
TDC 2012 - JDFTDC 2012 - JDF
TDC 2012 - JDF
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSF
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151
 

Mehr von Eder Magalhães

Concorrencia, baixa Latência e alta disponibilidade
Concorrencia, baixa Latência e alta disponibilidadeConcorrencia, baixa Latência e alta disponibilidade
Concorrencia, baixa Latência e alta disponibilidadeEder Magalhães
 
Java Is Back, Novidade do Java 8
Java Is Back, Novidade do Java 8Java Is Back, Novidade do Java 8
Java Is Back, Novidade do Java 8Eder Magalhães
 
MongoDB outras alternativas de persistência
MongoDB outras alternativas de persistênciaMongoDB outras alternativas de persistência
MongoDB outras alternativas de persistênciaEder Magalhães
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaSEder Magalhães
 
JDK8: Lambda, Jigsaw e novidades
JDK8: Lambda, Jigsaw e novidadesJDK8: Lambda, Jigsaw e novidades
JDK8: Lambda, Jigsaw e novidadesEder Magalhães
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingEder Magalhães
 
As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8Eder Magalhães
 
Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8Eder Magalhães
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
Richfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoRichfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoEder Magalhães
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011Eder Magalhães
 
Introducao ao Spring Web MVC
Introducao ao Spring Web MVCIntroducao ao Spring Web MVC
Introducao ao Spring Web MVCEder Magalhães
 
Profissao java gwt e javafx
Profissao java gwt e javafxProfissao java gwt e javafx
Profissao java gwt e javafxEder Magalhães
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 

Mehr von Eder Magalhães (20)

Cvc programacao reativa
Cvc programacao reativaCvc programacao reativa
Cvc programacao reativa
 
Concorrencia, baixa Latência e alta disponibilidade
Concorrencia, baixa Latência e alta disponibilidadeConcorrencia, baixa Latência e alta disponibilidade
Concorrencia, baixa Latência e alta disponibilidade
 
Java Is Back, Novidade do Java 8
Java Is Back, Novidade do Java 8Java Is Back, Novidade do Java 8
Java Is Back, Novidade do Java 8
 
MongoDB outras alternativas de persistência
MongoDB outras alternativas de persistênciaMongoDB outras alternativas de persistência
MongoDB outras alternativas de persistência
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
JDK8: Lambda, Jigsaw e novidades
JDK8: Lambda, Jigsaw e novidadesJDK8: Lambda, Jigsaw e novidades
JDK8: Lambda, Jigsaw e novidades
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8
 
Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
Java7 tdc2011
Java7 tdc2011Java7 tdc2011
Java7 tdc2011
 
Richfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoRichfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais rico
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
Introducao ao Spring Web MVC
Introducao ao Spring Web MVCIntroducao ao Spring Web MVC
Introducao ao Spring Web MVC
 
Profissao java gwt e javafx
Profissao java gwt e javafxProfissao java gwt e javafx
Profissao java gwt e javafx
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Android SestInfo 2010
Android SestInfo 2010Android SestInfo 2010
Android SestInfo 2010
 
JavaFX SestInfo 2010
JavaFX SestInfo 2010JavaFX SestInfo 2010
JavaFX SestInfo 2010
 
Gwt-Guice_TDC2009
Gwt-Guice_TDC2009Gwt-Guice_TDC2009
Gwt-Guice_TDC2009
 

Desenvolvimento Produtivo com Spring Roo

  • 1. SESTINFO 2012 Desenvolva aplicativos Java Web em pouco passos com Spring Roo Eder Magalhães twitter.com/edermag www.yaw.com.br Globalcode  –  Open4education Wednesday, May 16, 12
  • 2. Agenda Mercado e oportunidades; Desafios em relizar uma idéia; Características do Spring Roo; Demo I: primeiro projeto; Tecnologias ao redor do Spring Roo; Demo II: relacionamento entre entidades; Como o Spring Roo gera código Java; Demo III: Spring + JSF 2; Engenharia reversa; Links; Globalcode  –  Open4education Wednesday, May 16, 12
  • 3. Oportunidades O Brasil é a bola da vez; Mercado aquecido; Startups brotando em todos os lugares; Globalcode  –  Open4education Wednesday, May 16, 12
  • 4. Colocar em prática! Realizar é uma idéia não é fácil; A escolha da tecnologia é um dos desafios! Globalcode  –  Open4education Wednesday, May 16, 12
  • 5. A escolha da tecnologia Java é uma ótima escolha! Tecnologia madura e eficiente; Adotada em grande escala; Utilizada em diversos cenários; Oferece diversas tecnologias complementares; Viabiliza integração a outras linguagens; Globalcode  –  Open4education Wednesday, May 16, 12
  • 6. A escolha da tecnologia Java é uma ótima escolha! Tecnologia madura e eficiente; Adotada em grande escala; Utilizada em diversos cenários; Oferece diversas tecnologias complementares; Viabiliza integração a outras linguagens; Globalcode  –  Open4education Wednesday, May 16, 12
  • 7. Algumas premissas Criar software de qualidade e eficiente; Escalável, seguro e rápido; Ágil, a prova de mudanças no decorrer do projeto; E principalmente: Desenvolver com produtividade! Globalcode  –  Open4education Wednesday, May 16, 12
  • 8. Spring Roo O Spring Roo atende a essas premissas; Desenvolvimento web, utilizando Java, com alta produtividade; Globalcode  –  Open4education Wednesday, May 16, 12
  • 9. Características do Roo Text based: shell com comandos alto nível; Fácil de usar; Elimina a burocracia de projetos Java; Utiliza algumas das melhores tecnologias (frameworks) Java; Adota modelo de implementação baseado em patterns; Extensível; Integrado a IDE (Eclipse / Spring Tools Suite) Globalcode  –  Open4education Wednesday, May 16, 12
  • 10. Chega de teoria! Demo I Vamos experimentar o Roo; Alguma sugestão para desenvolvimento da aplicação Demo? Globalcode  –  Open4education Wednesday, May 16, 12
  • 11. Demo I: comandos executados roo> project --topLevelPackage br.com.yaw.pizzameto roo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY roo> entity jpa --class ~.model.Pizza roo> field string --fieldName sabor --notNull --sizeMin 3 roo> field number --type java.lang.Double --fieldName preco roo> web mvc setup roo> controller all --package ~.web perform package Globalcode  –  Open4education Wednesday, May 16, 12
  • 12. Tecnologias suportadas pelo Roo Web  MVC Security JavaScript JUnit Dojo JPA JSF JSF PrimeFaces Globalcode  –  Open4education Wednesday, May 16, 12
  • 13. Outras características Também agiliza o deploy e a implatanção; Geração de código é: Ativa ou Passiva; Suporte a diferentes soluções para front-end; Framework web baseado em REST; Conversor de Java para JSON e vice-versa; Gera artefatos para testes unitários e integrado; A qualquer momento pode ser desligado; Globalcode  –  Open4education Wednesday, May 16, 12
  • 14. Demo II: complementar nosso aplicativo Criar relacionamento com outra entidade; Analisar os artefatos gerado pelo Roo; Globalcode  –  Open4education Wednesday, May 16, 12
  • 15. Demo II: comandos executados roo> perform eclipse roo> entity jpa --class ~.model.Receita roo> field string descricao roo> focus --class ~.model.Pizza roo> field reference --fieldName receita --type ~.model.Receita roo> controller all --package ~.web #deploy pelo eclipse Globalcode  –  Open4education Wednesday, May 16, 12
  • 16. Gerador de código Produto.java AspectJ  IDTs escreve Roo lê preco: double Add-on Produto_Roo_ JavaBean.aj lê getPreco()... SetPreco(...) lê escreve AspectJ Produto.class Compiler preco: double getPreco()... setPreco(...) Globalcode  –  Open4education Wednesday, May 16, 12
  • 17. Demo III: Spring Roo com JSF 2 Utilizar a mesma idéia de aplicação, mas utilizando JSF 2 (+ Primefaces) como framework web; Globalcode  –  Open4education Wednesday, May 16, 12
  • 18. Demo III: comandos executados roo> project --topLevelPackage br.com.yaw.pizzameto2 roo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY roo> entity jpa --class ~.model.Pizza roo> field string --fieldName sabor --notNull --sizeMin 3 roo> field number --type java.lang.Double --fieldName preco roo> web jsf setup --implementation ORACLE_MOJARRA --theme BLUESKY roo> web jsf all --package ~.jsf roo> perform package Globalcode  –  Open4education Wednesday, May 16, 12
  • 19. Engenharia reversa! Gerar um cadastro a partir de uma tabela: roo> project --topLevelPackage br.com.yaw.rev roo> persistence setup --provider HIBERNATE --database MYSQL --databaseName test --hostName root --password root roo> database reverse engineer --schema test --package ~.model --includeTable “produto” Globalcode  –  Open4education Wednesday, May 16, 12
  • 20. Spring Roo + JQuery + BootStrap Projeto que modifica os tag files do Roo (Spring MVC), para utilizar JQuery ao invés do Dojo e Bootstrap (css); http://github.com/edermag/roo-jquery Globalcode  –  Open4education Wednesday, May 16, 12
  • 21. Links http://www.springsource.org/roo http://blog.globalcode.com.br/search/label/Spring%20Roo http://forum.springsource.org/forumdisplay.php?f=67 http://static.springsource.org/spring-roo/reference/html- single/index.html http://blog.springsource.com/category/roo/ http://www.yaw.com.br/screencast http://github.com/edermag Globalcode  –  Open4education Wednesday, May 16, 12
  • 22. Obrigado ! eder@yaw.com.br twitter.com/edermag Globalcode  –  Open4education Wednesday, May 16, 12