Einblick in C#-Code mit JustAssembly

Ein neues Tool von Telerik gibt Entwicklern Einblick in eigene und fremde Assemblies. JustAssembly kann dabei unterschiedliche Versionen der Builds vergleichen.

In Pocket speichern vorlesen Druckansicht
Einblick in C#-Code mit JustAssembly
Lesezeit: 7 Min.
Von
  • Tam Hanna
Inhaltsverzeichnis

Teleriks JustAssembly nutzt den hauseigenen quelloffenen .NET-Disassembler JustDecompile für ein Werkzeug, das an ClassyShark von Boris Farber erinnert, das Android-Assemblies aufschlüsselt. Der wichtigste Unterschied ist neben der unterschiedlichen Zielplattform die Ausrichtung: ClassyShark ist auf die Analyse einzelner Programme spezialisiert, während JustAssembly seine Stärke im Vergleich des Codes offenbart.

Bei der Installation von JustAssembly über den Telerik Installer empfiehlt es sich, JustDecompile ebenfalls herunterzuladen. Die Nutzung setzt ein Telerik-Konto voraus. Nach dem Start blendet die Applikation das in Abbildung 1 gezeigte Fenster ein, in dem Entwickler die zu vergleichenden Ordner oder Assemblies auswählen dürfen.

JustAssembly kann auch komplette Verzeichnisse vergleichen (Abb. 1).

Als erstes Beispiel dient der Vergleich zweier Versionen einer Applikation – in der ursprünglichen und einer reduzierten Fassung. Dazu müssen Entwickler zunächst die Buttons in den Feldern Old und New klicken und die passenden .exe-Dateien auswählen.

Die Zuweisung der Dateien in die Felder darf nicht zufällig erfolgen: Beim Vertauschen von old und new schlagen Vergleiche fehl. Nach dem Anklicken von Load beginnt JustAssembly mit dem Disassemblieren durch den Einsatz von JustDecompile: Das Resultat ist das in Abbildung 2 gezeigte Fenster, das eine Komplettübersicht des Inhalts der beiden Binaries bietet.

JustAssembly zeigt von Haus aus die Gesamtstruktur des Projekts an (Abb. 2).

Durch Deaktivieren der Checkbox Show Unmodified zeigt das Tool nur die geänderten Elemente an. Im Beispiel führt das zu einer stark reduzierten Baumansicht, die sich durch Anklicken der Plussymbole neben den einzelnen Elementen mehr oder weniger nach Belieben erweitern lässt. Doppeltes Anklicken eines Eintrags öffnet das Element in der in Abbildung 3 gezeigten Detailansicht, die einige interessante Komfortfeatures mitbringt.

Die Detailansicht zeigt, dass die Methode reduziert wurde (Abb. 3).

JustAssembly zeigt auf der linken Seite eine grafische Übersicht der gesamten Datei. Farbig hinterlegte Bereiche sind Änderungen, wobei die zum Öffnen verwendete Anpassung zusätzlich hervorgehoben erscheint. Freilich muss nicht jede Modifikation vom Entwickler stammen. Die diversen in Visual Studio enthaltenen Codegeneratoren ändern gelegentlich eigentätig die automatisch erstellten Event-Handler ohne dessen Zutun.

Zumindest in der Theorie ist JustAssembly nicht auf die Arbeit mit Code beschränkt: Das Tool durchsucht zudem die in der Projektdatei enthaltenen Ressourcen auf Änderungen. Der Testlauf dazu erfordert erneut eine Ergänzung der Basis-Assembly um eine Ressource. Beim nächsten Diff-Lauf blendet das Programm unten einen Ressourcenordner ein, der Vergleiche anhand der beschriebenen Schemas erlaubt. Leider ließ er sich beim Testlauf für diesen Artikel nicht ausklappen, da das Feature noch nicht vollständig fertiggestellt war. Die Ansicht zeigen die Abbildungen 4 und 5, die zudem ein interessantes Extra offenbaren: Die blau unterlegten Bereiche weisen auf Elemente hin, die in beiden Assemblies gleichermaßen vorhanden sind.

Die farbige Hervorhebung informiert über den Änderungszustand: Grün bedeutet, dass das Element neu ist (Abb. 4).

Rot zeigt dagegen an, dass das Element entfernt wurde (Abb. 5).