-
Get a monthly update on best practices for delivering successful software.
I've been working hard on the next part in my Echo2 tutorial series and on my review for the ZK framework, but I'll take the time and point out another component GUI framework. WidgetServer has been around a while and hasn't gotten a whole lot of attention. You can write code once and have the make the decision on Swing, Swing Applet or AJAX at runtime. It is "self compiling," in the case of GUI frameworks that means that the GUI builder application that comes with WidgetServer is also built using the framework. From the description:
WidgetServer is a component based, server-side, Java/XML rich-client-framework which
enables an application to run as either
- a monolithic application with a Swing GUI
- a client/server application with a thin Swing client
- as an application with a rich Web client based on HTML, CSS and optional JavaScript
- or in future as a mobile application on different devices like PDAs (comes with Release 1.1)
without any change and without loss of functionality!
WidgetServer gives you the choice if you develop a GUI either using
- HTML markup
- a Java API like Swing
- or XML markup
WidgetServer provides a unified component-based, object-oriented
programming interface for Web and Swing GUIs to control and modify the
GUI and to process events. The framework prevents from struggling with
HTML, JavaScript and HTTP requests or from caring about the internals
of Swing (e.g. Drag and Drop implementation). For Swing client/server
applications the framework cares for the client/server split as well
as for the client/server communication including compression and
security layers. Web applications are completely AJAX enabled, while the use of this
feature remains fully configurable. The framework also supports a
mixed deployment mode, which enables one server to serve Swing clients
and Web clients at the same time. The functionality of the Swing
widget set is covered widely (and sometimes enhanced) in both (Swing
and Web/HTML) client channels. The project comes with a WYSIWYG
GUI-builder which is completely build on the WidgetServer framework
technology.
Breathless, I know. I like the idea of being able to write one app for both desktop and web. Still, how many times is that going to happen? My backend architecture is likely to be somewhat different for collaborative webapps than for desktop apps. Still, it's a good place to start, being able to make the decision on Swing vs AJAX at runtime.
This capability comes out of the component GUI design. If properly done, you are using the bridge pattern to retarget your abstract GUI model to a concrete GUI like Swing, Flash or AJAX.
The feature matrix gives an overview of what the framework offers. The LGPL version is a little crippled, i.e. it doesn't do a number of no-brainer AJAX things like partial page update and compression. I really don't like this business model for Open Source where you pay to avoid shortcomings. I much prefer the model that Nextapp has taken with Echo2 where they provide extra value -- an IDE plugin -- on top of a fully functional framework.
Related posts:
Topics: Ajax Components, Ajax Frameworks, Ajax Tools, Frameworks
Cool, thanks for another frame work worth checking out……..
Comment by Iroiso, Thursday, November 6, 2008 @ 9:13 am