Both MVC and MVVM are architectural patterns. MVC is rooted in Smalltalk. ASP.NET MVC is a Microsoft implementation of the MVC pattern using the ASP.NET framework.
Both patterns relate to separation of concerns. MVC is more concerned with the interaction of various commonly used layers in an application, such as Model (data layer), View (presentation layer) and Controller (business logic layer).
With advanced WPF and Silverlight data binding capabilities, MVVM is more suitable and advertised as the next big thing. Martin Fowler summarized these patterns as presentation patterns in his book Enterprise Application Architecture.
One of the advantages that I see when using ViewModel is that it allows you to better test application code using unit tests. For this reason, I find MVVM, or at least the ViewModel bit, which it uses quite often in ASP.NET MVC applications.
Nilesh gule
source share