Browse DevX
Sign up for e-mail newsletters from DevX


Review: Canoo UltraLightClient Takes a New Approach to Java GUIs : Page 2

In the realm of Java GUIs, UltraLightClient from Canoo attempts to split the difference between AWT-like lowest-common denominator approaches and platform-specific optimization. Find out whether ULC's innovative 'half object' approach is the solution you've been looking for.




Building the Right Environment to Support AI, Machine Learning and Deep Learning

How Does it Work?
ULC is based on a presentation server development paradigm, where the business logic (such as managing the state of a shopping cart) and the presentation logic (such as managing the state of user selections on a list) run on the server, and the user interface display status (such as list widths and relative sizing) are handled on the client. This is done to minimize server round trips as much as possible. So for example, if you make a list selection and want the UI to update accordingly, it should only have to request information—not presentation, from the server. It handles presentation on its own, reducing bandwidth and increasing performance. It does this through an innovative half-object design paradigm, where essentially half of the object runs on the server, and the other half on the client!

This also helps with scalability and portability of applications, as should you need to move across servers, that support different versions of the servlet framework or Struts, you have no problems—the client engine handles all the UI and visual presentation and your server infrastructure just delivers information to it.

You should also consider the expense of the traditional HTML-based thin client, and the complexity of having to mix technologies such as DHTML, CSS, JavaScript, and more to produce any kind of rich experience. With Canoo you can write GUI applications in about half the time that use about 10 percent of the bandwidth of the traditional HTML-based light client.

This is the value proposition of Canoo—a cost-effective best-of-all-worlds approach that can give you rich GUI from pure Java code, managed by a commercial-grade presentation engine.

Writing Code for UltraLightClient
Once installed, ULC, comes with a wealth of documentation, which is useful, but the documentation is in PDF format, which is a bit of a drag. It would be much nicer if it was in an easy-to-manage format, such as Help files, or at least HTML. (There is an HTML-based JavaDoc format API documentation, but everything else is PDF.)

Coding ULC is like coding any other Java GUI, requiring amany lines of code for the simplest task. If you are an experienced Java GUI coder with Swing or other APIs you'll take to it like a fish to water. As an example, the header box from Figure 1 above requires this code:

ULCBoxPane result = new ULCBoxPane(4, 0); result.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); result.add(ULCBoxPane.BOX_LEFT_EXPAND, new ULCLabel(IconFactory.getIcon(Constants.LOGO_ICON))); result.add(ULCBoxPane.BOX_LEFT_EXPAND, new ULCLabel(IconFactory.getIcon(Constants.TITLE_ICON))); result.add(ULCBoxPane.BOX_EXPAND_EXPAND, ULCFiller.createGlue()); result.add(ULCBoxPane.BOX_RIGHT_EXPAND, new ULCLabel(IconFactory.getIcon(Constants.CANOO_ICON))); return result;

Should you want a code generation tool, based upon a Visual Editor, Canoo offers an Eclipse-based one for an extra fee.

If you have to develop and maintain a Web-based application (and who doesn't nowadays) you will have doubtless encountered many design debates over fat vs. thin clients and endlessly evaluated the advantages and disadvantages of each. ULC from Canoo offers an innovative best-of-both-worlds solution that could be perfect for your needs. It isn't perfect: the documentation could be better and an integrated visual design environment would be handy, but it is certainly an innovative solution that is worth checking out. It is quite unique and difficult to compare with any other GUI toolkit because of the nature of its 'half-object' approach, but you can download an evaluation from http://www.canoo.com/ulc and see if it suits your needs.

UltraLightClient costs $1,499 per seat (developer).

Laurence Moroney is a freelance enterprise architect who specializes in designing and implementing service-oriented applications and environments using .NET, J2EE, or (preferably) both. He has authored books on .NET and Web services security, and more than 30 professional articles. A former Wall Street architect, and security analyst, he also dabbles in journalism, reporting for professional sports. You can find his blog at http://www.philotic.com/blog.
Thanks for your registration, follow us on our social networks to keep up-to-date