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 yourViews
are just a pretty user-friendly interface that sits on top of the application code and allows users to interact with it. This means theViewModels
have a huge job, because they are your application, and are responsible for everything from application flow to business logic.With MVC, your
Views
are your application, while yourController
handles 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 theController
decides who does what with the data and returns a new View to the user.