I’ve been hearing a lot of questions (both personally and from some online forums like Stack Overflow and ASP.NET Forums) from people trying to understand what ASP.NET MVC is and what are it’s benefits. So here’s my attempt to consolidate answers to many of the questions that I’ve heard.
First, MVC stands for Model-View-Controller. It’s a design pattern that’s been around for quite some time. Martin Fowler has a great article about ‘generic’ MVC here http://martinfowler.com/eaaDev/uiArchs.html. ASP.NET MVC is a recent addition to the ASP.NET framework that provides for an out of the box implementation for ASP.NET web applications of the MVC pattern.
Using ASP.NET MVC, the web application is organized differently than with traditional ASP.NET Web Forms. There is a clear separation of concerns between the data, application logic, and view layers which mean each layer is more loosely coupled from each other. Performance is increased due to less code bloat. There is no view state in ASP.NET MVC and post backs are a thing of the past. Because the view is not at tightly coupled to the application code, generally, this provides for code that more easily testable, better web standards compliance and enhanced SEO support.
Some resources that can help you get started with ASP.NET MVC are:
Rob Conery’s blog: http://blog.wekeroad.com/ Rob also has a great video series where he walks though the creation of the ASP.NET MVC Storefront Starter kit here http://www.asp.net/learn/mvc-videos/#MVCStorefrontStarterKit