Case study: Peopleware

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.

Continue reading Case study: Peopleware

Winter 2014 Dojo Events

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

Meetups

  • Phoenix JavaScript. Dylan Schiemann. March 19, 2014. Phoenix. Free registration required.

Training Workshops

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

Dojo 1.9.2 and more

We have a number of December announcements.

Dojo 1.9.2

Dojo version 1.9.2 is now available for immediate use. The most prominent changes are:

  • Support for IE11
  • Support for W3C Pointer Events API in touch-enabled components (necessary for IE11 support)
  • Fixes for modern Firefox and Chrome
  • Fixes to star-mapping and aliases when using built layers
  • Fixes to sorting Date objects in dojo/store/Memory and other stores that use SimpleQueryEngine
  • Fixes to Dijit pop-up scrolling when using the scrollbar

Full details of the Dojo 1.9.2 release are available on the mailing list. We expect to have backsupported IE11 support available for Dojo 1.8 within a few weeks.

Help wanted: Migrating DOH tests to Intern

As many of you know, Intern is our replacement for DOH for Dojo 2.0. In order to make it easier for us to test and maintain multiple versions of Dojo, we are starting the process of replacing all existing DOH tests with Intern tests in the 1.x codebase. If you would like to get involved, please volunteer to assist in migrating tests. We will post additional instructions shortly on how to get involved.

Dojo training workshops

SitePen is running a December promotion with a free Dojo 101 workshop when registering for any of their Dojo 201 or 202 workshops in 2014. They are also offering both free 101 and 201 to the first person to register for all 3 workshops in each city on their calendar. Read the full details on this Dojo workshop promotion. The full Dojo workshop schedule for 2014 is also available.

The road to Dojo 2

The road to Dojo 2 is underway, and we have a substantial amount of work to complete to achieve our goals. Many early efforts have started towards building the best possible JavaScript toolkit. If you are interested in helping with Dojo 2, we encourage you to get involved by contacting us via the mailing list or on IRC.

Needs More Dojo plugin for JetBrains’ IDEs

The following is a guest post from Christopher Folger, creator of a Dojo plugin for the JetBrains IDE. Thanks Christopher for sharing information about your plugin.

Needs More Dojo is a plugin that provides awareness of Dojo’s AMD system and object model to the IDE. Its main purpose is to simplify the management of the imported modules array (and corresponding function parameters) in a define block.

For example, instead of typing “dijit/layout/ContentPane” and adding a “ContentPane” parameter, Needs More Dojo lets you type “ContentPane” then inserts the correct module path and parameter for you into the existing list of imports. As you are writing code, when you reference an AMD module, you can use a hot-key to import the module instead of adding it manually. It will also flag unused modules with a strike-through and allows you to remove all unused modules at once.

Apart from this, it has several other features:

  • Allows you to organize, remove duplicates, or move items in a module’s list of imports via hot-keys or menu items
  • Highlights mismatches between an imported module and its parameter
  • Scans your sources and updates module references in define blocks when using the move/rename refactoring actions
  • Detects and optionally highlights cyclic dependencies
  • Allows navigation to attach points in modules that use _TemplatedWidget and i18n resource keys when using dojo/i18n!
  • The upcoming release provides support for require blocks in addition to better navigation to modules, methods, and this.inherited references

Needs More Dojo is listed under the JavaScript category of the JetBrains plugin repository, which you can access in the IDE. Alternatively, you can visit the Needs More Dojo plugin directly.

It is open-source and is currently under development. Any feedback or feature requests are always welcome and can be made on GitHub

Autumn 2013 Dojo events

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

Meetups

  • London Ajax. Dylan Schiemann and Kitson Kelly. October 14. London. Free registration required.
  • Desert Code Camp. Dylan Schiemann. November 9. Chandler, AZ. Free registration required.

Training Workshops

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

Case Study: Buildspace

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Ahmad Hazli Hasmi from Buildspace, a Kuala Lumpur-based web based app for the construction industry

BuildSpace Bill Manager

Q: Why did you choose Dojo?

A: When we first started this project, we were battling to find a good JavaScript framework that can help us to develop our product. One of our major hurdles was to develop grid that can behaves like Excel (able to view large data, formula, row linking, display HTML, etc). We’ve gone through quite a number of libraries and toolkits until we decided to go with Dojo. Reasons are simply because Dojo grid comes with good, solid and rich features that we can extend to meet our requirements. The lazy loading is an awesome feature. We able to load and display 100 columns with 4000 over rows in a single grid without any issue on the browser. It is also pretty easy to extend modules and with XHR handlers and Deferreds, we managed to get what we want on our app and it removed a lot of headaches through out development periods. Basically with all the fantastic widgets, we are able to develop a solid application not just in term of the functionality, but also with a great UI.

Q: Were you previously using another toolkit?

A: During R&D, before we officially started to develop Buildspace, we spent a lot of hours finding a suitable library. We have experience with all kinds of libraries and toolkits like ExtJS, Backbone, and jQuery. At the end we decided to use Dojo as our base.

Q: How does your application use Dojo?

A: Our application consists of 2 parts, back-end and front-end. We use PHP for our back-end that basically will do all the heavy duty work (handling requests, calculations, database transactions, authentication). On the front-end, it is 100% Dojo. We write a very minimal HTML layer, where all of our HTML is actually part of the widget templates. There is no HTML rendering from the server-side, it is all done on the client-side and AMD plays a major role here..

Q: Overall what is your experience with Dojo?

A: We all love it! Dojo comes with a solid and extensive features and above all that, it comes with great documentation which really helps us a lot. With our current system architecture, we are now able to split our team into two, front-end and back-end, where the front-end team is purely a group of Dojo ninjas.

Q: What’s your favorite thing about Dojo?

A: Dojo grid is the first reason why we chose Dojo. The features and its extensibility really helped us in developing our application. AMD is another great thing that we love. The modularity and flexibility of AMD helps us to decouple our application so our developers can focus more on their expertise in developing the app.

Q: What are your future plans with Dojo?

A: We are planning to upgrade our current Dojo 1.8.3 to 1.9 and to maintain our code base in sync with the latest version of Dojo as we benefit from its improvements. We are also planning to come out with a mobile version which probably will ride on Dojo Mobile.

BuildSpace Project Breakdown

Thanks!

Thanks Ahmad for telling us about your experience with Dojo. Please also check out the Buildspace demo (username: [email protected] , password: demo123) or review a series of demos and tutorials! If you would like to share your experience, please contact us.

Chrome 29 and Dojo 1.4-1.6

If you’re using Dojo 1.4, 1.5, or 1.6, you’ll need to update to the latest patch to fix a regression with the release of Chrome version 29.

Ticket 17400 has the details on the fix.

You can get the patch from GitHub for your particular version of Dojo, and this fix will be included in the next release for each of Dojo 1.4.x, 1.5.x. and 1.6.x.

If you are already using Dojo 1.7 or newer, this fix already exists within your code base.

Case Study: Halvtone

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Martin Stadler from Halvtone, a Germany-based platform for creating unique art from your photos.

Q: How did you first learn about Dojo?

A: In my previous job at excentos I was working on the single-page app framework and app implementation of their product advisors. They chose Dojo in 0.4 times for its rich and extensible widget system and the liberal license and while the system changed quite a bit during the years, Dojo still proves to be a solid foundation.

Q: Why did you choose Dojo?

Thanks to previous good experiences, Dojo is always a candidate when choosing a toolkit. In this case, everybody involved in front-end development worked with Dojo before so the choice was much easier.

Dojo provides us with most of the features we need for the Halvtone app so we didn’t have to integrate other libraries and manage dependencies. We love how Dojo is 100% AMD so there is a modular and consistent code base, still no build process is needed while developing and debugging in the browser just works as expected.

Q: Were you previously using another toolkit?

A: We have experience with all kinds of libraries and toolkits like jQuery, ExtJS, Backbone, Ember. For Halvtone we decided to use Dojo from the start.

Q: How does your application use Dojo?

A: The website consists of a few static pages and its heart, the Halvtone application.

The user interface of the app consists of custom widgets based on Dijit classes like _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, and _Container. Some Dijits such as Select, CheckBox, and ValidationTextBox are used for the forms. There’s two main widgets – Application and SceneManager – that manage all other components and routing utilizing dojo/router. The data and network layer’s structured is a store manager and a bunch of stores inheriting from dojo/store/JsonRest using dojo/store/Memory. While all animations are done with CSS3 transitions and not much library help, some of the important ones have a JavaScript fallback using Dojo’s animateProperty. The has API helps doing browser and feature sniffing (e.g. browsers without canvas support and very old versions of Firefox are not supported and a fallback message is displayed).

For the static pages the new dijit/_AttachMixin comes in super handy. The template is rendered on the server as part of the page’s HTML and then parsed by the widget when it is ready. This way the widget code is structured as usual leading to a consistent and easy-to-read code base while there’s no flickering when loading the page.

The code is structured into two packages, one for the app and one for the static pages. The build is configured in the same way creating a layer for each while common code goes into the dojo (boot) layer.

We use Dojo 1.9 and plan to upgrade to the latest version frequently (we started with 1.8) as upgrading our relatively small code base is usually easy.

Q: Overall what is your experience with Dojo?

A: Dojo is solid and extensive. Features and components added to Dojo core or Dijit are of high quality and usually follow known best practices or will become best practice by other projects incorporating them soon after. Most things needed for an application are included in equal quality and style.

The situation with application frameworks (MVC, routing, etc) still seems to be a bit weak so we used the existing components to build our own structure.

The loader and build system give us all the flexibility and optimization we can wish for.

Q: What’s your favorite thing about Dojo?

A: Pure modularity and flexibility due to AMD. Saves so much headache in the long run.

Q: What are your future plans with Dojo?

A: We will follow the development of Dojo for this project and will stay up-to-date as long as we benefit from improvements. Depending on business plans we would love to look into moving more into the mobile world, too.



Thanks!

Thanks Martin for telling us about your experience with Dojo. Please also check out Halvtone! If you would like to share your experience, please contact us.