Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u hoe u afhankelijkheden in uw code kunt visualiseren met codetoewijzingen.
Wat zijn codemaps?
In Visual Studio kunt u met codekaarten sneller zien hoe uw programmacode bij elkaar past zonder bestanden en regels code te lezen. Met deze kaarten kunt u de organisatie en relaties in uw code zien, inclusief de structuur en de afhankelijkheden ervan, hoe u deze kunt bijwerken en de kosten van voorgestelde wijzigingen kunt schatten.
U kunt afhankelijkheden toewijzen voor code in deze talen:
Visual C# of Visual Basic in een oplossing of assemblies (.dll of .exe)
Systeemeigen of beheerde C- of C++-code in Visual C++-projecten, header-bestanden (.h of
#include) of binaire bestandenX++ projecten en assembly's gemaakt van .NET-modules voor Microsoft Dynamics AX
Opmerking
Voor andere projecten dan C# of Visual Basic zijn er minder opties voor het starten van een codeoverzicht of het toevoegen van items aan een bestaande codetoewijzing. U kunt bijvoorbeeld niet met de rechtermuisknop op een object in de teksteditor van een C++-project klikken en dit toevoegen aan een codeoverzicht. U kunt echter afzonderlijke code-elementen of bestanden slepen en neerzetten vanuit Solution Explorer, Klasseweergave en Objectbrowser.
Prerequisites
Als u een codetoewijzing wilt maken in Visual Studio, installeert u eerst de onderdelen Codetoewijzing en Live Dependency Validation
Als u codemaps wilt maken en bewerken, hebt u Visual Studio Enterprise edition nodig. In Visual Studio Community- en Professional-edities kunt u echter diagrammen openen die zijn gegenereerd in enterprise-editie, maar u kunt ze niet bewerken.
Opmerking
Voordat u kaarten deelt die zijn gemaakt in Visual Studio Enterprise met anderen die Visual Studio Professional gebruiken, moet u ervoor zorgen dat alle items op de kaart (zoals verborgen items, uitgevouwen groepen en koppelingen tussen groepen) zichtbaar zijn.
Een codeoverzicht toevoegen
U kunt een lege codetoewijzing maken en items ernaar slepen, inclusief assemblyverwijzingen, bestanden en mappen, of u kunt een codekaart genereren voor alle of een deel van uw oplossing.
Een lege codemap toevoegen:
Open in Solution Explorer het snelmenu voor het knooppunt van de oplossing op het hoogste niveau. KiesNieuw item>.
Kies in het dialoogvenster Nieuw item toevoegen onder Geïnstalleerd de categorie Algemeen .
Kies de sjabloon Directed Graph Document(.dgml) en selecteer Vervolgens Toevoegen.
Tip
Deze sjabloon wordt mogelijk niet alfabetisch weergegeven, dus schuif omlaag naar de onderkant van de sjabloonlijst als u deze niet ziet.
Er wordt een lege kaart weergegeven in de map Oplossingsitems van uw oplossing.
Op dezelfde manier kunt u een nieuw codetoewijzingsbestand maken zonder het aan uw oplossing toe te voegen door Architectuur>Nieuw Codetoewijzing of Bestand>Nieuw>Bestand te selecteren.
Meer informatie:
Een codekaart genereren voor uw oplossing
Alle afhankelijkheden in uw oplossing bekijken:
Kies in de menubalk Architectuur>Codekaart genereren voor oplossing. Als uw code niet is gewijzigd sinds de laatste keer dat u deze hebt gebouwd, kunt u in plaats daarvan Architectuur>Code Map voor Oplossing Genereren Zonder Bouwen selecteren.
Er wordt een kaart gegenereerd waarin de assembly's op het hoogste niveau en geaggregeerde koppelingen tussen deze assembly's worden weergegeven. Hoe breder de aggregatieskoppeling, hoe meer afhankelijkheden deze vertegenwoordigt.
Gebruik de knop Legenda op de werkbalk van de codekaart om de lijst met projecttypepictogrammen (zoals Test, Web en Phone Project), code-items (zoals klassen, methoden en eigenschappen) en relationele typen (zoals Overgenomen van, Implementeren en Aanroepen) weer te geven of te verbergen.
Deze voorbeeldoplossing bevat oplossingsmappen (tests en onderdelen), testprojecten, webprojecten en assembly's. Standaard worden alle insluitingsrelaties weergegeven als groepen, die u kunt uitvouwen en samenvouwen. De groep Externals bevat alles buiten uw oplossing, inclusief platformafhankelijkheden. Externe assemblages tonen alleen de items die worden gebruikt. Systeembasistypen worden standaard verborgen op de kaart om de rommel te verminderen.
Als u wilt inzoomen in de kaart, vouwt u de groepen uit die projecten en assemblages vertegenwoordigen. U kunt alles uitvouwen door op Ctrl+A te drukken om alle knooppunten te selecteren en vervolgens Groep te kiezen, Uitvouwen in het snelmenu.
Dit kan echter niet nuttig zijn voor een grote oplossing. In feite kunnen geheugenbeperkingen voor complexe oplossingen verhinderen dat u alle groepen uitbreidt. Vouw het uit als u in een afzonderlijk knooppunt wilt zien. Beweeg de muisaanwijzer bovenop het knooppunt en klik op de chevron (pijltje omlaag) wanneer deze wordt weergegeven.
Of gebruik het toetsenbord door het item te selecteren en vervolgens op de plustoets (+) te drukken. Als u diepere codeniveaus wilt verkennen, doet u hetzelfde voor naamruimten, typen en leden.
Tip
Zie Bladeren en codekaarten opnieuw ordenen voor meer informatie over het werken met codekaarten met behulp van de muis, het toetsenbord en het aanraken.
Als u de kaart wilt vereenvoudigen en zich wilt richten op afzonderlijke onderdelen, kiest u Filters op de werkbalk van de codekaart en selecteert u alleen de typen knooppunten en koppelingen waarin u geïnteresseerd bent. U kunt bijvoorbeeld alle oplossingsmap- en assemblycontainers verbergen.
U kunt de kaart ook vereenvoudigen door afzonderlijke groepen en items van de kaart te verbergen of te verwijderen, zonder dat dit van invloed is op de onderliggende oplossingscode.
Als u de relaties tussen items wilt zien, selecteert u deze op de kaart. De kleuren van de koppelingen geven de typen relaties aan, zoals wordt weergegeven in het deelvenster Legenda .
In dit voorbeeld zijn de paarse koppelingen aanroepen, de gestippelde koppelingen verwijzingen en de lichtblauwe koppelingen zijn veldtoegang. Groene koppelingen kunnen overname zijn, of ze kunnen samengevoegde koppelingen zijn die meer dan één type relatie (of categorie) aangeven.
Tip
Als u een groene koppeling ziet, betekent dit mogelijk niet dat er alleen een overnamerelatie is. Er kunnen ook methode-aanroepen zijn, maar deze worden verborgen door de erfelijkheidsrelatie. Als u specifieke typen koppelingen wilt zien, gebruikt u de selectievakjes in het deelvenster Filters om de typen te verbergen waarin u niet geïnteresseerd bent.
Als u meer informatie wilt over een item of koppeling, verplaatst u de aanwijzer erboven totdat er knopinfo wordt weergegeven. Hier ziet u details van een code-element of de categorieën die een koppeling vertegenwoordigt.
Als u items en afhankelijkheden wilt onderzoeken die worden vertegenwoordigd door een statistische koppeling, selecteert u eerst de koppeling en opent u vervolgens het bijbehorende snelmenu. Kies Bijdragende koppelingen weergeven (of Bijdragende koppelingen weergeven op nieuwe codekaart). Hiermee worden de groepen aan beide uiteinden van de koppeling uitgebreid en worden alleen die items en afhankelijkheden weergegeven die deelnemen aan de koppeling.
Als u zich wilt richten op specifieke delen van de kaart, kunt u items blijven verwijderen waarin u niet geïnteresseerd bent. Als u bijvoorbeeld wilt inzoomen op de klasse- en lidweergave, filtert u alle naamruimteknooppunten in het deelvenster Filters .
Een andere manier om u te richten op een complexe oplossingskaart is door een nieuwe kaart te genereren die geselecteerde items van een bestaande kaart bevat. Houd Ctrl ingedrukt terwijl u de items selecteert waarop u zich wilt richten, opent u het snelmenu en kiest u Nieuwe grafiek in Selectie.
De bevatde context wordt overgedragen naar de nieuwe kaart. Verberg oplossingsmappen en andere containers die u niet wilt zien met behulp van het deelvenster Filters .
Vouw de groepen uit en selecteer items in de kaart om de relaties weer te geven.
Zie ook:
- Codekaarten bladeren en opnieuw rangschikken
- Codetoewijzingen aanpassen door de DGML-bestanden te bewerken
- Potentiële problemen in uw code vinden door een analyse uit te voeren
Afhankelijkheden weergeven
Stel dat u een codebeoordeling hebt die moet worden uitgevoerd in sommige bestanden met wijzigingen die in behandeling zijn. Als u de afhankelijkheden in deze wijzigingen wilt zien, kunt u een codetoewijzing maken op basis van die bestanden.
Sleep items uit Solution Explorer, Class View of Object Browser naar een nieuwe of bestaande codekaart. Als u de bovenliggende hiërarchie voor uw items wilt opnemen, houdt u Ctrl ingedrukt terwijl u items sleept, of gebruikt u de knop Include Parents op de werkbalk van de code map om de standaardactie op te geven. U kunt ook assemblybestanden van buiten Visual Studio slepen, zoals vanuit Windows Verkenner.
Opmerking
Wanneer u items toevoegt uit een project dat wordt gedeeld in meerdere apps, zoals Windows Phone of Microsoft Store, worden deze items weergegeven op de kaart met het huidige actieve app-project. Als u de context wijzigt in een ander app-project en meer items uit het gedeelde project toevoegt, worden deze items nu weergegeven met het nieuw actieve app-project. Bewerkingen die u uitvoert met een item op de kaart, zijn alleen van toepassing op items die dezelfde context delen.
Op de kaart worden de geselecteerde items binnen hun samenstellingen weergegeven.
Als u items wilt verkennen, vouwt u deze uit. Beweeg de muisaanwijzer boven een item en klik vervolgens op het pijl-omlaag pictogram wanneer het wordt weergegeven.
Als u alle items wilt uitvouwen, selecteert u deze met Ctrl+A, opent u het snelmenu voor de kaart en kiest u Groep>uitvouwen. Echter, deze optie is niet beschikbaar wanneer het uitbreiden van alle groepen leidt tot een onbruikbare kaart of geheugenproblemen.
Ga door met het uitbreiden van items waarin u geïnteresseerd bent, zo nodig tot aan het niveau van de klas en het lid.
Als u leden wilt zien die zich in de code bevinden, maar niet op de kaart worden weergegeven, klikt u op het pictogram Refetch Children
in de linkerbovenhoek van een groep.Als u meer items wilt zien die zijn gerelateerd aan items op de kaart, selecteert u er een en kiest u Gerelateerd weergeven op de werkbalk van de codekaart en selecteert u vervolgens het type gerelateerde items dat u aan de kaart wilt toevoegen. U kunt ook een of meer items selecteren, het snelmenu openen en vervolgens de optie Weergeven kiezen voor het type gerelateerde items dat u aan de kaart wilt toevoegen. Voorbeeld:
Kies voor een assembly:
Option Beschrijving Assemblies weergeven waarnaar verwezen wordt Voeg assemblies toe waar deze assembly naar verwijst. Externe assemblies verschijnen in de groep Externals. Assemblies weergeven die hiernaar verwijzen Voeg assemblies toe binnen de oplossing die naar deze assembly verwijzen. Voor een naamruimte, kiest u Toon bijbehorende assembly als het niet zichtbaar is.
Kies voor een klasse of interface:
Option Beschrijving Basistypen weergeven Voeg voor een klasse de basisklasse en de geïmplementeerde interfaces toe.
Voor een interface voegt u de basisinterfaces toe.Afgeleide typen weergeven Voeg voor een klasse de afgeleide klassen toe.
Voeg voor een interface de afgeleide interfaces en de implementatieklassen of structs toe.Toon typen van deze verwijzingen Voeg alle klassen en hun leden toe die door deze klasse worden gebruikt. Typen weergeven waarnaar wordt verwezen Voeg alle klassen en hun leden toe die deze klasse gebruiken. Toon bevattende naamruimte Voeg de bovenliggende naamruimte toe. Weergeven met naamruimte en assembly Voeg de bovenliggende containerhiërarchie toe. Alle basistypen weergeven Voeg recursief de basisklasse of interfacehiërarchie toe. Alle afgeleide typen weergeven Voeg voor een klasse alle afgeleide klassen recursief toe.
Voeg voor een interface alle afgeleide interfaces en implementeer-klassen of -structen recursief toe.Kies voor een methode:
Option Beschrijving Toon methoden die door deze worden aangeroepen Voeg methoden toe die met deze methode worden aangeroepen. Toon velden waarnaar wordt verwezen Voeg velden toe waarnaar deze methode verwijst. Bevattende type weergeven Voeg het bovenliggende type toe. Weergeven met type, naamruimte en assembly Voeg de bovenliggende containerhiërarchie toe. Overschreven methoden weergeven Voor een methode die andere methoden overschrijft of de methode van een interface implementeert, voegt u alle abstracte of virtuele methoden toe in basisklassen die worden overschreven en, indien van toepassing, de methode van de interface die wordt geïmplementeerd. Kies voor een veld of eigenschap:
Option Beschrijving Type met inhoud weergeven Voeg het bovenliggende type toe. Weergeven met type, naamruimte en assembly Voeg de bovenliggende containerhiërarchie toe.
Op de kaart worden de relaties weergegeven. In dit voorbeeld toont de kaart de methoden die worden aangeroepen door de
Findmethode en de locatie ervan in de oplossing of extern.Als u de kaart wilt vereenvoudigen en zich wilt richten op afzonderlijke onderdelen, kiest u Filters op de werkbalk van de codekaart en selecteert u alleen de typen knooppunten en koppelingen waarin u geïnteresseerd bent. Schakel bijvoorbeeld de weergave van oplossingsmappen, assembly's en naamruimten uit.
Verwante inhoud
- Codetoewijzingen delen
- Codekaarten maken voor C++
- Prestaties van de codemap verbeteren
- Codetoewijzingen gebruiken om fouten in uw toepassingen op te sporen
- Methoden in kaart brengen op de aanroepstack tijdens debuggen
- Mogelijke problemen vinden met behulp van codetoewijzingsanalyses
- Codekaarten bladeren en opnieuw rangschikken
- Codetoewijzingen aanpassen door de DGML-bestanden te bewerken