
Bruno Schäffer

Daniel Buffet
(5340) Against all odds - efficient Rich GUI development in Java
Technical long talk 50 min
Tuesday, 2008-06-24, 15:00 - 15:50, Arena 6
- Bruno Schäffer - Canoo Engineering AG (speaker)
- Daniel Buffet - APG (co-speaker)
- Christoph Henrici - APG (co-speaker)
Rate this talk:
Topics
Abstract
Developing client-server applications with rich user interfaces on the Java
platform can be a daunting task. For the presentation layer Java offers the
Swing library with a comprehensive set of highly customizable widgets.
Nevertheless, the API of the Swing library provides too little abstraction for
common form-based rich GUIs and therefore developers' productivity is way below
expectations.
The market leader in billboard advertising in Switzerland (APG) has a number of
large legacy client-server applications. While the business logic (incl.
persistence) is still up to its task, the presentation layer had to be replaced
due to a development platform being decommitted and a user interface that was
far from rich. APG selected Canoo to design and implement a new platform for the
presentation layer. The most important criterion was application developer
productivity with the goal of developers being as productive as before despite
higher expectations to the richness of the user interface.
Rather than creating a presentation framework from scratch the project decided
to go for a mix and match approach. First, a visual metadesign of the user
interface reduced the presentation use cases to a reasonable number. Tailored to
these use cases, a small framework tightly integrates some of the best Java
libraries (e.g. JGoodies, Swing, Spring, and JPA) and offers a high-level API.
In addition, a generative approach facilitates the creation of data transfer
objects (openArchitectureWare). The architecture was developed jointly by APG
and Canoo with substantial contribution from leading developers of these
libraries and frameworks.
Last but not least, the business logic layer and the DB can be reused without
any changes. Experience shows that the productivity both in development and
maintenance is at least at par with the former 4GL development platform. On top
of that, the new Java-based development platform offers way more flexibility, if
required.






