ILSpy

For Several years a key tool in .Net developers toolchests has been Reflector. Originally a free tool developed by Lutz Roede, it was bought by Redgate Software in 2008. Redgate had announced that they would try and keep the tool free, but next month free support will end.

Those looking for a replacement may be interested in ILSpy. ILSpy has been in development for a few months and already has the major features required by a decompiler. It's under active development and is open source. It doesn't yet support languages other then C# and IL, and it would be great if it integrated into Visual Studio, but I think this is a tool with a bright future.

For those of you not familiar with this sort of tool, ILSpy and Reflector give you a class browser - displaying the namespaces and classes within an assembly, and listing the properties, fields, methods etc listed within. This alone is a useful way of quickly exploring the .Net Framework or third party DLLs. What makes it really great though is that you can select a method and decompile it into C# code, revealing exactly how the code works. This is extremely useful when documentation is poor or you need to have a better understanding of some library. You can easily navigate the decompiled code, clicking on classes or methods acts like clicking a hyperlink taking you to the decompiled code of whatever you click. You can also see what code uses a particular method. A very powerful tool you should investigate if you have not already.