While I\'m reading the book \"ASP.NET MVC 4\" I\'m wondering about MVVM. I started googling and cannot find any books about developing web applications using MVVM, so I must be
MVVM is the standard design pattern for WPF/Silverlight development, and should not be confused with MVC for ASP.Net development.
The two may sound similar and share some common parts, but they are two different design patterns.
From what I learned about knockout.js, it was designed to create "data bindings" similar to what you would use in WPF/Silverlight development, which is why the MVVM design pattern applies there.
To quote from another answer of mine regarding the differences between MVVM and MVC
In MVVM, your code classes (
ViewModels) are your application, while yourViewsare just a pretty user-friendly interface that sits on top of the application code and allows users to interact with it. This means theViewModelshave a huge job, because they are your application, and are responsible for everything from application flow to business logic.With MVC, your
Viewsare your application, while yourControllerhandles application flow. Application logic is typically found inViewModels, which are considered part of the M in MVC (sidenote: the M in MVC cannot be considered the same as the M in MVVM because MVC's M layer contains more functionality than MVVM's M layer). A user is given a screen (View), they interact with it then submit something to theController, and theControllerdecides who does what with the data and returns a new View to the user.