Be able to handle multiple client channels

In the beginning WidgetServer was intended to be an alternative to XML/GUI and XUL frameworks with the difference that WidgetServer supports multiple target technologies from one single binary application and configuration set:

- Swing standalone applications or fat Clients,
- Swing Client/Server application with a rich thin Swing Client,
- Web applications based on HTML, CSS, if needed Javascript,
- and MulitChannel applications which support a mixed Client environment.
- WidgetServer is prepared for other channels like SWT, mobile etc.




Combine "State Of The Art" GUI development approaches

The MultiChannel ability is still one of the main differentiators of WidgetServer. But in the meantime the framework has grown to a full featured alternative to other component based Web or Rich-Client frameworks. WidgetServer gives you the choice if you develop either in a

- HTML/page centric way (like wicket or tapestry) - you have to have HTML, Javascript knowledge,
- a Java centric way (like echo) - you do not have to have HTML, Javascript knowledge,
- or in a XML centric way(like all the XML/GUI frameworks around) - you do not have to have HTML, Javascript knowledge.



XML markup helps to define an application's GUI fully separated from the application's code, Java code is useful for dynamic creation and modification during application runtime, while HTML markup is the best choice for typical web applications. You may use all of the above mentioned technologies in your application to get the best out of this mix and come to an (nearly) ideal fit to your requirements.

Help to build "High Availability and Resumable" Applications

WidgetServer applications are able to support servlet clusters by default. The state of the server- side application can be stored and restored. The state of an HalfObject/Swing based Client can be stored on the server and resumed after a server and/or client restart. Because WidgetServer session are quite lage, a special API helps to reduce the ammount of persisted data



Hide as much as possible of Web development complexity

WidgetServer uses the paradigms of classic GUI development like widget sets, layout managers, events, listeners, renderes and models (which are compatible to the java Swing model interfaces). This takes away complexity and enables you to develop applications with a clean architecture and an uncompromising Model View Controller approach.



Do not rely on specific browsers or browser features - but be able to use browser specific functions

WidgetServer Web applications are fully AJAX enabled. But unlike other frameworks, WidgetServer is not tied closely to JavaScript and AJAX. There is no problem in using the framework without AJAX and without any Javascript.
If you develop an application, it is possible to deliver it to one customer with all AJAX features enabled and without or with only little Javascript to an other customer who does not want heavy use of Javascript in his applications.
WidgetServer provides a render engine which is configurable on two levels of complexity. On the first level, HTML templates are used to adapt the HTML, Javascript and dynamic generated CSS output to your needs. This enables you to add support for different browsers, for Javascript free applications, for special look and feel implementations or for any other GUI output than HTML. The configuration can be done in wide ranges without coding one single line of Java! On the second level you can reimplement the render class of a widget. The renderer binds the HTML template to the widget instance and generates the output. Renderer, Widget implementation and HTML template are linked within a factory configuration file.



Be integrative with other frameworks

WidgetServer components are easy to integrate into any other servlet based Web application. Special servlet filters are used to map values, dispatch events and render components into the output stream of the application. You have full control over these steps.



To get more information please refer to the following document:

- a technology oriented presentation in German with friendly support of C1 SetCon