Microsoft reveals .NET code

Today Microsoft announced that they will release the source code for parts of the .NET Framework, probably around the arrival of Visual Studio 2008 and .NET Framework 3.5.

For developers, this means slightly less staring into the abyss with tools like Reflector, trying to figure out what the hell is actually happening beneath all those friendly namespaces. The .NET libraries were never obfuscated, so anyone sufficiently determined (or sufficiently desperate during a late-night debugging session) could already reverse-engineer the IL. Now Microsoft is simply opening the curtains and inviting us to look.

Microsoft is a company that has occasionally given off the warm, reassuring corporate glow of Weyland-Yutani. So allowing developers anywhere near the source code feels almost suspiciously generous.

But it also makes perfect sense. Sun Microsystems has already made Java open source. Adobe has done much the same with Flex. The old fortress mentality around software platforms is slowly beginning to crack, and Microsoft apparently doesn’t want to be the last imperial power standing behind the walls pretending nothing has changed. Some credit should go to Shawn Burke, who has reportedly been pushing for this since 2005.

One particularly useful feature in Visual Studio 2008 will be the ability to set breakpoints inside the .NET Framework code itself. You’ll be able to step out of your own questionable code and directly into Microsoft’s questionable code. Whether descending several layers into the framework during a debugging session will actually illuminate anything, or simply reveal entirely new and more exotic forms of confusion, remains to be seen. But at least we’ll have the option.

There is naturally some fine print. The code will be released under the Microsoft Reference License (MS-RL), which essentially means we’re allowed to read the source and debug against it, but not to modify it.

Things get more interesting when you consider the Mono Project. Miguel de Icaza has already issued a warning to Mono contributors:

“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.”

Which is perfectly sensible from a legal point of view. But from a human point of view? You’re telling a community of curious programmers that Microsoft has opened a door into the machinery of .NET, and that under absolutely no circumstances should they peek inside. Good luck with that.

Comments

No comments yet.

Leave a reply