I recently tried out the JustCompile .Net decompiler from Telerik and I have previously been using both the RedGate Reflector and JetBrains DotPeek.
First up, neither DotPeek or JustCompile compares to previously free Reflector but this is mainly because they´re both new, in a couple of months they´ll probably be better then the Reflector.
These are a few points I´ve found differs:
- Faster (load time etc)
- Using the JetBrains shortcuts etc, it´s much “quicker” to work with and navigate around, simply a native environment for all JetBrains fans
- Gives a list for loading assemblies from the GAC (very useful since you often need some but not all assemblies from the GAC)
- Needs registration for download (not a good thing)
- Feels a bit more stable than DotPeek
- Provides functions for loading “all” framework assemblies (failed to load ie the PresentationFramework)
- Quite slow, waiting and searching times of several seconds are not unusual
Summary is that the DotPeek is still quite far ahead but I´m hoping for Telerik to pick up the pace, a bit of competition will only push these two great companies to build us yet better tools 🙂
In a comment below Arnaud Dovi pointed out another important difference between these products. The fact that the code generated from them differs in some cases and this can affect readability of the code very much. JustDecompile sometimes refers to using GOTO-statements aswell as nested IF-s which though logically correct can be extremely hard to understand. In this respect DotPeak wins another point.
Thanks for your feedback! We are taking your comments seriously and will work towards improving JustDecompile along the lines you suggest.
With almost weekly builds and a roadmap based on community feedback, JustDecompile is constantly evolving. To ensure our users are kept abreast of the latest developments, we ask for a few details so that we can keep you in the loop. Registration also enables you to post comments in the forums and receive feedback from one of the largest and most passionate communities out there, as well as the very developers who work on JustDecompile!
Thanks for pointing out that JustDecompile fails to load Presentation Framework. We have logged the issue and we’ll fix it in due course. We will be in touch once the fix is available.
In regards to your comments on JustDecompile’s performance issues – is there any particular part of JustDecompile that is slow when you use it? Does this happen with a certain assembly (if yes, which assembly)? Or is this a general impression that you have? We are working hard on significantly improving JustDecompile’s responsiveness for the official release.
We really appreciate the constructive feedback! Don’t hesitate to reach out to us again if you have any additional comments.
The Telerik Team
I´m very happy and equally suprised at your answer!
It shows that Telerik really has an involved community.
This might not be the best forum to answer but just for recording it; I find the performance overall a bit annoying. I can totally relate to Why it´s slow since reflecting a hundred assemblies for runtime type search just ain´t to simple a problem to solve 🙂 but since JetBrains manages I suppose it can be done through caching or somesuch. This is one example aside from the startup time (which DotPeek isn’t to good at either), namely the Goto Type -feature. It really needs to be more or less immediate to provide auto-complete features.
Otherwise great work!
We’ve just released a new JustDecompile Beta version. Please give it a try as loading PresentationFramework should work fine.
Thank you for the feedback. We are looking forward to hearing from you again.
The Telerik team
Nope, still no PresentationFramework in the 2011.1.701.2 Beta which I just downloaded from Telerik. Seems to load faster though.
I’m sorry to hear that you still have troubles loading Presentation Framework. Could you elaborate a little bit on this and give me a specific issue you face in comparison to some other Decompilers that you use? Also if you could send me one example I will greatly appreciate it.
The Telerik team
I think there might be a misunderstanding. The PresentationFramework dll loads perfectly fine. What I was implying is that since it´s quiet a big part of the 4.0 .Net assemblies I´d wish for it to be loaded among the other libraries by the “Load .Net 4.0 Assemblies” button.
I tried to post a feature request for this but unfortunatly your tracker seems to be closed for licensed users only.
Now I understand. Sorry for the redundant comments. For feature requests, please, use our uservoice website: http://justdecompile.uservoice.com.
Thank you for the feedback.
The Telerik team
No problem. I´ve posted a feature request. Thank you for taking the time to respond to my critiqe.
I’d like to ask you to try the latest JustDecompile release, which is our official version (no more Beta :)) with fully rebuilt decompilation engine, and let us know what you think. We’ll greatly appreciate if you are willing to make new review of the tool.
When I realized JustDecompile was spamming my decompiled codes of goto statements, I quickly send it to Junk in flavor of dotPeek which for the exact same file did not used a single goto.
Even worse, it places Labels outside the scope of goto statements, just a pain in the ass to correct
I believe the coders behind JustDecompile are just lazy and should give up to share such tool generating codes that horrible.
dotPeek can also show you the usages of symbols (Find Usages), a feature that neither Reflector nor justDecompile can. Which is insane, considering how *insanely* useful it is when trying to reverse engineer a program.
I certainly agree I´ts a wonderful feature, one that JustDecompile (although there is free text search) cannot match. I too find it one of the reasons dotPeak is my first choice of decompiler.
In response to Arnaud, you should take another look at the latest release of JustDecompile, I think that they´ve done some major work to the decompiling now so that it doens’t generate that bad code anymore but I´m not sure if it measures up to dotPeak yet. They´ve done a lot to adress the performance issues as well.
I feel that once MS releases Rosyln into production we will see a much richer feature set because of the syntactic and semantic tree creation by the C# compiler.
I think what lacks in dot peek is the obfuscator detection jetbrains should work on that part.Rest my vote for DotPeek i’ve been using it since version 1.0 eap
Obfuscation is indeed tricky though I would guess JetBrains don’t want to touch that as it would in most use cases have to do with reverse engineering where it may have legal implications.
jet brains takes forever to load for me. Then It starts processing assemblies. So far i haven’t found a way to tell it not to load anything at startup.
This caused me to download JustDecompile and you are right the registration is an annoyance.
This was validated when it told me email@example.com was already in use
Haha, maybe have a go with @mailinator.com instead then 🙂