Login:
Password:

Microsoft Makes .NET Framework Source Code Visible Under License

By Scott M. Fulton, III, BetaNews

October 3, 2007, 4:14 PM

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."

Add a Comment (10 Comments)

BetaNews reserves the right to remove any comment at any time for any reason. Please keep your responses appropriate and on topic. Foul language and personal attacks will not be tolerated.

Name (required):

E-mail (required):

Enter Your Comment:

By mcbit

posted Oct 4, 2007 - 12:57 PM

I am a developer and I VERY welcome this effort from Microsoft.
This is going to help everyone IMHO.
Developers will get a better grip on the code that was previously hidden in a "black box". And, they should be able to improve themselves by studying of the code written by highly skilled Microsoft developers.
Microsoft is going to benefit from it by receiving comments, ideas for improvement and bug fixes from the development community. However, the number of responses may become overwhelming and good ideas may not get noticed...

Score: 0

By DigitAl56K

edited Oct 4, 2007 - 12:32 AM

This isn't really much different from what is done for other platforms, why haven't the symbols been available all along?

Score: 0

By DigitAl56K

posted Oct 4, 2007 - 12:26 AM

Oh btw, why exactly do you need to get the symbols over the Internet on demand, rather than downloading them all once?

Don't tell me that they're going to end up using this as a way to monetize .net through MSDN subscriptions, e.g. making the service only available to subscribers at some point...

Score: 0

By spiked

posted Oct 4, 2007 - 6:12 PM

Did you bother to click your mouse one time and read the actual Microsoft announcement which is linked from this BetaNews article? It states that there will also be a full download available.

Score: 0

By DeadFly

posted Oct 3, 2007 - 9:58 PM

I'm kinda thinking MS is going to work it where you push a button when you find a bug and it sends your code to them and where it's breaking in .NET

Also, making their development world available on other platforms could maybe be their way of getting what they can in terms of leverage on the OSS/Linux world. Their big money is on the Office suite and the various server products that sit on Windows Server OS, not the OS itself.

Score: 0

By AnthonySPT

posted Oct 3, 2007 - 8:26 PM

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."
----------------------------------

Ok, this part is going a bit crazy in assumption. MS has been recently working with the Mono team to help get .NET working on OSS. Not only for Silverlight, but so other MS .NET frameworks are cross platform.

Why on earth would anyone expect MS to pull an SCO, when they are already helping these people?

Score: 0

By hfztt

edited Oct 4, 2007 - 2:26 AM

Microsoft could allready make this claim. Its been possible to read the .NET core source code with the Reflector program for years. (The assemblies are not scrambled so they can be coverted right back to thier original source code state.) So thats not really new. THe new part is that is can be done in the VS debugger and that you can also see code comments, which is nice.

But to say that MS is doing this to be able to sue Mono or the like is stupid beyonfd anything i have heard in a long time.

Score: 0

By ingram091

posted Oct 3, 2007 - 8:21 PM

Is this different then the Library SDK we get in the version of Visual Studio .NET academic?

For some reason I think we could always do that. maybe they are just allowing us to do it easier now... I know I used to step into the DLLs from .net framework on function calls and being able to see how MS coded some things...

However.. hummm I am not sure if I saw everything now or just the calls now that I am rereading that paragraph... Interesting...

Still I think MS is TRYING to make an effort to open up a little... But like some say its certainly not the Open standards we come to expect in a linux environment...

Score: 0

By spiked

posted Oct 3, 2007 - 6:14 PM

I've read the announcement. I've read the license text. At no point does Microsoft ever claim that this is "open source" or even meant to resemble an "open source" model. Only Steven J. Vaughan-Nichols, with a chip on his shoulder, wants to pick a fight. This is clearly an improvement which will benefit people. Arguing otherwise is simply stupid.

Score: 0

By Alexq

posted Oct 3, 2007 - 7:07 PM

Yes, it's an improvement. But you can't really blame people for being extra careful when it comes to Microsoft, which established a clear pattern of far from honorable behavior over the history.

Score: 0