It has taken a few years but Microsoft has announced that it will make the source code for the majority of its .NET framework libraries available for download with the release of Visual Studio 2008 and .NET 3.5 later this year.
Initially the release will include the source code (with source file comments included) for the .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows). Source code for more libraries such as WCF, Workflow, and LINQ will be added in later releases. The source code will be released under the Microsoft Reference License (MS-RL), which in a nutshell says “You can look at this, but don’t change anything”.
The full announcement from Scott Guthrie can be found on his blog here. From a developer’s point of view, this can only be good. Rather than relying on newsgroups for those buggy itches that can’t be scratched, developers should now be able to use the source code to trace exactly why their problems are occurring and make changes accordingly. Of course, by releasing the source code, the b0rg will open themselves up to criticism from some for their actual coding. Indeed, the first such comment from the ‘not my code, I could write better’ camp has already been posted based on the contents of the screenshots in Scott’s post.
As agilists and design pattern specialists ready their knives and posts for their release, it’s worth remembering that this is a huge step for Microsoft. Read only or not, for them to start opening up their code takes a lot of guts. Reactions from the open source world and podcasts are already appearing in reaction to the announcement.