Créer des diagrammes de dépendance à partir de votre codeCreate dependency diagrams from your code

Pour visualiser l’architecture de haut niveau, la logique de votre système logiciel, créez un diagramme de dépendances dans Visual Studio.To visualize your software system's high-level, logical architecture, create a dependency diagram in Visual Studio. Pour vous assurer que votre code reste cohérent avec cette conception, validez votre code avec un diagramme de dépendances.To make sure that your code stays consistent with this design, validate your code with a dependency diagram. Vous pouvez créer des diagrammes de dépendance pour les projets Visual c# et Visual Basic.You can create dependency diagrams for Visual C# and Visual Basic projects. Pour connaître les versions de Visual Studio qui prennent en charge cette fonctionnalité, consultez Prise en charge des versions pour les outils d'architecture et de modélisation.To see which versions of Visual Studio support this feature, see Version support for architecture and modeling tools.

Créer un diagramme de dépendances

Un diagramme de dépendances vous permet d’organiser les éléments de solution Visual Studio en groupes logiques et abstraits appelés couches.A dependency diagram lets you organize Visual Studio solution items into logical, abstract groups called layers. Vous pouvez utiliser les couches pour décrire des tâches importantes que ces artefacts effectuent ou bien les principaux composants du système.You can use layers to describe major tasks that these artifacts perform or the system's major components. Chaque couche peut contenir d’autres couches qui décrivent des tâches plus détaillées.Each layer can contain other layers that describe more detailed tasks. Vous pouvez également spécifier prévues ou existantes dépendances entre les couches.You can also specify the intended or existing dependencies between layers. Ces dépendances, qui sont représentées par des flèches, indiquent quels couches peuvent utiliser ou utilisent actuellement la fonctionnalité représentée par d'autres couches.These dependencies, which are represented as arrows, show which layers can use or currently use the functionality represented by other layers. Pour maintenir le contrôle architecturel du code, affichez les dépendances prévues sur le diagramme, puis validez le code par rapport au diagramme.To maintain architectural control of the code, show the intended dependencies on the diagram and then validate the code against the diagram.

Vidéo : Valider des dépendances de votre architecture en temps réelVideo: Validate your architecture dependencies in real time

Créer un diagramme de dépendancesCreate a dependency diagram

Avant de créer un diagramme de dépendances, assurez-vous que votre solution contient un projet de modélisation.Before you create a dependency diagram, make sure your solution has a modeling project.

Important

Ne pas ajouter, faites glisser ou copier un diagramme de dépendance existant à partir d’un projet de modélisation vers un autre projet de modélisation ou dans un autre emplacement dans la solution.Don't add, drag, or copy an existing dependency diagram from a modeling project to another modeling project or to another place in the solution. Cela permet de conserver les références du diagramme d'origine, même si vous modifiez le diagramme.This preserves the references from the original diagram, even if you change the diagram. Cela empêche également un mauvais fonctionnement de la validation de couche et pourra provoquer d’autres problèmes, tels que des éléments manquants ou autre erreurs lorsque vous essayez d’ouvrir le diagramme.This also prevents layer validation from working correctly and might cause other issues, such as missing elements or other errors when you try to open the diagram.

Au lieu de cela, ajoutez un nouveau diagramme de dépendances pour le projet de modélisation.Instead, add a new dependency diagram to the modeling project. Copiez les éléments depuis le diagramme source vers le nouveau diagramme.Copy the elements from the source diagram to the new diagram. Enregistrez le projet de modélisation et le nouveau diagramme de dépendances.Save both the modeling project and the new dependency diagram.

Pour ajouter un nouveau diagramme de dépendance à un projet de modélisationTo add a new dependency diagram to a modeling project

  1. Sur le Architecture menu, choisissez nouveau diagramme de dépendance.On the Architecture menu, choose New Dependency Diagram.

  2. Sous modèles, choisissez diagramme de dépendances.Under Templates, choose dependency diagram.

  3. Nommez le diagramme.Name the diagram.

  4. Dans ajouter au projet de modélisation, recherchez et sélectionnez un projet de modélisation existant dans votre solution.In Add to Modeling Project, browse to and select an existing modeling project in your solution.

    - ou --or-

    Choisissez créer un nouveau projet de modélisation pour ajouter un nouveau projet de modélisation à la solution.Choose Create a new modeling project to add a new modeling project to the solution.

    Note

    Le diagramme de la dépendance doit exister à l’intérieur d’un projet de modélisation.The dependency diagram must exist inside a modeling project. Toutefois, vous pouvez le lier à des éléments situés n'importe où dans la solution.However, you can link it to items anywhere in the solution.

  5. Veillez à enregistrer le projet de modélisation et le diagramme de dépendances.Make sure to save both the modeling project and the dependency diagram.

Faites glisser et déposez, ou copier et coller à partir d’une carte de CodeDrag and drop, or copy and paste, from a Code Map

  1. Générer une carte de Code pour la solution à l’aide de la Architecture menu.Generate a Code Map for the solution using the Architecture menu.

  2. Vous pouvez appliquer un filtre de carte de Code pour supprimer des dossiers de solution et les « Ressources de Test » si vous ne souhaitez pas appliquer les dépendances dans le code de produit.Consider applying a Code Map filter to remove solution folders and "Test Assets" if you only want to enforce dependencies in product code.

  3. Sur la carte du Code généré, supprimez le nœud « Externe », ou développer et afficher des assemblys externes, selon que vous souhaitez appliquer les dépendances de l’espace de noms et supprimer les assemblys non requis à partir de la carte de Code.On the generated Code Map, remove the "External" node, or expand it to show external assemblies, depending on whether you want to enforce namespace dependencies, and delete non-required assemblies from the Code Map.

  4. Créer un nouveau diagramme de dépendance pour la solution à l’aide de la Architecture menuCreate a new Dependency Diagram for the solution using the Architecture menu

  5. Sélectionner tous les nœuds sur la carte de Code (utilisez Ctrl + A, ou utiliser la sélection élastique en appuyant sur la MAJ avant que vous cliquez sur, faites glisser et libérez de la clé.Select all the nodes on the Code Map (use Ctrl + A, or use the rubber band selection by pressing the Shift key before you click, drag, and release.

  6. Glisser-déplacer, ou une copie et collage, les éléments sélectionnés vers le nouveau diagramme de Validation de dépendance.Drag and drop, or a copy and paste, the selected elements to the new Dependency Validation diagram.

  7. Cela montre l’architecture d’application actuel.This shows the current app architecture. Déterminer l’architecture à ce que vous souhaitez et modifier le diagramme de dépendances en conséquence.Decide what you want the architecture to be and modify the dependency diagram accordingly.

Diagramme de dépendances généré à partir d’une carte de Code

Créer des couches à partir d’artefactsCreate layers from artifacts

Vous pouvez créer des couches à partir d'éléments de solution Visual Studio, tels que des projets, des fichiers de code, des espaces de noms, des classes et des méthodes.You can create layers from Visual Studio solution items, such as projects, code files, namespaces, classes, and methods. Cela crée automatiquement des liens entre ces couches et les éléments, les incluant dans le processus de validation de couche.This automatically creates links between layers and items, including them in the layer validation process.

Afin de pouvoir associer une couche à des caractéristiques ou des plans, vous pouvez également lier des couches à des éléments qui ne prennent pas en charge la validation, tels que des documents Word ou des présentations PowerPoint.You can also link layers to items that don't support validation, such as Word documents or PowerPoint presentations, so that you can associate a layer with specifications or plans. Vous pouvez également lier des couches à des fichiers dans des projets qui sont partagés sur plusieurs applications, mais le processus de validation n’inclut pas ces couches qui s’affichent avec des noms génériques tels que « Couche 1 » et « Couche 2 ».You can also link layers to files in projects that are shared across multiple apps, but the validation process won't include those layers, which appear with generic names such as "Layer 1" and "Layer 2".

Pour voir si un élément lié prend en charge la validation, ouvrez Explorateur de couches et examinez le prend en charge la Validation propriété de l’élément.To see if a linked item supports validation, open Layer Explorer and examine the Supports Validation property of the item. Consultez la gestion des liens vers les artefacts.See Managing links to artifacts.

ToTo Procédez comme suitFollow these steps
Créer une couche pour un artefact uniqueCreate a layer for a single artifact
  1. Faites glisser l’élément sur le diagramme de dépendance à partir de ces sources :Drag the item onto the dependency diagram from these sources:


    Une couche s’affiche sur le diagramme et est liée à l’artefact.A layer appears on the diagram and is linked to the artifact.
  2. Renommez la couche pour refléter les responsabilités du code ou des artefacts associés.Rename the layer to reflect the responsibilities of the associated code or artifacts.
Important : en faisant glisser des fichiers binaires pour le diagramme de dépendances n’ajoute pas automatiquement leurs références au projet de modélisation.Important: Dragging binary files to the dependency diagram does not automatically add their references to modeling project. Vous devez ajouter manuellement au projet de modélisation les fichiers binaires que vous voulez valider.You must manually add the binary files that you want to validate to the modeling project. Pour ajouter des fichiers binaires au projet de modélisationTo add binary files to the modeling project
  1. Dans l’Explorateur de solutions, ouvrez le menu contextuel du projet de modélisation, puis choisissez ajouter un élément existant.In Solution Explorer, open the shortcut menu for the modeling project, and then choose Add Existing Item.
  2. Dans le ajouter un élément existant boîte de dialogue, recherchez les fichiers binaires, sélectionnez-les, puis choisissez OK.In the Add Existing Item dialog box, browse to the binary files, select them, and then choose OK. Les fichiers binaires s'affichent dans le projet de modélisation.The binary files appear in the modeling project.
  3. Dans l’Explorateur de solutions, choisissez un fichier binaire que vous avez ajoutés, puis appuyez sur F4 pour ouvrir le propriétés fenêtre.In Solution Explorer, choose a binary file that you added, and then press F4 to open the Properties window.
  4. Sur chaque fichier binaire, définissez la Action de génération propriété Validate.On each binary file, set the Build Action property to Validate.
Créer une couche unique pour tous les artefacts sélectionnésCreate a single layer for all selected artifacts Faites glisser tous les artefacts vers le diagramme de dépendance en même temps.Drag all the artifacts to the dependency diagram at the same time.

Une couche qui est liée à tous les artefacts s’affiche sur le diagramme.A layer appears on the diagram and is linked to all of the artifacts.
Créer une couche pour chaque artefact sélectionnéCreate a layer for each selected artifact Appuyez et maintenez enfoncée la MAJ pendant que vous faites glisser en même temps tous les artefacts vers le diagramme de dépendances de clé.Press and hold the SHIFT key while you drag all of the artifacts to the dependency diagram at the same time. Remarque : si vous utilisez la MAJ clé pour sélectionner une plage d’éléments, relâchez la touche après avoir sélectionné les artefacts.Note: If you use the SHIFT key to select a range of items, release the key after you select the artifacts. Appuyez de nouveau sur celle-ci et maintenez-la enfoncée lorsque vous faites glisser les artefacts vers le diagramme.Press and hold it again when you drag the artifacts to the diagram.

Une couche s'affiche sur le diagramme pour chaque artefact, auquel elle est liée.A layer for each artifact appears on the diagram and is linked to each artifact.
Ajouter un artefact à une coucheAdd an artifact to a layer Faites glisser l'artefact vers la couche.Drag the artifact to the layer.
Créer une couche non liéeCreate a new unlinked layer Dans le boîte à outils, développez le diagramme de dépendances section, puis faites glisser un couche pour le diagramme de dépendances.In the Toolbox, expand the Dependency Diagram section, and then drag a Layer to the dependency diagram.

Pour ajouter plusieurs couches, double-cliquez sur l'outil.To add multiple layers, double-click the tool. Lorsque vous avez terminé, choisissez le pointeur outil ou appuyez sur la ÉCHAP clé.When you are finished, choose the Pointer tool or press the ESC key.

ou- or -

Ouvrez le menu contextuel pour le diagramme de dépendances, choisissez ajouter, puis choisissez couche.Open the shortcut menu for the dependency diagram, choose Add, and then choose Layer.
Créer des couches imbriquéesCreate nested layers Faites glisser une couche existante sur une autre couche.Drag an existing layer onto another layer.

ou- or -

Ouvrez le menu contextuel pour une couche, choisissez ajouter, puis choisissez couche.Open the shortcut menu for a layer, choose Add, and then choose Layer.
Créer une nouvelle couche qui contient deux ou plusieurs couches existantesCreate a new layer that contains two or more existing layers Sélectionnez les couches, ouvrez le menu contextuel pour votre sélection, puis choisissez groupe.Select the layers, open the shortcut menu for your selection, and then choose Group.
Modifier la couleur d'une coucheChange the color of a layer Définir son couleur couleur dans la propriété que vous souhaitez.Set its Color property to the color that you want.
Spécifier que les artefacts associés à une couche ne doivent pas appartenir aux espaces de noms spécifiésSpecify that artifacts associated with a layer must not belong to the specified namespaces Tapez les espaces de noms dans la couche interdit les espaces de noms propriété.Type the namespaces in the layer's Forbidden Namespaces property. Utilisez un point-virgule (;) pour séparer les espaces de noms.Use a semicolon (;) to separate the namespaces.
Spécifier que les artefacts associés à une couche ne peuvent pas dépendre des espaces de noms spécifiésSpecify that artifacts associated with a layer cannot depend on the specified namespaces Tapez les espaces de noms dans la couche interdit les dépendances de Namespace propriété.Type the namespaces in the layer's Forbidden Namespace Dependencies property. Utilisez un point-virgule (;) pour séparer les espaces de noms.Use a semicolon (;) to separate the namespaces.
Spécifier que les artefacts associés à une couche doivent appartenir à un des espaces de noms spécifiésSpecify that artifacts associated with a layer must belong to one of the specified namespaces Tapez l’espace de noms dans la couche espaces de noms requis propriété.Type the namespace in the layer's Required Namespaces property. Utilisez un point-virgule (;) pour séparer les espaces de noms.Use a semicolon (;) to separate the namespaces.

Le nombre indiqué sur une couche représente le nombre d’artefacts liés à cette couche.The number on a layer indicates the number of artifacts that are linked to the layer. Toutefois, à la lecture de ce nombre, souvenez-vous de ce qui suit :However, when reading this number, remember the following:

  • Si une couche est liée à un artefact contenant d'autres artefacts, mais n'est pas directement liée à ces autres artefacts, le nombre représentera uniquement les artefacts auxquels elle est directement liée.If a layer links to an artifact that contains other artifacts, but the layer does not link directly to the other artifacts, then the number includes only the linked artifact. Toutefois, les autres artefacts sont inclus dans l'analyse pendant la validation de couche.However, the other artifacts are included for analysis during layer validation.

    Par exemple, si une couche est liée à un espace de noms unique, le nombre d'artefacts liés est égal à 1, même si l'espace de noms contient des classes.For example, if a layer is linked to a single namespace, then the number of linked artifacts is 1, even if the namespace contains classes. Si la couche a également des liens vers chaque classe de l'espace de noms, le nombre comprendra les classes liées.If the layer also has links to each class in the namespace, then the number will include the linked classes.

  • Si une couche contient d'autres couches liées à des artefacts, la couche du conteneur est également liée à ces artefacts, même si le nombre indiqué sur la couche du conteneur ne comprend pas ces artefacts.If a layer contains other layers that are linked to artifacts, then the container layer is also linked to those artifacts, even though the number on the container layer does not include those artifacts.

Gérer les liens entre les couches et les artefactsManage links between layers and artifacts

  1. Dans le diagramme de la dépendance, ouvrez le menu contextuel de la couche, puis choisissez afficher les liens.On the dependency diagram, open the shortcut menu for the layer, and then choose View Links.

    Explorateur de couches affiche les liens d’artefact pour la couche sélectionnée.Layer Explorer shows the artifact links for the selected layer.

  2. Utilisez les tâches suivantes pour gérer ces liens :Use the following tasks to manage these links:

ToTo Dans l’Explorateur de couchesIn Layer Explorer
Supprimer le lien entre la couche et un artefactDelete the link between the layer and an artifact Ouvrez le menu contextuel pour le lien d’artefact, puis choisissez supprimer.Open the shortcut menu for the artifact link, and then choose Delete.
Déplacer le lien d'une couche vers une autreMove the link from one layer to another Faites glisser le lien d'artefact vers une couche existante sur le diagramme.Drag the artifact link to an existing layer on the diagram.

ou- or -

1. Ouvrez le menu contextuel pour le lien d’artefact, puis choisissez couper.1. Open the shortcut menu for the artifact link, and then choose Cut.
2. Dans le diagramme de la dépendance, ouvrez le menu contextuel de la couche, puis choisissez coller.2. On the dependency diagram, open the shortcut menu for the layer, and then choose Paste.
Copier le lien d'une couche vers une autreCopy the link from one layer to another 1. Ouvrez le menu contextuel pour le lien d’artefact, puis choisissez copie.1. Open the shortcut menu for the artifact link, and then choose Copy.
2. Dans le diagramme de la dépendance, ouvrez le menu contextuel de la couche, puis choisissez coller.2. On the dependency diagram, open the shortcut menu for the layer, and then choose Paste.
Créer une nouvelle couche à partir d’un lien d’artefact existantCreate a new layer from an existing artifact link Faites glisser le lien d’artefact vers une zone vide sur le diagramme.Drag the artifact link to a blank area on the diagram.
Vérifiez qu’un artefact lié prend en charge la validation par rapport au diagramme de dépendance.Verify that a linked artifact supports validation against the dependency diagram. Examinez le prend en charge la Validation colonne pour le lien d’artefact.Look at the Supports Validation column for the artifact link.

Inverse une ingénierie à rebours des dépendances existantesReverse-engineer existing dependencies

Une dépendance existe chaque fois qu’un artefact associé à une couche comporte une référence à un artefact associé à une autre couche.A dependency exists wherever an artifact that is associated with one layer has a reference to an artifact that is associated with another layer. Par exemple, une classe dans une couche déclare une variable qui a une classe dans une autre couche.For example, a class in one layer declares a variable that has a class in another layer. Vous pouvez effectuer une ingénierie à rebours des dépendances existantes pour les artefacts liés aux couches sur le diagramme.You can reverse-engineer existing dependencies for artifacts that are linked to layers on the diagram.

Note

Les dépendances ne peuvent pas faire l'objet d'une ingénierie à rebours pour certains genres d'artefacts.Dependencies cannot be reverse-engineered for certain kinds of artifacts. Par exemple, aucune dépendance ne fera l'objet d'une ingénierie à rebours depuis ou vers une couche qui est liée à un fichier texte.For example, no dependencies will be reverse-engineered from or to a layer that is linked to a text file. Pour voir les artefacts ayant des dépendances qui peuvent procéder à la rétroconception, ouvrez le menu contextuel pour une ou plusieurs couches, puis choisissez afficher les liens.To see which artifacts have dependencies that you can reverse-engineer, open the shortcut menu for one or multiple layers, and then choose View Links. Dans Explorateur de couches, examinez le prend en charge la Validation colonne.In Layer Explorer, examine the Supports Validation column. Dépendances ne sera pas à rebours des artefacts pour lesquels cette colonne affiche False.Dependencies will not be reverse-engineered for artifacts for which this column shows False.

  • Sélectionnez une ou plusieurs couches, ouvrez le menu contextuel pour une couche sélectionnée, puis choisissez générer des dépendances.Select one or multiple layers, open the shortcut menu for a selected layer, and then choose Generate Dependencies.

    En général, des dépendances qui ne devraient pas exister s'affichent.Typically, you will see some dependencies that should not exist. Vous pouvez modifier ces dépendances pour les ajuster à la conception prévue.You can edit these dependencies to align them with the intended design.

Modifier les couches et les dépendances pour afficher la conception prévueEdit layers and dependencies to show the intended design

Pour décrire les modifications que vous envisagez d’apporter à votre système ou de l’architecture prévue, modifiez le diagramme de dépendances :To describe the changes that you plan to make to your system or the intended architecture, edit the dependency diagram:

ToTo Procédez comme suitPerform these steps
Changer ou restreindre la direction d'une dépendanceChange or restrict the direction of a dependency Définir son Direction propriété.Set its Direction property.
Créer de nouvelles dépendancesCreate new dependencies Utilisez le dépendance et dépendance bidirectionnelle outils.Use the Dependency and Bidirectional Dependency tools.

Pour dessiner plusieurs dépendances, double-cliquez sur l'outil.To draw multiple dependencies, double-click the tool. Lorsque vous avez terminé, choisissez le pointeur outil ou appuyez sur la ÉCHAP clé.When you are finished, choose the Pointer tool or press the ESC key.
Spécifier que les artefacts associés à une couche ne peuvent pas dépendre des espaces de noms spécifiésSpecify that artifacts associated with a layer cannot depend on the specified namespaces Tapez les espaces de noms dans la couche interdit les dépendances de Namespace propriété.Type the namespaces in the layer's Forbidden Namespace Dependencies property. Utilisez un point-virgule (;) pour séparer les espaces de noms.Use a semicolon (;) to separate the namespaces.
Spécifier que les artefacts associés à une couche ne doivent pas appartenir aux espaces de noms spécifiésSpecify that artifacts associated with a layer must not belong to the specified namespaces Tapez les espaces de noms dans la couche interdit les espaces de noms propriété.Type the namespaces in the layer's Forbidden Namespaces property. Utilisez un point-virgule (;) pour séparer les espaces de noms.Use a semicolon (;) to separate the namespaces.
Spécifier que les artefacts associés à une couche doivent appartenir à un des espaces de noms spécifiésSpecify that artifacts associated with a layer must belong to one of the specified namespaces Tapez l’espace de noms dans la couche espaces de noms requis propriété.Type the namespace in the layer's Required Namespaces property. Utilisez un point-virgule (;) pour séparer les espaces de noms.Use a semicolon (;) to separate the namespaces.

Modifier la façon dont les éléments apparaissent sur le diagrammeChange how elements appear on the diagram

Vous pouvez modifier la taille, la forme, la couleur et la position des couches ou de la couleur des dépendances en modifiant leurs propriétés.You can change the size, shape, color, and position of layers or the color of dependencies by editing their properties.

Découvrir des modèles et des dépendances sur une carte de codeDiscover patterns and dependencies on a code map

Lors de la création de diagrammes de dépendance, vous pouvez également créer cartes de code.While creating dependency diagrams, you might also create code maps. Ces diagrammes peuvent vous aider à découvrir des modèles et des dépendances quand vous explorez le code.These diagrams can help you discover patterns and dependencies while you explore the code. Utilisez l'Explorateur de solutions, l'Affichage de classes ou l'Explorateur d'objets pour explorer les assemblys, les espaces de noms et les classes, qui correspondent souvent à des couches existantes.Use Solution Explorer, Class View, or Object Browser to explore assemblies, namespaces, and classes - which often correspond well to existing layers. Pour plus d'informations sur les cartes de code, consultez :For more information about code maps, see:

Voir aussiSee Also