Web 2.0 em Java com
   Google Web Toolkit
             1º encontro do JUG Português

                                Hugo ...
Quem é o Hugo Pinto?

    Profissional Java desde 1996
         Sun Certified Programmer, Developer, Architect…


    Core...
AJAX e Web 2.0

    A “nova moda” em Tecnologias Web
         Asynchronous JavaScript and XML

    Tem como base a API HTT...
Frameworks AJAX

    Programar directamente com a API HXR:
         Envolve doses maciças de JavaScript!...
         Resul...
O Google Web Toolkit
    O GWT tem uma diferença fundamental dos
    restantes frameworks AJAX: o foco no Java

    Com o ...
GWT – Características

    Emula o JRE para uma API básica comum
    Suporta comunicação via “RPC” Java-JS
    Tem um conj...
Processo de Desenvolvimento
1.     Desenvolver a aplicação em Java
            Usando uma API comum entre Java e JS

2.   ...
Hosted Mode

    O SDK do GWT inclui um web server, e um
    “browser” que permite interagir com as apps.

    No modo Hos...
Testes Unitários

    Test Driven Development anyone?
         O GWT fornece uma GWTTestCase, que é uma
         subclasse...
RPC em GWT




Web 2.0 em Java com GWT   (c) 2007 Hugo José Pinto   Slide 10
Transporte de Objectos
    Tudo o que for marcado como Serializable
         Ou, com maior controle, com IsSerializable

 ...
M? V? C? – e agora?


                                                     V              C



                           ...
M? V? C? – e agora?


            V             C                              C



                    M                 ...
AOP e DDD com GWT?

                          (ena, só siglas…)

    Se podemos passar classes “completas”, via
    RPC, p...
GWT++ - Para lá do framework

    Com o GWT a ganhar popularidade, foram
    surgindo módulos e add-ons para o kit.

    A...
Nem tudo são rosas…

    O processo de compilação é “tricky”

    Tudo falha pela menor alteração…

    O loose-typing dos...
GWT 1.5

    Suporte para a sintaxe de Java 5
         Generics, Enums, Enhanced For, etc.
         Óptimo para serializaç...
Conclusões
    GWT simplifica o desenvolvimento Web 2.0

    Reutilizar Java no browser e no servidor
    possibilita um p...
Q&A + Contactos

    Questões?

    http://jroller.com/page/hugopinto (old!)

    hugo.pinto@knowledgeworks.pt
    hugo.pi...
Upcoming SlideShare
Loading in...5
×

Google Web Toolkit

1,787

Published on

Apresentação de Hugo Pinto - 1º encontro PT.JUG.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,787
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Google Web Toolkit

  1. 1. Web 2.0 em Java com Google Web Toolkit 1º encontro do JUG Português Hugo José Pinto hugo.pinto@gmail.com Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 1
  2. 2. Quem é o Hugo Pinto? Profissional Java desde 1996 Sun Certified Programmer, Developer, Architect… Core member do nosso JUG português Não relacionado com a Google profissionalmente Dir. Executivo da Estamos a Contratar!... :) Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 2
  3. 3. AJAX e Web 2.0 A “nova moda” em Tecnologias Web Asynchronous JavaScript and XML Tem como base a API HTTPXMLRequest Desenvolvida pela Microsoft ☺ para o OWA Suportada pela vasta maioria dos browsers Standard do W3C a caminho…. e tarde. Mais revolução que evolução (IMHO) Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 3
  4. 4. Frameworks AJAX Programar directamente com a API HXR: Envolve doses maciças de JavaScript!... Resulta em aplicações difíceis de manter É um processo muito propenso a erros Existem muitos frameworks AJAX disponíveis: OSS: Dojo, qooxdoo, ZK, Echo2, Ext/JS, GWT Comerciais: Tibco UI, Backbase… Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 4
  5. 5. O Google Web Toolkit O GWT tem uma diferença fundamental dos restantes frameworks AJAX: o foco no Java Com o GWT, o desenvolvimento é feito numa linguagem compilada mas depurável com uma sintaxe fortemente tipificada com uma API familiar (java.lang.*, java.util.*, …) O GWT é baseado numa licença Apache 2.0 Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 5
  6. 6. GWT – Características Emula o JRE para uma API básica comum Suporta comunicação via “RPC” Java-JS Tem um conjunto de facilidades para: Desenho de Interfaces Gráficas Internacionalização Unit Testing Invocação de JavaScript Transporte e parsing de objectos JSON Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 6
  7. 7. Processo de Desenvolvimento 1. Desenvolver a aplicação em Java Usando uma API comum entre Java e JS 2. Testar a aplicação no browser Hosted Podendo inclusive fazer step debugging 3. Compilar a aplicação para deployment Esta é transformada num WAR comum 4. Colocar a aplicação num servidor J2EE Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 7
  8. 8. Hosted Mode O SDK do GWT inclui um web server, e um “browser” que permite interagir com as apps. No modo Hosted, uma aplicação GWT corre ainda em Java, e está disponivel via JPDA Podem ser colocados breakpoints Podem ser analisados os conteúdos das variaveis Pode ser feito step-by-step debug Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 8
  9. 9. Testes Unitários Test Driven Development anyone? O GWT fornece uma GWTTestCase, que é uma subclasse de TestCase que lança um “browser” Podemos testar widgets individuais ou toda a interface da aplicação com nos casos de teste A UI e a Aplicação voltam a ser facilmente testáveis em conjunto e como um todo Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 9
  10. 10. RPC em GWT Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 10
  11. 11. Transporte de Objectos Tudo o que for marcado como Serializable Ou, com maior controle, com IsSerializable Objectos passados pela sua interface O RPC do GWT Transforma os objectos Java em “objectos” JS Transforma as Collections em listas de Objectos Reconstrói tudo nas duas pontas da chamada Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 11
  12. 12. M? V? C? – e agora? V C M Browser Servidor BD Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 12
  13. 13. M? V? C? – e agora? V C C M M Cliente RIA Servidor BD Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 13
  14. 14. AOP e DDD com GWT? (ena, só siglas…) Se podemos passar classes “completas”, via RPC, podemos usar artifícios que: favorecem a transparência entre cliente e servidor facilitam a reutilização de código (POJOs) separam as preocupações transversais do negócio da própria aplicação Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 14
  15. 15. GWT++ - Para lá do framework Com o GWT a ganhar popularidade, foram surgindo módulos e add-ons para o kit. Alguns (poucos) exemplos: MyGWT e GWT-ext – Widgets Ricos GWT-DND – Drag-n-Drop GWT Diagrams – Diagramas na Web Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 15
  16. 16. Nem tudo são rosas… O processo de compilação é “tricky” Tudo falha pela menor alteração… O loose-typing dos comentários fere a integridade de princípio do próprio framework Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 16
  17. 17. GWT 1.5 Suporte para a sintaxe de Java 5 Generics, Enums, Enhanced For, etc. Óptimo para serialização de coisas complicadas. Óptimo para reutilizar os mesmos POJOs C/S Inúmeros Bug Fixes Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 17
  18. 18. Conclusões GWT simplifica o desenvolvimento Web 2.0 Reutilizar Java no browser e no servidor possibilita um pulo radical de qualidade e produtividade Apesar de não ser perfeito, possibilita a developers Java fazer uma transição fácil e com pouco risco para as Rich Internet Apps Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 18
  19. 19. Q&A + Contactos Questões? http://jroller.com/page/hugopinto (old!) hugo.pinto@knowledgeworks.pt hugo.pinto@gmail.com Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 19
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×