dotPeek – Free .NET Decompiler is Available for Early Access

The long-awaited free standalone .NET decompiler from JetBrains goes public today: please welcome JetBrains dotPeek!

JetBrains dotPeek:

  • Decompiles .NET 1.0-4.0 assemblies to C#.
  • Brings the full power of ReSharper-style navigation to decompiled code.
  • Provides syntax highlighting and code insight.
  • Is keyboard-centric, with keyboard shortcuts familiar to ReSharper users.

Go to Symbol/Type/File Member, Find Usages, Go to Implementation/Base/Derived Types, plus Parameter Info, Quick Documentation, Type Hierarchy, and Extend/Shrink Selection are already available in dotPeek!

Get an overview of dotPeek functionality, and grab an early dotPeek build!

We’re looking forward to your feedback in order to make using dotPeek a smooth ride for .NET developers. Please submit bug reports and feature requests to the dotPeek issue tracker, and discuss the tool on the dotPeek forum.

For latest news and hints, follow dotPeek on twitter or like JetBrains on Facebook

As a gentle reminder, decompiling functionality is also available in ReSharper 6 EAP.

This entry was posted in News and Events and tagged . Bookmark the permalink.

22 Responses to dotPeek – Free .NET Decompiler is Available for Early Access

  1. W0ut says:

    Thanks a lot! You are doing the .net community a big favor.

    ping back:
    http://lawo.wordpress.com/2011/05/11/tools-the-free-decompiler/

  2. Simon says:

    This is awesome, thanks!

  3. Anthony Shaw says:

    Can’t wait to try it out! Downloading immediately :)

  4. Roland says:

    Will this be integrated into R# 6.0 ? Or as a plugin ?

  5. Jonathan says:

    R# 6.0 already has the decompiler integrated, if you are using the pre-release version, Alt+` (the comma up with the ~) you get an option to view Decompiled Sources.

  6. Joe White says:

    Wow. Looks awesome. I knew you were writing your own decompiler, but I didn’t realize it would be patterned so closely after ReSharper, with text editor and tool windows and shortcut menus and all. I’ve always been frustrated having to deal with Reflector’s “one tree to rule them all”. Yours looks like a massively better way of doing things. Looking forward to it!

    A few questions that came to mind while reading the “intro” wiki page:

    What control are you using for the text editor? WinForms? WPF? (just curious)

    In the screenshot for the File Structure window (http://confluence.jetbrains.net/download/attachments/39781573/file_structure.png), it looks like the members are shown in random order. Is that because dotPeek downloaded the actual Microsoft source from a source server, or does dotPeek actually show the methods in random order? (Or is that screenshot from an early build, and you intend to fix it?)

    Will dotPeek support ReSharper’s fancier navigation features like “Highlight Usages in File” and “Inspect Value Origin”? There are times that “Inspect Value Origin” would be very, very handy with MS assemblies, and I use “Highlight Usages in File” *all the time*.

  7. @W0ut
    Thanks for the pingback!

    @Roland
    Jonathan is right: decompiling is available in ReSharper 6.

    @Joe
    Great to hear you’re liking it.
    Text editor is WPF-based.
    File Structure orders members as they’re displayed in the source code view area, which should match the order in the original assembly, and I’m assuming that in this case, it worked this way,too.
    “Highlight usages in file” is already available in dotPeek (Navigate > Highlight usages in file). As to value tracking, yes, we’d like to make it available in dotPeek as well. In ReSharper 6 EAP, “Inspect Value Origin” should already be working on decompiled code.

  8. Joe White says:

    @Jura: That’s unfortunate. If they’re shown in the same order as the original source code, then it’s going to be hard to explore. It would basically be up to me to guess at Microsoft’s coding standards — without benefit of comments or #regions — in order to find what I’m looking for. Sure, if I knew the name, I could navigate, but I do a lot of browsing in Reflector, trying to get a sense of what all the class does. It sounds like dotPeek has no good way to just look at the code and get an overview of, for example, what all the fields are, or all the properties, or all the constructors. (I could get a list of constructors with Go To File Member > “new”, of course; but at that point I’m no longer reading the code, I’m actively running queries on it, which is a significantly different mindset.)

    I’m not fond of Reflector’s “One Tree to rule them all”, but one thing it does right is to put things in a predictable order to make visual scanning easy. Want to see all the properties? Here they are, in alphabetical order. Pity I can’t further restrict it to “public only” when I want, but it’s still better than having to manually pick all the properties out of an unordered (as far as I can tell) list. I can get something roughly similar in Visual Studio by dropping down the list of members in the current type, although that just alphabetizes everything, and doesn’t keep properties together. Go To File Member can show me a handful of sorted items at a time, but it’s not designed for browsing. Perhaps I could show the Go To File Member results in Find Results, and have that be a replacement for what Visual Studio does. It’d be a shame to lose Reflector’s sort-by-member-type, though.

    Any chance dotPeek will support ReSharper’s code formatting, including the customizable template for how to reorder members? If it had the option to reformat the generated code, then it would suddenly become much more awesome than Reflector for code browsing (because I *could* choose to separate out the public properties from the nonpublic, for example).

  9. Darren Kopp says:

    Awesome! Congratulations and thanks for stepping up to the plate to provide a great alternative to Reflector. The name is kind of ‘meh’ though.

  10. Abc says:

    How long this tools will stay free?

  11. @Abc
    You mean dotPeek? We’re not going to charge for it in any foreseeable future.

  12. Harry Kraak says:

    Jura,

    how do I integrate this toll in Resharper 5.1?

  13. @Harry
    dotPeek doesn’t integrate with anything – it’s a standalone tool.
    If your intention is, say, to navigate from source code in Visual Studio to decompiled code, then no, you can’t do this with ReSharper 5.x.
    However, ReSharper 6 will have decompiling functionality out of the box.
    Again, it’s not like ReSharper 6 will integrate with dotPeek – these two products just share the same decompiling core.

  14. I would just like to say THANK YOU for providing this tool after RedGate decided to charge for it!
    I’m also hopeful that it won’t REQUIRE a #@%& update. (it was a bad decision when Lutz was releasing, it was bad when RedGate continued it)

    Also… another THANK YOU for allowing assemblies to be loaded from the GAC without having to copy the files out first!

  15. @Scott
    Thanks, our pleasure!
    We’re not intending to come up with a forced upgrade but we’ll definitely implement some kind of upgrade notifications.

  16. Joe White says:

    I finally downloaded dotPeek, and I like what I see. The first class I jumped to was pretty slow, but after that it’s been fairly nice.

    However, it only seems to show assemblies from the .NET Framework v4.0 — and it doesn’t even seem to support other framework versions. If I do File > Open from GAC and search for “mscorlib”, I just get two copies of the 4.0.0.0 version. It doesn’t show v2.0, nor does it show Silverlight.

    Will dotPeek support other framework versions by the time it ships?

  17. Kamyar says:

    Thank you! After RedGate made reflector commercial (which was not what they promised!), hopefully, people still have a free of charge option.

  18. Erik says:

    Seems great. However, it doesn’t pick up references to other assemblies which are already loaded (except for the framework) when loading a new assembly. I also can’t find an option to manually resolve an unresolved reference.

  19. I find myself really missing Ctrl-Click ability in the editor. Any chance we can get that added?

  20. Scott says:

    Take that Red Gate!!!!

  21. Jim says:

    Thanks so much for this great product. I am a user of Resharper and I appreciate you guys making this utility free! Thanks and great job!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>