It’s just been announced on Scott Guthrie’s blog that Visual Studio 2008 will allow debugging into the source code for the .NET framework – at least for some areas. I’ve wanted this to happen for a long time, and blogged about it before now – but I didn’t honestly expect it to happen, at least not for a long time.
This is a fabulous move, and one which MS should be commended for. I’m sure many people will spend a long time discussing whether the licence can be described as “open” (you can’t copy the code or recompile it) but to me that’s relatively unimportant. I will be able to view it, debug into it, and potentially spot/report bugs in it. I don’t really have much use for copying or recompiling it, personally.
Well done, Microsoft.
On a side note, I’d love to see the traffic logs for Reflector before and after this happens :)
8 thoughts on “Yeehaa! Framework source code, here we come!”
well, i can tell you that i’ll keep using reflector for understanding and navigating along the code. having said this, i’m really for getting the pdb+source files for debugging purposes :)
It’s great, but by the moment, only several parts of BCL will be released, although the thought is releases the complete BCL.
Maybe … someday … Microsoft release the CLR source code too!! but.. it’s a very optimistic dream hahaha.
Reflector will still be the best converter between the different Common Languages. =]
You can copy and recompile as long as you don’t do it in an open source program can’t you?
I believe you can copy within your company, but not outside it. Recompilation is interesting. The page which summarises the 3 shared source licences has this in it:
The Microsoft Reference License (Ms-RL) is the most restrictive of the Microsoft source code licenses. The license prohibits all use of source code other than the viewing of the code for reference purposes.
I’d call recompilation different to “viewing for reference purposes” – but then again, on the actual licence page itself, there’s only this:
“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.
So if you’ve got some valid use for recompiling the same sources (it’s read only) for maintenance purposes, it *might* be okay. But normally you’d only want to recompile after making changes, wouldn’t you? That’s explicitly forbidden by the “as a reference, in read only form” part, IMO.
I guess if you take it literally (which to be legally safe you should) it means read only. But it seems to me the intent of that wording is to prevent redistribution of modified source code.
Say I find a bug in Hashtable, fix it, and then use the fixed class in my application. Surely that isn’t what they would want to prevent is it?
Even if that is prohibited, the release of the source is a nice boon.
Oh and reflector is still a really nice tool for it’s ability to jump around in code easily. Borland Delphi has a really handy feature that jumps to the implementation of a function if you ctl-click on a reference to it. It’s great for drilling down into code.
Reflector/hyperlinks: I use ReSharper for that, and it works very well indeed :)
Using “fixed” versions of framework classes: I think they’d take a very dim view of that. If I were a project manager and I became aware of that happening in a project I was planning to release, I’d forbid it.