ASP.NET Web Forms was designed at a time when abstraction over HTML and JavaScript was perceived as an excellent benefit. This is no longer the case. Therefore, if you see the Web Forms programming model encountering limits in the business scenario you’re facing, look to ASP.NET MVC or a SPA. If achieving what you want is hard with Web Forms, even if it’s doable, you should just move to ASP.NET MVC. Moving this way, with an eye on ASP.NET Core 1.0, you will be well positioned for the future
ASP.NET Web Forms is not a CSS-friendly framework by design, and CSS and responsive pages are a common presence in websites today. You can hardly be creating CSS effects on top of server controls. Likewise, if you just use an ASPX file as a container of plain HTML in a SPA scenario, why not jump to Razor and ASP.NET MVC? Anyway, the major reason for moving away from Web Forms is not strictly technological.
The major challenge in modern software, and the major aspect we’d love to fix in legacy code, is the architecture of information and the back end. As you can see, this has little to do with choosing Web Forms or ASP.NET MVC. Yet Web Forms encourages, even though it doesn’t mandate, using a programming model that is essentially database-driven and often heralds a twotier schema (presentation and data access layers).
The problem I see here is not that a two-tier schema is wrong or inappropriate in principle. It’s that such a schema doesn’t likely let you address the real challenges of modern software. Most of the software we write can still fall under the umbrella of the Create, Read, Updated, Delete (CRUD) paradigm, but it realistically involves a lot more than just implementing CRUD operations.
Web Forms shines at plain CRUD, and most modern applications only look like CRUD. With that said, just because this point is about architecture it doesn’t have much to do with how you arrange the presentation layer and whether you use server controls or plain HTML. Today success in software comes mostly from adhere