The GWT bet ... Brice Le Blévennec Chief Visionary Officer ContactOffice.com FOWA 02-07
The GWT bet ...
Brice Le Blévennec
Chief Visionary Officer
ContactOffice.com
FOWA 02-07
Hello
♣Brice Le Blévennec, Internet Serial Entrepreneur.♣ In 1991 founded Emakina (Alternext ALEMK) now
belgium largest Interactive Agency (100+ staff),of which I am Chairman.
♣From 1996 to 2004 I produced and hostedCyberCafe, a weekly show about Internet andtechnologies on belgian national broadcasttelevision and radio.
♣1999 co-founded ContactOffice, Collaborative &Messenging Web Application, of which I am ChiefVisionary Officer
♣ In 2007 co-founded Tunz.com, a mobile paymentprovider of which I am Chief Visionary Officer.
♣(more on brice.org)
10 minutes only
♣ContactOffice ?
♣Collaborative & Messenging Web Application
♣Features set
♣State-of-the-art
♣Reengineering the interface
♣Selecting an AJAX of Flash framework
♣Google Web Toolkit (GWT)
♣Overcoming limitations
♣Adding Drag & Drop to GWT
♣Beta launch TODAY
ContactOffice ?
♣Collaborative & Messaging Web Application
♣Founded in 1999 by 4 Belgian serial internet entrepreneurs
How big ?
♣1 million registrations
♣350.000 active accounts (feb 07)
♣250.000 paying accounts
♣Global, 6 languages
♣Profitable since 2003!
Functionalities
Functionalities
Collaboration & Messaging WebApp
State-of-the-art
Calendar (+ RSS)Contacts,To Do,Notes,Bookmarks (+ RSS),Synchro ...
Groups Organiser
Mail (+ RSS),
IMAP4 & POP3(s),
SMTP, Webmail,
Antivirus & AntiSpam,
SMS, Fax, Alerts & Chat
State-of-the-art Messenging
Web upload or WebDAV
RSS & Vod/Podcasts,
Public sharing
Documents Repository
Forum, Wiki,Bulletin Board,Phone Calls, ...
Collaboration
Everything can be sharedwith users and groups!
Sophisticated Access Right Model at user level
Applications : Individual user, Families,Associations, Companies, Departments,All kind of teams, ...
ASP & Licence Models
♣Hosted, Security, SLA
♣Personalised, Private Label versions
♣SSO : LDAP, CAS, RSA ClearTrust, ...
♣API : XML-RPC
Technologies
OO Architecture :
♣Object Oriented Database
♣Pure Java Backend (POJOs only)
♣Build for scalability
♣Clients abstraction layer:♣ Web (HTML & CSS)
♣ Pocket Explorer + Symbian
♣ Wap (WML)
♣ Voice XML (prototype)
Some happy customers
HTML + JavaScript + FramesDesktop like, Web 2.0 style,Drag & Drop, Widgets, ...
Reengineering the interface
♣Objective: Interface upgrade to present standards
♣Approach: Migrate 1999 interface to 2007 state-of-the-art GUI
♣Weakness: Obsolete Client Architecture (thousands JSP files)
♣Strength: The 1999 Server Architecture (POJOs + OODB)is still state-of-the-art
Selecting a framework / technology
Many goo solutions
♣Own framework ?♣ Cost of supporting what others might doing well ?
♣Ajax vs Flash ?♣ OpenLazslo, Adobe Flex♣ Flash plugin dependency ?
♣Ultra lightweight client + server-side Java ?♣ echo2, zk, ...♣ Do they scale well ?
♣Existing JS frameworks ?♣ Dojo, Scriptaculous/Prototype, ...♣ JavaScript language ?
♣The JavaScript nightmare Fun but language is too flexible (global vars,...) Requires an extremely strict discipline (convention) for a team How to handle efficiently tens of Klocs ? Browsers quirks
JavaScript
?
?
Google Web Toolkit (GWT) ?
♣ What is GWT♣ GWT is a Google framework for building AJAX apps in the Java language♣ Open Source Apache 2 Licence♣ Java --> JavaScript translation
♣ 'Industrial' software engineering Tools ! Tools! (IDE Eclipse & GWT hosted mode + svn integration perfect for teams) Standard Java refactoring, debugging, testing, source code manipulation Compile time vs Run time errors detection
♣ Advantages Performances:
Aggressive caching, code optimization, compression Clean backend integration:
Efficient Java RPC mechanism Portability:
Generates platform-specific code Native JavaScript is still reachable:
JSNI (JavaScript Native Interface) Developer Community:
Large (Forums : 6900 users, 250 contributors) and active (+20K posts)
♣ But... Java knowledge required for UI designers♣ CSS only is not realistic
JavaScript
GoogleWebtool
Kit
?
CO enhancements to GWT
MV(C) framework• Strict model/view separation• Necessary for even driven interfaces (AJAX is asynchronous)• Side effect : ease collaboration between presentation
and business logic developers
Drag & Drop“Hey Luc, I took a look at your demo - prety cool stuff!”
Rajeev Dayal (Google)
Attractive look & feelContactOffice use GWT styling possibilities to the fullest
Contextual menus
Marquee selection
Draggable splitters
Data grid
Enhanced dialogs, property pagesJavaScript
GoogleWebtool
Kit
ContactOfficeEnhancements
Current Interface
http://www.contactoffice.com
New GWT based Interface
http://beta.contactoffice.com
Indication of new +total number ofitems in lists
Navigation repeatedon left
Help and extrainformation
Dashboard givingquick access tomain features
New GWT based Interface
http://beta.contactoffice.com
Click to sortor resort
Folderorganization
New GWT based Interface
http://beta.contactoffice.com
Organizecontacts pertype
List contacts
Quick search
New GWT based Interface
http://beta.contactoffice.com
Documents
Multiselectdocuments
Click to sortor resort
Folderorganization
New GWT based Interface
http://beta.contactoffice.com
Groupcalendar
Details
Filter
Quicknavigate
Export
New GWT based Interface
http://beta.contactoffice.comClick to sortor resort
Folderorganization
Groupbookmarks
Beta Launch TODAY!
Try it now :http://beta.contactoffice.com
Questions?