Today it was revealed that Microsoft will release the source code to parts of the .NET Framework. It will likely occur during the shipment of VS2008 and .NET Framework 3.5. This means you won’t have to peek through disassemblers such as Reflector any longer to understand what’s going on under the hood (yes, the .NET Framework libraries are non-obfuscated and the IL can be reverse-engineered).
It seems like a logical step after Java was made open source by Sun Microsystems and the same happened to Flex by Adobe. It’s not really open source, but you get the picture. This is partly thanks to Shawn Burke, who has been working for this to happen since 2005.
A nice touch in VS2008, with this code available, is that developers can set breakpoints not only in their own code, but in the .NET Framework code as well. Stepping down into the .NET code will probably often add even more confusion to a debug session, but at least we now got the possibility. It is possible to step back up in the call stack as well.
The license used for all this is called Microsoft Reference License (MS-RL). In short it means that you are allowed to read and debug, but not modifying the source. This sounds like a can of worms to me. Just because it’s not allowed will not stop people from compiling their own forks of the framework when they discover a frustrating bug.
I also wonder what this will mean for the Mono Project community in the long run. Miguel de Icaza has written an official statement, which includes this line:
“People that are interested in continuing to contribute to Mono, or that are considering contributing to Mono’s open source implementation of those class libraries should not look at this upcoming source code release.”
Yeah, good luck with that one, mates.