That’s the main fact about ASP.NET MVC:
“ASP.NET MVC brings the web back inside web development”
[from a tweet by Hadi Hariri]
With ASP.NET MVC the “real” web is back into the development workflow of a web application. And to me this translates in having more fun developing apps, and, at the end of the day, being more productive since I don’t have to work-around issues of a framework that takes too much of my work.
It’s true: some might say that ASP.NET MVC is “half-backed” or without a strong opinion about how the M should be implemented, and that there is a lot of infrastructural code to write. But to me, being able to granularly control my HTML, the way I persist the state of the application is a much bigger point in favor of ASP.NET MVC.
Jeffery Palermo wrote a post saying that you should NOT use ASP.NET if you don’t know about object-orientation, you are not willing to build on top of the framework, if you are adverse to open-source and if you rely on 3rd party controls vendors.
I add: you should NOT use ASP.NET MVC if you are not willing to gets your hands dirty with the basic languages of web: HTML, CSS, JavaScript.
There is an ongoing discussion on why web developers use PHP/RoR instead of ASP.NET: my personal opinion is that this happens because ASP.NET WebForms hides the web from the developer, and web developers want to “play” with the web. With ASP.NET MVC, if marketed correctly by Microsoft, this situation might improve.