dotPeek - Free .NET Decompiler is Available for Early Access
May 11th, 2011 by Jura GorohovskyThe 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.
Tags: Decompiler



May 11th, 2011 at 10:05 pm
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/
May 11th, 2011 at 11:01 pm
This is awesome, thanks!
May 11th, 2011 at 11:17 pm
Can’t wait to try it out! Downloading immediately
May 12th, 2011 at 1:11 am
Will this be integrated into R# 6.0 ? Or as a plugin ?
May 12th, 2011 at 2:29 am
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.
May 12th, 2011 at 2:55 am
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*.
May 12th, 2011 at 1:08 pm
@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.
May 12th, 2011 at 3:01 pm
@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).
May 12th, 2011 at 6:34 pm
Awesome! Congratulations and thanks for stepping up to the plate to provide a great alternative to Reflector. The name is kind of ‘meh’ though.
May 18th, 2011 at 10:30 pm
How long this tools will stay free?
May 18th, 2011 at 11:34 pm
@Abc
You mean dotPeek? We’re not going to charge for it in any foreseeable future.
May 19th, 2011 at 9:48 am
Jura,
how do I integrate this toll in Resharper 5.1?
May 19th, 2011 at 4:27 pm
@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.
May 19th, 2011 at 7:09 pm
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!
May 19th, 2011 at 7:50 pm
@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.
May 20th, 2011 at 6:45 pm
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?
May 23rd, 2011 at 10:55 am
Thank you! After RedGate made reflector commercial (which was not what they promised!), hopefully, people still have a free of charge option.
May 30th, 2011 at 5:04 pm
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.
June 3rd, 2011 at 12:12 am
I find myself really missing Ctrl-Click ability in the editor. Any chance we can get that added?
June 19th, 2011 at 2:58 am
Take that Red Gate!!!!
May 11th, 2012 at 5:08 pm
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!
May 11th, 2012 at 5:32 pm
Thanks Jim!