Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie Abhängigkeiten in Ihrem Code mit Codezuordnungen visualisieren.
Was sind Codemaps?
In Visual Studio können Sie mithilfe von Codezuordnungen schneller erkennen, wie der Programmcode zusammenpasst, ohne Dateien und Codezeilen zu lesen. Mit diesen Karten können Sie die Organisation und Beziehungen in Ihrem Code anzeigen, einschließlich ihrer Struktur und ihrer Abhängigkeiten, wie sie aktualisiert werden, und die Kosten der vorgeschlagenen Änderungen schätzen.
Sie können Abhängigkeiten für Code in diesen Sprachen zuordnen:
Visual C# oder Visual Basic in einer Lösung oder Assemblys (.dll oder .exe)
Systemeigener oder verwalteter C- oder C++-Code in Visual C++-Projekten, Headerdateien (H oder
#include) oder BinärdateienX++-Projekte und Assemblys aus .NET-Modulen für Microsoft Dynamics AX
Note
Für Andere Projekte als C# oder Visual Basic gibt es weniger Optionen zum Starten einer Codezuordnung oder zum Hinzufügen von Elementen zu einer vorhandenen Codezuordnung. Sie können beispielsweise nicht mit der rechten Maustaste auf ein Objekt im Text-Editor eines C++-Projekts klicken und es einer Codezuordnung hinzufügen. Sie können jedoch einzelne Codeelemente oder Dateien aus dem Projektmappen-Explorer, der Klassenansicht und dem Objektkatalog ziehen und ablegen.
Voraussetzungen
Um eine Codezuordnung in Visual Studio zu erstellen, installieren Sie zuerst die Komponenten Code Map und Live Dependency Validation
Zum Erstellen und Bearbeiten von Codezuordnungen benötigen Sie Visual Studio Enterprise Edition. In visual Studio Community- und Professional-Editionen können Sie jedoch Diagramme öffnen, die in der Enterprise-Edition generiert wurden, aber sie können nicht bearbeitet werden.
Note
Bevor Sie Karten freigeben, die in Visual Studio Enterprise für andere Personen erstellt wurden, die Visual Studio Professional verwenden, stellen Sie sicher, dass alle Elemente auf der Karte (z. B. ausgeblendete Elemente, erweiterte Gruppen und gruppenübergreifende Verknüpfungen) sichtbar sind.
Hinzufügen einer Codezuordnung
Sie können eine leere Codezuordnung erstellen und Elemente darauf ziehen, einschließlich Assemblyverweise, Dateien und Ordnern, oder Sie können eine Codezuordnung für alle oder einen Teil Ihrer Lösung generieren.
Fügen Sie eine leere Codezuordnung hinzu:
Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Projektmappenknoten auf oberster Ebene. Wählen Sie "Neues Element>" aus.
Wählen Sie im Dialogfeld " Neues Element hinzufügen " unter "Installiert" die Kategorie "Allgemein " aus.
Wählen Sie die Vorlage "Gerichtetes Graph-Dokument(.dgml)" und dann "Hinzufügen" aus.
Tip
Diese Vorlage wird möglicherweise nicht alphabetisch angezeigt. Scrollen Sie daher nach unten zum Ende der Vorlagenliste, wenn sie nicht angezeigt wird.
Eine leere Karte wird im Ordner "Lösungselemente " Ihrer Lösung angezeigt.
Ebenso können Sie eine neue Codezuordnungsdatei erstellen, ohne sie ihrer Lösung hinzuzufügen, indem Sie "Architektur>Neue Codezuordnung " oder "Datei>neue>Datei" auswählen.
Erfahren Sie mehr:
Erstellen Sie eine Codekarte für Ihre Lösung
So zeigen Sie alle Abhängigkeiten in Ihrer Lösung an:
Wählen Sie auf der Menüleiste "Architektur>Codezuordnung für die Lösung generieren" aus. Wenn sich Ihr Code seit der letzten Erstellung nicht geändert hat, können Sie stattdessen "Architecture">"Code-Karten für Lösung ohne Erstellen generieren" auswählen.
Es wird eine Karte erstellt, die die Baugruppen auf oberster Ebene und aggregierte Verknüpfungen zwischen ihnen anzeigt. Je breiter die Aggregatverbindung ist, desto mehr Abhängigkeiten stellt sie dar.
Verwenden Sie die Schaltfläche " Legende " auf der Codezuordnungssymbolleiste, um die Liste der Projekttypsymbole (z. B. Test, Web und Telefonprojekt), Codeelemente (z. B. Klassen, Methoden und Eigenschaften) und Beziehungstypen (z. B. Erbungen von, Implementierungen und Aufrufen) anzuzeigen oder auszublenden.
Diese Beispiellösung enthält Projektmappenordner (Tests und Komponenten), Testprojekte, Webprojekte und Assemblys. Standardmäßig werden alle Eindämmungsbeziehungen als Gruppen angezeigt, die Sie erweitern und reduzieren können. Die Gruppe "Externe Elemente " enthält alles außerhalb Ihrer Lösung, einschließlich Plattformabhängigkeiten. Externe Assemblys zeigen nur die Elemente an, die verwendet werden. Standardmäßig sind Systembasistypen auf der Karte ausgeblendet, um die Unübersichtlichkeit zu reduzieren.
Um näher die Details der Karte zu betrachten, erweitern Sie die Gruppen, die Projekte und Baugruppen darstellen. Sie können alles erweitern, indem Sie STRG+A drücken, um alle Knoten auszuwählen, und dann im Kontextmenü Gruppieren, Erweitern auswählen.
Dies kann jedoch für eine große Lösung nicht hilfreich sein. Bei komplexen Lösungen können Speicherbeschränkungen möglicherweise verhindern, dass Sie alle Gruppen erweitern. Wenn Sie stattdessen innerhalb eines einzelnen Knotens sehen möchten, erweitern Sie ihn. Bewegen Sie den Mauszeiger über dem Knoten, und klicken Sie dann auf den Chevron (Nach-unten-Pfeil), wenn er angezeigt wird.
Oder verwenden Sie die Tastatur, indem Sie das Element auswählen und dann die Plustaste (+) drücken. Um tiefergehende Codeebenen zu erkunden, führen Sie die gleichen Schritte für Namespaces, Typen und Member aus.
Tip
Weitere Informationen zum Arbeiten mit Codezuordnungen mithilfe von Maus, Tastatur und Toucheingabe finden Sie unter Durchsuchen und Neuanordnen von Codezuordnungen.
Um die Zuordnung zu vereinfachen und sich auf einzelne Teile zu konzentrieren, wählen Sie "Filter" auf der Codezuordnungssymbolleiste aus, und wählen Sie nur die Typen von Knoten und Links aus, an denen Sie interessiert sind. Sie können beispielsweise alle Lösungsordner- und Assemblycontainer ausblenden.
Sie können die Karte auch vereinfachen, indem Sie einzelne Gruppen und Elemente aus der Karte ausblenden oder entfernen, ohne den zugrunde liegenden Lösungscode zu beeinträchtigen.
Um die Beziehungen zwischen Elementen anzuzeigen, wählen Sie sie in der Karte aus. Die Farben der Verknüpfungen geben die Beziehungstypen an, wie im Legendenbereich dargestellt.
In diesem Beispiel sind die violetten Links Aufrufe, die gepunkteten Links sind Verweise, und die hellblauen Links sind Feldzugriff. Grüne Verknüpfungen können Vererbung sein, oder sie können aggregierte Verknüpfungen sein, die mehr als eine Art von Beziehung (oder Kategorie) angeben.
Tip
Wenn ein grüner Link angezeigt wird, bedeutet dies möglicherweise nicht, dass es nur eine Vererbungsbeziehung gibt. Es kann auch Methodenaufrufe geben, aber diese werden von der Vererbungsbeziehung ausgeblendet. Um bestimmte Arten von Links anzuzeigen, verwenden Sie die Kontrollkästchen im Bereich "Filter ", um die Typen auszublenden, die Sie nicht interessieren.
Um mehr Informationen über ein Element oder einen Link zu erhalten, bewegen Sie den Mauszeiger darauf, bis ein Tooltip angezeigt wird. Dies zeigt Details eines Codeelements oder der Kategorien an, die ein Link darstellt.
Wenn Sie Elemente und Abhängigkeiten untersuchen möchten, die durch einen Aggregatlink dargestellt werden, wählen Sie zuerst den Link aus, und öffnen Sie dann das Zugehörige Kontextmenü. Wählen Sie "Beitragende Links anzeigen" (oder "Beitragende Links auf neuer Codekarte anzeigen"). Dadurch werden die Gruppen an beiden Enden des Links erweitert und nur die Elemente und Abhängigkeiten angezeigt, die an dem Link teilnehmen.
Um sich auf bestimmte Teile der Karte zu konzentrieren, können Sie weiterhin Elemente entfernen, an denen Sie nicht interessiert sind. Um beispielsweise die Klassen- und Memberansicht detaillierter zu betrachten, filtern Sie einfach alle Namespace-Knoten im Filter-Bereich.
Eine weitere Möglichkeit, sich auf eine komplexe Lösungszuordnung zu konzentrieren, besteht darin, eine neue Karte zu generieren, die ausgewählte Elemente aus einer vorhandenen Karte enthält. Halten Sie STRG gedrückt, während Sie die Elemente auswählen, auf die Sie sich konzentrieren möchten, öffnen Sie das Kontextmenü, und wählen Sie "Neues Diagramm aus Auswahl" aus.
Der enthaltende Kontext wird auf die neue Karte übertragen. Blenden Sie Projektmappenordner und alle anderen Container aus, die im Bereich "Filter" nicht angezeigt werden sollen.
Erweitern Sie die Gruppen, und wählen Sie Elemente in der Karte aus, um die Beziehungen anzuzeigen.
Siehe auch:
- Codekarten durchsuchen und neu anordnen
- Anpassen von Codezuordnungen durch Bearbeiten der DGML-Dateien
- Suchen potenzieller Probleme in Ihrem Code durch Ausführen eines Analyzers
Abhängigkeiten anzeigen
Angenommen, Sie haben eine Codeüberprüfung, die in einigen Dateien mit ausstehenden Änderungen ausgeführt werden soll. Um die Abhängigkeiten in diesen Änderungen anzuzeigen, können Sie eine Codezuordnung aus diesen Dateien erstellen.
Ziehen Sie Elemente aus dem Projektmappen-Explorer, der Klassenansicht oder dem Objektkatalog in eine neue oder vorhandene Codekarte. Um die übergeordnete Hierarchie für Ihre Elemente einzuschließen, halten Sie die STRG-TASTE gedrückt, während Sie Elemente ziehen, oder verwenden Sie die Schaltfläche " Übergeordnete Elemente einschließen " auf der Codezuordnungssymbolleiste, um die Standardaktion anzugeben. Sie können Assemblydateien auch von außerhalb von Visual Studio ziehen, z. B. aus Dem Windows-Explorer.
Note
Wenn Sie Elemente aus einem Projekt hinzufügen, das für mehrere Apps freigegeben ist, z. B. Windows Phone oder Microsoft Store, werden diese Elemente mit dem derzeit aktiven App-Projekt auf der Karte angezeigt. Wenn Sie den Kontext in ein anderes App-Projekt ändern und weitere Elemente aus dem freigegebenen Projekt hinzufügen, werden diese Elemente jetzt mit dem neu aktiven App-Projekt angezeigt. Vorgänge, die Sie mit einem Element auf der Karte ausführen, gelten nur für die Elemente, die denselben Kontext aufweisen.
Die Karte zeigt die ausgewählten Elemente in ihren enthaltenen Baugruppen.
Um Elemente zu erkunden, erweitern Sie sie. Bewegen Sie den Mauszeiger über einem Element, und klicken Sie dann auf das Chevronsymbol (Pfeil nach unten), wenn es angezeigt wird.
Um alle Elemente zu erweitern, wählen Sie sie mit STRG+A aus, öffnen Sie dann das Kontextmenü für die Karte, und wählen Sie "Gruppieren>erweitern" aus. Diese Option ist jedoch nicht verfügbar, wenn durch das Erweitern aller Gruppen eine nicht verwendbare Zuordnung oder Speicherprobleme verursacht werden.
Erweitern Sie die von Ihnen interessierten Elemente bei Bedarf weiter, bis hin zur Klassen- und Mitgliederebene.
Um Mitglieder anzuzeigen, die sich im Code befinden, aber nicht auf der Karte angezeigt werden, klicken Sie auf das Symbol Refetch Children
in der oberen linken Ecke einer Gruppe.Wenn Sie weitere Elemente anzeigen möchten, die mit denen auf der Karte zusammenhängen, wählen Sie ein Element aus, und wählen Sie dann auf der Codezuordnungssymbolleiste den Typ der verwandten Elemente aus, die der Karte hinzugefügt werden sollen. Wählen Sie alternativ ein oder mehrere Elemente aus, öffnen Sie das Kontextmenü, und wählen Sie dann die Option " Anzeigen " für den Typ der verwandten Elemente aus, die der Karte hinzugefügt werden sollen. Beispiel:
Wählen Sie für eine Assembly Folgendes aus:
Option Description Assemblies anzeigen, die dies referenzieren Fügen Sie Assemblys hinzu, auf die diese Assembly verweist. Externe Assemblys werden in der Gruppe "Externe Komponenten " angezeigt. Assemblys anzeigen, die auf diese verweisen Fügen Sie Assemblys in der Lösung hinzu, die auf diese Assembly verweisen. Wählen Sie für einen Namespace die Option "Enthaltende Assembly anzeigen" aus, wenn sie nicht sichtbar ist.
Wählen Sie für eine Klasse oder Schnittstelle Folgendes aus:
Option Description Basistypen anzeigen Fügen Sie für eine Klasse die Basisklasse und die implementierten Schnittstellen hinzu.
Fügen Sie für eine Schnittstelle die Basisschnittstellen hinzu.Abgeleitete Typen anzeigen Fügen Sie für eine Klasse die abgeleiteten Klassen hinzu.
Fügen Sie für eine Schnittstelle die abgeleiteten Schnittstellen und die implementierenden Klassen oder Strukturen hinzu.Typen dieser Verweise anzeigen Fügen Sie alle Klassen und ihre Member hinzu, die von dieser Klasse verwendet werden. Typen anzeigen, die darauf verweisen Fügen Sie alle Klassen und ihre Member hinzu, die diese Klasse verwenden. Namespace anzeigen, der enthalten ist Fügen Sie den übergeordneten Namespace hinzu. Enthaltenden Namespace und Assembly anzeigen Fügen Sie die übergeordnete Containerhierarchie hinzu. Alle Basistypen anzeigen Fügen Sie die Basisklasse oder Schnittstellenhierarchie rekursiv hinzu. Alle abgeleiteten Typen anzeigen Fügen Sie für eine Klasse alle abgeleiteten Klassen rekursiv hinzu.
Fügen Sie für eine Schnittstelle alle abgeleiteten Schnittstellen sowie implementierende Klassen oder Strukturen rekursiv hinzu.Wählen Sie für eine Methode Folgendes aus:
Option Description Methoden anzeigen, die dieser Aufruf verwendet Fügen Sie Methoden hinzu, die von dieser Methode aufgerufen werden. Felder anzeigen, die auf diese Verweise verweisen Fügen Sie Felder hinzu, auf die diese Methode verweist. Typ zeigen, der Elemente enthält Fügen Sie den übergeordneten Typ hinzu. Den enthaltenden Typ, Namespace und Assembly anzeigen Fügen Sie die übergeordnete Containerhierarchie hinzu. Überschriebene Methoden anzeigen Fügen Sie für eine Methode, die andere Methoden außer Kraft setzt oder die Methode einer Schnittstelle implementiert, alle abstrakten oder virtuellen Methoden in Basisklassen hinzu, die überschrieben werden, und ggf. die implementierte Methode der Schnittstelle. Wählen Sie für ein Feld oder eine Eigenschaft Folgendes aus:
Option Description Typ des Inhalts anzeigen Fügen Sie den übergeordneten Typ hinzu. Anzeige des enthaltenen Typs, Namensraums und der Assembly Fügen Sie die übergeordnete Containerhierarchie hinzu.
Die Karte zeigt die Beziehungen an. In diesem Beispiel zeigt die Karte die Methoden an, die von der
FindMethode und deren Position in der Lösung oder extern aufgerufen werden.Um die Zuordnung zu vereinfachen und sich auf einzelne Teile zu konzentrieren, wählen Sie "Filter" auf der Codezuordnungssymbolleiste aus, und wählen Sie nur die Typen von Knoten und Links aus, an denen Sie interessiert sind. Deaktivieren Sie beispielsweise die Anzeige von Lösungsordnern, Assemblys und Namespaces.
Verwandte Inhalte
- Codekarten freigeben
- Erstellen von Codezuordnungen für C++
- Verbessern der Codezuordnungsleistung
- Verwenden von Codezuordnungen zum Debuggen Ihrer Anwendungen
- Zuordnen von Methoden im Aufrufstapel beim Debuggen
- Finden Sie potenzielle Probleme mithilfe von Codekarten-Analysatoren
- Codekarten durchsuchen und neu anordnen
- Anpassen von Codezuordnungen durch Bearbeiten der DGML-Dateien