I recently picked up MVC 3 for work reasons. I have to say, I'm very impressed. Microsoft really went out of their way to really win my heart again. Here's a back drop:
When MVC was released, it was awful. It was their response to Ruby on Rails, and boy did it suck. It was slow, it didn't work with IIS6 (well, it would but you had to do some magic work arounds to get routing to work).
MVC 2 was released and it was a significant improvement over MVC 1. I didn't get the chance to play with MVC 2, since I started with this new job MVC 3 is where we're going.
MVC, for the uninitiated stands for Model-View-Controller. It's a pattern for software design, and unlike 3-tier designs, MVC goes out of its way to enforce abstraction.
For those of us who developed in Web Forms, we all know how ugly and painful it is. Web Forms didn't enforce abstraction and decoupling of layers. Web Forms also hacked into the actual request/response. Want to do AJAX on Web Forms? You can but even ASP.NET AJAX was a hack, it simply replaced the __doPostback() event in the client generated HTML with a callback.
Web Forms are also heavy. The view state alone can suck up kilobytes of bandwidth. It also didn't play well with jQuery. For one of my projects, I remember building an app that used jQuery and I had to use ASHX handlers to generate barebones (i.e., bare metal) Http Requests. Web Forms is heavy and it sucked, but it was great for rapid prototyping.
MVC solved all that by not trying to be a Winforms for the web, which is what web forms did. Rather, the requests are smaller, it's now RESTful and, best yet, the URL's are nice and neat.
what else does MVC Solve? Well, MSFT really integrated DDD (Domain Driven Design/Development). Along with NuGet, there's been a heavy emphasis on the use of Dependency Injection using either Unity or Ninject (I prefer Ninject). They now bundle jQuery and Modernizr with every MVC 3 project. MVC 3 won my heart again, but what really woo'ed me was Code First Entity Framework. It allowed you to create your database tables by creating your domain models.
Anyways, my new job and all the things I've learned in seven weeks. Crazy ain't it?