Twitter About Home

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.

Published Oct 20, 2010

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.


Editing a variable-length list, Knockout-style

Following my previous blog post about Knockout, a JavaScript UI library that provides a nice structure for building responsive web UIs with a similar programming model to Silverlight, a few people have asked to see an “editable grid”-type example. There’s a read-only paging grid example here, but what about editing and validating?

Published Jul 12, 2010