5

Do you know any scenario where asp.net mvc can outperform asp.net? Because while comparing these two, people always say that each of them are different beasts and may be a better choice depending upon the scenario.

4
  • 2
    Define "outperform" please?
    – user8685
    Commented Jan 12, 2011 at 9:37
  • @Developer Art I am not going to define. Keeping it for others. :P
    – Gulshan
    Commented Jan 12, 2011 at 9:49
  • 5
    In my experience, ASP.NET MVC almost always returns a page faster than ASP.NET webforms. I assume that is because there is less overhead in the page model. Commented Jan 12, 2011 at 15:50
  • I'd agree with Robert Harvey that MVC would typically out-perform web-forms in most situations because it is far less abstracted than web-forms and hence will have less overhead.
    – Dan Diplo
    Commented Jan 13, 2011 at 10:07

4 Answers 4

7

I think if you are talking performance like efficiency of HTML generated, speed the page is returned, etc., it doesn't matter which framework you choose. It matters which developers are on the project. You can make a speedy website with either framework, and you can make a horrifically slow website with either framework.

That said, I believe MVC makes you a little more aware of the content you are generating, and the tasks you are performing on the server, and this awareness might make the developers more likely to pay attention to performance, thus resulting in a faster site. But this is a side effect.

7

I have seen many aps.net web forms suffer from Viewstate bloat which severely affects performance. Using MVC take the problem of Viewstate away which will increase performance - however both web forms and MVC suffer when bad designs or developers are at the helm.

3

ASP.Net MVC is ASP.Net - they're the same thing. MVC is one set of handlers, WebForms is another or you could even write your own.

In terms of raw performance they'll be exactly the same, deep down ASP.Net is doing the same actions regardless of the handler.

However, in general MVC apps tend to be much quicker. This is because WebForms abstracts away the underlying HTTP model - developers are thinking in terms of components and their events, rather than in terms of HTTP request and response. It hides parts of the web model that are inconvenient, for instance the lack of actual state model is hidden by WebForms having a massive ViewState object that's sent back and forth with each request.

However all that keeps WebForms apps easy. Desktop developers can build a page, drag in buttons and controls, subscribe their click events and so on using the UI.

MVC deals much more directly with the HTTP pattern, so developers deal in links launching URL actions (which is what the web does), rather than components firing events (which is an abstraction hooked up as the response is processed). You're far less likely to have large hidden form variables and huge scripts added to the page by components, but they also tend (at least at first) to be more work.

So MVC apps are more simple. IMHO that generally means quicker and much more maintainable, but it also means more of a barrier to getting started, especially for desktop devs. They need to understand the request/response model pretty well, there's no decent WYSIWYG UI and they'll spend as much time in Javascript as they do in C#/VB.Net.

All that said nothing matters as much as how good your devs are.

0

I would say that a site that has a lot of dynamic content based on displaying/editing database content (like StackExchange apps and blogs, etc.) will be a good choice to use MVC, while more advanced applications, where you don't have a simple template for how things will look, but has many buttons that will cause anything strange to happen... well morle like a desktop application than a web site, you will rather use asp.net

3
  • 1
    StankExchange? Is that a misspelling or an opinion? :) Commented Jan 12, 2011 at 17:25
  • It was a bad misspelling! I am big fan of StackExchange. It is fixed now.
    – awe
    Commented Jan 13, 2011 at 8:50
  • 1
    I dunno about the "many buttons" argument. Web applications can be done with ASP.NET MVC as well, both will rely on client side coding (with javascript frameworks such as JQuery).
    – Spoike
    Commented Jan 13, 2011 at 9:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.