My first .net web app - should I go straight to MVC framework (c.f.

My first .net web app - should I go straight to MVC framework (c.f.

I'm done some WinForms work in C# but now moving to have to develop a web application front end in .NET (C#). I have experience developing web apps in Ruby on Rails (& a little with Java with JSP pages & struts mvc).

Should I jump straight to MVC framework? (as opposed to going That is from the point of view of future direction for Microsoft & as well ease in ramping up from myself.

Or if you like, given my experience to date, what would the pros/cons for me re MVC versus


How to create a reusable Asp.Net Mvc application?


Client Id for Property (ASP.Net MVC)
If you need to work really close to the wire then MVC is a great choice.

How to redirect if javascript is disabled in mvc masterpage
By this I mean, if you need to have very tight controls over markup then; while acheivable with WebForms; it is much easier with MVC.

file upload working in one and not the other help
This would be common for applications that are targeting a public (e.g.

Can classic asp and ASP.NET MVC run side-by-side on the same site?
internet) audience which might have a richer graphical experience.

Setting a default value — presentation logic or business logic?
In contrast, if you're developing an internal (e.g.

Suggestions/Recommendations for a Web Application with Sub-Apps
intranet) business application where graphical presentation is not as critical, then WebForms has a lot of really nice enabling capabilities that will allow you to move more quickly.

Dynamic content in static content
Don't get me wrong, you can make WebForm applications look really really nice, but you give up some control over the markup.. Very often ViewState comes into this kind of discussion.

MVC will not have any ViewState so the on-the-wire footprint will be much smaller which translates to speed and bandwidth cost savings at some point.

On the downside, making stateful applications with MVC can be more painful.

In contrast, WebForms will carry ViewState by default and are inherently more stateful.

This is typically fine for internal applications.

Keep in mind that ViewState does not have to be sent over the wire...

there are extensions that allow you to offload that to a local cache.

I'm not favoring one over the other, but you should be aware of what each can do in this regard.

. If unit testing is important to you then MVC is also a much better choice, as this is easier as well.

This is totally acheivable in WebForms but requires you pattern your code behind correctly.

. Security is not a major factor since much of setting up the IPrinciple and IIdentity occure in the HTTP pipeline via HttpModules, so either will do in that regard.

. Another major factor in making your choice relates to your skills relative to the time you have to deliver...

If you're not used to working in a stateless manner or coding standard web technologies (e.g.

html, css, jquery, etc...) MVC will take you longer to do very basic things.

With that said, once in place it will likely be cleaner, smaller, more testable, and faster.

If you need to move very quickly there is a lot you can do faster in WebForms.

WebForms also does a lot of heavy lifting with respect to markup so there are a number of details you can leave to ASP.NET.. I actually use both for a variety of reasons, and MS has stated they plan to continue support and development for both.



Have look here it will help you Choosing the Right Programming Model.


MVC is part of ASP.NET.

You must mean MVC vs Webform to which the answer would be: coming from a Winform background, you will find webform easier to use.

For the future, go MVC..


I used to work on desktop applications too, and never really got into web stuff.

I didnt even (gasp!) knew HTML (yeah, that was my programmers shame).

In my new job we were going to start a new application using ASP.NET MVC and I gotta tell you, I love it.

HOWEVER I think you should only go with MVC if you are or you count with someone with good html/css design skills.. Html is easy I know (I've learned it know!) but I think its kind of hard to make nice designs with html and css, specially if you suck at designing and you could probably do prettier stuff using webforms, which is a little bit easier/similar to winforms.

. Also, if you go the MVC way make sure you have enough time to learn it, since you are going to go a little bit more low level, gonna have to learn more of the little details, like the actual difference between post/get and all that stuff that is pretty much completely hidden in webforms.

I would really recommend getting a book, I used this one Pro MVC and really liked it.. Finally, if your page is gonna have interactive bits, or ajax-y things, if you go the MVC way you are more likely gonna have to learn javascript/jQuery too.

If you go the webforms you can use the included drag'n drop ajax controls..


Coming from Ruby on Rails or other MVC based frameworks ASP.NET MVC is almost the best choice.

(ASP.NET MVC is actually only the "VC" part, so you have to add an ORM of your choice.

EF and Linq to Sql is the Microsoft way, NHibernate or other ORM's are the other way.

One good quick start project is S#arp Architecture which uses NHibernate as the "M" part, or you can check out WHCM, which is a project built on S#arp Architecture and other good frameworks (it is considered an ASP.NET MVC best-practices demo project) ).

ASP.NET MVC uses almost nothing from the WebForms package (the only exception I found is the AntiForgeryToken), so you'll loose nothing if you're unfamiliar with ASP.NET WebForms.. But as you said you have also made console applications, which ASP.NET WebForms resemble more.. If your project is new, I advise you to use ASP.NET MVC.

If your project clearly separates the M-V-C part (like in S#arp Architecture, where they reside in different assemblies), creating a console application that uses the same business logic shouldn't be too hard.

If your current project is to port a WinForms application to the web, then it might be easier to use WebForms..


I should get familiar with the language before using "fancy" stuff like MVC, because it's just way easier to learn when you could almost think in the language (but it's not necessary)..


Horses for courses.

If you're slapping together a quick app for someone, web forms is probably quicker and easier.

. If you're building a long running enterprise app MVC gives you better testability a SoC..

98 out of 100 based on 78 user ratings 1328 reviews