ContactOffice is a collaborative web application founded in 1999 that has over 1 million registered users. It is reengineering its interface using the Google Web Toolkit (GWT) framework to build on the robust 1999 backend architecture but upgrade to current interface standards. The new GWT-based interface provides features like drag and drop, widgets and a more desktop-like and Web 2.0 style while maintaining performance and leveraging GWT's Java development tools.
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
Brice Leblevennec @ FOWA Feb 07
1. The GWT bet ...
Brice Le Blévennec
Chief Visionary Officer
ContactOffice.com
FOWA 02-07
2. 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 hosted
CyberCafe, a weekly show about Internet and
technologies on belgian national broadcast
television and radio.
♣1999 co-founded ContactOffice, Collaborative &
Messenging Web Application, of which I am Chief
Visionary Officer
♣In 2007 co-founded Tunz.com, a mobile payment
provider of which I am Chief Visionary Officer.
♣(more on brice.org)
3. 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
8. Collaboration & Messaging WebApp
State-of-the-art
Groups Organiser State-of-the-art Messenging Documents Repository
Web upload or WebDAV
RSS & Vod/Podcasts,
Public sharing
Collaboration
Calendar (+ RSS) Mail (+ RSS),
Contacts, IMAP4 & POP3(s),
To Do,
SMTP, Webmail,
Notes, Forum, Wiki,
Antivirus & AntiSpam,
Bookmarks (+ RSS), Bulletin Board,
SMS, Fax, Alerts & Chat
Synchro ... Phone Calls, ...
9. Everything can be shared
with users and groups!
Sophisticated Access Right Model at user level
Applications : Individual user, Families,
Associations, Companies, Departments,
All kind of teams, ...
13. 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)
The 1999 Server Architecture (POJOs + OODB)
♣Strength:
is still state-of-the-art
Desktop like, Web 2.0 style,
HTML + JavaScript + Frames
Drag & Drop, Widgets, ...
14. 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
JavaScript
How to handle efficiently tens of Klocs ?
Browsers quirks
15. 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
Google
Performances:
Webtool
Aggressive caching, code optimization, compression
Kit
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)
JavaScript
♣ But... Java knowledge required for UI designers
♣ CSS only is not realistic
16. CO enhancements to GWT
MV(C) framework
Strict model/view separation
•
ContactOffice
Necessary for even driven interfaces (AJAX is asynchronous)
•
Enhancements
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)
Google
Attractive look & feel Webtool
ContactOffice use GWT styling possibilities to the fullest Kit
Contextual menus
Marquee selection
Draggable splitters
Data grid JavaScript
Enhanced dialogs, property pages
18. New GWT based Interface
http://beta.contactoffice.com
Help and extra
information
Indication of new +
total number of
items in lists
Dashboard giving
quick access to
main features
Navigation repeated
on left
19. New GWT based Interface
http://beta.contactoffice.com
Click to sort
or resort
Folder
organization
Email
20. New GWT based Interface
http://beta.contactoffice.com
Quick search
List contacts
Organize
contacts per
type
21. New GWT based Interface
http://beta.contactoffice.com
Click to sort
or resort
Multiselect
documents
Documents
Folder
organization
22. New GWT based Interface
http://beta.contactoffice.com
Quick
navigate
Filter
Group
calendar
Export
Details
23. New GWT based Interface
http://beta.contactoffice.com
Click to sort
or resort
Folder
organization
Group
bookmarks