Skip to content

Software Development News: .NET, Java, PHP, Ruby, Agile, Databases, SOA, JavaScript, Open Source

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

The Dojo Toolkit - Announcements
Syndicate content
Unbeatable JavaScript Tools
Updated: 11 hours 53 min ago

Case study: FreeNAS

Wed, 06/18/2014 - 13:45

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview William Grzybowski from iXsystems, a California-based company and creators of FreeNAS.

FreeNAS Add User

Q: How did you first learn about Dojo?

A: Around Dojo 1.3. I was tasked to write a tree menu and I was pointed to a Dojo example of the dijit/tree. The learning curve was higher compared to other simple frameworks but it was totally worth it.

Q: Why did you choose Dojo?

A: We were looking for a JavaScript toolkit capable of build an UI-rich application, Dojo did stand up due to its great documentation, active community and BSD License.

Q: Were you previously using another toolkit?

A: I have used jQuery UI and Bootstrap, but I think Dojo is a much better fit for our use case, the default functionality and modules are beyond what I have ever seen before.

Q: What does your application or service do?

A: FreeNAS enables users to build network-attached-storage (NAS) on nearly any hardware platform of their choosing. The FreeNAS project and software were founded in 2005 on the principle that network storage be made available to the world at no cost and unencumbered by license restrictions.

Watch a video demo of FreeNAS

Q: How does your application use Dojo?

A: Dojo is used as the central part for FreeNAS WebGUI. it is a Rich Internet Application (RIA) so it is used for everything: base layout, tree menu, menu bars, dialogs, form elements. We have developed our own widgets for the volume manager, cron job task schedule, web shell, unix path selector, among others.

We feature a RESTful API written in Python/Django which is also consumed in our dgrid datagrids using dojo/store/JsonRest.

Q: Overall what is your user experience with Dojo?

A: Dojo has exceeded my expectations in every way. The documentation is terrific, I can always find everything I need there, without the need of looking through the source code. I have found the community support is also something to account for, there is always someone willing to help, either in IRC channels or in the mailing list.

Q: What’s your favorite thing about Dojo?

A: The modularity is my favorite feature of Dojo. One can easily extend any component to fulfill his needs. The source code is extremely clean, which makes the task even easier.

Q: What are your future plans with Dojo?

A: Next projects will definitely give Dojo a serious consideration as it has proven to be a very nice piece of software. I would like to leave here my sincere thank you for every single Dojo developer. Keep up the good work!


Thanks William for telling us about your experience with Dojo. Checkout more FreeNAS screenshots to learn more about the application. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Dojo turns (1.)10

Mon, 06/16/2014 - 13:04

Ten years ago, we humbly started a project to create a “next generation DHTML toolkit”, based on an initial email, Selling the future of DHTML. Today, we are pleased to announce the immediate release of Dojo 1.10, our 16th major release of the toolkit!

Release Notes and Documentation

Dojo 1.10 is primarily a stability and bug fix release, with over 275 issues resolved. Read the Dojo 1.10 release notes for the complete list of what’s new and improved in 1.10. API features and enhancements primarily occurred within the following areas:

  • Core (DOM, events, request, WebWorkers, etc.)
  • Dijit
  • dojox/charting and dojox/gfx
  • dojox/app
  • dojox/calendar
  • dojox/mobile (including an iOS 7 theme)
  • dojox/store (offline store supporting WebSQL and IndexedDB support)
  • Uglify 2 support for Dojo builder

The tutorials, reference guide, and API viewer have also been updated for the 1.10 release.

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.

Get Dojo


The new dstore project is being worked on as the eventual successor to dojo/store. It works with Dojo 1.8+, but is intended to also define the object store APIs for Dojo 2. Tutorials and documentation will accompany the dstore 1.0 release that is expected in a few weeks. Read the Looking ahead with stores blog post for more details on the direction of this module.


As reminder, while the source code is still available for DataGrid and EnhancedGrid, these modules are formally deprecated. We instead recommend that you use dgrid or gridx.

dgrid 0.4 is currently under development, and will be the first component to leverage the new dstore API.


Intern is the replacement for DOH. Work is currently underway to update all DOH tests in Dojo core and Dijit to use Intern, to make it easier to prevent regressions with Dojo 1.x releases. You can learn more about Intern via the Intro to Intern webcast, and also read What’s next for Intern and the 2.0 release that is expected soon.

What’s Next? 1.10.1, 1.11, and 2.0

We continue working on Dojo 2.0. We continue to issue periodic maintenance releases on 1.4+, primarily to fix issues when new browsers are released. We will likely will have a 1.11 release for anything that might change or enhance an API, or backport key improvements made for 2.0.


This release would not have been possible without significant contributions from the Dojo team. Special thanks to everyone who helped make this release possible, including:

  • Adrian Rakovsky
  • Adrian Vasiliu
  • Akira Sudoh
  • Alexander Kaidalov
  • Allen Shiels
  • Avraham Rozenzweig
  • Ben Hockey
  • Benjamin Santalucia
  • Bill Keese
  • Brandon Payton
  • Bryan Forbes
  • Christophe Jolif
  • Chuck Dumont
  • Clement Mathieu
  • Colin Snover
  • Damien Garbarino
  • Damien Mandrioli
  • Dasa Paddock
  • Douglas Hays
  • Dylan Schiemann
  • Ed Chatelain
  • Ed Hager
  • Eduardo Matos
  • Eric Durocher
  • Erwin Verdonk
  • Gabriel Aszalos
  • Gaurav Ramanan
  • Heng Liu
  • Hugh Winkler
  • James Morrin
  • Jochen Schäfer
  • Joerg Sonnenberger
  • Julien Mathevet
  • Justin Bumpus-Barnett
  • Kitson Kelly
  • Kris Zyp
  • Lajos Veres
  • Lamiaa Said
  • Lee Bodzak
  • Lorenzo Solano
  • Mangala Sadhu Sangeet Singh Khalsa
  • Mark Hays
  • Mark Szymanski
  • Matthew Maxwell
  • Mustafa Celik
  • Nick Nisi
  • Pascale Dardailler
  • Patrick Ruzand
  • Peter Kokot
  • Philip Jägenstedt
  • Rawld Gill
  • Scott Davis
  • Sebastien Brunot
  • Sebastien Pereira
  • Semion Chichelnitsky
  • Simon Speich
  • Stephen Davis
  • Stephen Simpson
  • Steve Hearnden
  • Terence Kent
  • Tim Roediger
  • Virgil Ciobanu
  • Vitaly Trushkov
  • Wouter Hager
  • Youngho Cho

We also thank AltoViso, IBM, SitePen, and TimeTrade for their generous contributions of development time and financial support.

Dojo community day!

We’re hosting a free Dojo community day in Switzerland on July 5th, and plan to host similar events in other locations later this year. If you cannot make it to Switzerland, we still encourage you to join us on the #dojo IRC channel ( for an afternoon of hacking. We’ll be online from approximately 9am – 6pm in Switzerland. Or join us at another Dojo event this summer.


We hope you’ll find Dojo 1.10 to be exceptionally stable and reliable. Please let us know if you run into any issues by opening a ticket. If you find a problem in the documentation, you can also provide feedback via the link at the bottom of every page. We also encourage you to get involved, to help improve Dojo and to work on Dojo 2.0. We hope you find value in using Dojo 1.10!

Categories: Open Source, RIA

Summer 2014 Dojo events

Sun, 06/15/2014 - 17:13

There are a number of Dojo events this summer. We hope to meet you at one of these events:

Dojo Community Day
  • Dojo Community Day. July 5th, Brugg, Switzerland. Free registration required.
  • Dojo Community Day. September 27, Ottawa, ON. Free registration required. Registration details will be announced in July.
Training Workshops

Let us know if you’re speaking at an event, and we’ll add you to our listings!

Categories: Open Source, RIA

Esri Web Optimizer

Wed, 05/21/2014 - 17:56

Esri, creator of the Dojo-based ArcGIS JavaScript mapping API and ArcGIS Online, has announced the beta release of a new product, the ArcGIS API for JavaScript Web Optimizer, a Dojo-based app for creating Dojo and Esri ArcGIS optimized builds.

Visit the help documentation to view application screenshots.

Categories: Open Source, RIA

Case Study: Autostore

Mon, 05/19/2014 - 18:03

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Ramil Rakhmetov from PeopleWare, a Belgian company that creates enterprise web applications. Ramil is a JavaScript developer who created the Autostore front-end.

Q: How did you first learn about Dojo?

A: In our company, Dojo is the standard toolkit for front-end JavaScript applications. When the Autostore project started we had an internal JavaScript and Dojo training, by Jan Dockx, which allowed me to get up to speed quickly since Dojo does have a steep learning curve.

Q: Why did you choose Dojo?

A: The choice for Dojo was obvious as it was the company standard and we needed to make a web application that feels like a desktop application. In the not too distant future there will be a need for a mobile interface for Autostore as well.

Q: Were you previously using another toolkit?

A: I used Plone in previous projects which was, at the time, using pure JavaScript. Switching to Dojo felt like a more robust framework that has a very rich feature set compared to what I saw in the past.

Q: How does your application use Dojo?

A: Autostore is an application that can be used for both fire prevention and fruit preservation all over the world. It allows users to control the PLC hardware that is installed in their cooling cells, in case of fruit preservation. It acts as a dashboard that monitors the current values coming back from the sensors that are attached to the PLC’s. It also allows the user to update configuration settings in the PLC hardware.

We chose to write the back-end in Java and the front-end in Dojo. Since this is a dashboard, it is important to show live data to the user. Therefore most of the screens refresh themselves every second using XHR calls to the back-end. The results of these calls are loaded into a Stateful object that refreshes the view using events.

Q: Overall what is your user experience with Dojo?

A: Dojo is, besides the rather steep learning curve, a great framework to build enterprise quality applications. First you make widgets, which are the building blocks of your application, that you can fit together to make them act as one application. This allows us to quickly respond to changing customer demands in an agile manner.

Q: What’s your favorite thing about Dojo?

A: The Dojo build is a great tool! The more I learn about it, the better it gets. Right now, Autostore is build via Maven using the maven-antrun-plugin to execute the Dojo build. Using git-commit-id-plugin and we even set the cacheBust in dojoConfig to the GIT commit ID abbreviation, making sure that the sources are only cached when we want to. The result of this build is put in a JAR file and deployed next to the back-end WAR file on a Jetty server. This is deployed at several locations all over the world via Puppet.

Q: What are your future plans with Dojo?

A: Convert all XHR calls, that are used to refresh the on-screen data, to WebSockets. This way the on-screen data will be really live. Another major benefit is that this will minimize the communication with the back-end. Unfortunately, when we started this project, WebSocket standards weren’t available yet across all browsers.

The login screen of the autostore application.

The login screen of the autostore application.

Autostore Main Screen

The main screen acting as a dashboard for the most important parameters to monitor. This screen refreshes every second.

Autostore Alarm Screen

The alarm screen shows which alarms are currently active.

Autostore Settings Screen

The settings screen can be used to configure the PLC setup to the customer needs.


Thanks Ramil for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Dojo 1.10 release schedule, beta 1 now available

Wed, 05/14/2014 - 12:50

In preparation for the release of Dojo 1.10, trunk is now in feature freeze, which means this code is considered feature complete for Dojo 1.10. The release schedule is currently as follows:

  • May 13: Dojo 1.10.0-beta1
  • May 29: Release candidate 1 (note: if additional beta releases are necessary, each release will push this out by 1 week)
  • June 12: Final release (note: if additional rc releases are necessary, each release will push this out by 1 week)

We encourage you to grab the beta and help us find any bugs or regressions with your code base and report any issues you find by following our contributor workflow.

The documentation for 1.10 has not yet been built, though the API changes from 1.9 are minimal. Work in progress release notes are available to see a highlight of the additions we have made.

Thank you to everyone that has helped make this release a success, including the 61 contributors that have had code land in this release!

Categories: Open Source, RIA

Case study: MAGICapp by Fullstack

Tue, 05/13/2014 - 13:24

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Deno Vichas from Fullstack, a San Francisco-based software consultancy and creators of MAGICapp.

MAGICapp New Section

Q: How did you first learn about Dojo?

A: Around the time of Dojo 0.3, I was tasked with building a web based real-time dispatching application. Knowing it was going to be a UI-rich single screen application, I looked around for a library that would ease the pain of building widgets from scratch. After some searching and research, Dojo seemed like the best choice.

Q: Why did you choose Dojo?

A: After having great success with Dojo on past projects, it’s a no brainer to start any large project with it now. For my new project developing a medical guideline authoring platform, I knew Dojo had everything I needed to quickly and successfully build a complex UI, including full internationalization support and a build tool. Since Dojo is a complete toolkit, I knew I didn’t have to piecemeal a bunch of projects together and worry about compatibility, dependency management, and license compliance levels while only using the parts I needed. If I found something that Dojo didn’t solve well, I could easily add in third party libraries like I did with ckEditor and dGrid.

Q: Were you previously using another toolkit?

A: No, before Dojo I was developing everything from scratch and occasionally using third-party JavaScript widgets.

Q: What does your application or service do?

A: MAGICapp enables medical guideline authors to write and publish their guidelines online using the GRADE methodology. Based on the work of the DECIDE and MAGIC research programs, MAGICapp is an easy to use web based application that supports open integration with other software applications and public standards, but does not require additional software to start using.

MAGICapp helps guideline organization to meet standards for trustworthy guidelines while maximizing efficiency and reducing costs throughout the authoring and publishing process. Guideline organization and MAGICapp users also benefit from ongoing high quality research and empirical evidence about optimized strategies for authoring, maintaining, and disseminating trustworthy guidelines at the point of care.

For more information visit the MAGICapp project website.

Q: How does your application use Dojo?

A: The application uses a number of custom Dijits and makes heavy use of dojo/store/Observable and dojo/store/JsonRest, using an application controller much like you have in the app controller recipe. The different Dijits in the application talk with each other using a combination of dojo/topic and dojo/aspect. We started out using the nihilo theme and over time have extended this for a custom look and feel.

Q: Overall what is your user experience with Dojo?

A: At first when using 0.3 it was a little tough since there wasn’t much documentation at that time. My experience has been worlds better now with all the information available on Dojo Toolkit , SitePen, and the dojo-interest mailing list. The toolkit is pretty complete now having most all of the features I need to build modern web applications.

Q: What’s your favorite thing about Dojo?

A: Currently, I really like the new AMD and dojo/store functionality released with version 1.6. The new dGrid is great and lot simpler to work with over the old dojox/grid/DataGrid. The new functionality in dojo/store has really made it a lot faster to get the front and back-end talking with each other. I also like that everything in Dojo is very easy to extend. This made creating custom JsonRest stores for offline use a breeze.

MAGICapp Strong Recommendation

MAGICapp Effect estimates

MAGICapp Comparison

Please also check out the MAGICapp project website to learn more about the project!


Thanks Deno for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Dojo community day: July 5 near Zurich

Thu, 04/24/2014 - 17:30

It’s been far too long since we’ve had a Dojo community day or dojo/beer event in Europe. As such, we have planned one for Saturday, July 5th, in Brugg, Switzerland (near Zurich).

The event is free to attend. The schedule and details are available on the registration page.

The format will be a talk, an open Q&A session, time to hack and contribute to Dojo, and at some point we’ll break for lunch.

This event follows the SitePen Dojo Workshops which occur June 30 – July 4. We hope you’ll join us for the week and learn about Dojo, and then on Saturday work to help make Dojo better. Or if you cannot make the workshops, we at least hope you’ll join us for a fun Saturday event!

Categories: Open Source, RIA

Case study: Softeco Sismat (TELL ME Project)

Wed, 04/09/2014 - 20:26

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Stefano Bianchi from Softeco Sismat, an ICT Italian company that participates in the TELL ME project, an European Commission-funded research initiative to improve training in small and medium-sized manufacturing environments. This case study illustrates a Dojo-based user interface for a Technology Enhanced Learning system

TELL ME Front End Web App interface – portal-like layout based on ContentPanels

Q: How did you first learn about Dojo?

A: We were looking for a solid JavaScript framework to develop a prototype for a complex, desktop-like web user interface (UI) to support learning activities for blue collar workers at the workplace. We evaluated several different renown frameworks and we found references to Dojo in several JavaScript framework evaluation tables – we then decided to give it a chance considering its features and the positive feedback.

Q: Why did you choose Dojo?

A: At a very first glance, Dojo seemed like a robust JavaScript framework for client-based desktop-like applications, shipped with several interesting built-in features (plenty of ready to use components and widgets, such as e.g. the Store-based Tree widget and the rich chart & graphing library). Also, the documentation (and tutorials, in particular!) was rather rich and complete, providing an incremental guide for differentiated (novice, intermediate and expert) users. The Asynchronous Module Definition (AMD) and Object Oriented (OO) approach was also a plus. As for our previous expertise in Rich Internet Application (RIA) development, what really convinced us to adopt Dojo was the possibility to replicate on client-side the same desktop-like functionality that we previously deployed with a Java-based RIA frameworks on server-side. As the project we are participating in also addresses mobile devices, the Dojo Mobile toolkit represented a valuable asset for future development.

Q: Were you previously using another toolkit?

A: In previous research projects, we extensively used several JavaScript libraries and frameworks – Prototype, Scriptaculous, jQuery, ExtJS to name a few. Working with Dojo represented for our Research & Innovation division a good opportunity to extend our expertise in JavaScript frameworks.

Q: What does your application or service do?

A: The prototype we developed for the front-end user interface of the TELL ME (Technology-Enhanced Learning Livinglab for Manufacturing Environments) system includes several different widgets (“chunks” of HTML5/JavaScript/CSS code that can be used independently or assembled in a portal/desktop-like layout) that provide different learning-oriented functionality. The main aim is to allow a blue collar worker to express a learning need (e.g. “what do I need to learn/be trained/recap about?”) by e.g. selecting a set of predefined tags from several complementary domain taxonomies (i.e. trees of concepts describing activities, tools etc. in a given workplace) and to receive back a learning path (i.e. a list of learning-oriented activities) including different learning contents to be consumed in order to acquire or improve specific working skills. Each type of learning content (documents, videos, pictures, lessons etc.) should be then consumed/launched in a specific widget, with the possibility to also provide social feedback such as ratings and comments.

Q: How does your application use Dojo?

A: The whole application has been developed from scratch with Dojo. Each widget included in the UI can be used independently or assembled according to specific requirements by means of native Dijit and DojoX components such as BorderContainer (for the whole layout) and ContentPane (for inclusion of single widgets). The widget for the selection of taxonomy concepts is based on Dijit’s Tree component powered by JsonStore, following one of the many examples provided in the excellent tutorials. The widgets extensively use the native dojo/topic mechanism for publish/subscribe support in order to exchange data – a few lines of code brings the whole UI alive. Here and there, several useful components were used for specific typical UI functionality, such as Dijit’s Button, input fields, FilteringSelect, Dialog, etc.. Dojo’s has and sniff feature were also used to help contextualize the UI according to the detected features of the device. Finally, the whole UI is designed to interact with a battery of REST web services and Dojo’s native functionality (xhr, script) for Ajax request were extensively used, including support for JsonP.

Q: Overall what is your user experience with Dojo?

A: Dojo generally confirmed the initial expectations: the good impression it gave at a first glance was confirmed by the technical results achieved by the prototype, which included in its first release all the expected functionality, allowing us to focus also on usability and customization (see layouts, CSS and responsive design – e.g. the original Tree-based component was fully customized with minor efforts).

Being a complex framework, Dojo required an initial period of training, but the learning curve was not as steep as initially expected: the examples provided in the tutorials helped a lot in setting up conceptual mock-ups that were then iteratively improved as specific technical knowledge was acquired. Several concepts – AMD, to mention one – are not strictly Dojo-related, but must be nevertheless be proficiently known to ensure a smooth development experience.

Q: What’s your favorite thing about Dojo?

A: The Dojo architecture is truly inspiring when approaching OO JavaScript, and the rich set of examples provided help understanding how to make JavaScript code modular and reusable throughout the application – the whole approach is clear, clean and scalable. Reference documentation and tutorials are also a valuable resource.

Q: What are your future plans with Dojo?

A: One of the possible future plan is to move the prototype developed so far on mobile devices, i.e. to re-implement the front-user interface with Dojo Mobile, which should allow the consumption of learning contents (documents, pictures, videos, lessons etc.) on different mobile devices without developing dedicated apps.

The templating mechanism still has to be completely understood and evaluated, and surely represent a direction to follow for further developments.

The prototype will also be extended to provide all the expected additional functionality, including e.g. the complete logging of all learning experiences by mean of a dedicated Dojo-based logic connecting to a Learning Record Store (LRS) as specified by the ADL specifications for the Experience API.

Furthermore, as the TELL ME project addresses also the use of advanced Human-Computer Interfaces (HCI), the Dojo-based UI will be ported as the HTML layer for an Augmented Reality (AR) application developed on the Unity 3D engine.

Finally, we are definitively eager to start playing with Dojo 2.0 as soon as it is released!

TELL ME Back End Tool Login page – Dojo-powered responsive design

TELL ME Back End Tools entry page – Dojo-powered responsive design

Dojo Tree-based Tags Taxonomy Editor

TELL ME Front End Web App interface – portal-like layout based on ContentPanels

TELL ME Front End Services – Request Widget, using (REST-powered) dynamic Dojo Tree, JsonStore and sniff


TELL ME (Technology-Enhanced Learning Livinglab for Manufacturing Environments) is a research project co-funded by the European Commission to improve training in small and medium-sized manufacturing environments by using the latest technologies and insights. The aim is to bring innovative learning methods to manufacturers so they can better supply the needs of their markets, which include larger industries. TELL ME is a three-year project that started in November 2012 with a partnership of 14 leading organisations in academic research, technology and industry from Italy, the UK, Finland, Sweden, France, Germany, Spain and Portugal. It is a significant €8.3m R&D project, funded by the Consortium Partners and a €5.9m research grant from the European Commission under its FP7 Framework Programme.


Thanks Stefano for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Case study: Univention

Mon, 04/07/2014 - 09:49

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Alexander Kläser from Univention, a Germany company that creates an enterprise Linux distribution.

Q: How did you first learn about Dojo?

A: In 2011 we were faced with an entire redesign of our administrative web interface in order to allow a more flexible, intuitive and interactive usage. At that time, the web interface relied mainly on Python to generate HTML pages every time an action was carried out. We wanted to develop a Rich Internet Application (RIA) with Ajax technologies that could run as client in web browsers. This client should communicate with existing server part which was written in Python. For this process, we wanted to base the client upon a JavaScript library that facilitates to ensure cross-browser compatibility.

We already knew Dojo which we used for the web interfaces here and there, e.g., the calendar widget and some combo boxes. For an overview, we investigated many different frameworks: ExtJS, jQuery, Dojo, Yahoo UI, Prototype, Mootools, GWT, etc. The ones we investigated in greater detail were ExtJS, jQuery and, of course, Dojo.

Q: Why did you choose Dojo?

A: We quickly realized that jQuery is an extremely popular library and great for manipulating DOM elements. However, jQuery is not able to deliver a ready-to-use infrastructure for RIAs. ExtJS and Dojo seemed to be the only more mature libraries that could offer a very rich set of features including widgets, a consistent API, module management, i18n, layout management, DOM manipulation, data abstraction, object oriented programming, theming, data grids, build system, etc.

When we compared ExtJS and Dojo in 2011, we saw that especially documentation and tutorials were lacking for Dojo at that time (this is different now). However, in difference to ExtJS, the development of Dojo is open and its license uses the Academic Free License v2.1 as well as the new BSD license. At last, Intellectual property rights are held by the non-profit Dojo Foundation. As our products are 100% Open Source, as well, it is clear that Dojo is the perfect match.

Q: Were you previously using another toolkit?

A: We were only employing a few Dojo widgets for calendar and combo boxes. The Python code that was rendering HTML pages was mainly written by ourselves and evolved over time to a point where a rewrite was reasonable.

Q: What does your application or service do?

A: Our main product is the Univention Corporate Server (UCS) which is an Enterprise Linux server system and a fully functional alternative to Windows server products. UCS provides Active Directory functionality as well as a platform for 3rd party business applications that range from groupware, over two-factor authentication, CRM or ERP to backup solutions. UCS is easy-to-use, cost-efficient and 100% Open Source. It suits all needs for the operation of distributed, heterogeneous (Microsoft Windows, OS-X or Linux systems) and virtualized IT infrastructures.

With the Dojo Toolkit, we were able to develop a first-class, user friendly and extensible management interface for UCS that is completely web-based. The management interface acts as single point for the administration of users, computers, networks, virtualized systems and many other aspects of IT infrastructure. As it is web-based, it is possible to instantiate and configure new server instances in the cloud (e.g., Amazon EC2) within a few clicks.

More information about UCS and its management interface can be found on the Univention website and the UCS management system

Q: How does your application use Dojo?

A: The UCS management interface is as single-page RIA entirely based on Dojo. Its focus is an intuitive, comfortable and complete user experience. Under the hood, the web interface is communicating with an RPC back-end based on a Python web server. Entry point of the web interface is an overview page that shows various modules which can be launched as separate Dijit tabs.

We mainly adapted existing Dijits to our needs (especially form widgets and the EnhancedDataGrid) and developed several custom widgets. For the handling of forms, we added an automatic dependency mechanism along with automatic loading of content from the server-side. For the communication with the back-end, a custom Object Store has been implemented. For the outward appearance, a customized theme has been designed and integrated. The interface itself has also been adapted for mobile devices to some degree. For the integration with tools like xgettext for .po files, we developed our own i18n tool set providing a _() function for JavaScript.

Q: Overall what is your user experience with Dojo?

A: Overall we are very happy to be able to use such a great framework as Dojo. We truly appreciate its openness and the Dojo Foundation that stands behind it.

The Dojo Toolkit has constantly evolved and feels like a solid and mature framework with many great features. The stability of the API has been maintained throughout 1.x which really is crucial to anyone who wants to deliver a solid product. Still, new features have already been made available within Dojo 1.x to allow a smooth transition to Dojo 2.x. This allowed us to already adapt our code base for Dojo 2.x, as well.

It is wonderful to see that a great number of tutorials and examples have been added in the past years. These truly help to quicker understand basic as well as more advanced aspects/concepts in Dojo. In the beginning, the build process was somewhat more complex to understand and integrate, yet this has evolved, as well. The only part which did not fit our expectations were the Dojo tools for internationalization, for which we developed our own tool set.

Q: What’s your favorite thing about Dojo?

A: The Dojo Toolkit is a first class JavaScript framework that really covers many aspects of web applications. As an Open Source library, it allows its users to participate in the development process via bug reports and patches. One great aspect is its flexibility: it can be used as light weight JavaScript library for HTML-based websites to Rich Internet Applications realized in an entirely programmatic fashion. Its modularity via the AMD loader allows to easily include other libraries as well. Dojo is reliable and continues to evolve in a promising direction.

We appreciate the new and much easier to use Object Stores (as compared to the Data Store). We employ the dojox/grid/EnhancedDataGrid at many places and are happy to see that the dgrid is much clearer and easier to use. We already have employed it in some parts, but have not replaced many parts of older code using the EnhancedDataGrid.

Q: What are your future plans with Dojo?

A: We currently have integrated Dojo 1.9.1 and plan to move on to 1.9.3 soon. Another point is the support for mobile devices which will also be revised in the near future. Otherwise we will keep with the development of Dojo and hope to replace dojox/grid/EnhancedDataGrid with dgrid at some point. We are looking forward to Dojo 2.0.

Please also check out the UCS management system online demo to see this application in action, or watch a few videos to learn more about the product!


Thanks Alexander for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Case study: Peopleware

Fri, 03/07/2014 - 14:09

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Adriaan Peeters from PeopleWare, a Belgian company that creates enterprise web applications. Adriaan is the project leader of the MealWare project.

Q: How did you first learn about Dojo?

A: This choice was made after weighing Dojo against its competitors and finding that it offered a good mix between maturity, feature set and community. Dojo is a comprehensive toolkit that includes UI components as well as an entire framework for architecting and building applications. We’re also convinced that Dojo offers a stable platform to develop rich enterprise applications that gives users the feeling they’re using a desktop application. That’s why we decided to introduce Dojo as the company standard.

Q: Why did you choose Dojo?

A: The choice for Dojo was obvious as it was the company standard and we needed to make software to run on a set-top-box with a HD TV screen, which required a rock solid user interface. Many parts of the application were marked as a potential widget after drawing the screens on paper. Since Dojo offers a broad set of widgets already, it helped us to kickstart the project. We were a bit concerned about the possibilities to style the Dojo components to look nice on a HD TV but this turned out to be very easy to implement.

Q: Were you previously using another toolkit?

A: The developers in our company have experience with several other JavaScript libraries and utilities like jQuery, AngularJS, RequireJS and Backbone.js. Once the developers found their way through the extensive documentation, they were thrilled with the functionality Dojo offers by default.

Q: How does your application use Dojo?

A: MealWare is meant to run on a set-top-box, which is attached to a HD television. This set-up is installed in every room of a retirement home enabling elderly people to select a breakfast, lunch and dinner from the daily menu using their IR remote.

At a high level, the application consists of a back-end RESTful API written in C# and a Dojo front-end which communicates with this back-end using dojo/store/JsonRest.

The front-end is a single-page Dojo application written using HTML5 and CSS3 with the focus on an easy, fast and beautiful user experience. To allow control of the user interface via IR remote, the set-top-box emulated key presses which we handle using dojo/keys to enable keyboard navigation in the UI. We started out using the basic Dojo widgets to prototype the functionality and ultimately moved to building our own custom widgets because MealWare runs on a HD TV and we had to meet very specific layout requirements.

A combination of xstyle and sass is used for the styling of the application. This keeps our CSS code clean and readable while, once deployed, we have the benefit of having a single CSS file containing all information

Q: Overall what is your user experience with Dojo?

A: Dojo feels like a solid, but highly customizable, framework that can be used in different kinds of projects. It can be used to quickly build a prototype using standard components and migrating this to a fully customised user experience while retaining the same underlying component code. We have a project that focuses on graphics and ease of use which we successfully implemented thanks to Dojo. By creating some high quality widgets, we could quickly respond to changes in the customer’s requirements.

Q: What’s your favorite thing about Dojo?

A: The AMD loader makes life a lot easier. It’s a powerful tool to keep our code organized and clean. It also provides a good overview of the libraries used in the application.

Q: What are your future plans with Dojo?

A: Our next projects will certainly use Dojo since it’s proven to be a powerful framework that can fill in our needs and help us to maintain a high quality!

First of all the user can select the menu of preference

Then the beverage can be selected

Then the user can choose what to put on his or her bread

At last the user needs to confirm his or her order

After confirming the order, the user is send to the main screen again


Thanks Adriaan for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA