Alternatives to Reflector :) Le Roi est mort, vive le Roi!

Decompiler is a must-have tool for .NET developers. For quite long time Reflector has been a point of choice for the vast majority of .NET community. Initially, Red Gate promised to keep the product free. However, they implemented a registration process that required you to give them your email and other information in order to download the product. Moreover, the product seemed to time out after a while, requiring you to download the latest version, ensuring that Red Gate had your latest information J. And now the product has become a paid-for one. While costs start at pretty reasonable $35, some folks are missing the cool resource they once had.

Naturally as demand creates supply new players on the stage appear, and this is where .NET development community owes a word of thanks to Red Gate – all that happens is for the best J: “Their moves with Reflector have kicked the .NET dev ant hill and have caused a wave of development”, in particular JetBrains and Telerik have stepped up and released free .NET Decompilers. So seems like developers “mourning” the loss of the free .NET Reflector may definitely stop doing so J.

Currently JetBrains’ dotPeek is rapidly gaining popularity among the geeks. Moreover, they are open to any suggestions and actively collect feedbacks on what their target audience is willing to see in the product. Many foresee that while Reflector is continuously losing its ground dotPeek may soon claim to become Reflector’s substitute, and if the quality of dotPeek is equally good then RedGate Reflector will soon be forgotten.

So, what’s cool about dotPeek:
-decompiling .NET 1.0-4.0 assemblies to C#,
-quick jump to a specific type, assembly, symbol, or type member,
-effortless navigation to symbol declarations, implementations, derived and base symbols, and more,
-accurate search for symbol usages with advanced presentation of search results,
-overview of inheritance chains,
-support for downloading code from source servers,
-syntax highlighting,
-complete keyboard support,
-it’s free.

Those who already tried it out say: “Just the navigation around with R# like shortcuts is worth trying it… Or surprisingly adequate decompiling even of non-C# code…Or much better interface than in Telerik’s decompiler…”

Also it looks like many things are planned to be added further based on developers’ claims:
-integration with VS 2008-2010,
-inclusion into ReSharper 6 and up,
-debug based on decompiled code,
-possibility of IL-code viewing,
-possibility of renaming of decompiled classes, methods, properties as it’s possible in IDA, etc.

And what would you like to see in the list?

Been released the first, JustDecompile byTelerik offers the following in beta:
-innovative code navigation and analysis,
-side-by-side assembly loading,
-better decompiling accuracy,
-powerful free tool by a leading commercial vendor,
-auto-updating and regular updates,
-professional Support,
-it’s free.

One more that looks very promising is ILSpy, which is open-source and provide the following possibilities:
-assembly browsing,
-IL Disassembly,
-decompilation to C#,
-supports lambdas and ‘yield return’,
-saving of resources,
-search for types/methods/properties (substring),
-hyperlink-based type/method/property navigation,
-base/derived types navigation,
-navigation history,
-BAML to XAML decompiler,
-save assembly as C# Project,
-find usage of field/method,
-extensible via plugins (MEF).

Besides the abovementioned main players there are even more options that include products such as Dotnet IL Editor and Monoflector and others.

Have you already tried them out? What is your choice and why?

One thing is obvious – Reflector is definitely losing, even its loyal fans. So far according to many .NET guys dotPeek is a leader. As the French say: “Le Roi est mort, vive le Roi!” But let’s see how the game will go J.

Look forward to hearing your comments.