Desenvolvendo RIA com Spring:
     Google Web Toolkit

          Eder Magalhães
           @edermag


                           Globalcode – Open4education
Agenda - GWT
 Expectativa sobre RIA
 Desafios
 Google Web Toolkit
 Demonstrando GWT
 GWT ainda melhor com Spring
 Demonstrando GWT com Spring
 Alguns detalhes importantes
 Links


                               Globalcode – Open4education
Realidade
 Qual a experiência e a expectativa do usuário em
 relação a navegação?




                                         Globalcode – Open4education
Desafios
 Web convencional, sem plugins;

 Miscelânea de tecnologias;

 Incompatibilidade entre Browsers;

 Utilizar um framework? Qual?

 Produtividade afinal o prazo “já era”;


                                          Globalcode – Open4education
E não se esqueça

  É necessário:
     Performance
     Escalabilidade
     Segurança
     e outros “detalhes”...



Independente da tecnologia escolhida


                                       Globalcode – Open4education
Que tal?



               Rich Internet Application
      +    =   com os recursos da
               família Spring




                             Globalcode – Open4education
O que é o GWT?

 Google Web Toolkit
 Kit de ferramentas p/ desenvolvimento web
   Compilador
   Emulador / Web Container
   Debug
   RPC
 Open-Source;



                                        Globalcode – Open4education
Pontos fortes do GWT
 Muito Ajax sem escrever JavaScript;

 Maior parte do código escrito em Java;

 Cross-Browser Support;

 Vários componentes UI;

 Componentes/extensões de terceiro;


                                          Globalcode – Open4education
Estrutura do projeto




           Desenvolvimento   Produção


                                    Globalcode – Open4education
Compilador (magia)
public class EntryPoint {
  ...
   private DialogBox dialog = new DialogBox ();
  ...
}




  ...
  var dialog = DialogBox {};
  function onLoad() {
    //code here
  }
  ...




                                                  Globalcode – Open4education
Integração c/ Server-side

 Mecanismo RPC para troca de dados;
 Serialização de Java p/ JavaScript e o contrário;




                        AJAX


     client                              server


                                           Globalcode – Open4education
Ambiente



 Demonstração, uma visão geral do GWT.
   Projeto demonstração do plugin google para o Eclipse;




                                              Globalcode – Open4education
Mas e o Spring?
 Várias alternativas de arquitetura:

   Básica: GWT + Controllers manuais c/ Spring JDBC;

   Completa: GWT + Spring MVC c/ IoC e DI, c/ suporte
   para outros módulos: AOP + Security + Transaction;




                                             Globalcode – Open4education
Revisando o RPC




                  Globalcode – Open4education
GwtRpcController




                   Globalcode – Open4education
Demo



 Demonstração do GWT com Spring MVC;

 Case: GWT e Spring em um sistema de leilões;




                                       Globalcode – Open4education
O que mais...
 Suporte a JSON e XML
 JSNI “uma ponte” para JavaScript;
 Suporte a i18n e Testes Unitários;
 Customização de Temas ou uso direto de CSS;
 GWT 2.0:
   UIBinder;
   Compile;
   Novo formato de execução em Desenv;



                                         Globalcode – Open4education
Pontos Fracos do GWT
 Ferramentas;

 Pré-requisitos:
   Fluência em Java
   Experiência em Orientação a Objetos

 Modelos complexos podem dificultar o binding com
 JavaScript;



                                         Globalcode – Open4education
Links
 http://www.springsource.org/
 http://code.google.com/intl/pt-BR/webtoolkit/
 http://technophiliac.wordpress.com/2008/08/24/giving-gwt-
 a-spring-in-its-step/
 http://blog.digitalascent.com/2007/11/gwt-rpc-with-spring-
 2x_12.html
 http://www.smartclient.com/smartgwt/showcase




                                                 Globalcode – Open4education
É isso!



          Obrigado 

                  eder@yaw.com.br
                       @edermag


                        Globalcode – Open4education

Desenvolvimento RIA com GWT e Spring

  • 1.
    Desenvolvendo RIA comSpring: Google Web Toolkit Eder Magalhães @edermag Globalcode – Open4education
  • 2.
    Agenda - GWT Expectativa sobre RIA Desafios Google Web Toolkit Demonstrando GWT GWT ainda melhor com Spring Demonstrando GWT com Spring Alguns detalhes importantes Links Globalcode – Open4education
  • 3.
    Realidade Qual aexperiência e a expectativa do usuário em relação a navegação? Globalcode – Open4education
  • 4.
    Desafios Web convencional,sem plugins; Miscelânea de tecnologias; Incompatibilidade entre Browsers; Utilizar um framework? Qual? Produtividade afinal o prazo “já era”; Globalcode – Open4education
  • 5.
    E não seesqueça É necessário: Performance Escalabilidade Segurança e outros “detalhes”... Independente da tecnologia escolhida Globalcode – Open4education
  • 6.
    Que tal? Rich Internet Application + = com os recursos da família Spring Globalcode – Open4education
  • 7.
    O que éo GWT? Google Web Toolkit Kit de ferramentas p/ desenvolvimento web Compilador Emulador / Web Container Debug RPC Open-Source; Globalcode – Open4education
  • 8.
    Pontos fortes doGWT Muito Ajax sem escrever JavaScript; Maior parte do código escrito em Java; Cross-Browser Support; Vários componentes UI; Componentes/extensões de terceiro; Globalcode – Open4education
  • 9.
    Estrutura do projeto Desenvolvimento Produção Globalcode – Open4education
  • 10.
    Compilador (magia) public classEntryPoint { ... private DialogBox dialog = new DialogBox (); ... } ... var dialog = DialogBox {}; function onLoad() { //code here } ... Globalcode – Open4education
  • 11.
    Integração c/ Server-side Mecanismo RPC para troca de dados; Serialização de Java p/ JavaScript e o contrário; AJAX client server Globalcode – Open4education
  • 12.
    Ambiente Demonstração, umavisão geral do GWT. Projeto demonstração do plugin google para o Eclipse; Globalcode – Open4education
  • 13.
    Mas e oSpring? Várias alternativas de arquitetura: Básica: GWT + Controllers manuais c/ Spring JDBC; Completa: GWT + Spring MVC c/ IoC e DI, c/ suporte para outros módulos: AOP + Security + Transaction; Globalcode – Open4education
  • 14.
    Revisando o RPC Globalcode – Open4education
  • 15.
    GwtRpcController Globalcode – Open4education
  • 16.
    Demo Demonstração doGWT com Spring MVC; Case: GWT e Spring em um sistema de leilões; Globalcode – Open4education
  • 17.
    O que mais... Suporte a JSON e XML JSNI “uma ponte” para JavaScript; Suporte a i18n e Testes Unitários; Customização de Temas ou uso direto de CSS; GWT 2.0: UIBinder; Compile; Novo formato de execução em Desenv; Globalcode – Open4education
  • 18.
    Pontos Fracos doGWT Ferramentas; Pré-requisitos: Fluência em Java Experiência em Orientação a Objetos Modelos complexos podem dificultar o binding com JavaScript; Globalcode – Open4education
  • 19.
    Links http://www.springsource.org/ http://code.google.com/intl/pt-BR/webtoolkit/ http://technophiliac.wordpress.com/2008/08/24/giving-gwt- a-spring-in-its-step/ http://blog.digitalascent.com/2007/11/gwt-rpc-with-spring- 2x_12.html http://www.smartclient.com/smartgwt/showcase Globalcode – Open4education
  • 20.
    É isso! Obrigado  eder@yaw.com.br @edermag Globalcode – Open4education