Writing cool web 2.0 apps with GWT and UI Bindings

download Writing cool web 2.0 apps with GWT and UI Bindings

If you can't read please download the document

Transcript of Writing cool web 2.0 apps with GWT and UI Bindings

Folie 1

Cool web apps with GWT
uberto barbini
[email protected]
twitter: @ramtop

RIA (flash) is dead, long live to RIA (js)aka Client/Server is back!

In the crowded world of web technologies is often hard to decide which one suits better our needs.

We think we have found a very good solution to do cool web sites with complex logic that requires javascript.

Gwt is a very good product, but till recently it was a problem to use it on clean web2.0-like sites.

We think that it's possible to do it in a simple way but it's still not widely know. Using with UiBindings and TDD.

We did 2 applications: a CMS and a Google Appengine one.

I'll talk about our experience, what we learned, and we'll share the complete code for an example application.

A CMS that doesn't suck

Blueprint experience

Some raw data:

BP numbers:4-5 people teamagile (scrum and kanban)gwt, hibernate, smartgwtstarted jan 2009 version 1.0 june 2009, now 3.2

total classes:1176total methods:6565total executable lines:27459

A web2.0 like application with a lot of logic

www.netnumero.comhttp://netnumero.appspot.com/company/mycompany#dashboard

www.netnumero.comNetNumero numbers:5 people on weekends and nights1 year with many pausesTest coverage:Total classes 94.1% (272/ 289) Total methods73.7% (1004/ 1363)Total lines79.1% (5125/ 6481)

What's GWT anyway?

good gwt tutorials: http://developerlife.com/tutorials/?p=80http://code.google.com/webtoolkit/doc/latest/tutorial/http://code.google.com/webtoolkit/articles/testing_methodologies_using_gwt.html

books:Essential GWT: Building for the Web with Google Web Toolkit 2 (Developer's Library) - Federico KerekiProgramming Google App Engine - D SandersonGrowing Object-Oriented Software, Guided by Tests - Steve Freeman, Nat Pryce

gwt vs plain html

gwt vs traditional ajax
(i.e. jsp + jquery)

Gwt +easier to debug

no new language to learn

easy to unit test client logic

Gwt -steeper learning curve

basic gwt is "ugly"

big js app to download (once)

Gwt is CS with elegance

(show discuss code)tag ServiceImplExample

Gwt UI/UX issues

Solution

Design metaphor

our metaphor: restaurant(go to the table -login)(menu -list of url)(waiter- event dispatcher)(waiter notebook- request)(table num- sessionId)(kitchen- server side)(food- response)

client cache, code split and event drive

Architecture and design

(show discuss example code)tag AsyncTestFailure

Presenter

View

Entities

Data services

Command pattern

AuthAuth and security

How to continue