Today I want to briefly highlight a few alternatives to Redgates .NET Reflector. Former I frequently used this tool, but since it costs money and there are good and useful free alternatives, this is no longer between my fingers.
The following parenthesis is for those who don’t know what’s meant by the term .NET Reflector/decompiler. All the other can read on below the following paragraphs.
What is a (. NET) decompiler?
.NET Reflector was the first CLI assembly browser. It can be used to inspect, navigate, search, analyze, and browse the contents of a CLI component such as an assembly and translates the binary information to a human-readable form. By default Reflector allows decompilation of CLI assemblies into C#, Visual Basic .NET, Common Intermediate Language and F# (alpha version). Reflector also includes a “Call Tree” that can be used to drill down into intermediate language methods to see what other methods they call. It will show the metadata, resources and XML documentation. .NET Reflector can be used by .NET developers to understand the inner workings of code libraries, to show the differences between two versions of the same assembly, and how the various parts of a CLI application interact with each other. There are a large number of add-ins for Reflector.
.NET Reflector can be used to track down performance problems and bugs, browse classes, and maintain or help become familiar with code bases. It can also be used to find assembly dependencies, and even windows DLL dependencies, by using the Analyzer option. There is a call tree and inheritance-browser. It will pick up the same documentation or comments that are stored in xml files alongside their associated assemblies that are used to drive IntelliSense inside Visual Studio. It is even possible to cross-navigate related documentation (xmldoc), searching for specific types, members and references. It can be used to effectively convert source code between C# and Visual Basic.
Now we come to the main topic, the free .NET decompilers:
All four tools worked very well in my tests. The differences are more in the simplicity of use and their visual appearance. My personal favorite is “Just Decompile” from Telerik. However you must register (for free) on Teleriks website to use the software.
Who does not like give his/her data out of the hands or who is just too much effort, I recommend IL Spy. The program is free and open source. The download is quick and accessible without registration. Behind IL Spy is an active developer community.
As I said, the other two tools worked for me too, but I prefer the both ones above mentioned.
Finally, of course, it should have said that all four programs are very “powerful”. Please do not abuse this “power” to copy/steal source code, but use it to find errors and/or to understand certain features.
And now I would be interested if you use or have ever used .NET decompilers, too and if so, which one and for what kind of purpose?