Case study: Univention

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!

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