Summary
The Dojo project announced the release of version 0.4 of this popular JavaScript toolkit, including new widgets, a charting engine, internationalization and accessibility support, as well as a new documentation engine.
Advertisement
Although barely two years old, the Dojo project, like most things Ajax these days, has gone through a fast and furious pace of development. Judging from its list of available features, Dojo aims to be nothing less than a complete API and toolkit for developing rich-client Ajax applications. Because Dojo is based on pure JavaScript, Dojo-based applications are not tied to any server-side technology, such as JSF or .NET.
The Dojo project's latest release adds to the already rich palette of Ajax widgets a charting component, a clock, a progress bar, and enhancements to an already feature-rich text editor. Support for internationalization, accessibility support, and namespaces are also part of this release. Several of these features are available in online demos.
While early Ajax APIs and widget toolkits appealed to developers mainly as eye candies, Dojo's recent improvements to its API documentation tool indicate a shift to a more enterprise-ready focus:
These improvements will make Dojo appealing to entirely new audiences and will bring Ajax applications to a new level of acceptance as a first-class user environment.
With heavyweights IBM and AOL on the Dojo Foundation's board, more features required by enterprise developers are the Dojo project's roadmap.
Perhaps the most interesting feature in this release is support for direct 2D graphics that take advantage of browser support for SVG. The Dojo 2D, or DFX, package aims to support two scenarios:
The drawing starts as a template written in an SVG subset... In case of IE, SVG is translated to VML using XSLT preserving attach points. The widget author can modify elements using the provided API.
The drawing is created from scratch. It is created using the provided API.
Our main target is SVG. VML is supported using a translation layer. Canvas can be targeted later using the proposed API definition.
2D features in the dojo.fgx package already include objects supporting filling an area, including gradient fills, brush strokes, as well as drawing various matrices and shapes.
Dojo enables you to build completely browser-based applications independent of any server-side component. This contrasts with JSF, which advocates a model whereby client-side HTML and JavaScript components are paired with server-side peers written in Java. Dojo apps can run entirely inside a browser, and invoke remote services via XML APIs over HTTP on an as-needed basis. They would also be coded up entirely in JavaScript. What do you think of this type of self-contained Ajax application?
Javascript is going to come out on top. Many companies have has been burned by a mess of server side technologies before- the least anyone ties to it the better. By making the investment (for front end display/customization) at the Javascript/HTML level you build yourself a highly portable front end, instead of going "oops we have 12K lines of JSF, lets not migrate to..." later.
(I only wish the DoJo geniuses would 1: update their web site to tell you when JavaScript is off that it is required and 2: actually list what browsers are supported somewhere prominently on their site. Blah.)
> Javascript is going to come out on top. Many companies > have has been burned by a mess of server side technologies > before- the least anyone ties to it the better. By making > the investment (for front end display/customization) at > the Javascript/HTML level you build yourself a highly > portable front end, instead of going "oops we have 12K > lines of JSF, lets not migrate to..." later.
That's an interesting observation, because I've heard similar thoughts in the opposite direction: That JavaScript is not portable between browsers, whereas Java code is highly portable across platforms, so some people prefer to invest in a Java codebase vs investing in JavaScript.
I think that the JavaScript portability debate will soon dissipate, because toolkits, such as Dojo, are making great strides into masking browser incompatibilities.
One interesting aspect of this debate is: Where do you define your object model, business logic, etc: In JavaScript on the client, or in server-side Java objects. Some believe that exposing business login on the client is a security problem.