I am always looking for the next best tool, platform, coding pattern, or whatever to make my life easier. As a developer, I am lazy at heart and hate doing unnecessary work. If I have to repeat a computer based task more than once, my brain kicks in and starts thinking about how to automate it with programming. I thank Disney for this part of my personality, as a child I watched a lot of television and one of my favorite cartoons was “Duck Tales”. Scrooge McDuck’s motto was “Work Smarter, Not Harder”. I am 36 now but still after all these years this motto pops into my head every time I have a problem to solve. I think a lot of Microsoft developers share this motto with me. Instead of a plain text editor, we choose to use Visual Studio, which is a fantastic tool that is inline with this motto. During the desktop programming days, technologies like Win Forms embodied this motto by allowing us quickly build apps with drag and drop ease. At the beginning of the web, active server pages (ASP) and then Web Forms made life easier then CGI scripting with lower level languages. After that, Sliverlight and xaml made it easy to build rich client side development when browsers were less capable. And now with the web as the standard for application programming and browsers having better performance and capabilities, Durandal JS is carrying this motto forward in the SPA age.
SPAs are the future
Durandal is not the first project Rob and his team have introduced to Microsoft developers to make our lives easier. If you have ever done any larger scale projects in WPF or Silverlight, you may be familiar with Caliburn.Mirco. This framework assists in the development of xaml based applications by providing implementations for a variety of UI patterns for solving problems. This project has given Rob great insight into solving UI problems, insight which is clearly demonstrated in the Durandal project.
Don’t reinvent the wheel
A major insight at the start of the Durandal project was to not reinvent the wheel and embrace existing well supported and documented libraries. Data binding in Durandal is handled by the Knockout.js library, dynamic loading of javacript files is handled by the Require.js library, and UI/Dom manipulation is handle by the JQuery library. By leveraging these libraries instead of reinventing them, the learning curve for Durandal is significantly lower.
Convention over configuration
When using conventions, it is sometimes difficult to understand what is happening, but this is not the case in Durandal. Durandal has an excellent logging mechanism which helps you clearly identify any problems. Solving common issues like misspelled variable names and modules missing html views is easily visible in the logging output. Durandal’s logging is also available for your own use, you can easily display your own messages inline with Durandals.
Not Just For Web Applications
Call To Action
active Kickstarter campaign. website.
Unfortunately the Kickstarter did not succeed but Rob and his team could still use the donations so if interested you can donate to Durandal directly on his website.