A Few Notes About The MVC CodePlex Source Code Release

asp.net, asp.net mvc, code 0 comments suggest edit

Whew! I’ve held off writing about MVC until I could write a non-MVC post in response to some constructive criticism (It’s not just Sean, Jeff mentioned something to me as well). Now that I’ve posted that, perhaps I’ve bought myself a few MVC related posts in a row before the goodwill runs dry and I have to write something decidedly not MVC related again. ;)

As ScottGu recently posted, the ASP.NET MVC source code is now available via CodePlex. A move like this isn’t as simple as flipping a switch and *boom* it happens. No, it takes a lot of effort behind the scene. On the one hand is all the planning involved, and Bertrand Le Roy and my boss Simon played a big part in that.

Along with planning is the execution of the plan which requires coordination among different groups such as the Devs, PMs, QA and the legal team. For that, we have our newest PM Scott Galloway to thank for that effort. I helped a little bit with the planning and writing the extremely short readme (I didn’t know what to say) and roadmap. One part of this experience that went surprisingly well was the person from our legal department we worked with. I was expecting a battle but this guy just got it and really understood what we were trying to do and was easy to work with.

With that said, I’ve seen a lot of questions about this so I thought I would answer a few here.

Is this the live source repository?

No, the MVC dev team is not committing directly into the CodePlex source code repository for many reasons. One practical reason is that we are trying to reduce interruptions to our progress as much as possible. Changing source code repositories midstream is a big disruption. For now, we’ll periodically ship code to CodePlex when we feel we have something worth putting out there.

Where is the source for Routing?

As I mentioned before, routing is not actually a feature of MVC which is why it is not included. It will be part of the .NET Framework and thus its source will eventually be available much like the rest of the .NET Framework source. It’d be nice to include it in CodePlex, but as I like to say, baby steps.

Where are the unit tests?

Waitaminute! You mean they’re not there?! I better have a talk with Scott. I kid. I kid.  We plan to put the unit tests out there, but the current tests have some dependencies on internal tools which we don’t want to distribute. We’re hoping to rewrite these tests using something we feel comfortable distributing.

When’s the next update to CodePlex?

As I mentioned, we’ll update the source when we have something to show. Hopefully pretty often and soon. We’ll see how it goes.

As a team, we’re pretty excited about this. I wondered if the devs would feel a bit antsy about this level of transparency. Sure, anyone can see the source code for the larger .NET Framework, but that code has already shipped. This is all early work in progress. Can you imagine at your work place if your boss told you to publish all your work in progress for all the world to critique (if you’re a full time OSS developer, don’t answer that). ;) I’m not sure I’d want anyone to see some of my early code using .NET.

Fortunately, the devs on my team buy into the larger benefit of this transparency. It leads to a closer collaboration with our customers and creates a tighter feedback cycle. I am confident it will pay off in the end product. Of course they do have their limits when it comes to transparency. I tried suggesting we take it one step further and publish our credit card numbers in there, but that was a no go.

Technorati Tags: aspnetmvc,codeplex

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.



8 responses

  1. Avatar for Torkel
    Torkel March 21st, 2008

    This is a great step in the way Microsoft should develop frameworks. Thanks to every Microsoft employee who has been pushing for this from the inside.
    The next step though: when will we be able to contribute, send patches, etc?
    And when will codeplex switch to the more usable and open-source friendly subversion? :)

  2. Avatar for Andrei Rînea
    Andrei Rînea March 21st, 2008

    That's a good one with the credit card numbers ;)

  3. Avatar for Dragan Panjkov
    Dragan Panjkov March 21st, 2008

    I highly appreciate that MVC code is published on Codeplex. It is always good to see how other people write code, and it is also excellent way to use that code for learning, (just to mention Scott Hanselman's Weekly Source Code series).
    Can you post more details about your team, i.e how many Dev's, PM's and other people is currently working on MVC project (including Routing and Abstractions part of it), just to compare it with the fact that MVC source (without Routing and Abstractions part) is approximately only 300kB, and how is organized development process inside your team. I know I'm entering into some tricky legal issues, so post only details that are not so secret to be kept from the eyes of public (I'm just curious)

  4. Avatar for tgmdbm
    tgmdbm March 21st, 2008

    It's nice to have the source, to see how you guys write, to read your comments.
    But because I can't redistribute it I can't really publicize/externalize/virtualize certain methods just to make my life easier. As soon as I get the next version, those methods may still be marked with private, internal, or not marked virtual.
    If I do, I'll be creating my own breaking changes nightmare.
    I would need some way of knowing the changes I was making would eventually show up in the next version...

  5. Avatar for Sean Chambers
    Sean Chambers March 21st, 2008

    Cheers Phil!
    The Codeplex repository is great news. I am very happy to see you guys making full source code drops to codeplex. this is a big leap forward. Keep it up man!

  6. Avatar for Jeffrey Palermo
    Jeffrey Palermo March 21st, 2008

    Great job, Phil. I'm impressed with the transparency of this release. It will certainly be better because of it.

  7. Avatar for Mike
    Mike March 21st, 2008

    Hey, you can't copy paste links from Codeplex! They are so called javascript postback links, a highly functional evolved form of the regular hyperlink. Someone slap some sense into the Codeplex developers, for the love of HTML 1.0

  8. Avatar for Josh Coswell
    Josh Coswell March 23rd, 2008

    I will continue to look for more insightful examples about MVC beyond the release of the code.
    Josh Coswell