Today, when ASP.NET developers start working on a new web project, they have two options in front of them – ASP.NET web forms or ASP.NET MVC framework. With every passing day, companies are shifting gear from the old ASP.NET framework to the new MVC framework. This is because ASP.NET MVC comes with a lot of features that are extremely popular with developers. Of course, this means that the MVC framework has a higher initial cost to put up with.
MVC is a new design pattern. It is very easy to learn because there are lots of documentation and resources available on Google that can enable a beginner to learn how to code in ASP.NET MVC. When using MVC, we should always keep in mind that it is not a framework that should be used to replace the old ASP.NET framework but instead should be used as an alternative.
What are the problems with ASP.NET?
Complexity – ASP.NET and HTML mark up code are used in a single page. This makes the code very complex.
Tightly coupled – CS page or code-behind file and ASPX page is tightly coupled. This means that we cannot work separately.
View state – the view state mechanism creates a lot of problems for the ASP.NET framework because it takes up a lot of bandwidth. This is because it serializes the form units. Then, they are dispatched via post commands.
Response Time – response time for ASP.NET is more than the MVC framework. This is because, for even single events, it follows the full-page Lifecycle.
What are the benefits of MVC?
Separation of concerns – the MVC framework provides separation of the Business Logic, UI, Data or Model. This is another way of saying that it provides separation of user interface and program logic.
Testability – the MVC framework provides good support towards testing during development of any web application.
Lightweight – since the MVC framework does not use view state it significantly reduces the bandwidth.
All ASP.NET Features – the MVC framework is not a new framework but built on the old ASP.NET framework. This means many of the useful features of the ASP.NET framework such as roles and membership providers can be used.
What are the differences between ASP.NET and ASP.NET MVC?
Development model – ASP.NET uses the event-driven model whereas MVC uses the Model View Controller model.
Html helpers and server controls – ASP.NET uses server controls whereas MVC uses HTML helpers.
View state – ASP.NET supports view State whereas the MVC framework does not.
Route based and file-based URLs – ASP.NET has file based URLs. This means that the file names that have been mentioned in the URL must exist physically. The MVC framework follows a router based URL. This means that the URLs are divided into actions and controllers. It is the controller which is more important than the actual physical file.
Syntax – ASP.NET follows the Web Form Syntax whereas MVC follows customizable syntax.
Logic – in ASP.NET, the views are tightly coupled. In MVC the logic and views are kept separately.
Layouts and Master Pages – for look and feel, ASP.NET uses Master Pages while MVC uses layout.
Code reusability – ASP.NET has user controls whereas MVC has Partial Views.
Open source– ASP.NET is not open source while MVC is free.