Recently, I have had a few inquiries about my (earlier) posts on the topic of ASP.NET MVC. I guess they may have seemed mostly negative. Perhaps the positive statements were not so easy to pick-out.
I would like to set the record straight: I firmly believe that any technology has a right place and a wrong place. It is important to recognize both of those conditions, for any technology that you may use. There is also a fair amount of gray area between those two conditions. In other words: your mileage may vary. Caveat emptor. Etc.
So let me start with the conditions under which ASP.NET MVC is the right answer
- Your staff has a lot of experience with MVC and you prefer it to other options.
- You are making a large or huge project.
- Your project will have several delivery platforms: Web, Phone, Tablet. Many/most of the screens will be available on more-than-one platform.
- You have enough experience to successfully run your project using a waterfall process (or equiv strongly structured process).
- You are doing a lot of automated testing
Each of these reasons (above) can be a really good reason for using MVC (ASP.NET MVC or otherwise). Although only #1 is a lock. Honestly, if your staff has strong preferences to any technology and the experience to match, then it is a good economic reason to stick with that technology. That is, unless that technology is the wrong one for the job.
Conditions under-which ASP.NET MVC is the wrong answer
- Your staff does not have experience with MVC and you are undertaking a project with
a. a demanding timeline
b. little or no requirements
As you can see, this is not an exhaustive list. Mostly, it is a list of conditions under-which picking MVC will generally be a bad idea and will get in the way of you completing your goal. Beyond this list, there may be other reasons that may or may-not be relevant, depending on your situation.
If you don’t fit under either of these lists, then go ahead and pick either one. If your conditions are the opposite of any of these items, then I would tend to lean away from that choice. I know it seems pretty obvious, but sometimes, some people try really hard to overlook the obvious.