Almost everyone looks for a compelling reason to change, but in fact this question aren't answer easily. There are several reasons for this:
- It depends on the project.
- Even though the industry are moving towards MVC, Web Forms are still actively developed, and will continue to be.
- Most things you can do in MVC, you can also do in Web Forms.
ASP.NET Web Forms has been around from the start of ASP.NET, it has a very similar structure to ordinary Windows programming with events, but are also very different, specifically with the ASP.NET Page Life Cycle. Because of this it can be relatively hard to unit test, there is a lot of classes involved which can't be mocked easily. Even though there are several ways to make this easier, such as the MVVM and MVP pattern, it all depends on the code structure. A well formed Web Forms page can be just as easy as to maintain as a MVC page.
ASP.NET MVC is a relatively new addition to the .NET framework, but has been around for a long time. MVC stands for Model-View-Controller and works quietly different than Web Forms. It has an totally different structure, but it encourages the developer to use a cleaner separation of concerns.
It depends on the project
Choosing between all different alternatives can be very difficult, as most of it depends on the project. For example if you have a existing site in Web Forms, you create a new site or you site it mostly data driven. All of the technologies can be used in all of the situations, they all have they pros and cons. If the site is mainly data driven, such as an interface to a database, Dynamic Data could be an option. If it is a site that enables a lot of data editing, but also functions a "regular" website, I would personally prefer Web Forms. If you would like strict control over the HTML I would prefer MVC. It all depends.
Web Forms is not dead
Because of all the buzz around MVC, a lot of people starts to think "Is Web Forms dead?", and the answer is "Certinaly not". Web Forms are actively develop, and has and will get a lot of new features which only are available in MVC at the moment. The next version of ASP.NET will among others get:
- Much better data binding, and customization of the data model, same way as in MVC.
- JS and CSS combination and minification.
- Better support for asynchronous operations.
The conclusion is that there are now conclusion, it all depends on your project and the requirements. It should be noted that it is possible to use both Web Forms, MVC and Dynamic Data in a single web project, if you start with a Web Forms project it requires some modification to the project file, and manual creation of the folder structure, but when this is done, very things works, and you can mix as required. This is very powerful if you aren't allowed or don't have time to convert the whole web site to MVC. If you start with a MVC project, no modification are necessary, you can just start adding Web Forms pages. Personally I use a Web Forms and MVC hybrid website, and it works like a charm. If your Web Forms site works, are maintainable and you know what your doing, I see no reason to change if unless necessary for some reason. There is a learning curve to MVC, it requires a totally different mindset, but if strict control is necessary, I would say "Take a look at it!".
ASP.NET Web Pages are more hobbyist, easy website creation, but leans more towards MVC than Web Forms.
Hopes this post helps anyone to decide what to do, feel free to leave a comment, question or whatever and I'll try to answer.