Rob Eiseinberg, the creator of the great MVVM framework Caliburn.Micro, has shown his JavaScript skills and build a Singe Page Application framework called Durandal. A few weeks ago, a 2.0 version of this framework was released introducing a large list of new features and functionality.
What’s new in Durandal 2.0?
- A streamlined core with a plugin model for official and community extensions.
- Now lives side-by-side with other 3rd party scripts
- A new router with no external dependencies. It supports parameterized routes, optional parameters, splats and query strings. The router handles hash change and push state, supports relative child routers, advanced deep linking hooks, convention-based routing, an event model…and more.
- More powerful composition of screens, components and widgets. We’ve ironed out the kinks in composition by making the callback lifecycle more consistent and more granular. As part of the process we fixed bugs and extended it with new capabilities including: automatic activation, binding of activation data, inline views and templated view part overrides. There is no framework I know of on any platform that can do what Durandal’s composition engine can do. None.
- Less “gotchas” throughout. Everything works more intuitively and consistently.
- Two-Way Databinding to PLAIN JS objects. Use the new observable plugin when targeting ES5 browsers and stop having to create Knockout observables. Normal objects just work.
- New Bower and Raw HTML project options.
- VSIX support for VS2012 and 2013
- A Super Kung Fu Mimosa template update, thanks to @dbashford, creator of Mimosa and @CraigCav.
- An official TypeScript definition file.
- More and better docs, including a fully deep-linked API doc, generated from the source.
- Tons of bug fixes, new extensibility points and other improvements.
- And, of course, there’s an upgrade guide for those moving from 1.x to 2.0.
So if you are still looking for a good SPA framework and you like Caliburn.Micro, Durandal would be a good choice for you…