Mapper les dépendances avec des cartes de codeMap dependencies with code maps

Vous pouvez visualiser les dépendances dans votre code en créant une carte de code.You can visualize dependencies across your code by creating a code map. Cartes de code vous aident à que voir comment le code s’ajuste sans lors de la lecture de fichiers et de lignes de code.Code maps help you see how the code fits together without reading through files and lines of code.

Afficher les dépendances entre vos solutions

Pour utiliser des cartes de code, vous avez besoin de Visual Studio Enterprise ou Professionnel.To use code maps, you need Visual Studio Enterprise or Professional edition. Les fonctionnalités de carte de code dans l’édition Professional sont légèrement plus limitée que dans l’édition Enterprise.The code map functionality in Professional edition is slightly more limited than in Enterprise edition.

Note

Avant de partager des cartes créées dans Visual Studio Enterprise avec d’autres personnes utilisant Visual Studio Professional, vérifiez que tous les éléments sur la carte (comme les éléments masqués, les groupes développés et les liens entre les groupes) sont visibles.Before you share maps created in Visual Studio Enterprise with others who use Visual Studio Professional, make sure that all the items on the map (such as hidden items, expanded groups, and cross-group links) are visible.

Vous pouvez mapper les dépendances de code dans les langues suivantes :You can map dependencies for code in these languages:

  • Visual c# ou Visual Basic dans une solution ou des assemblys (.dll ou .exe)Visual C# or Visual Basic in a solution or assemblies (.dll or .exe)

  • Code C ou C++ natif ou managé dans les projets Visual C++, fichiers d’en-tête (.h ou #include), ou des fichiers binairesNative or managed C or C++ code in Visual C++ projects, header files (.h or #include), or binaries

  • projets et assemblys X++ créés à partir de modules .NET pour Microsoft Dynamics AX.X++ projects and assemblies made from .NET modules for Microsoft Dynamics AX

Note

Pour les projets autres que c# ou Visual Basic, il existe moins d’options pour démarrer une carte de code ou ajouter des éléments à une carte de code existante.For projects other than C# or Visual Basic, there are fewer options for starting a code map or adding items to an existing code map. Par exemple, vous ne pouvez pas cliquer avec le bouton droit sur un objet dans l’éditeur de texte d’un projet C++ et l’ajouter à une carte de code.For example, you cannot right-click an object in the text editor of a C++ project and add it to a code map. Toutefois, vous pouvez glisser -déplacer des éléments de code individuels ou des fichiers à partir de l’Explorateur de solutions, affichage de classes, et Explorateur d’objets.However, you can drag and drop individual code elements or files from Solution Explorer, Class View, and Object Browser.

Carte de Code d’installation et de Validation de dépendance dynamiqueInstall Code Map and Live Dependency Validation

Pour créer une carte de code dans Visual Studio 2017, installez d’abord le carte de Code et Validation de dépendance Live composants :To create a code map in Visual Studio 2017, first install the Code Map and Live Dependency Validation components:

  1. Ouvrez programme d’installation de Visual Studio.Open Visual Studio Installer. Vous pouvez l’ouvrir à partir du menu Démarrer de Windows, ou dans Visual Studio en sélectionnant outils > obtenir des outils et fonctionnalités.You can open it from the Windows Start menu, or within Visual Studio by selecting Tools > Get Tools and Features.

  2. Sélectionnez l’onglet Composants individuels.Select the Individual components tab.

  3. Faites défiler jusqu'à la outils Code section et sélectionnez carte de Code et Validation de dépendance Live.Scroll down to the Code tools section and select Code Map and Live Dependency Validation.

    Composants de carte de code et de Validation de dépendance dynamique dans le programme d’installation de Visual Studio

  4. Sélectionnez Modifier.Select Modify.

    Le carte de Code et Validation de dépendance Live commencent l’installation des composants.The Code Map and Live Dependency Validation components begin installing. Vous pouvez être invité à fermer Visual Studio.You may be asked to close Visual Studio.

Ajouter une carte de codeAdd a code map

Vous pouvez créer une carte de code vide et faites glisser des éléments sur celui-ci, y compris les références d’assembly, les fichiers et dossiers, ou vous pouvez générer une carte de code pour tous les ou une partie de votre solution.You can create an empty code map and drag items onto it, including assembly references, files and folders, or you can generate a code map for all or part of your solution.

Pour ajouter une carte de code vide :To add an empty code map:

  1. Dans l’ Explorateur de solutions, ouvrez le menu contextuel du nœud racine de votre solution.In Solution Explorer, open the shortcut menu for your top-level solution node. Choisissez ajouter > un nouvel élément.Choose Add > New Item.

  2. Dans le ajouter un nouvel élément boîte de dialogue, sous installé, choisissez le général catégorie.In the Add New Item dialog, under Installed, choose the General category.

  3. Choisissez le Document(.dgml) de graphique dirigé modèle, puis sélectionnez ajouter.Choose the Directed Graph Document(.dgml) template and then select Add.

    Conseil

    Ce modèle ne peut pas apparaître par ordre alphabétique, par conséquent, faites défiler vers le bas de la liste des modèles si vous ne voyez pas.This template may not appear alphabetically, so scroll down to the bottom of the template list if you don't see it.

    Une carte vide s’affiche dans votre solution éléments de Solution dossier.A blank map appears in your solution's Solution Items folder.

De même, vous pouvez créer un nouveau fichier de mappage de code sans l’ajouter à votre solution en sélectionnant Architecture > nouvelle carte de Code ou fichier > Nouveau > fichier.Similarly, you can create a new code map file without adding it to your solution by selecting Architecture > New Code Map or File > New > File.

Générer une carte de code de votre solutionGenerate a code map for your solution

Pour afficher toutes les dépendances dans votre solution :To see all the dependencies in your solution:

  1. Dans la barre de menus, choisissez Architecture > générer une carte du Code pour la Solution.On the menu bar, choose Architecture > Generate Code Map for Solution. Si votre code n’a pas changé depuis la dernière fois que vous avez créé, vous pouvez sélectionner Architecture > générer une carte du Code pour la Solution sans génération à la place.If your code hasn't changed since the last time you built it, you can select Architecture > Generate Code Map for Solution Without Building instead.

    Générer une commande de carte du code

    Une carte est générée qui montre les assemblys de niveau supérieur et les liens globaux entre eux.A map is generated that shows the top-level assemblies and aggregated links between them. Plus le lien global est large, plus il représente de dépendances.The wider the aggregate link, the more dependencies it represents.

  2. Utilisez le bouton Légende dans la barre d’outils de la carte de code pour afficher ou masquer la liste des icônes de type de projet (comme Projet de test, Projet web et Projet de téléphone), les éléments de code (comme Classes, Méthodes et Propriétés) et les types de relations (comme Hérite de, Implémente et Appelle).Use the Legend button on the code map toolbar to show or hide the list of project type icons (such as Test, Web, and Phone Project), code items (such as Classes, Methods, and Properties), and relation types (such as Inherits From, Implements, and Calls).

    Graphique de dépendance de niveau supérieur des assemblys

    Cet exemple de solution contient des dossiers de solution (Tests et Composants), des projets de test, des projets web et des assemblys.This example solution contains Solution Folders (Tests and Components), Test Projects, Web Projects, and assemblies. Par défaut, toutes les relations d’imbrication apparaissent sous forme de groupesque vous pouvez développer et réduire.By default, all containment relationships appear as groups, which you can expand and collapse. Le groupe Externes contient les éléments qui ne font pas partie de votre solution, notamment les dépendances de plateforme.The Externals group contains anything outside your solution, including platform dependencies. Les assemblys externes affichent uniquement les éléments utilisés.External assemblies show only those items that are used. Par défaut, les types de base du système sont masqués pour ne pas trop encombrer la carte.By default, system base types are hidden on the map to reduce clutter.

  3. Pour descendre dans la hiérarchie de la carte, développez les groupes qui représentent des projets et des assemblys.To drill down into the map, expand the groups that represent projects and assemblies. Pour développer tout, appuyez sur Ctrl+A pour sélectionner tous les nœuds. Ensuite, choisissez Groupe, puis Développer dans le menu contextuel.You can expand everything by pressing CTRL+A to select all the nodes and then choosing Group, Expand from the shortcut menu.

    Développement de tous les groupes dans une carte du code

  4. Ceci peut toutefois ne pas s’avérer très utile pour une solution de grande taille.However, this may not be useful for a large solution. En fait, pour les solutions complexes, les limitations de mémoire peuvent vous empêcher de développer tous les groupes.In fact, for complex solutions, memory limitations may prevent you from expanding all the groups. Pour visualiser l’intérieur d’un nœud individuel, développez-le.Instead, to see inside an individual node, expand it. Déplacez le pointeur de la souris au-dessus du nœud, puis cliquez sur le chevron (flèche bas) quand il apparaît.Move your mouse pointer on top of the node and then click the chevron (down arrow) when it appears.

    Développement d’un nœud dans une carte du code

    Ou bien, sélectionnez l’élément et appuyez sur la touche plus (+) du clavier.Or use the keyboard by selecting the item then pressing the plus key (+). Pour explorer des niveaux plus profonds de code, procédez de même pour les espaces de noms, les types et les membres.To explore deeper levels of code, do the same for namespaces, types, and members.

    Conseil

    Pour plus d’informations sur l’utilisation de code est mappé à l’aide de la souris, du clavier et tactile, consultez Parcourir et réorganiser des cartes de code.For more details about working with code maps using the mouse, keyboard, and touch, see Browse and rearrange code maps.

  5. Pour simplifier la carte et cibler des parties individuelles, choisissez Filtres dans la barre d’outils de la carte de code et sélectionnez uniquement les types de nœuds et de liens qui vous intéressent.To simplify the map and focus on individual parts, choose Filters on the code map toolbar and select just the types of nodes and links you are interested in. Par exemple, vous pouvez masquer tous les conteneurs Dossier Solution et Assembly.For example, you can hide all the Solution Folder and Assembly containers.

    Simplifier la carte en filtrant les conteneurs

    Vous pouvez également simplifier la carte en masquant ou en supprimant des groupes et des éléments individuels de la carte, sans affecter le code de la solution sous-jacent.You can also simplify the map by hiding or removing individual groups and items from the map, without affecting the underlying solution code.

  6. Pour visualiser les relations entre les éléments, sélectionnez-les dans la carte.To see the relationships between items, select them in the map. Les couleurs des liens indiquent les types de relations, comme le montre le volet Légende .The colors of the links indicate the types of relationship, as shown in the Legend pane.

    Afficher les dépendances entre vos solutions

    Dans cet exemple, les liens violets correspondent aux appels, les liens en pointillés aux références et les liens bleu clair à l’accès aux champs.In this example, the purple links are calls, the dotted links are references, and the light blue links are field access. Les liens verts peuvent représenter l’héritage ou correspondre à des liens globaux qui indiquent plusieurs types de relations (ou catégories).Green links can be inheritance, or they may be aggregate links that indicate more than one type of relationship (or category).

    Conseil

    Si vous voyez un lien vert, il ne signifie peut-être pas qu’il existe simplement une relation d’héritage.If you see a green link, it might not mean there's just an inheritance relationship. Il peut également exister des appels de méthode, mais ceux-ci sont masqués par la relation d’héritage.There might also be method calls, but these are hidden by the inheritance relationship. Pour afficher les types de liens spécifiques, utilisez les cases à cocher dans la filtres pour masquer les types qui ne vous intéressent pas.To see specific types of links, use the checkboxes in the Filters pane to hide the types you aren't interested in.

  7. Pour obtenir plus d’informations sur un élément ou un lien, déplacez le pointeur sur celui-ci jusqu’à ce qu’une info-bulle apparaisse.To get more information about an item or link, move the pointer on top of it until a tooltip appears. Celle-ci donne des détails sur un élément de code ou les catégories représentées par un lien.This shows details of a code element or the categories that a link represents.

    Afficher les catégories d'une relation

  8. Pour examiner les éléments et les dépendances représentés par un lien global, sélectionnez d’abord le lien, puis ouvrez son menu contextuel.To examine items and dependencies represented by an aggregate link, first select the link and then open its shortcut menu. Choisissez Afficher les liens de contribution (ou Afficher les liens de contribution sur des nouvelles cartes de code).Choose Show Contributing Links (or Show Contributing Links on New Code Map). Cette opération développe les groupes aux deux extrémités du lien et affiche uniquement les éléments et les dépendances qui participent au lien.This expands the groups at both ends of the link and shows only those items and dependencies that participate in the link.

  9. Pour cibler des parties spécifiques de la carte, vous pouvez continuer à supprimer des éléments qui que ne vous intéressent pas.To focus in on specific parts of the map, you can continue to remove items you aren't interested in. Par exemple, pour analyser l’affichage des classes et des membres, filtrez simplement tous les nœuds d’espace de noms dans le volet Filtres .For example, to drill into class and member view, simply filter all the namespace nodes in the Filters pane.

    Exploration au niveau des classes et membres

  10. Pour simplifier une carte de solution complexe, vous pouvez aussi générer une nouvelle carte contenant une sélection d’éléments à partir d’une carte existante.Another way to focus in on a complex solution map is to generate a new map containing selected items from an existing map. Maintenez la touche Ctrl lorsque vous sélectionnez les éléments que vous devez vous focaliser sur, ouvrez le menu contextuel, puis choisissez nouveau graphique à partir de la sélection.Hold Ctrl while selecting the items you want to focus on, open the shortcut menu, and choose New Graph from Selection.

    Afficher les éléments sélectionnés dans une nouvelle carte du code

  11. Le contexte est reporté sur la nouvelle carte.The containing context is carried over to the new map. Masquer des dossiers de Solution et tout autre conteneur que vous ne souhaitez pas afficher à l’aide du filtres volet.Hide Solution Folders and any other containers you don't want to see using the Filters pane.

    Filtrer les conteneurs pour simplifier l'affichage

  12. Développez les groupes et sélectionnez les éléments dans la carte pour afficher les relations.Expand the groups and select items in the map to view the relationships.

    Sélectionner des éléments pour afficher les relations

Voir aussi :Also see:

Afficher les dépendances spécifiques dans une carte de codeView specific dependencies in a code map

Supposons que vous deviez réviser du code à exécuter dans certains fichiers contenant des modifications en attente.Suppose you have a code review to perform in some files with pending changes. Pour visualiser les dépendances dans ces modifications, vous pouvez créer une carte de code à partir de ces fichiers.To see the dependencies in those changes, you can create a code map from those files.

Afficher les dépendances spécifiques dans une carte du code

  1. Dans l’Explorateur de solutions, sélectionnez les projets, références d’assembly, dossiers, fichiers, types ou membres que vous voulez mapper.In Solution Explorer, select the projects, assembly references, folders, files, types, or members that you want to map.

    Sélectionner les éléments à mapper

  2. Sur le l’Explorateur de solutions barre d’outils, choisissez afficher sur la carte de Code créer nouveau graphique à partir de nœuds bouton sélectionnés.On the Solution Explorer toolbar, choose Show on Code Map Create New Graph From Selected Nodes Button. Ou, ouvrez le menu contextuel pour un ou un groupe d’éléments et choisissez afficher sur la carte de Code.Or, open the shortcut menu for one or a group of items and choose Show on Code Map.

    Vous pouvez également faire glisser des éléments à partir de l’Explorateur de solutions, affichage de classes, ou Explorateur d’objets, dans un nouveau ou mapper un code existant.You can also drag items from Solution Explorer, Class View, or Object Browser, into a new or existing code map. Pour inclure la hiérarchie parente de vos éléments, maintenez la Ctrl clé pendant que vous faites glisser des éléments, ou utilisez le inclure les Parents bouton sur la barre d’outils de carte de code pour spécifier l’action par défaut.To include the parent hierarchy for your items, press and hold the Ctrl key while you drag items, or use the Include Parents button on the code map toolbar to specify the default action. Vous pouvez également faire glisser des fichiers d’assembly en dehors de Visual Studio, telles que l’Explorateur Windows.You can also drag assembly files from outside Visual Studio, such as from Windows Explorer.

    Note

    Lorsque vous ajoutez des éléments à partir d’un projet qui est partagé entre plusieurs applications, telles que Windows Phone ou Microsoft Store, ces éléments apparaissent sur la carte avec le projet d’application actif.When you add items from a project that's shared across multiple apps, like Windows Phone or Microsoft Store, those items appear on the map with the currently active app project. Si vous modifiez le contexte vers un autre projet d’application et ajoutez des éléments à partir du projet partagé, ces éléments apparaissent alors avec le projet d’application qui vient d’être activé.If you change context to another app project and add more items from the shared project, those items now appear with the newly active app project. Les opérations que vous effectuez avec un élément de la carte s’appliquent uniquement aux éléments qui partagent le même contexte.Operations that you perform with an item on the map apply only to those items that share the same context.

  3. La carte montre les éléments sélectionnés au sein des assemblys conteneurs.The map shows the selected items within their containing assemblies.

    Éléments sélectionnés affichés sous forme de groupes dans la carte

  4. Pour explorer des éléments, développez-les.To explore items, expand them. Déplacez le pointeur de la souris au-dessus d’un élément, puis cliquez sur l’icône en forme de chevron (flèche bas) quand elle apparaît.Move the mouse pointer on top of an item, then click the chevron (down arrow) icon when it appears.

    Développez un nœud dans une carte de code

    Pour développer tous les éléments, sélectionnez-les à l’aide de Ctrl+A, ouvrez le menu contextuel de la carte, puis choisissez groupe > Développez.To expand all items, select them using Ctrl+A, then open the shortcut menu for the map and choose Group > Expand. Toutefois, cette option n’est pas disponible si le développement de tous les groupes crée une carte inutilisable ou entraîne des problèmes de mémoire.However, this option isn't available if expanding all groups creates an unusable map or memory issues.

  5. Continuez à développer les éléments qui que vous intéressez, jusqu’au niveau de classe et du membre si nécessaire.Continue to expand items you are interested in, right down to the class and member level if necessary.

    Développer les groupes au niveau de la classe et du membre

    Pour afficher les membres qui sont dans le code, mais n’apparaissent pas sur la carte, cliquez sur le récupérer à nouveau les enfants icône icône récupérer à nouveau d’enfants dans l’angle supérieur gauche d’un groupe.To see members that are in the code but don't appear on the map, click the Refetch Children icon Refetch Children Icon in the top left corner of a group.

  6. Pour afficher d’autres d’éléments associés à ceux présents sur la carte, sélectionnez un élément et choisissez Afficher les éléments associés dans la barre d’outils de la carte de code, puis sélectionnez le type d’éléments associés à ajouter à la carte.To see more items related to those on the map, select one and choose Show Related on the code map toolbar, then select the type of related items to add to the map. Vous pouvez également sélectionner un ou plusieurs éléments, ouvrez le menu contextuel, puis choisissez le afficher option pour le type d’éléments associés à ajouter à la carte.Alternatively, select one or more items, open the shortcut menu, and then choose the Show option for the type of related items to add to the map. Par exemple :For example:

    Pour un assembly, choisissez :For an assembly, choose:

    Afficher les assemblys qui sont référencés par celaShow Assemblies This References Ajoutez les assemblys que cet assembly référence.Add assemblies that this assembly references. Les assemblys externes apparaissent dans le groupe Externes .External assemblies appear in the Externals group.
    Afficher les assemblys qui référencent celaShow Assemblies Referencing This Ajoutez les assemblys de la solution qui référencent cet assembly.Add assemblies in the solution that reference this assembly.

    Pour un espace de noms, choisissez Afficher l’assembly conteneurs’il n’est pas visible.For a namespace, choose Show Containing Assembly, if it's not visible.

    Pour une classe ou une interface, choisissez :For a class or interface, choose:

    Afficher les types de baseShow Base Types Pour une classe, ajoutez la classe de base et les interfaces implémentées.For a class, add the base class and the implemented interfaces.

    Pour une interface, ajoutez des interfaces de base.For an interface, add the base interfaces.
    Afficher les types dérivésShow Derived Types Pour une classe, ajoutez des classes dérivées.For a class, add the derived classes.

    Pour une interface, ajoutez les interfaces dérivées et les structures et classes d’implémentation.For an interface, add the derived interfaces and the implementing classes or structs.
    Afficher les types qui sont référencés par celaShow Types This References Ajoutez toutes les classes, avec leurs membres, que cette classe utilise.Add all classes and their members that this class uses.
    Afficher les types qui référencent celaShow Types Referencing This Ajoutez toutes les classes, avec leurs membres, qui utilisent cette classe.Add all classes and their members that use this class.
    Afficher l’espace de noms contenantShow Containing Namespace Ajoutez l’espace de noms parent.Add the parent namespace.
    Afficher l’espace de noms contenant et l’assembly conteneurShow Containing Namespace and Assembly Ajoutez la hiérarchie de conteneurs parents.Add the parent container hierarchy.
    Afficher tous les types de baseShow All Base Types Ajoutez la hiérarchie de classe de base ou d’interface de manière récursive.Add the base class or interface hierarchy recursively.
    Afficher tous les types dérivésShow All Derived Types Pour une classe, ajoutez toutes les classes dérivées de manière récursive.For a class, add all the derived classes recursively.

    Pour une interface, ajoutez toutes les interfaces dérivées et les structures et classes d’implémentation de manière récursive.For an interface, add all the derived interfaces and implementing classes or structs recursively.

    Pour une méthode, choisissez :For a method, choose:

    Afficher les méthodes qui sont appelées par celaShow Methods This Calls Ajoutez les méthodes que cette méthode appelle.Add methods that this method calls.
    Afficher les champs qui sont référencés par celaShow Fields This References Ajoutez les champs que cette méthode référence.Add fields that this method references.
    Afficher le type conteneurShow Containing Type Ajoutez le type de parent.Add the parent type.
    Afficher le type conteneur, l’espace de noms contenant et l’assembly conteneurShow Containing Type, Namespace, and Assembly Ajoutez la hiérarchie de conteneurs parents.Add the parent container hierarchy.
    Afficher les méthodes remplacéesShow Overridden Methods Pour une méthode qui remplace d’autres méthodes ou implémente la méthode d’une interface, ajoutez toutes les méthodes abstraites ou virtuelles dans les classes de base qui sont substituées et, le cas échéant, la méthode de l’interface implémentée.For a method that overrides other methods or implements an interface's method, add all the abstract or virtual methods in base classes that are overridden and, if any, the interface's method that is implemented.

    Pour un champ ou une propriété, choisissez :For a field or property, choose:

    Afficher le type conteneurShow Containing Type Ajoutez le type de parent.Add the parent type.
    Afficher le type conteneur, l’espace de noms contenant et l’assembly conteneurShow Containing Type, Namespace, and Assembly Ajoutez la hiérarchie de conteneurs parents.Add the parent container hierarchy.

    Afficher les méthodes appelées par ce membre

  7. La carte affiche les relations.The map shows the relationships. Dans cet exemple, la carte montre les méthodes appelées par le Find (méthode) et leur emplacement dans la solution ou à l’extérieur.In this example, the map shows the methods called by the Find method and their location in the solution or externally.

    Afficher les dépendances spécifiques dans une carte du code

  8. Pour simplifier la carte et cibler des parties individuelles, choisissez Filtres dans la barre d’outils de la carte de code et sélectionnez uniquement les types de nœuds et de liens qui vous intéressent.To simplify the map and focus on individual parts, choose Filters on the code map toolbar and select just the types of nodes and links you are interested in. Par exemple, désactivez l’affichage des dossiers solution, des assemblys et des espaces de noms.For example, turn off display of Solution Folders, Assemblies, and Namespaces.

    Utiliser le volet de filtre pour simplifier l'affichage

Voir aussiSee also