Posted by Rob Eisenberg
Friday, August 16, 2013
What’s new in Durandal 2.0?
So many awesome things. Here’s a few highlights:
- 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.
We’ve had many early adopters working with 2.0, providing us with excellent feedback and helping us to make it an awesome release. Thank you to all of you! We’d like to call out the MapsJS team who have done something absolutely fantastic. Here’s what they had to say:
“The MapsJS project team has been successfully using Durandal for its single page app-dev. MapsJS is a free HTML5 map control for building complex cross-platform geospatial applications. Many of our larger customer projects required an SPA framework to minimize dev time and keep the projects well organized. We liked using Durandal so much that we decided to add support for it in our latest release. Today we’re making a MapsJS + Durandal starter project available on GitHub.”
– Brian Hearn, MapsJS Lead Architect
The MapsJS team has done fantastic work and was eager to share it with the Durandal community. If you do any sort of mapping, you owe it to yourself to check out the demo app and fork the code. Also, check out the new gallery for some other fun projects, including an excellent RSS reader, SilverReader.
Since the launch of Durandal 1.x only a few short months ago, we’ve heard so many amazing stories from developers putting apps into production, and in record time. Durandal now has apps deployed by members of the community across every major platform. I’m not just talking about the web browser here, but about phone, tablet and desktop as well. With the 2.0 release, we’re opening up even more opportunities by providing the simplest and most powerful SPA framework to date. And this is really just the beginning. There’s a long and rich future planned for Durandal. We hope you’ll be a part of it.
Now, about this thing called Weyland…what is that?
Weyland is Durandal’s NodeJS-based, cross-platform command line tool. This first release of Weyland is focused on providing build support for Durandal applications. It allows you to lint and minify your application source, as well as create an optimized build for deploy. Weyland has a simple task-based configuration DSL that makes it easy to set up the most common Durandal build configurations, while giving you access to all the underlying power of the supported tools. Weyland also specifically understands Durandal projects and uses its smarts to ease the process of using RequireJS for optimization. Our Nuget and HTML StarterKit as well as our VSIX all come with a weyland-config file ready to build your app.
This is a 1.0 release, focused not only on replacing our previous Windows-only optimizer with a cross-platform tool, but also on adding better support for multi-file build outputs, needed by large modularized apps. Of course, adding linting and better minifcation support is also nice. You are going to want to keep an eye on Weyland, even if you aren’t ready to use it yet. We’ve got some pretty amazing things planned for it.
Wow! Cross-platform Apps. Yes Please! But, how?
Durandal isn’t just some side project. It’s a major investment for my company. As part of this we provide both commercial support and consulting services. You aren’t on your own building Durandal apps. We can be the safety net for your team through one of our support options or by providing expert consulting at any point in your application’s lifecycle. We’ve also partnered with @The_UI_Guy to offer extensive UX/Usability analysis, interface design, interactive prototyping, app branding and more. Whether you just need a 4 hour code review or a full app design and build-out, we can do it.
I hope you can tell that we’re excited about Durandal 2.0 and our new Weyland tooling. I’ve said it before, but I’ll say it again: We are just getting started. There is so much more goodness coming. In the next months you are going to start seeing more training on Pluralsight and other places as well as official, regularly scheduled web casts and official training materials. Keep a look out and happy coding!