views:

460

answers:

5

Hello,

I was about to ask this question...but since it has already asked I will ask a different one.

I have never created a production website and I am thinking it is time for me to learn how. (I have simple one I can do for a customer.)

I personally LOVE the Convention Over Configuration paradigm at the heart of MVC (and I personally hope that Microsoft moves in that direction in a lot of other areas).

My question is this...

If I learn and work toward mastering ASP.NET MVC will I be able to build ANY website? I ask because the microsoft jargon implies that it is not a good fit for every project. Should I be concerned about the lack of tooling support? Specifically can you use 3rd party web controls with MVC (like telerik stuff) and if not, does it matter?

Seth

+1  A: 

A RoR fan website perhaps ;) ?

Seriously though, most 3rd party controls only support webforms, so that might be a reason not to.

UpTheCreek
+10  A: 

The answer is no. Ideally with ASP.NET MVC you can build ALL the site/application that you want. In the end it generates HTML+Javascript so it's quite simple.

The question should be, there are application that not suite well with ASP.NET MVC. And the answer is "it depends".

With ASP.NET MVC you don't have all the "ready-to-use" controls like telerik, components arts, but you have fine access to the generated HTML so it quite simple to generate a grid.

There is an article that describe the differences between WebForms and MVC, you can read it here: http://msdn.microsoft.com/en-us/magazine/dd942833.aspx

HTH

ema
FANTASTIC article.Seth
Seth Spearman
Once again: Telerik explicitly supports MVC.
Craig Stuntz
+4  A: 

Since MVC gives you full control over your HTML, it therefore follows that you can build any web site using MVC. Web sites, after all, are just HTML.

Third-party controls are a slightly different story, though. Telerik supports MVC to some degree, and says they're working on fuller support, so you can probably make their controls work, although perhaps not quite so easily as in Web Forms. Many other third-party ASP.NET controls are so completely dependent upon view state and postbacks that they won't work at all. My own experience is that it's often more convenient to use non-ASP.NET controls, such as jQuery UI. On the other hand, even when a control is designed for ASP.NET non-MVC, it can sometimes be made to work in MVC. The question is, is it worth the effort? Usually, only if there is not a better, free, alternative, which there often is.

I wouldn't worry too much about the lack of RAD-style tooling. When working in the MVC style, you will be far more concerned with the specific HTML you are admitting than the ability to drag a grid onto a page. It's a different way of working.

To the extent that your question means, "Is ASP.NET MVC the best way to create any web site?" The answer is no. There is no single best way to create any web site. On the other hand, there are sites which you cannot create using non-MVC ASP.NET (just about anything where fine-grained control over the emitted HTML is a strict requirement), and MVC does not have that limitation.

Craig Stuntz
+1  A: 

I think you need to read up more on the differences between MVC and Webforms.

You should not "master" MVC, you should learn about both MVC and Webforms (strengths and weaknesses), then choose which Framework best suites each project.

There is no "Catch-All" framework.

Martin
A: 

Basically WebForms give you less control, more overhead and rapid development time while ASP.Net MVC gives you more control, less overhead and takes more time to develop.

So if you have a quick intranet type web application you most likely want to use WebForms and if you have a full featured public facing website you will most likely want to use MVC.

Allensb