In my ASP.NET Web Forms / AJAX posts, I have repeatedly warned of the overhead that comes with ASP.NET postbacks and partial-postbacks. I’m talking about the very convenient but bandwidth-unfriendly mechanism for maintaining control and page state that comes free with ASP.NET Web Forms called ViewState. This is particularly noticeable when you use complex third-party controls (any developer who has used a Telerik data grid control will know what I mean) which can bloat your request and response data to ridiculous proportions because of the amount of state that is having to be maintained between browser and server.
I have seen a commercial web page developed by a contractor which was posting up to 1MB of data per request for simple user interactions with a grid control. I don’t care which way you look at it, this is just plain amateurish especially when the contractor was probably earning up to £400 per day. Page responses are slow, it eats up network bandwidth and results in a poor user experience (UX). But most importantly, ViewState breaks the stateless design of HTML over HTTP. It was simply never meant to be this way.
So I was relieved when I first starting reading about ASP.NET MVC to learn that ViewState had been dropped completely. This was one of the best design decisions made by Microsoft to rescue ASP.NET from the ashes and make it a worthy alternative to Ruby on Rails which has been promoting MVC architecture for some time. So now when you request an ASP.NET MVC page (view) and look at the page source in your browser, you will notice that it doesn’t contain kilobytes of encoded viewstate data – it just contains something rather unusual… pure, simple HTML (the novelty still hasn’t worn off).
This means your ASP.NET MVC pages are incredibly lightweight and your request and response times are much faster. It is rather ironic that at a time when most people’s homes have fast broadband, we are finally moving to a stream-lined Microsoft web technology but who’s complaining. If true separation of concerns and unit testability haven’t convinced you yet, and you need one more compelling reason to migrate your existing ASP.NET Web Form pages to MVC, then this is it.