Dojo

Dojo does not call itself a framework, but a JavaScript toolkit. At the time of this writing, Dojo is at version 0.4; it is not yet ready for enterprise use, but it shows a lot of potential. It is open source and free license under AFL and BSD, so development and support can either accelerate or decelerate very rapidly, but it already features a complete set of UI effects, charting engine, drag-and-drop, extensive set of widgets, including date picket (see picture), progress bar, and even a text editor. Dojo is compatible with major browsers and is server technology-agnostic. If you are looking for a free AJAX toolkit with emphasis on the UI, you should consider Dojo.

Here is a list of some of Dojo’s packages for JavaScript and sample widgets.

  • dojo.lang: Utility routines to make JavaScript easier to use
  • dojo.string: String manipulation routines
  • dojo.dom: DOM manipulation routines
  • dojo.style: CSS-style manipulation routines
  • dojo.html: HTML-specific operations
  • dojo.event: The Aspect Oriented Programming-inspired event system
  • dojo.reflect: Reflection API (undocumented)
  • dojo.date: Date manipulation (undocumented)
  • dojo.logging.Logger: Logging library (undocumented)
  • dojo.profile: JS Profiler (undocumented)
  • dojo.regexp: Regular Expression generators (undocumented)

Backbase

Backbase is claiming to be the #1 enterprise AJAX framework. It is a commercial product, but a free (scaled down) community edition is available. Backbase comes in three versions, with tight integration to the Java server side technologies such as JSF or Struts, and looks like a very polished framework. Java developers can use Eclipse integration, and there is a large list of widgets to develop Backbase applications.

Similar to other AJAX frameworks, Backbase has emphasis on the UI components and has very professional-looking UI elements.

The server-side development is targeted at Java developers. Developers can use Backbase to add individual AJAX widgets quickly, without major code changes or design large AJAX based applications from the ground up.

The web UI based on Backbase can be coded to have all of the desktop application’s functionalities, but in my testing it appeared some what sluggish from time to time. It was a reminder that I was still using a browser and that AJAX is still in its very early evolution stages. The breadth of the UI’s widgets is one of the bigger selling points of the framework. Check out the demos and see wheteher Backspace is right for you.

IceFaces

IceFaces is another enterprise-level framework for AJAX based on the JSF standard featuring Direct-to-DOM rendering technology.

"The primary goal behind the ICEfaces architecture is to provide the application developers with a familiar Java Enterprise development model, and completely shelter them from the complexities of low-level AJAX development in JavaScript"

The framework gives developers a set of JSF tags that produce AJAX-enabled UI components without having to write JavaScript. This sounds similar to the GWT, which also generates JavaScript, but is different because ICEfaces APIs are declarative tags that look like fancy HTML and are based on the JSF standard. IceFaces has an extensive library of very polished, enterprise-grade UI components. The company actually created all the standard JSF components as well as an extensive set of extra components.

The two unique features of this framework are Direct-to-DOM rendering and server push. Direct-to-DOM rendering is the ability to render a JSF component tree directly into a DOM data structure (see the following diagram). The framework can synchronize changes on its server-side DOM (yes, it keeps one) and client-side DOM via the AJAX Bridge. The AJAX Bridge controls the presentation of the application in the browser.

The second unique feature, built into the framework, is the advanced server push technology. The server push is working fairly well in the current release, and provides an advantage over the other frameworks that do not have it. Events can be emulated, client UI dynamically changed based on sever state, and so on. By using this technology, all sorts of appealing applications become possible, and it will be interesting to see which other AJAX frameworks will introduce this feature.

Here are some of the IceFaces UI components.