dotPeek: free .NET decompiler from JetBrains, the makers of ReSharper, dotTrace, and dotCover for .NET developers, as well as a family of IDEs for Java, Ruby, Python, PHP, and other languages, plus team development tools: TeamCity and YouTrack.

dotPeek goes public for the first time on Tuesday, May 10, as JetBrains open an Early Access Program that implies regular publishing of pre-release builds.

JetBrains are also about to include decompiling functionality into their forthcoming release of ReSharper 6. In fact, decompiling has been announced as part of ReSharper 6 back in February 2011, and available in ReSharper 6 pre-release nightly builds since then.

General features

Opening and browsing assemblies

dotPeek decompiles any .NET assemblies and presents them as C# code. Both libraries (.dll) and applications (.exe) can be opened with File > Open assembly.
In addition, assemblies from GlobaL Assembly Cache can be opened via File > Open from GAC. One thing to note about the Open from GAC dialog is that you can batch-select assembly items there, and you can also filter out assemblies by entering their CamelHumps - the capitals that different parts of assembly names start with. for example, to find all assemblies with names containing Microsoft.VisualStudio.Modeling in the list of GAC assemblies, you can type mvsm:

CamelHumps support is a significant concept that also spans multiple navigation feautres of dotPeek that are highlighted below.
dotPeek provides an assembly explorer to traverse the list of opened assemblies. Expanding an assembly node lists namespaces within the assembly that can be further expanded to types and type members, as well as assembly references.

Clicking a reference loads the referenced assembly, if immediately available. Clicking a type or type member displays decompiled code in the source code view area.

Viewing the source code

Source code that dotPeek decompiles is presented as C#. The source code view area has the look-and-feel of editor tabs in Visual Studio, with line numbers, options for word wrap and outlining, white space marks, and tabs to open different types in.
Code syntax can be highlighted ReSharper-style,

Code Highlighting. Syntax highlighting allowing for easy viewing.

The idea behind dotPeek is to bring ReSharper experience to browsing external assemblies and make this available to everyone. That essentially means that the main thing that distinguishes dotPeek from other decompiler around is that the majority of navigation features from ReSharper are available in dotPeek as well. Let's take a closer look at those:

Navigation features

Other features