ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1

I wanted to clear up a bit of confusion I’ve seen around the web about ASP.NET MVC and the .NET Framework 3.5 Service Pack 1. ASP.NET MVC was not released as part of SP1. I repeat, ASP.NET 3.5 SP1 does not include ASP.NET MVC.

What was released with SP1 was the ASP.NET Routing feature, which is in use by both ASP.NET MVC and Dynamic Data. The Routing feature is my first Framework RTM feature to ship at Microsoft! We also shipped a bunch of other features such as Dynamic Data, and this short list of breaking changes.

I hope that clears things up and I apologize for the confusion.

And for my next feat, I’m going to try and read your mind, oooooh! Right now, you’re thinking something along the lines of,

Ok, so ASP.NET MVC didn’t ship as part of SP1. When is it going to ship?!

Good question! Scott Hanselman once quipped that it would ship in a month that ends in “-ber”. He also recently quipped,

Anyway, Phil has always said that MVC is on its own schedule and will ship when its done. Possibly when Duke Nukem Forever ships.

That Scott, he’s so full of quips. ;)

In any case, he’s right in that MVC is pretty much on its own schedule since the first RTM version will be a fully supported out-of-band release, much like Atlas was back in the day.

The MVC team really doesn’t want to rush the first release. We’re taking the time to do the best we can in laying the groundwork for future releases. My hope is that we’ll have very few, if any, moments where we we want to make a breaking change because we didn’t provide the right amount of extensibility.

At the same time, we also really want to get ASP.NET MVC in your hands in an RTM form soon so you can start using it for your clients who are uncomfortable working with a beta technology. Trust me, we are not in the business of the “perpetual-beta” and are working towards an RTM. As Scott pointed out, our hope is to get it out before the end of the year. But as most of you know about how software scheduling works, anything can happen between now and tomorrow.

Metrics

As we move towards the tail end of the development cycle, we’ve been pushing hard to get our bug/approved change request count down, which I recently twittered about. I asked Carl, our tester, to print out an Excel graph of our bug count over time. It feels really good to walk by his office every day and see the line trending down towards zero (though occasionally, it ticks up a bit). I think it’s a huge motivator to try and fix and close out work items.

At the same time, this graph is for our benefit only and not something we’re being evaluated on by any managers, which is extremely important. One of the dangers of any metric is that developers are smart and they’ll do what they can to optimize the metric. For example, the danger with this metric is that we might be tempted to not log feature requests and bugs. Joel Spolsky wrote about this phenomena when measuring the performance of knowledge workers a while back,

But in the absence of 100% supervision, workers have an incentive to “work to the measurement,” concerning themselves solely with the measurement and not with the actual value or quality of their work.

Since we’re the only ones who care about this graph (nobody is looking over our shoulder) and QA is very motivated to find bugs, I think it’s a safe to use as a fun source of motivation. For the most part, watching the graph move towards zero feels good. Those are the metrics I like, the ones that inspire positive feelings among the team and a sense of forward motion and momentum. :)

What others have said

Requesting Gravatar... Sid Savara Aug 14, 2008 3:13 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
Was the Duke Nukem Forever reference really fair? Come on ;)

I like watching the number of open issues/bugs/whatever you want to call them plummet as well.
Requesting Gravatar... James Snape Aug 14, 2008 5:11 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
Phil, will you let us know when you hit ZBB? Thanks.
Requesting Gravatar... Andy Aug 14, 2008 6:21 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
At RTM of MVC I hope there is an RTM compatible version of Dynamic Data from day one. That would really complete the picture of technologies for me, having embraced the coupling of Entity Framework and MVC.
Requesting Gravatar... Dan F Aug 14, 2008 6:36 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
I asked Carl, our tester, to print out an Excel graph of our bug count over time.

You print the bug list? Shouldn't that be zapped onto an LCD? Perhaps with some sexy WPF animations and sound effects when it changes? You could even zap it to one of those cool Nabaztag Wi-Fi bunnies. Think of the trees :-)
On second thoughts... don't do that. Keep coding like the ninjas you all are and RTM that sucker quickly.
Requesting Gravatar... Timothy Khouri Aug 14, 2008 7:31 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
You guys are doing some seriously good stuff, and at the speed you're hammering out bugs, you'll be done with a solid project in no time. (If I would only stop bugging you for features :P)

Question: When you say "MVC 2", does that mean MVC shipped with .NET 4.0 (or whatever the next big launch ship will be)?
Requesting Gravatar... iamybj Aug 14, 2008 9:15 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
Is the atals dead??
Requesting Gravatar... Steven Harman Aug 14, 2008 9:29 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
@iamybj,
Atlas was folded into the .NET framework and is now known as ASP.NET AJAX.

>> QA is very motivated to find bugs

Careful there Phil. Remember that QA's purpose is not explicitly to find bugs, but to ensure quality - and the two don't always go hand in hand. I know that you know that... but wanted to point it out just to clear up any confusion. :)
Requesting Gravatar... Jamie Aug 14, 2008 11:44 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
PLEASE, PLEASE, PLEASE try to get a good subcontroller infrastructure in there with the release. That seems so much more important than AJAX helpers and other things that don't affect the overall structuring of an application. I know you guys have said before that might have to wait for the next release, but PLEASE rethink it...
Requesting Gravatar... Angel Escobedo Aug 15, 2008 12:47 AM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
Oh! QAssurance.. really nice job from them, thinking that products offers are comming from microsoft, might it been a softly perfectly choise from clients, by the way about using beta in a software development, i think that doesnt matter if you have a complex idea that what are you doing, so in my case i left mvc.net to take a fast development in webforms cause, they told me, no time for researching, cause in MVC Views i dont have the same controlers that in webforms i have, so i'll be waiting, some day... i will moved to mvc.net when i finish to do first!... in webforms (:
Requesting Gravatar... Elijah Manor Aug 15, 2008 12:48 AM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
Keep it up... I look forward to Preview 5 or RTM :)
Requesting Gravatar... Howard Aug 15, 2008 4:26 AM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
Hi Phil!

What is the difference between a beta, a CTP, a fully-supported out of band release, an RTM feature, and a service pack?
Requesting Gravatar... haacked Aug 15, 2008 5:19 AM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
@Howard I answered your question in a new blog post.
Requesting Gravatar... foobar Aug 16, 2008 4:30 AM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
-- Jamie
> try to get a good subcontroller infrastructure in there with
> the release.

I second Jamie.
Requesting Gravatar... Shiju Varghese Aug 17, 2008 3:32 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
Please provide SUBCONTROLLER infrastructure. This is necessary while developing real world applications.
Requesting Gravatar... MasterChef Aug 18, 2008 9:27 PM
# re: ASP.NET MVC Is Not Part of ASP.NET 3.5 SP1
So now that Duke Nukem is going RTM, can we have a date for MVC? :)

What do you have to say?

(will show your gravatar)
Please add 5 and 4 and type the answer here: