Download ppt - GWT: Our Experiences

Transcript
Page 1: GWT: Our Experiences

2008.5.17 馮彥文

Page 2: GWT: Our Experiences

About Me 馮彥文 a.k.a Tempo

Twitter: tempofeng Blog: run, tempo, run (google: tempo) Liquable Inc: [email protected]

活動 Happyweb: http://happyweb.tw Java User Group: http://www.javaworld.com.tw

Page 3: GWT: Our Experiences

Agenda GWT & Features Communicate With Others Systems,

Frameworks Pitfalls

Page 4: GWT: Our Experiences

Google Web Toolkit

Page 5: GWT: Our Experiences

Writing AJAX Applications in

Java

Page 6: GWT: Our Experiences

CSS

GWT Class Library

JavaScriptGWT

Compiler

Java Source Code

Page 7: GWT: Our Experiences

Module.xml

Page 8: GWT: Our Experiences

EntryPoint

Page 9: GWT: Our Experiences

HTML

Page 10: GWT: Our Experiences

Hello World Demo

Page 11: GWT: Our Experiences

Swing, SWT Like Programming

Model

Page 12: GWT: Our Experiences

Components,Containers,Events, …

Page 13: GWT: Our Experiences

Composite Widget

Page 14: GWT: Our Experiences
Page 15: GWT: Our Experiences

Widget Demo

Page 16: GWT: Our Experiences

Hosted Mode /No-Server Mode

Page 17: GWT: Our Experiences

No-Server Mode Demo

Page 18: GWT: Our Experiences

Scalability

Page 19: GWT: Our Experiences

Stateless Servers,

Stateful Clients

Page 20: GWT: Our Experiences

Business Logic as Well

Page 21: GWT: Our Experiences

History Management

Page 22: GWT: Our Experiences

History Demo

Page 23: GWT: Our Experiences

JUnit Integration

Page 24: GWT: Our Experiences

Open Source(Apache 2.0 License)

Page 25: GWT: Our Experiences

Comparison DWR

Best for communicating with Java server, No UI components

Dojo Hard, less document but powerful

Ext-js Nice UI, less document, license issue

Jquery No UI components

Page 26: GWT: Our Experiences

Communication With Others Systems,

Frameworks

Page 27: GWT: Our Experiences

GWT Scripts Can Be Used as

XSS

Page 28: GWT: Our Experiences

Client

GWT-RPC Server 2

WEB Server

GWT-RPC Server 1

Page 29: GWT: Our Experiences

RPC HTTP

RequestBuilder GWT-RPC

Easy for Java servers JSON Rest (XML)

Page 30: GWT: Our Experiences

JavaScripts JavaScript Native Interface (JSNI) GWT-API-Interop

http://code.google.com/p/gwt-api-interop/

Page 31: GWT: Our Experiences

Web Pages gwt-params

Page 32: GWT: Our Experiences

Pitfalls

Page 33: GWT: Our Experiences

Value Objects

Page 34: GWT: Our Experiences

Hibernate Obj (PersistList,

…)

Value Obj

Value Obj(JavaScript)

GWT JavaScript

Tranform

GWT-RPC

Use

Java

JavaScript

Page 35: GWT: Our Experiences

Value Objects Same as other serialization framework Data-binding

Hibernate4get http://hibernate4gwt.sourceforge.net/

XSTM http://www.xstm.net/

Page 36: GWT: Our Experiences

SEO? Decorate output page, don’t cloak

Page 37: GWT: Our Experiences
Page 38: GWT: Our Experiences

SEO? Based on GWT Output

Page 39: GWT: Our Experiences

Project Structure

Gwt-maven http://code.google.com/p/gwt-maven/

Copy generated JavaScript to src in webapp

Page 40: GWT: Our Experiences

Page Layout

Page 41: GWT: Our Experiences

VerticalContainer, HorizontalContain

er Are Using Tables

Page 42: GWT: Our Experiences

JDK 1.4 Only For client codes only Wait for GWT 1.5

Page 43: GWT: Our Experiences

Missing Classes Reflection GWTx

http://code.google.com/p/gwtx/ Gwittir

http://code.google.com/p/gwittir/

Page 44: GWT: Our Experiences

Thank You!