2010-08-29 30 views
10

Gibt es eine Art Anwendung, die den Quellcode analysiert und alle Verbindungen zwischen den Funktionen grafisch darstellt?C# - Anwendung, um alle Abhängigkeiten zwischen Funktionen anzuzeigen?

Ich brauche es für einen Legacy-Code arbeite ich an - es ist riesig, funktional und schlecht geschrieben ... :(

+1

können Sie wechseln zu Visual Studio 2010? Dann verwenden Sie einfach die Build-Tools in diesem –

+0

@Rune FS: +1. Ich halte dies für eine legitime Antwort. Nicht sicher, ob andere mit mir übereinstimmen würden oder nicht. Vielleicht möchten Sie erwähnen, wo diese Tools in VS zu finden sind. –

+1

möglich Duplikat von [C# Anruf Graph Generation Tool] (http://stackoverflow.com/questions/793685/c-call-graph-generation-tool) – Timwi

Antwort

2

NDepend kann calling graph gut in der Tat, wie vorgeschlagen madgnome verwalten. Lass mich ein bisschen entwickeln. Zuerst können Sie mit einem CQL Abfrage für den Anruf Graph fragen, zweite können Sie das Abfrageergebnis der Abhängigkeitsgraph oder Abhängigkeitsmatrix exportieren.

Konkret fragen wir nach Callern Methoden der Klasse der Klasse AppDomain in NUnit 2.4.8 (es könnte eine Methode, ein Feld, ein Namespace ... was auch immer). Dieses Menü kann dank des NDepend VS-Add-Ins auch in Visual Studio angezeigt werden.

alt text

Dann wird eine CQL Abfrage für uns erzeugt wird, können wir sehen, dass 30 Methoden in der Aufrufgraphen abgestimmt sind. Wir haben die Möglichkeit, iese Reihe von Methoden oa grafischen Diagramm zu exportieren ...

alt text

... und hier ist die outputed Graph

alt text (here eine große Version Bild von dieser Grafik sehen)

+0

Danke für die ausführliche Erklärung! – Yossale

7

NDepend genau das tun und andere Dinge (Code-Metriken ...)

0

.Net Reflector ist recht ordentlich - Ich habe es ein paar Mal verwendet, um dieses für immer Art von Informationen. Es gibt eine Reihe von Addins, von denen mindestens eines Abhängigkeitsdiagramme erzeugt.

Auch in VS.Net 2008 oder höher, mit der rechten klicken Sie auf ‚Alle Verweise finden‘ kann nützlich sein.

0

ReSharper bietet Funktionen, mit denen Sie Graphen von Methoden sehen können, die Ihre Methode aufrufen und umgekehrt. (Ausgehende und eingehende Anrufe)

Das ist eine neue Funktion namens „Call Tracking

Verwandte Themen