google web toolkit

19
Web 2.0 em Java com Google Web Toolkit 1º encontro do JUG Português 1º encontro do JUG Português Hugo José Pinto [email protected] Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 1

Upload: ptjug

Post on 17-May-2015

1.778 views

Category:

Technology


15 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Google Web Toolkit

Web 2.0 em Java com

Google Web Toolkit

1º encontro do JUG Português1º encontro do JUG Português

Hugo José Pinto

[email protected]

Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 1

Page 2: Google Web Toolkit

Quem é o Hugo Pinto?

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

� Core member do nosso JUG português� 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

Page 3: Google Web Toolkit

AJAX e Web 2.0

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

� Tem como base a API HTTPXMLRequest� 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

Page 4: Google Web Toolkit

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

Page 5: Google Web Toolkit

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

Page 6: Google Web Toolkit

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

Page 7: Google Web Toolkit

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

Page 8: Google Web Toolkit

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

Page 9: Google Web Toolkit

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

Page 10: Google Web Toolkit

RPC em GWT

Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 10

Page 11: Google Web Toolkit

Transporte de Objectos

� Tudo o que for marcado como Serializable� Ou, com maior controle, com IsSerializable

� Objectos passados pela sua interface� 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

Page 12: Google Web Toolkit

M? V? C? – e agora?

V C

Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 12

BD

Browser Servidor

M

Page 13: Google Web Toolkit

M? V? C? – e agora?

V C C

Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 13

BD

Cliente RIA Servidor

M M

Page 14: Google Web Toolkit

AOP e DDD com GWT?

(ena, só siglas…)

� Se podemos passar classes “completas”, viaRPC, podemos usar artifícios que: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

Page 15: Google Web Toolkit

GWT++ - Para lá do framework

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

Alguns (poucos) exemplos:� 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

Page 16: Google Web Toolkit

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

Page 17: Google Web Toolkit

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

Page 18: Google Web Toolkit

Conclusões

� GWT simplifica o desenvolvimento Web 2.0

� Reutilizar Java no browser e no servidor possibilita um pulo radical de qualidade e 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

Page 19: Google Web Toolkit

Q&A + Contactos

� Questões?

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

[email protected]

[email protected]

Web 2.0 em Java com GWT (c) 2007 Hugo José Pinto Slide 19