The Dojo Foundation is releasing version 1.1 of the Dojo Toolkit, a major revision of the popular AJAX development framework that delivers more than 800 improvements and bug fixes over version 1.0.
In a blog post on March 28, Peter Higgins, the official Dojo community evangelist, said of Dojo 1.1: “There were two goals: preserve API compatibility and continue to innovate.”
Dojo is an open source DHTML toolkit written in JavaScript. According to a description of the Dojo Toolkit on the toolkit’s Web site, it’s designed to enable developers to build dynamic capabilities into Web pages and other environments that support JavaScript.
Higgins said that for Dojo 1.1, more than 30 core developers and committers and “countless numbers of new community contributions” came together to work “for the good of open source, to make available to you a high-quality DHTML Toolkit, free of charge and free of restrictions.”
He highlighted a number of the new features, adding that “while all this great new stuff has landed in Dojo since 1.0, we’ve still managed to maintain near perfect API compatibility.”
Meanwhile, Alex Russell, co-creator of and project lead for the Dojo Toolkit, told eWEEK that what stands out most about the new version are “ease of use, polish and better and better ways to access and visualize your data.” In addition to being co-creator of Dojo, Russell is director of research and development at SitePen, a Web application development, training and support firm that employs several key committers and contributors to Dojo.
Russell said Dojo has “always had amazing infrastructure for building an optimizing rich Web applications for serious use and 1.1 extends that infrastructure and combines it with great-looking themes, better support for laying out components in a page and more support for talking to data sources of every variety.”
Moreover, he said the Dojo build tools now work with the toolkit’s improved theme architecture to make it simpler to customize the look and feel of an application while still ensuring great performance. As a result of those improvements, Dojo 1.1 also has new high-quality themes that expand the creative options for designers and provide more options for CSS (Cascading Style Sheets)-based customization, he said.
Dojo 1.1 also enables multiple versions of Dojo to run alongside each other, and even allows the developer to rename “dojo” in their application to something else, which eases the burden for developers upgrading from previous versions or using Dojo in a portal environment, Russell said.
Meanwhile, Dojo 1.1 features an expanded set of data access “drivers” that build on the toolkit’s unified data access system to enable widgets to visualize different kinds of data without changes to the widgets or lots of application- specific data adapter code, he said.
“There’s been this tension between SOAP [Simple Object Access Protocol]-style RPC [Remote Procedure Call] endpoints, REST [Representational State Transfer]-style request/response architectures, and -dumb client’ solutions where servers spit out snippets of HTML in response to AJAX requests,” Russell said. However, “dojo.data takes a broad, CRUD [Create, Read, Update, and Delete]-based view and allows you to interface visual components with all of these strategies via a unified API. Dojo 1.1 adds simpler ways to handle REST-style back-ends, quickly visualize Atom-encoded data, and build interfaces with JSON [JavaScript Object Notation]-formatted information using a simple query language … all through a uniform API.”
More Dojo 1.1 Highlights
In addition, Dojo 1.1 includes expansions to the widget set, including a new BorderContainer widget that makes it easier for developers to build complex layouts that are difficult to construct with plain HTML and improves layout performance, Russell said. Other extensions to the widget system allow for the use of the Django Template Language. Django is a Python-based Web framework.
“The DTL system makes building data-driven widgets incredibly easy in part because it removes the need to use raw DOM [Document Object Model] APIs for most iteration and conditional display operations,” Russell said. “There’s even dojo.data support built right in, allowing query results to be formatted easily.”
And some core improvements also show through in the widgets, Russell said. “For instance, animations now feel snappier and drag-and-drop operations have been enhanced to be more fluid.”
Dojo 1.1 also supports accessibility by supporting the World Wide Web Consortium’s Web Accessibility Initiative’s Accessible Rich Internet Applications suite, known as WAI-ARIA.
“By supporting the WAI-ARIA specification, providing keyboard navigation hinting everywhere, and providing a special high-contrast mode theme for our widgets, Dojo 1.1 enables rich apps to work for everyone, and perhaps more importantly, allows applications that build on top of Dojo to address ‘Section 508’ concerns with confidence,” Russell said, referring to Section 508 of the federal Rehabilitation Act, which calls for federal agencies to procure technology that is accessible by persons with disabilities.
Russell said the Dojo Foundation received grants from the Mozilla Foundation and from IBM, which helped with the effort to make Dojo more accessible.
Meanwhile, Dion Almaer, co-founder of Ajaxian.com, listed several stand-out highlights of Dojo 1.1, among them were the technology’s support for Adobe’s AIR (Adobe Integrated Runtime) and Aptana’s Jaxer, an AJAX (Asynchronous JavaScript and X M L) server.
In February, SitePen announced updates to the Dojo Toolkit to allow AJAX developers to easily deploy Web applications created with Dojo on Adobe AIR. In fact, Adobe worked with SitePen to revise the Dojo Toolkit and enable compatibility with Adobe AIR.
Adobe AIR is a cross-operating system runtime that enables developers to use HTML and AJAX, as well as Adobe Flash or Adobe Flex software to create rich Internet applications for the desktop.
With Dojo 1.1 completed, the core developer team is setting its sights on Dojo 1.2, which will feature improvements to Dijit, the widget system layered on top of Dojo; as well as to refining the Dojo Grid, Dojo Charting and creating a better approach to DojoX, which is an incubator or area for development of extensions to the Dojo toolkit.