All posts by Dylan Schiemann

About Dylan Schiemann

Known for things called Dojo, SitePen, and Comet.

1.7 Tutorials, CometD 2.4.0, Wink Toolkit 1.4.1, and Documentation Feedback

This past week included four significant announcements:

  • The Dojo Tutorial series has been updated to include version 1.7 of Dojo. Read the announcement from SitePen for more details.
  • Wink Toolkit has been updated to version 1.4.1. Wink Toolkit is a Dojo Foundation project that is mobile-specific, now builds on AMD, and is now easy to use with Dojo. See the Community Connections demo app which shows off using Dojo and Wink together, and introduces some of the committers to Dojo and Wink.
  • CometD has released version 2.4.0. In addition to improving their WebSockets support, they have also updated their Dojo client to work with Dojo 1.7.1 (though it does not yet support AMD).
  • We’ve long heard that we have issues with our documentation, and in spite of our best efforts to improve them, especially with the tutorials, we need help identifying and resolving issues with our docs. If you’re interested in contributing, less us know on the mailing list or on IRC. But even if you’re not interested in that level of help, we’ve simplified the feedback process. At the bottom of each API viewer and tutorial page (and soon reference guide as well), you’ll find a link to a quick feedback form. If you see an issue on the page you’re reviewing, simply click the link, type in a note with the details of the problem, and we’ll make it a priority to fix.

Looking for DojoConf in Europe? Try Web-5 in April!

The very successful and inspiring DojoConf in DC last September has led many to ask us when there will be a DojoConf EU?

While we have no immediate plans, active Dojo user “PEM” of the Web-5 Association is organizing Web-5 in Béziers, France in early April. In addition to 6 excellent Dojo talks, the conference will also include more general talks on HTML5, Mobile Web, Node.js, WebGL, performance, and general JavaScript and web application development topics.

Early registration is now open with a 33% discount available for the first batch of sign-ups. We hope to see you in beautiful Béziers, to talk about Dojo and web development:

Dojo 1.7.1 is Released!

We’re happy to announce Dojo 1.7.1 is now available for download.

Review the list of issues resolved in this release.

Please report any new issues you find in your testing with your Dojo Foundation account. Links to CDN, and an updated reference guide, web site, and tutorials for 1.7 will be available soon.

And special thanks to Colin Snover and Ken Franqueiro for managing this release!

Learn more about AMD!

If you’ve been reading about Dojo 1.7, the first thing you’re probably wondering is, what is this AMD thing that everyone is talking about? We have a great tutorial update in the works, and some in progress AMD docs. If you’re first learning about AMD, here are a few presentations and resources that are particularly useful:

For efficiently loading modules, Dojo 1.7 by default includes a new async loader based on Rawld Gill’s excellent work on the backdraft framework. Dojo can also be used with RequireJS, curl.js, or other AMD loaders.

Dojo 1.7 Released!

Dojo 1.7 is now available and ready for your web app. The second major release towards our plans for 2.0, we’ve undergone substantial improvements while preserving existing APIs and capabilities. The Dojo community has come together to dramatically improve the performance and modularity of the toolkit, a popular theme in the world of AMD (asynchronous module definition), JavaScript loaders, and microtoolkits.

Dojo Nano: Less than 4KB gzipped!

Dojo 1.7 provides substantial improvements for building desktop and mobile apps using open web technologies. In addition to a wide variety of features and changes, Dojo has been significantly improved to deliver a foundation that’s ideal for building your applications in any environment (web, desktop, mobile, server-side). Starting with less than 4KB (gzipped), you include just the features you need in your application, from Dojo, your source code, and plug-ins hosted by Dojo, GitHub, and others.

Get Dojo

Overall Vision: Separation of Data and User Experience

You will often hear us talk about separation of concerns. Your users typically want access to relevant data and information, in a variety of different contexts and experiences (desktop web, mobile, tablets/pads, television, automobiles, and much more).

With this understanding in mind, Dojo provides:

  • Tools to mix and match to create your app
  • Simple APIs to seamlessly separate data from UI logic
  • Modularity for very simple projects that’s flexible and consistent enough to handle the most challenging, feature-rich web apps

By truly separating data from your user experience, you can efficiently deliver amazing results to the users of your applications. In a world of many diverse platforms, the separation of data and user experience is key to giving your users access to the data and information they want, in an experience that’s ideal given the context (device, task to be conducted, etc.). It’s definitely a concept that’s gaining popularity, for example the experimental model-driven views library from Google.

Getting There: Compatibility and API Changes

One of our major goals with the Dojo Toolkit is that your application should be easy to upgrade between point releases, e.g., 1.5 to 1.6, and we only make major, incompatible API changes when changing major version numbers, e.g. 1.0 to 2.0. In order to guarantee this API compatibility and consistency, we need time to make sure our APIs are stable and solid. The changes in Dojo 1.6 and 1.7 represent a major refactoring of Dojo for 2.0, while preserving compatibility with previous versions of Dojo. Thus, there are a flurry of new APIs that you should consider to represent Dojo 2.0 alpha or beta, while still being able to safely use existing APIs that may be deprecated in 2.0.

We will discuss many of these changes in more detail through blog posts, tutorials and web site updates in the near future. Here’s a brief summary of the major changes.

Optimized Resource Loading: Asynchronous Module Definition

Module and resource loading has become extremely popular as more application developers have discovered the need for powerful management of larger JavaScript code bases. AMD arrived in Dojo 1.6 and has been completed for Dojo 1.7.

Dojo Toolkit developers have played a major role in helping define the AMD specification. These are excellent innovations in JavaScript which do not necessarily require Dojo and can encourage interoperability across projects. In fact, the RequireJS project is a Dojo Foundation project that’s popular in the jQuery community for working with modules and AMD. And AMD is also gaining support in newer versions of jQuery, MooTools and many other projects.

Key Considerations in working with AMD include:

  • Package Management
    • Modularity of code as well as ease of cross-project sharing, while reducing side effects and testing complexity
  • Optimization: reduced size balanced with number of requests
  • Feature Detection and user-agent optimized builds: has.js and optimized builds for common user agents
  • Reconstitution: easily combining modules from Dojo, your work, and other projects across the web

The amazing new async loader dramatically improves the performance of your AMD application. For reconstitution of modules outside of Dojo, we have a package distribution system that makes it easy to deploy packages and their dependencies. It is the work in progress CommonJS Package Manager platform, which works well with Dojo and many external projects.


Of particular note is the new dgrid module, a lightweight grid redesigned for performance and modularity.

Core refinements

Dojo 1.6 introduced the new Dojo Object Store API, based on the HTML5 IndexedDB recommendation. It provides an incredibly intuitive and simple way to include arbitrary data in your user interfaces, with simple APIs for getting and setting data. More advanced constructs like real-time updates with Dojo Socket, validation, caching, and more are simply added through lightweight wrappers. Refinements and stability improvements to this have been added in 1.7.

As announced previously, the event and query systems have been refactored to improve performance, simplify the API, and add modularity. For example, you can now use a very lightweight query system, or include the full Dojo Acme, jQuery Sizzle, or MooTools Slick query engines within your application.

Other major improvements

  • “Baseless Dojo”, with far lighter dependencies throughout the Dojo codebase. Expect more efforts in this area towards Dojo 1.8.
  • _TemplatedMixin/_WidgetsInTemplateMixin, and _setXXXAttr API refinements
  • dijit/focus, dijit/place, dijit/popup, and dijit/registry
  • CalendarLite
  • ComboBox/FilteringSelect, with native dojo/store support
  • Zoom/pan/data interactions
  • BIDI text support
  • Gauges, Geo, and GFX improvements, especially for mobile
  • Support for Blackberry 6 in Dojo Mobile.
  • Dijit support for touch and gesture events on mobile platforms.
  • Application controller and MVC, and an updated Dojo Boilerplate.

Mobile Modularity

The other Dojo Foundation mobile projects, Wink Toolkit and EmbedJS, have adopted AMD as well. See Wink and Dojo used together in the Dojo Community Connections demo.

Testing and Compatibility

In total, we’ve resolved more than 1000 issues since Dojo 1.6. The DOH test suite of tens of thousands of tests passes in all officially supported browsers:

  • Chrome: 8.x and newer
  • Firefox: 3.6.x and newer
  • Internet Explorer: 6, 7, 8, and 9
  • Opera: 11.x and 12.x
  • Safari: 5.0.x and 5.1.x

Dojo is also tested with popular mobile browsers including iOS 4.x and 5.x, Android 2.x, 3.x, and 4.x, and Blackberry 6, and passes for all supported features in Dojo Mobile, and most features throughout Dojo. Work is planned for supporting Blackberry 7 and QNX, and Windows Phone 7.5.

Use Direct from the CDN, or Download

Get the Dojo release that’s right for you. Choose from CDN, optimized builds, or source versions with full demos and utilities. Please note that if you are upgrading from 1.6 or earlier, we no longer make a distinction between dojo.js and dojo.xd.js (all versions work cross-domain with the new loader), so update your URLs to refer to dojo.js.

Get Dojo


Many improvements have been made to the Dojo documentation. The dozens of Dojo Tutorials are being updated for 1.7, in addition to the reference guide and API documentation. Expect these updates to be completed by the end of 2011.


Work on Dojo 1.8 is already underway. We’re anticipating a 1.8 release in Q1 2012, and 2.0 in mid-late 2012.

Release Notes

Read the complete Dojo 1.7 release notes for full details on everything that has changed with Dojo since 1.6.

Browser-compatibility Releases

In the coming weeks, and as a new policy going forward, we plan to issue point releases more regularly for 1.5.x and newer, rather than just for the most current release. The goal with these updates is to fix compatibility issues with new browsers that are released. This will allow you to use Dojo with new browser releases without as much risk in the upgrade cycle. Expect a 1.5.2 release in the near future with support for Firefox 4+ and IE9, and a 1.6.2 release as well with minor updates. Because new browsers are released with increasing frequency, this should help many Dojo users keep their apps running properly with new browser releases. While we’re moving more of Dojo to feature detection, there are still no guarantees that everything works as expected in new browsers, especially when changes are as dramatic as IE8 to IE9 for example.


And as always, we appreciate your interest and usage. If you find an issue with Dojo, have a suggestion, or see anything on the site or within the documentation that you think should be better, please register for a Dojo Foundation account and open a ticket.

DojoConf Tickets Now On Sale!

The first ever DojoConf will be a premier event for the Dojo community and JavaScript community at large. it is run by the amazing team behind JSConf and TXJS, so you can plan on amazing presentations followed up by outstanding social events.

  • Where: Washington, DC (Palomar Hotel)
  • When: Evening of September 15th, all-day September 16 and 17, 2011
  • Who: Speakers including Peter Higgins, Dylan Schiemann, Alex Russell, Patrick Ruzand, James Thomas and many more presenting on everything from the future of Dojo to Dojo Mobile. Attendees will include anyone interested in Dojo, including committers, contributors, web developers, designers, project managers, and software architects.
  • How: Tickets for DojoConf are available for US $650 for General Admission, and are currently on sale with very limited supplies. Hotel rooms are available for the low price of US $149 and can be reserved once you register.
  • What’s included: The ticket cost covers full access to all three parties and all of the conference day-of events, basically everything is taken care of for you!

Early bird tickets have already gone on sale and sold out in a matter of hours, we have opened up a few more Early Bird tickets with this blog post to ensure that those who need/want them can get them. Get them now, they will sell out quickly!

Dojo Web Builder Source on GitHub

Last month we launched the Dojo Web Builder, an online solution to generate customised versions of The Dojo Toolkit using just your web browser. We are pleased to announce that the technology behind the Dojo Web Builder is now available on Github as an official Dojo Foundation project.

Users can now run the tool locally, which provides access to two really important features….

  • Generate custom Dojo builds for older versions of the Dojo Toolkit. The Web Builder can be easily configured to work with older versions of the toolkit, whereas the hosted version only provides access to the latest version of Dojo. This allows users who aren’t using the latest version of Dojo within their application to generate customised builds with the tool.
  • Expose custom application modules through the Web Builder. Plug your local Dojo modules into the Web Builder and the tool will automatically allow users to build optimised application layers from all modules it has discovered.

Follow the simple instructions in the project’s README file for full details on both of these modes.

Visit the Dojo Web Builder GitHub project and start using it today!

Dojo 1.6.1, 1.7 Beta, Tutorials, Dojo Beer, DojoConf, and more…

If you haven’t been following us on Twitter, it’s been a very busy month in our community, with many exciting announcements and upcoming events.

Recent News

  • Dojo 1.6.1 released. Many minor enhancements and fixes were made, along with official support for Internet Explorer 9 and Firefox 4.
  • Dojo 1.7 beta released. Please start testing your applications now and report issues. A draft of the 1.7 release notes is in progress. 1.7 final is slated for release in the next 3-6 weeks.
  • Dojo Tutorials. In case you missed it, we now have 28 new tutorials, all updated for Dojo 1.6, covering a variety of areas of Dojo and Dojo Mobile, as well as a new section of Dojo Recipes, for solving complex real-world problems.

Upcoming Events

  • Dojo Workshops in your area. SitePen has been offering a number of workshops, with the next Dojo Workshop in Washington DC. Register now for one of the last few slots.
  • Dojo Beer DC. Even if you cannot make the workshop, join us for free Dojo Beer in DC, or any upcoming Dojo Beer event.
  • The first ever DojoConf is coming. Run by the same great team that brings us JSConf, DojoConf will be an amazing event. Stay tuned for tickets, which go on sale in a few weeks. Or submit a talk idea by this Friday, June 10th.
  • The London Ajax Mobile Event will feature a number of great talks on mobile, including Dojo Mobile, EmbedJS, WinkToolkit, and more on July 2nd in London. A few tickets remain, register before it sells out.

We hope to see you at one of these, or many other upcoming Dojo events.