Jonathan
Jonathan

Reputation: 32888

What is ASP.NET MVC not good for?

I'm a big fan of what ASP.NET MVC is doing, on many levels.

I'm about to take part in re-build of a very highly trafficked website, and I'm not which framework would be best (if any).

The site will need the following:

As far as I can tell, there's no reason not to use ASP.NET MVC for this.

But are there potential drawbacks to using MVC that I haven't considered?

I don't want to be the guy who picks a technology because it's cool but finds later down the track that it isn't very suitable for the job.

Upvotes: 8

Views: 4168

Answers (5)

juan
juan

Reputation: 11

There are better ways of implementing MVC without using asp.net MVC. I have done it in the past, even before asp.net MVC came live. MVC is a pattern, not a technology, I do not understand why some people call it a Technology. You can separate all concerns by removing the code-behind from webforms and create your own controllers and routers and you will still have the advantage of the webform controls, etc to which most asp.net developers are used to use. asp.net mvc is nice for people whom do not really have the time to properly create an MVC app in a webforms environment and also to those whom do not have the time to architect a better solution. in conlcusion, asp.net mvc is good but there is a much better way of doing it and finally, MVC is NOT a technology.

Upvotes: 0

Alex Ilyin
Alex Ilyin

Reputation: 1304

I do not like ASP.NET MVC because of following reasons:

1. Ugly routing API, there http://ayende.com/Blog/archive/2008/11/05/a-case-study-of-bad-api-design-asp.net-mvc-routing.aspx is description of what is wrong. By the way, friendly urls can be easily implemented without mvc http://demo.liveui.net/bugtracker/Tasks/7

2. Poor object model. It is proved that good software should consist of reusable components. There is nothing that can be reused in ASP.NET MVC based web site. For example, if you implemented smart drop down list once it will be difficult to use it again (even on the same web site).

3. Lack of controls. Some features (like TreeView or Menu) are already implemented as Controls and it would be waste of time to reimplement them using mvc.

If I were you I would try to find some CMS and customize it for WebSite needs.

To responses: YES. I know about ASP.NET controls disadvantages, but the question is about ASP.NET MVC. One can write a book about what is good and what is bad in ASP.NET but I do not think it is appropriate to discuss it here.

Upvotes: 0

Vivek
Vivek

Reputation: 440

My two cents:

ASP.NET MVC is a great option but there is a little learning curve involved, so make sure your project plan/timeline has this handled. There might be developers on your team who might not be comfortable working with ASP.NET MVC, and this can cause possible delays (a lot of developers are still working in ASP.NET 1.1!).

@Alex: Lack of controls. Some features (like TreeView or Menu) are already implemented as Controls and it would be waste of time to reimplement them using mvc.

IMO the idea of using controls in ASP.NET MVC doesnt make much sense. You can create a treeview control using jQuery easily. Classic ASP.NET server controls carried a lot of baggage (viewstate etc) and hence ASP.NET MVC did not use any of those controls (though you can use helpers).

Finally, ASP.NET MVC is an alternative, not a replacement to Web Forms. I would not use ASP.NET MVC as it is still evolving, and my team is not very comfortable with it, but I guess slowly more and more programmers would shift to this (better) option.

Upvotes: 3

Dave Markle
Dave Markle

Reputation: 97791

You're good to go with MVC given what you've said about your project.

As far as I'm concerned, ASP.NET MVC is really only NOT good for situations where you have a large codebase in WebForms (meaning you have a lot of ASP.NET user controls, custom controls, etc). It's also not good if you are going to have people working on it who don't know what it's all about. Other than that, it's a pretty nice technology.

Upvotes: 6

Kredns
Kredns

Reputation: 37221

ASP.NET MVC is not good when all your doing is making a website that needs server-side code (but that's also true about ASP.NET also).

In your case I think MVC would be a great way to go. MVC has proven itself on high traffic websites (e.g. this one). However you must remember that MVC is new and changing. A library may not exists to do a specific task which means you'll have to write that code yourself.

Good luck on your rebuild!

Upvotes: 11

Related Questions