Gewusst wie: Untersuchen von Code mit Abhängigkeitsdiagrammen
Mithilfe von Abhängigkeitsdiagrammen können Sie sich in Visual Studio Ultimate eingehender mit der Organisation und den Beziehungen in vorhandenem Code vertraut machen. In diesen Diagrammen werden Strukturen als Knoten und Beziehungen als Links dargestellt, die als Pfeile zwischen Knoten angezeigt werden. Informationen zum Generieren eines Diagramms finden Sie unter Gewusst wie: Generieren von Abhängigkeitsdiagrammen für .NET-Code.
Im folgenden Beispiel wird die Darstellung von Strukturen und Beziehungen in einem Diagramm als Knoten bzw. Links veranschaulicht:
Knoten und Links in einem Diagramm
Im folgenden Beispiel wird gezeigt, wie Strukturen und Kapselungsbeziehungen im Diagramm als Gruppen dargestellt werden:
Gruppierte Knoten in einem Diagramm
Warnung
In einem Diagramm werden nur Abhängigkeiten für Code angezeigt, der erfolgreich erstellt wird. Komponenten und ihr Inhalt werden nicht angezeigt, wenn für diese Komponenten Buildfehler auftreten. Vergewissern Sie sich deshalb stets, dass eine Komponente tatsächlich erstellt wird und Abhängigkeiten besitzt, bevor Sie auf Grundlage des Diagramms architekturbezogene Entscheidungen treffen.
In diesem Thema
Untersuchen von Abhängigkeiten im Diagramm
Suchen von komplexen Bereichen
Untersuchen von Abhängigkeiten im Diagramm
Abhängigkeiten werden im Diagramm durch die folgenden Arten von Links dargestellt:
Ein einzelner Link stellt eine einzelne Abhängigkeit zwischen zwei Knoten dar.
Ein Aggregatlink stellt alle gleichgerichteten Abhängigkeiten zwischen zwei Gruppen dar.
Bei einem gruppenübergreifenden Link handelt es sich lediglich um einen Link zwischen zwei Knoten, der sich über verschiedene Gruppen erstreckt.
Tipp
Gruppenübergreifende Links werden im Diagramm standardmäßig nur für ausgewählte Knoten angezeigt. Sollen diese Links dauerhaft angezeigt werden, klicken Sie auf der Diagrammsymbolleiste auf die Dropdownliste neben Ändern, wie gruppenübergreifende Links im Diagramm gerendert werden und anschließend auf Alle gruppenübergreifenden Links anzeigen. Wird die Diagrammsymbolleiste nicht angezeigt, zeigen Sie im Menü Ansicht auf Symbolleisten, und klicken Sie auf Gerichtetes Diagramm.
Verwenden Sie die folgenden Aufgaben, um die für Sie interessanten Abhängigkeiten zu untersuchen:
Zweck |
Schritte |
---|---|
Anzeigen einer Liste mit Abhängigkeiten, die von einem Link dargestellt werden |
|
Suchen eines Knotens anhand des Namens Dient zum Durchsuchen mehrerer Ebenen gruppierter Knoten. |
|
Suchen der Quelle oder des Ziels eines Links Verwenden Sie diese Methode, wenn die Quelle oder das Ziel eines bestimmten Links aufgrund einer großen Anzahl von Links nicht problemlos ersichtlich ist. |
|
Knotenübergreifendes Untersuchen der Abhängigkeiten in unterschiedlichen Gruppen |
|
Untersuchen der Abhängigkeiten hinter einem Aggregatlink
Hinweis
Dies funktioniert nur, wenn jedes Ende des Links mit einer Assembly verbunden ist.Sind keine Assemblyinformationen vorhanden, kann kein Diagramm erstellt werden.
|
|
Suchen von komplexen Bereichen
Mithilfe eines Abhängigkeitsdiagramms können Sie Codebereiche mit möglichem Optimierungsbedarf ermitteln. Ein wohlgeformtes Abhängigkeitsdiagramm enthält nur eine sehr geringe Anzahl von Abhängigkeiten. Sie haben unter anderem folgende Möglichkeiten:
Suchen von Code mit Schleifen oder Ringabhängigkeiten
Untersuchen Sie diese Bereiche, um zu prüfen, ob Sie sie vereinfachen können. Überlegen Sie, ob sich diese Ringabhängigkeiten auflösen lassen.
Suchen von Code mit zu vielen Abhängigkeiten
Untersuchen Sie diese Bereiche, um zu prüfen, ob zu viele Funktionen ausgeführt werden, oder um die Auswirkungen zu ermitteln, die sich durch eine Änderung dieser Bereiche ergeben. Überlegen Sie, ob sich diese Bereiche klarer definieren lassen oder ob Code, von dem ähnliche Funktionen ausgeführt werden, zusammengeführt werden kann, um das Verwalten, Ändern, Testen und Wiederverwenden von Code zu vereinfachen.
Suchen von Code ohne Abhängigkeiten
Untersuchen Sie diese Bereiche, um zu prüfen, ob sie benötigt werden oder ob der Code entfernt werden kann.
In den Diagrammen können bestimmte Analyzer ausgeführt werden, um Sie bei diesen Aufgaben unterstützen. Analyzer werden nach dem Anwenden weiter ausgeführt. Bei einer Änderung des Diagramms wird das aktualisierte Diagramm automatisch von allen angewendeten Analyzern neu verarbeitet. Klicken Sie zum Beenden eines Analyzers im Feld Legende mit der rechten Maustaste auf den Analyzer, und klicken Sie anschließend auf Löschen.
Tipp
Bei einem sehr großen Diagramm könnte das Ausführen eines Analyzers eine Ausnahme bezüglich nicht ausreichendem Arbeitsspeicher verursachen. Wenn dies auftritt, bearbeiten Sie das Diagramm, um den Umfang zu reduzieren oder ein kleineres Diagramm zu generieren, und führen Sie dann den Analyzer aus.
So suchen Sie komplexe Bereiche im Code
Stellen Sie sicher, dass das Diagrammlayout auf Strukturlayout oder Clusterschnelllayout festgelegt ist.
Weitere Informationen finden Sie unter Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten.
Klicken Sie mit der rechten Maustaste auf das Diagramm, zeigen Sie auf Analyzer, und klicken Sie anschließend auf eine der folgenden Optionen:
Analyzer
Zu identifizierende Knoten
Zirkelverweis
Knoten mit gegenseitigen Ringabhängigkeiten
HinweisRingabhängigkeiten in der Gruppe Generika werden beim Erweitern der Gruppe nicht im Diagramm angezeigt.Suchen von Hubs
Knoten in den obersten 25 Prozent der Knoten mit hoher Verbindungsanzahl
So wählen Sie diese Knoten im Diagramm aus und blenden alle anderen aus
Klicken Sie mit der rechten Maustaste auf das Diagramm, und klicken Sie anschließend auf Erweiterte Auswahl anzeigen.
Erweitern Sie im Feld Auswahl zunächst Eigenschaften und anschließend Hub.
Klicken Sie unter Hub auf True.
Die obersten 25 Prozent der Knoten mit hoher Verbindungsanzahl werden ausgewählt.
Klicken Sie mit der rechten Maustaste auf das Diagramm, zeigen Sie auf Auswahl, und klicken Sie anschließend auf Nicht markierte ausblenden.
Die nicht ausgewählten Knoten werden ausgeblendet, und neue Knoten werden als Hubs identifiziert.
Sie können auch Bereiche mit hoher Abhängigkeitsdichte identifizieren, indem Sie beim Diagrammlayout zur Abhängigkeitsmatrixansicht wechseln. Weitere Informationen zur Abhängigkeitsmatrixansicht finden Sie unter Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten.
Nicht referenzierte Knoten
Besitzen keine Verweise aus anderen Knoten.
VorsichtÜberprüfen Sie jeden dieser Fälle, bevor Sie davon ausgehen, dass der Code nicht verwendet wird.Bestimmte Abhängigkeiten wie XAML- und Laufzeitabhängigkeiten können im Code nicht statisch gefunden werden.
Siehe auch
Konzepte
Gewusst wie: Generieren von Abhängigkeitsdiagrammen für .NET-Code
Weitere Ressourcen
Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten