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!
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!
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!
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.Q: How did you first learn about 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: 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!About TELL ME
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!
Thanks Stefano for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.
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?
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.
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.
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?
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.
Thanks Alexander for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.
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: 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 informationQ: 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!Thanks!
Thanks Adriaan for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.
There are a number of Dojo events this winter. We hope to meet you at one of these events:Meetups
Let us know if you’re speaking at an event, and we’ll add you to our listings!
The large companies that use Dojo are widely known. This series features other users of Dojo and their stories. This time, we interview Francis Brosnan BlĂˇzquez from Core-Admin, a Madrid-based company creating a powerful Dojo-based server administration platform.
A: Well, we saw several solutions already available in the market, each of them with a different degree of quality. However Dojo Toolkit was (and still is) the best Open Source product out there to create a beautiful Internet application with a desktop like interface. It’s got everything for the GUI plus a great support for major available browsers.Q: Were you previously using another toolkit?
Q: How does your application use Dojo?
The usage of Dojo is intensive throughout Core-Admin web interface. It uses many core Dojo functions like event handling, DOM handling, dynamic CSS styling, etc. It also uses many of the GUI components to create panels, sections and trees..Q: Whatâ€™s your favorite thing about Dojo?
The best is that it is solid as a rock and it is Open Source! It is a project you can rely on for your commercial grade developments.Q: What are your future plans with Dojo?
Currently we are using Dojo toolkit 1.6.x series. We would like to start working in the short term on a web-client upgrade that can take advantage of new Dojo features like AMD and many other visual upgrades like some of the beautiful themes that are available for Dojo Toolkit 1.8.x and 1.9.x.Thanks!
Thanks Francis for telling us about your experience with Dojo. Please also check out the Core-Admin demo (user:admin, password: admin) to see this application in action, or watch a few videos of the product in action! If you would like to share your experience, please contact us.
The large companies that use Dojo are widely known. This series features other users of Dojo and their stories. This time, we interview Pete Smith from TimeTrade, a Boston-based company who is the industry leader in online appointment scheduling.
Q: Why did you choose Dojo?
A: I have used the Dojo Toolkit extensively over the last 7 years, and when redesigning our product line at TimeTrade it was an obvious choice. Our products are used by major retailers worldwide, so our applications would need strict license compliance, internationalization, an integrated build system, dojox/mobile, and the Dijit widget library. It’s always about using the best tool for the job at hand. There is a difference between engineering a web page and a web application. A web page designer might use a widget they find as is, configure it a bit and put it in a page. The need for customization is often small, and the designer doesn’t really care about how it works.
For our applications at TimeTrade, we needed complete control over how a particular widget works so we can develop reusable and maintainable components. I was very attracted to the early adoption of AMD and Dojo’s asynchronous loader. A responsive app that works on older android and iOS mobile browsers needs to be lean. The AMD pattern forces the developer to think if she really needs this module, and only require what is needed. I remember the first time I pulled up our app over a 2 bar 4G connection, and it just snapped right in with no perceptible lag. Dojo is more than just a toolkit, it allows us to tap into the best approaches and patterns instead of having to cobble together our own. Dojo’s ecosystem effectively extends our development team by 4 times. We get to focus on how to make TimeTrade’s user experience first class, leveraging the Dojo Toolkit’s foundation.Q: How does your application use Dojo?
A: We have developed four web apps using the Dojo Toolkit. TimeTrade’s online scheduling app uses dojo, dijit, and an extensive custom library built on top of dijit. A modern HTML5 and CSS3 theme was built, considering mobile, tablet, and desktop use cases. Each page is completely dynamic and is populated with data off of our REST api. Each form component leverages the dijit/form framework either extending a core form widget or building a custom one on lower level modules. It’s this mix and match approach that is the most powerful aspect of dijit. You are never locked in to using dijit’s HTML or the way it works if you don’t want to. For example we use a standard HTML5 date picker on touch devices, but use a select-based one on the desktop. Our own custom validation mechanism was built in order to have the messaging be translatable from the server and user interface behaviors consistent across all form widgets. We combined HTML form components from the server side, allowing behaviors that are best suited to stay the client side.
It is so easy to customize subtle behaviors to exactly what we need by overriding or extending a method of a widget. Dijit’s framework also takes into account keyboard accessibility, and allows us to customize the behavior.
Our concierge assistant app works on both tablet and desktop, and is built on dojox/mobile. Here we leveraged many out of the box layout, tab, dojo/store and header components. The dojo/store/JsonRest store was combined with dojo/store/Cache and customized to provide a fast user experience on all tablets, even Android 4 Galaxy tabs. Recently we started using push-based technologies, and the dojo/store foundation of dojo/store/Observable allows us to combine different data feeds all under the same API used by dojox/mobile components.
Another app we have developed uses the dojox/calendar component integrated with our own data. This component alone is an incredible framework for building rich responsive calendars on mobile, tablet or desktop browsers. Dojox/calendar is fully internationalized and localized, something all of our apps must support since we have many international customers.
Our concierge-kiosk app is another dojo/dijit responsive app built for tablets and desktop. Again here we can pick and choose the right component for the job, blending modern HTML5 and CSS3 techniques where applicable. Here dojo/touch really helped us to deliver the best experience on Windows RT and ios7 devices, while still maintaining backwards compatibility for IE8 which our customers still rely on.Q: Whatâ€™s your favorite thing about Dojo?
I have come to rely on the extensiveness of dijit and dojox. If I need a component, it is nearly guaranteed that one has already been built. I don’t have to scour the wild world of plugins, all built to differing APIs and license compliance levels.
The build system lets me use Google Closure Complier to crunch my JS and CSS down to the bare minimum reliably. I need the power to squeeze out every last request, but keeping the layers small, independent and cacheable. Once you really understand that there is no magic “make it fast” button and that you have to control how you want to do it, Dojo’s build profiles give you all the configurability you could ever need.
Dojo responds to bug and enhancement reports immediately. The IRC chat room is filled with helpful folks who will answer even newbie questions. I have also collaborated extensively with a few members on an issue for free, but I have SitePen’s experts to back us up in a tight spot.Q: What are your future plans with Dojo?
A: We will continue to keep TimeTrade’s products right up with the latest Dojo and look forward to migrating to Dojo 2.0. We will continue to innovate and improve all of our apps to have the best user experience on all devices seamlessly with Dojo and it will only get better as the web and our devices improve.Thanks!