I had been saving this blog for a while gathering information on additional plug-ins, however, with the release of the source code of the .NET framework this article has lost some of its impetus but...
Lutz Roeder Reflector has been on the grid for some time that allows us to view code associated with any assembly (.NET Framework and your own). Now to be specific this is not the source code but it does represent the developer intent. With Reflector you are able to view the complete System tree and review examples of the code that went into making the Framework tick.
Reflector is extensible and there are a series of plug-ins, developed by the community, that can be used in conjunction with it. The plug-in I am getting the most mileage out of is Assembly dif. Which allows me to to compare changes I have made to my source code head to head.
Just as an example of how Reflector interprets your source code, I wrote the following code. As you can see "x= i + x;" line is quite separate to the "MessageBox.Show line".
When reflector sees this code it interprets the IL and shows this, we still have the for loop but the addition of i and x now occurs on the same line as the "MessageBox.Show". This kind of changes are common I have seen for loops become while loops and other benign changes.
This is for me the real reason why the release of the .NET framework source is so important. I no longer will have a interpretation of the System source code, I will have the real thing! Symbol files, source code, basically the full F11 support! Cannot wait to jump in!