Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'd like to know what motivated you to learn ASP.NET MVC, and what have you done with it.

... was it a particular feature?
... do you have plenty of spare time?
... did your job require you to learn it or evaluate it?

... are you going to continue learning it?
... if you stopped implementing a MVC application mid-stream, what caused you to stop?

share|improve this question

closed as primarily opinion-based by Jim G., Eric King, MichaelT, gnat, Ozz Sep 26 '13 at 8:55

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

7 Answers 7

up vote 10 down vote accepted

A number of things failed to motivate me to learn ASP.NET MVC. I loved the idea of having decent HTML without grotesque id-mangling on runat=server controls, but not enough to switch platforms. I wasn't particularly moved by testability. "Clean separation of concerns" always made me think "meh, you can build a good or bad design on any platform."

But then this blog post by Rob Conery finally got my attention.

"WebForms is a lie. It’s abstraction wrapped in deception covered in lie sauce presented on a plate full of diversion and sleight of hand .. The web is not stateful and works with this stuff called HTML sent across wires using another thing called HTTP"

Now that got my attention. I'd been working with ASP.NET WebForms for several years, there were things I liked and things I didn't, but that reason to learn MVC really spoke to me, because WebForms statefulness is a lie, and it did trouble me. That was enough to send me to watching some Tekpub videos and reading some tutorials and books.

I haven't had a chance to use MVC on a commercial project yet, but I'm pushing to do so on a small project soon at work.

One thing that I've noticed recently, while sitting in on several interviews for developers, is how many applicants have MVC experience on their résumés - some of them having worked with it, some of them having evaluated it at their work, and some just from personal experimentation. I've been asking them "what's the #1 thing which you find attractive about ASP.NET MVC?" and for what it's worth, the answer that is winning so far is "complete control over the HTML output. "

share|improve this answer
1  
That's a good blog post, and it does sum up the reasons better than any other article I've seen. –  Robert Harvey Nov 9 '10 at 4:48

Listening to the old podcasts between Joel Spolsky and Jeff Atwood when they started working on Stack Overflow is what really got me interested in learning it and then seeing the success of Stack Overflow as it moved though the private and public beta process is what managed to push me over the top to really developing the time needed to learn it.

In my case, I managed to get lucky and was able to use it develop a new internal LIMS with it so the learning curve was built into the start of the project and I was able to do some studying at work while the initial requirements where still being ironed out. At this point I must say that I like the framework and the design pattern when it comes to web applications so odds are the next project I take on I would also want to be using it or the same design pattern on a different stack.

share|improve this answer

I started learning MVC because my company does a lot of work in CakePHP. Some clients, however, prefer to have a more "enterprise" solution. In the strictest sense, my job didn't require me to learn or evaluate it, but I had a small project which was a perfect fit for evaluating it.

I enjoyed this project, because a lot of the design patterns from CakePHP helped pick up ASP.NET MVC quite quickly. Using Fluent NHibernate autoconfig with the project also allowed me to rapidly create database schemas compatible with cake's "convention over configuration" pattern in case completing the project in MVC turned out to be untenable.

Coming from another MVC framework, ASP.NET MVC is very nice, and I hope to have more opportunities to use it.

share|improve this answer
    
Interesting answer! "Similar design to another platform" isn't one I'd consider, but is surely true, given how little Webforms resembles anything else I've come across. –  Carson63000 Apr 2 '11 at 6:34

I'll add my answer since it seems to be a different flavor than the others. I wanted to write a web site that would be functional from a mobile phone (iPhone, Droid, etc.). I knew that I could beat ASP.NET into submission and get it to generate the HTML I wanted so it looked good. But I figured that ASP.NET MVC was designed to give the developer exacting control over the HTML, and that is what I needed to make my mobile phone webapp really good.

That is what initially caused me to learn it. Once I had my feet wet, it became my preferred framework for small and medium sized web applications. It is only for really large, complex, multi-developer, multi-layer applications where I'd still consider ASP.NET classic, if I was starting from scratch (and if all of the devs knew both platforms).

share|improve this answer

I like that fact that the presentation layer (HTML, CSS, JS) can be created the way it was designed and not with WebForms fudges. I also like that it encourages separation of concerns.

Have used it for a number of projects including my web site and enterprise projects like this software.

share|improve this answer

My short answer: between ASP.NET and ASP.NET MVC, I felt like I could create a much more object oriented solution in ASP.NET MVC.

share|improve this answer

TDD is the answer.

Unit tests in asp.net MVC is much easier than in Web Forms

share|improve this answer

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