Preface
Knockout is built around a pattern that started in Microsoft. This model is Model-View-ViewModel (MVVM), and I think introducing this pattern to newcomers is one of the biggest obstacles to wider adoption. Nearly every other JavaScript library or framework, along with most server-side frameworks, has been built around the Model-View-Controller (MVC) pattern, and the differences between the two are sometimes confusing, even for experienced developers. This problem is compounded by the fact that some larger frameworks, such as AngularJS, end up with a pattern that is nearly identical to MVVM.
Knockout's documentation is excellent, and its live examples and interactive tutorials are some of the best. When it comes to organizing full applications, though, more explanation is required. When I started writing this book, there was only one book on Knockout on Amazon, and it didn't have very favorable reviews. It seemed like a complete guide to using Knockout as the central piece of a frontend stack was missing.
I have been using Knockout for 3 years now, and I've been an active member of the community on StackOverflow and GitHub for 2 years. I've used Knockout in several professional applications as well as a dozen or so personal projects. It is, by far, my favorite JavaScript library, and I strongly prefer MVVM over MVC for developing client applications. Hopefully, you feel that this book gives you everything you need in order to be successful with Knockout.