To Develop with MVC (Model–View–Controller) or Web Forms?
With the arrival of Visual Studio 2017, it is necessary to re-evaluate the desirability of using MVC for Website development.
The big news in Visual Studio 2017 is the advent of vNext. ASP.NET vNext has been redesigned from the ground up. vNext has a much smaller profile than the previous Frameworks. But vNext is only available with MVC.
All major enhancements in Visual Studio 2017 are related only to MVC – enhancements to the mature Web Forms in this new release are minimal. However, several updates have greatly improved the performance of Web Forms.
The advantages of Web Forms
Web Forms use Drag and Drop for Rapid Application Development (RAD) to create controls. Web Forms are event-driven – as used in Visual Basic desktop applications. The display code is kept in a separate page from the Visual Basic code page. Web Forms store the last known state of a control in a hidden field called ViewState.
- Web Forms are faster to develop than MVC.
- Web Forms can reduce page load times to sub second levels
- There is a huge amount of skill available with Web Form knowledge
- There is a Toolbox with every Control needed for developing applications
- The Grid controls are very powerful
- There are many 3rd Party components available for a sophisticated GUI
- Deployment is easy
- ASP.Net Web Forms, with Visual Basic, provide control over the client from the server side
- There is not much functionality that MVC provides that Web Forms cannot
- ViewState simplifies coding – it can be turned off when not needed
- Web Forms are ideal for Search Engine Optimisation (SEO)
- Unit Testing of ASP.Net pages is difficult
- There is less control over the resulting HTML code
- With the exception of Master Files and CSS, there is little UI code that is reusable
- It is difficult to have parallel development with multiple programmers
These negatives relate to large scale Website development.
The advantages of MVC
ASP.Net MVC enforces separation of concerns. The MVC Paradigm of Model-View-Controller allows the developer to isolate all diverse functionality within an application. This leads to improved scalability.
- MVC gives a developer complete control over the application
- The page life cycle is simpler and more efficient
- There is full control over HTML
- There is support for parallel development
- ASP.Net MVC supports multiple view engines like aspx and Razor
- ASP.Net MVC provides the developer with forms authentication, windows authentication, caching, session and profile state management
- The learning curve is steep
- There is no Event driven programming
- There is no ViewState
- There is no Drag and Drop for Controls
ASP.Net Web Forms is here to stay, despite the latest improvements made by Microsoft to MVC. Web Forms is a far simpler technology for the developer than MVC. Web Forms is a mature and powerful development environment that can handle the requirements of the vast majority of Websites.
MVC is the ideal choice for large scale corporate Website development.