ASP.NET MVC is a completely different framework from ASP.NET Web Forms and both Frameworks have their own features and drawbacks. When we need fast development, we can normally use ASP.NET Web Forms, whereas for Large Scale Enterprise Applications we should always use ASP.NET MVC.
I just want to let you know that Web Forms-based Web Applications are not SEO Friendly, but MVC-based Web Applications URLs are SEO Friendly.
Similarly, the size of web forms based web applications is much larger than that of MVC based web applications, hence the performance of MVC based web applications are much better than that of web forms based web applications.
A new feature named Routing has been added to ASP.NET 4 to create User-Friendly URLs for ASP.NET MVC.
We can also use this feature to generate User-Friendly URLs for our ASP.NET Web Forms-based web applications.
ASP.NET MVC is a .NET Framework-based Web Application Development Model by Microsoft, under which all Business Rules and Business Codes related to our Web Application are defined as Models, which actually represent the Backend Database.
While there are HTML / CSS based webpages in the form of View, which serve to render Backend data and other content to the user. Similarly, Controller performs controlling of our entire ASP.NET application. That is, the Controller Part determines which model will be retrieved from which model and which type of View Generate.
The ASP.NET MVC pattern is a programming model in which the various Web Forms, Web Controls, View State, Postbacks, and Session State Concepts developed for the ASP.NET Web Forms Model become completely unusable.
That is, if we develop an MVC pattern based web application, then we do not need to know about these concepts. Whereas if we learn how to use ASP.NET Web Forms, then we do not need to know about the MVC pattern. That is, both Web Forms and MVC Pattern are two different types of Web Application Development Models, using one of which does not require to know about the other.
However, if we need any of the following features in our application, it is better for us to use ASP.NET MVC than to use ASP.NET Web Forms:
Test-driven development
In Web Applications based on ASP.NET MVC pattern, all parts of our application are completely separated from each other, so we can create various Units of our application by testing, which is based on ASP.NET Web Forms Web This is not possible with applications because its various components bind closely to each other.
Control over HTML Markup
When we create a Web Application based ASP.NET Web Forms, our Webpages are completely generated dynamically by the Web Server. Therefore, we do not have any special control over HTML Codes of Webpages just as we generate for our application. Because Web Server has been dynamically modifying HTML Codes according to Web Browser Capabilities as per requirement. Whereas we have complete control over the View Part of ASP.NET MVC based web application and we can get our content rendered in whatever way we want despite being dynamically generated.
That is, when we use ASP.NET MVC, we have complete control over every part of our web application and this control proves to be very useful when we want to write Client-Side JavaScript Codes of our web application manually. Or want to use a JavaScript framework like jQuery in your web application in a proper way, which is not possible in the Perfect way in ASP.NET Web Forms Application.