SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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

    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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Meteor um overview sobre a plataforma
Meteor   um overview sobre a plataformaMeteor   um overview sobre a plataforma
Meteor um overview sobre a plataformaCaio Ribeiro Pereira
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticasRicardo Monteiro
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitEvaldo Junior
 
Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebNielson Santana
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018Jonh Wendell
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1Lucas Aquiles
 

Was ist angesagt? (8)

Meteor um overview sobre a plataforma
Meteor   um overview sobre a plataformaMeteor   um overview sobre a plataforma
Meteor um overview sobre a plataforma
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticas
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Git alem do basico
Git alem do basicoGit alem do basico
Git alem do basico
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para Web
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1
 

Andere mochten auch

Scripting na JVM
Scripting na JVMScripting na JVM
Scripting na JVMPT.JUG
 
Apresentação LifeRay
Apresentação LifeRayApresentação LifeRay
Apresentação LifeRayPT.JUG
 
The tale of the Fénix architecture
The tale of the Fénix architectureThe tale of the Fénix architecture
The tale of the Fénix architecturePT.JUG
 
Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3PT.JUG
 
Lightweight Grids With Terracotta
Lightweight Grids With TerracottaLightweight Grids With Terracotta
Lightweight Grids With TerracottaPT.JUG
 
BdS - Garantieverzinsung: Der Große Bluff
BdS - Garantieverzinsung: Der Große BluffBdS - Garantieverzinsung: Der Große Bluff
BdS - Garantieverzinsung: Der Große BluffHans Müller
 

Andere mochten auch (7)

Scripting na JVM
Scripting na JVMScripting na JVM
Scripting na JVM
 
Apresentação LifeRay
Apresentação LifeRayApresentação LifeRay
Apresentação LifeRay
 
The tale of the Fénix architecture
The tale of the Fénix architectureThe tale of the Fénix architecture
The tale of the Fénix architecture
 
Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3
 
Lightweight Grids With Terracotta
Lightweight Grids With TerracottaLightweight Grids With Terracotta
Lightweight Grids With Terracotta
 
BdS - Garantieverzinsung: Der Große Bluff
BdS - Garantieverzinsung: Der Große BluffBdS - Garantieverzinsung: Der Große Bluff
BdS - Garantieverzinsung: Der Große Bluff
 
Lebkuchenhaus
LebkuchenhausLebkuchenhaus
Lebkuchenhaus
 

Ähnlich wie Google Web Toolkit

Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Fabrício Catae
 
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
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFGiordano Bruno Vieira
 
Netbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java DesktopNetbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java Desktopelliando dias
 
GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...
GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...
GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...mercuriocfg
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesRodrigo Peleias
 
GWT - de iniciante a especialista
GWT - de iniciante a especialistaGWT - de iniciante a especialista
GWT - de iniciante a especialistaDanilo Reinert
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJoão Longo
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Rodrigo Kono
 
A evolução de uma arquitetura distribuída
A evolução de uma arquitetura distribuídaA evolução de uma arquitetura distribuída
A evolução de uma arquitetura distribuídaGuilherme Garnier
 

Ähnlich wie Google Web Toolkit (20)

Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)
 
Desenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWTDesenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWT
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e Spring
 
GWT - RIA baseada em AJAX
GWT - RIA baseada em AJAXGWT - RIA baseada em AJAX
GWT - RIA baseada em AJAX
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JF
 
GWT
GWTGWT
GWT
 
Netbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java DesktopNetbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java Desktop
 
Mc56 gwt
Mc56 gwtMc56 gwt
Mc56 gwt
 
GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...
GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...
GINGA: Interatividade na TV Digital com Java - FLISol 2015 - IFSP - Votuporan...
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 Portugues
 
GWT - de iniciante a especialista
GWT - de iniciante a especialistaGWT - de iniciante a especialista
GWT - de iniciante a especialista
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a Objetos
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
 
Netbeans Slides
Netbeans SlidesNetbeans Slides
Netbeans Slides
 
Gwt parte 01
Gwt   parte 01Gwt   parte 01
Gwt parte 01
 
A evolução de uma arquitetura distribuída
A evolução de uma arquitetura distribuídaA evolução de uma arquitetura distribuída
A evolução de uma arquitetura distribuída
 
Palestra Netbeans 6 Campus Party
Palestra Netbeans 6 Campus PartyPalestra Netbeans 6 Campus Party
Palestra Netbeans 6 Campus Party
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 

Mehr von PT.JUG

Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologiesPT.JUG
 
Putting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RSPutting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RSPT.JUG
 
Microservices
MicroservicesMicroservices
MicroservicesPT.JUG
 
Useful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaUseful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaPT.JUG
 
Flame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps JavaFlame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps JavaPT.JUG
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8PT.JUG
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkPT.JUG
 
Introducing Java 8
Introducing Java 8Introducing Java 8
Introducing Java 8PT.JUG
 
JMockit & Hamcrest
JMockit & HamcrestJMockit & Hamcrest
JMockit & HamcrestPT.JUG
 
Apache Camel
Apache CamelApache Camel
Apache CamelPT.JUG
 
Using JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGMUsing JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGMPT.JUG
 
Introducing Infinispan
Introducing InfinispanIntroducing Infinispan
Introducing InfinispanPT.JUG
 
To SOA or not to SOA
To SOA or not to SOATo SOA or not to SOA
To SOA or not to SOAPT.JUG
 
Introduction to Grails Framework
Introduction to Grails FrameworkIntroduction to Grails Framework
Introduction to Grails FrameworkPT.JUG
 
Developers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmoDevelopers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmoPT.JUG
 

Mehr von PT.JUG (16)

Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
Putting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RSPutting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RS
 
Microservices
MicroservicesMicroservices
Microservices
 
Useful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaUseful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with Java
 
Flame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps JavaFlame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps Java
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 Framework
 
MySQL
MySQLMySQL
MySQL
 
Introducing Java 8
Introducing Java 8Introducing Java 8
Introducing Java 8
 
JMockit & Hamcrest
JMockit & HamcrestJMockit & Hamcrest
JMockit & Hamcrest
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Using JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGMUsing JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGM
 
Introducing Infinispan
Introducing InfinispanIntroducing Infinispan
Introducing Infinispan
 
To SOA or not to SOA
To SOA or not to SOATo SOA or not to SOA
To SOA or not to SOA
 
Introduction to Grails Framework
Introduction to Grails FrameworkIntroduction to Grails Framework
Introduction to Grails Framework
 
Developers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmoDevelopers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmo
 

Google Web Toolkit

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. RPC em GWT Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 10
  • 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. 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. 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. 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. 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. 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. 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. 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. 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