Decompiler sind oftmals die letzte Chance einen Fehler im Quelllcode einer Drittanbieter-Komponente ausfindig zu machen oder einen schnellen Blick unter die Haube zu werfen. Jahrelang gab es im .Net-Umfeld nur eine herausragende Komponente – Den Lutz Roeder .Net Reflector!

Da der .Net Reflector mittlerweile nicht mehr kostenlos verfügbar ist, kommt dieses kleine, aber überaus mächtige Tool leider für viele Entwickler nicht mehr in Frage. Auch ich habe mich auf die Suche nach eine adäquaten Alternative gemacht und bin auf ein Tool gestoßen, das meine Erwartungen gänzlich erfüllt. Das besagte Tool heißt “dotPeek” und wurde von der Firma JetBrains entwickelt. dotPeek ist frei verfügbar und kann unter http://www.jetbrains.com/decompiler/ heruntergeladen werden.

Ich möchte nachfolgend die wichtigsten Funktionen dieser Applikation näher erläutern.

Dekompilierung und Bereitstellung von Assembly-Informationen

Analog zum .Net Reflector können auch in dotPeek Assemblies geladen und durchforstet werden. Der Aufbau ist hierbei an den des .Net Reflectors angelehnt. Im linken Bereich befindet sich eine Navigationsstruktur, mit der durch die geladenen Assemblies und deren Inhalte navigiert werden kann. Im rechten Bereich der Applikation werden Details und der dekompilierte Quelltext der C#-Konstrukte dargestellt. 

image

 

Suche

Oftmals kennt ein Entwickler nur den Namen einer Klasse und möchte diese über die Suchfunktionalität finden. Diese Funktionalität ist über das Hauptmenü erreichbar.

image

dotPeek findet die gesuchte Klasse in allen geladenen Assemblies; aber auch in nicht geladenen .Net –Bibliotheken (DLLs) aus dem Global Assembly Cache (GAC).

image

 

Inhaltgesteuerte Navigation

Ähnlich wie in Visual Studio kann im Quelltext zur Implementierung oder zur Deklaration eines C#-Konstruktes navigiert werden. Diese Funktionalitäten werden dem Anwender über ein Kontext-Menü bereitgestellt.

image

oder

image

Zudem wird das Suchen anhand der Verwendung bzw. der Vererbung unterstützt. Über das Kontextmenü wird die Verwendung eines Konstrukts ausfindig gemacht und in Form eines Auswahldialoges dem Anwender präsentiert.

image

image

Die Ergebnisse der Verwendungs-Suche werden in einem separaten Fenster angezeigt, wenn man die Funktionalität über das Hauptmenü startet. Via Kontextmenü öffnet sich das besagte Auswahldialogfenster.

image

 

Assembly-Suche

Es besteht in dotPeek zudem die Möglichkeit, eine Assembly anhand des Namens zu suchen. Dazu gibt der Anwender den Assembly-Dateinamen oder einen Teil davon ein und erhält umgehend (auto suggest) eine Ergebnisliste.

image

image

Alles in allem macht dotPeek einen sehr stabilen und performanten Eindruck und steht dem .Net Reflector in nichts nach. Ich bin mit dem Tool absolut zufrieden und trauere dem .Net-Reflector mittlerweile nicht mehr nach.

Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.