Our last blog, advantages of ASP.NET: Web Forms vs. MVC describes overview and major advantages of ASP.NET Web Forms and advantages of using ASP.NET MVC over Web Forms. As we all know everything has some advantages and some disadvantages as well, so in this blog we are going to discuss about disadvantages of ASP.NET Web Forms and MVC.

Disadvantages of ASP.NET Web Forms
ASP.NET Web forms have got many advantages over classic ASP, but having lots of disadvantages as follows:
Undefined Application Architecture with lack of Separation of Concerns (SoC): - When we think about development of a project using ASP.NET Web Forms, there is no predefined architectural approach. Separation of Concerns (SoC) is not defined, as developers can choose their own architecture. Many developers choose code behind approach then it raises issues in complex development life cycle, as it is tightly coupled to UI and code becomes unclear with other issues around.
Complex Pages with Performance issues: - Statefulness through ViewState, Postback and Controls was great solutions for classic ASP, but later they turned out as problems. ViewState stored in the page itself, so page size becomes too large and it reduces overall performance. Developers struggle for the control hierarchy at runtime and number of events make application very complex, as developers have to struggle to implement code at right place.
Lack of abstraction with least control over HTML: - Developers have to use the traditional postback mechanism to achieve the preferred HTML, as web forms hideaway HTTP and HTML that have a spat of the abstraction. Developers have to face difficulties like integration with JQuery and JavaScript, as HTML output with Web Forms is often unclear.
Limited support for testing and SEO: - Code behind and tightly coupled architecture with a number of event handlers makes unit testing all most impossible. Even integration testing becomes difficult and complex task with web forms. Fix ASPX pages with query strings, pointed by URLs are not very friendly for users and search engine optimization.
Lack of Reusability and minimal parallel Development: - Code behind logic makes code reusability very difficult, as lots of conflicts occur if developers use same code behind logic for multiple UI and parallel development is also not possible for the particular section, because applications are tightly coupled.
Disadvantages of ASP.NET MVC
ASP.NET MVC has many advantages over ASP.NET Web Forms and it has only negligible disadvantages as follows:
Full Control over HTML: - Full control over HTML is an advantage for experienced developers, but for naïve developers it is difficult task as they have to manage each web elements manually i.e. HTML, CSS and JavaScript. This problem can be solved using different view engine and more recent JavaScript libraries.
Learning Difficulties: - ASP.NET MVC is difficult to learn, as it requires deep knowledge of MVC pattern. Mechanism of controllers and views is bit complex task to learn and absence of event driven approach without ViewSate makes it more difficult to learn for naïve developers.