Hello,

Guido Draheim has recently published a report titled "Java XUL Toolkit Review" that evaluates open source projects that let you build rich client Java solutions using markup. The projects covered include Thinlet, SwiXML, Genesis and JellySwing.

 Guido writes:

For a project I was looking at options for rich client solutions for java programs. There virtually hundreds of options for that in the java world but it boils down to about a dozen toolkits that are realistically feasable for actual application usage.

While looking over the options I had to notice some sharp differences in the characteristics of rich client java toolkit solutions. Note that I am only looking at XUL toolkits which have an XML description of the view presented to the application user (and which can be modified without touching the logic of the application).

 o  server-hosted or client-hosted

Most rich client solutions in the java world happen to be server-hosted: the toolkit makes a strict requirement like jboss or tomcat. The toolkit is a module that is going to be plugged into the application bus of those server kits. In essence you can not run the application without it. Some toolkit maintainers claim to provide a client-side server which provides some kind of runtime environment that can load a module but it is actually never the real same thing: the functionality of the application is going to work different than described for the server-hosted environment.

o  the thing between screen view and application logic

The thing in between can be called the "binding". Some toolkits require the server-side to instantation binding-objects that react to an event-queue. An XUL "action" will only send an event with name. Other toolkits have actions in the client-side that can bind directly to function names and data items. And the last option has a third layer inbetween that couples attributes in the client-side view to functionality of the server-side code.

o  the extension and reach-through capabilities

There is usually a lack of documentation telling about options to extend the view options - while most tell about how to register a new tag in the XUL format there is hardly anything how to register an attribute in the view and how to register binding objects that can link attributes and actions in the view to functions of the application. Some even miss to describe options how an application can directly ask the client-side for current attributes or the way that a binding layer can link back to application nested objects.

 o  the disconnect principle

Some toolkits do represent the gui widgets directly in the namespace of the application in which case they are about the same. If you would know the base "this" pointer of the logic objects and the view frame then you could reach through easily. In another scenario you do want the client and server to be on different processors - and you want to allow the network to temporarily fail in between access. Just think of an html form that is loaded in one step from the server, the user can modify the fields offline, and post the html form to the server when done. It seems that some toolkits want to model an artificial gap between client view and server code where they fail to allow the client to run disconnected.

 ....

 More @ http://www.informatik.hu-berlin.de/~draheim/java/xulkits.html

If anyone is using a markup-based project for build rich client solutions, let us know what open source toolkit you use.

  - Gerald


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
xul-talk mailing list
xul-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xul-talk

Reply via email to