Among its many qualities, I found that reflector! always had a remarkable ability to just disappear from my machine when I called upon it. It’s not every day that one needs to view the source code of some binary, but occasionally I would find myself looking at the IL generated by my code, and I’m not a big fan of viewing it from ildasm. I never figured out the interval, but it seemed that when a new version of reflector came out, the one you had would leave you stranded. And one day, it never came back.
It so happens that Telerik has a similar tool still in beta called Just Decompile. I just installed it this afternoon and have been playing around with it, seeing how it presents the code in the different languages. It doesn’t support all the languages that reflector did, but the most obvious choices, IL, C# and VB are there. From the feel of the app, I think it was written using WPF, but if you take that point to the bank, you might not redeem it for money.
The UI is quite simple to understand, with just one toolbar and a collapsible menu bar.
The Load Framework menu includes options to load a framework of your choice, defaults are .NET 2.0, .NET 4.0 and the Silverlight assemblies. The assembly list option allows you to load or create custom assembly lists.
An interesting command on the toolbar is the Create Project button next to the Language selection combo box. This allows you to decompile an assembly and save the code in a new .NET project. This feature is only available when you select C# as your language.
Just Decompile seems stable enough, but I have seen some error messages when trying to open some methods in VB or C#. So far there hasn’t been a problem in IL though. Following are some of the issues I’ll be reporting soon. The classes that cause errors in C# will still raise errors in the project creation process, but the process itself is unaffected because it will just continue decompiling the ones it can.
It also seems the C# code generator (if I can call it that) works better than the VB one. As some methods I tried work in IL and C# but not VB. It also displays auto implement properties fully expanded in VB.
Because of a rather curious issue, I haven’t been able to view Interface definitions in VB for interfaces that have properties. Anyway as this is still in beta, I’m pretty sure it will get fixed by the time it gets released. Despite these issues, there are no show stoppers to worry about.
All in all, this is looking like a great product and the best part about it is that Telerik guarantees that it will remain free forever! Now, there is no definitive evaluation of how long forever is, but I take it to mean a very long time indeed. And finally I must say thanks to Telerik for supporting my favorite podcast, .NET Rocks!