Microsoft and transparency

There's been a lot of buzz recently about how Microsoft is becoming more transparent, with CTPs coming out of our ears, Rotor, hundreds of employee blogs, Robert Scoble apparently having blogging as his main job description, and the thriving mini-Microsoft blog.

What's also interesting is that all of the managed code coming out of Microsoft, such as the .NET Framework base class library, is effectively transparent as well. Point the excellent Reflector tool at any unobfuscated .NET assembly, and you can read its source code in either C# or VB. 

Paul Wilson doesn't like DLINQ at all. In the past, he would have been limited to criticism of its surface area. But now he's able to look under the covers using Reflector, and therefore make a much more informed judgement about whether DLINQ is heading in the right direction.

At WinDev last year, I did a presentation on Windows Forms debugging. One slide showed some code generated by Reflector from Windows.Forms.DataGrid.CurrentCell:

catch (Exception e)
{
    object[] objArray1 = new object[1] {e.Message};
    DialogResult result1 = MessageBox.Show(
    SR.GetString("DataGridPushedIncorrectValueIntoColumn",
                        objArray1),
                        SR.GetString("DataGridErrorMessageBoxCaption"),
                        MessageBoxButtons.YesNo);
    … more code here …
}

Ooops! Apart from the rather dodgy practice of "black hole" programming shown by swallowing System.Exception, do you really want .NET Framework code popping-off a MessageBox in your customer's face?