ASP.NET MVC is a web development framework from Microsoft that is based on MVC (Model-View-Controller) architectural design pattern. Microsoft has streamlined the development of MVC based applications using ASP.NET MVC framework.
ASP.NET Web Forms uses Page controller pattern approach for rendering layout, whereas ASP.NET MVC uses Front controller approach. In case of Page controller approach, every page has its own controller i.e. code-behind file that processes the request. On the other hand, in ASP.NET MVC, a common controller for all pages processes the requests.
Core features of ASP.NET MVC framework are:
Clear separation of application concerns (Presentation and BUSINESS Logic). It reduces complexity that makes it ideal for large scale applications where multiple teams are working.
It’s an extensible as well as pluggable framework. We can plug components and further customize them easily.
It provides extensive support for URL Routing that helps to make friendly URLs (means friendly for human as well as Search Engines).
It supports for Test Driven Development (TDD) approach. In ASP.NET WebForms, testing support is dependent on Web Server but ASP.NET MVC makes it independent of Web Server, database or any other classes.
Support for existing ASP.NET features like membership and roles, authentication and authorization, provider model and caching etc.