Today I want to take the opportunity and express my appreciation for Lutz Roeder's .NET Reflector, the best .NET decompiler (that I know of). Oh, and it's freeware by the way.
On more than one occasion .NET Reflector has really saved the day in our projects - we mainly use it for finding workarounds for bugs in third party libraries (when the sourcecode is not on hand). And it is an indispensable tool for understanding the inner workings of Microsoft's .NET Framework. Contrary to what Sun did with Java, the .NET Framework code is not publicly available.
Reflector's main strengths are its decompiling capabilities as well as its graphical user interface. Unlike many other decompilers, it allows to browse through class hierarchies and call chains in a very intuitive way.
Great work Lutz!