Today, at 9am PST, Microsoft announced here and here that we will be releasing the source code to some parts of the .NET Framework Libraries under the Microsoft Reference License.  I'm no licensing expert, so I've grabbed a snippet from the license here:

"Reference use" means use of the software within your company as a reference, in read only form, for the sole purposes of debugging your products, maintaining your products, or enhancing the interoperability of your products with the software, and specifically excludes the right to distribute the software outside of your company.

There are two ways for folks to access the source code:

  1. You can download a package with all the source so that you can install and browse locally (link coming soon)
  2. VS 2008 integration will enable developers to debug from their own source code into the .NET Framework source code.  We’ll provide symbols for our source on an internet-accessible source-server; to enable this experience, the developer needs to set up the URI for the server. 

I think this is a much better approach than option #1, but not as suited for debugging at 30,000 feet :)

All in all, I think this is a good thing.  You still can't change the code yourself, or submit any updates/enhancements to the code, but at least you'll have an improved debugging experience and can more accurately pinpoint the lines of code causing you trouble.  I've spent some time reviewing the source code in the past using tools like Reflector, but this more formalized way to debug into it should prove a lot more convenient to those debugging deep in the farthest reaches of the framework.  It also continues the trend in "open-ness" that Microsoft has been showing, as a means to help developers better understand the Framework and allow them to build better applications.

Thoughts?  Please let me know what you think about this by submitting comments to the blog.