Xoetrope

 Wiki : WhyXUI

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Why XUI


Like most areas of computing there are more ways than one to build an RIA and there are plenty of buzz words about, so how does XUI compare? Well, most of all XUI helps reduce complexity, taking care of lots of low level stuff and lots of the plumbing. Other technologies like Ajax can really complicate development with its mix of metaphors, roles and techniques.

Tooling and infrastructure is also vital when adopting a technology and XUI builds upon the best, with plug-ins for both Eclipse and NetBeans. XUI is also a Java platform, so developers can leverage all their existing skills and knowledge. In contrast to alternative RIA platforms XUI developers will be productive from the get go.

Some RIA platforms ride two horses, purporting to offer browser and RIA capability, but don't be fooled by this -many such solutions end up offering a poor end user experience, a lowest common denominator so to speak. XUI in contrast is a highly customizable and highly modular platform, and while you can span platforms, XUI lets you customize almost everything so that you can get the best possible solution out of your chosen delivery platform.

In short XUI address a number of key issues


Separation of concerns

Not everyone is expert at everything, and even is such an expert existed they probably wouldn't have time to devote to the development and maintenance of all aspects of an application. This classic problem manifests itself in many aspects of software development and affects both the development and maintenance of software.

In the development phase applying extra resources to a project can help solve a problem, but without separation of concerns the linkages between various parts of an application can quickly generate unmanagable complexity. If this sort of complexity proliferates through the development cycle it is likely that the application will be both fragile and difficult to maintain.

In contrast if the various concerns or key components of an application are cleanly separated then the developers do not need to worry so much about how one component interacts with another and they can more readily therefore work on a problem. In the maintenance phase where less skilled developers may be at work this separation of concerns is vital as it allows developers quickly and easily to find the code that affects a bug or the code that needs to be enhanced or modified for a new feature.

XUI very cleanly separates the event handling logic from the user interface and data handling code. In fact in many cases no code is required for the UI or the data handling and in practise tis means that the developer only codes the application specific rules.

Ease of development

XUI is a Java and XML framework and very often such systems fall into the trap of requiring that the developer works in a style defined by the framework. XUI in contrast is designed to be a lightweight/unintrustive framework. When the XUI XML is processed you have first class Java objects and this means that you can fall back on all the familiar skills and tools. XUI is also a highly modular and configurable framework so you can take those parts that best suit your application and ignore the rest or add new components as needed. XUI tries to avoid any lock-in so you can adapt the framework to your needs rather than being controlled by the the framework itself.

XML is only a means to an end and very often you won't want to manipluate the XML and therefore the XUI project provides NetBeans and Eclipse plugins for WYSIWYG editing. These plugins allow all the usual editing and debugging features to be brought into play and support two way editing - work with the Java/XML or the WYSIWYG representation or switch back and forth. Playing of the separation of concerns mentioned above the XUI editor does not need any guarded code blocks and editing one source file does not risk messing up reserved parts of the file (there are no such parts), so you have maximum editing flexibility with no artificial boundaries.

Ease of maintenance

One of the main features that propelled HTML based applications was the ease of delivery. HTML applications could be delivered page by page with little risk of side effects when editing one page or another.

Java applications on the other hand were somewhat notorious for being monolithic and in fact this was one of the original problems motivating the development of XUI. By providing the aforementioned separation of concerns and by delivering pages as XML there is an implicit limit to the impact of changes made to one page or another and therefore XUI gains in the ease of update stakes that are so vital to application mainetence. XUI also separates out key aspects of applications such as localization, styling, resource management and data management for greater flexibility.

XUI's configurability at this level also makes it possible to easily rebrand and application by changing the resources and styling information. Alternatively the content can be driven from the server side through dynamically generated content. XUI can consume such dynamically generated content and combine it with predefined content or cached content, making it easy to update small parts of an application.

Ease of delivery

XUI applications can be delivered page by page or in modular form via Java Web Start or the browser. XUI also benefits from the Java sandbox for excellent security. Using webstart, XUI can be centrally managed and updated. Nothing needs to be installed on the user's machine other than Java (and this is set to become a non-issue with the fortcoming consumer JRE).

XUI can even be delivered via CD with a standalone installer which seamlessly integrates with the web based install. Using these installation mechanisms XUI can be quickly and easily installed on virtually every possible computing device. Better again because of the technology employed in XUI, a XUI based application can also run on-line or off-line making use of occassional connectivity and smart caching for maximum flexibilty.


Rich, full featured user experience

XUI is designed to provide feature rich applications and a great end user experience. Java applications by their nature provide much of this and once the delivery mechanisms and smart caching of XUI are added you have lots of power and flexibility. However power and flxibility are generally enough to impress the jaundiced user and therefore XUI also supports the very latest in user interface components, animations, and application styles.

The combination of visually attractive and productive applications really satisfies users, more so that the smoke and mirrors of some frameworks that simulate activity while under the hood relying on dated architectures. XUI's flexible operation also means that applications can adapt to the available computing resources be that through work off-line or through adaptive rendering to suit the available display devices.


Open, customizable framework

So XUI is a framework that can do lots, but it can't do everything and it needs to be extended and customized for your application. Being a Java framework XUI applications can be combied with a vast array of libraries, libraries for just about every conceivable computing task. XUI is also modular and open source so you can extend, replace or adapt various components to suit your needs. The XUI license is also flexible, allowing you to build commercial applications with few restrictions (see licensing for mre details).

Legacy application integration

XUI supports JDKs 1.1.8 through to JDK 6 making it possible to build XUI applications on almost every platform from embedded devices through to high end computers. XUI started out on embedded devices where HTML and Javascript was just too slow and has a very small footprint. Various add-ons extend the platform and capabilities can be added by pluging in extensions so XUI does not suffer from a lowest common denominator approach.

XUI's dynamic content generation can even be adapted to consume legacy file formats, thereby making it possible to use XUI as an application regeneration/rejuvenation technology. Indeed XUI has been used in this way with technologies as diverse as Zope, Python, Excel, Hibernate, Oracle Forms, Microsoft Infopath, POJOs and more.


Return to the Evaluator's Guide

There are no comments on this page. [Add comment]

Page was generated in 0.1896 seconds