I decided to go with KnockoutJS primarily because it is lighter weight than any of the other libraries that I saw out there. Knockout is not a full MVC framework like Angular or Backbone. It is a “Model-View-ViewModel” framework (MVVM for short). For those of us that are used to MVC, there is no controller that binds models to the view, but rather a viewmodel is used for this. My understanding of this is that we would basically create all the parts of the view in the view model. The view model is a data representation of the entire page that is being loaded. The models are basically data representations of the individual parts. The ViewModel consists of each of the different models. Finally the view is basically the markup that is rendered through you ViewModel and Models.