Site Meter

Monthly Archives: October 2010

Knockout 1.1.0 + new project site launched

Yes, it’s been a while since my last blog post… Partly this is due to other work, and partly it’s because my community efforts lately have increasingly focused on open source projects.

In case you’re new to it, Knockout is a JavaScript library that brings declarative bindings and the Model-View-View Model pattern to your HTML. It makes it easier to build sophisticated, dynamic web UIs in a clean structure that handles complexity, not just an ad-hoc mass of jQuery event handlers and manual DOM manipulations.

Version 1.1.0 is a significant release that adds (compared to 1.05):

  • Various syntax improvements and simplifications (chained assignments, finding model functions automatically, new utility methods requested on the project forum)
  • Support for the newest version of jquery.tmpl template engine (supposedly, this will be be integrated into the core of jQuery 1.5)
  • Smaller download size (via a new minification technique)
  • IE 9 beta support, plus various compatibility fixes for IE 6 in obscure situations
  • Full documentation (link)
  • Whole new project website with easier-to-read live examples

It supports all mainstream browsers (IE 6+, Firefox 2+, Chrome, Safari (Win/Mac/iPhone), Opera). By now it’s been used by many developers in a range of projects, so I’m pretty confident it stands up to real-world situations.

Developers using ASP.NET MVC might want to see an example of integrating it with a KO UI. Knockout isn’t limited to ASP.NET MVC – it’s pure JavaScript, so it supports any server-side framework, such as Ruby on Rails, PHP, and others. Carl Hörberg created an example of using KO with Sinatra (a Ruby web framework) and WebSockets here.

Obviously this blog post has something of a marketing edge to it :) so you’ll want to form your own judgements. But personally I think that if you’re creating any nontrivial dynamic UI on the web, there’s a lot of benefit in structuring it nicely with a clear view model like KO helps you to do.

Check it out

Feedback and questions

If you have questions about how to use Knockout, please post on the project forum, not on this blog. That helps to keep things organised. Thanks!

If you have general comments or feedback (not support requests) then please go ahead and put a comment on this blog post.