Microsoft Makes .NET Framework Source Code Visible Under License
As part of an effort to make debugging code at the granular level more feasible with its new Visual Studio 2008, Microsoft today said it will be making the source code for its .NET Framework available under its royalty-free, "read-only" Reference License.
Why would Microsoft want to reveal the inner workings of .NET without allowing others to contribute to it? The answer may be self-evident to developers who work on a daily basis with the problem of examining program behavior, especially using Visual Studio's common tools like breakpoints and watches (alerts which pop up under certain specified conditions).
In a fully illustrated demonstration for his Microsoft blog, .NET programmer Scott Guthrie shows how the debugging process is enhanced once Visual Studio has access to the .NET Framework's source code. As the demo shows, the debugger of a .NET program frequently encounters situations where a thread passes execution to a method handled internally by the .NET runtime. Historically, whatever took place there was "behind the curtain," out of sight of the programmer until execution re-emerged and re-entered local code.
With VS 2008, debuggers will be able to follow execution behind that curtain, with the IDE dynamically downloading just the symbols it needs from the .NET source code directly from Microsoft's servers, at the time it needs those symbols.
So for example, after you've set a breakpoint with the F9 key, you can use F11 to step program execution into the public methods of the .NET Framework at the symbolic level. There, you can see what's happening using C# instructions, and keep track of changes it makes to data under watch, on a line-by-line basis.
Of course, there's an alternate theory being floated which deals less with practicality and more with conspiracy. By making source code open for "examination" but not "use," this theory goes, Microsoft is attempting to befuddle the issue of what "open source" should rightly mean.
As eWeek's Steven J. Vaughan-Nichols suggests, with knowledge of .NET's intricacies out in the open, Microsoft could eventually claim that programmers of Mono - a .NET work-alike project for multiple platforms - stole ideas from .NET directly instead of innovating on their own, for what he calls "doing an SCO."
But as Guthrie claims, Microsoft's motivation here is not nearly so sinister. "Having source code access and debugger integration of the .NET Framework libraries is going to be really valuable for .NET developers," he wrote this morning. "Being able to step through and review the source should provide much better insight into how the .NET Framework libraries are implemented, and in turn enable developers to build better applications and make even better use of them."