Qu’est-ce que le Concepteur de classes ?

Avec l’outil Concepteur de classes dans Visual Studio, vous pouvez concevoir, visualiser et refactoriser des diagrammes de classes dans des projets C#, Visual Basic ou C++. Les diagrammes de classes montrent les éléments de code et leurs relations dans une surface de conception visuelle, ce qui peut vous aider à mieux comprendre la structure de votre projet et à réorganiser votre code.

Note

Le Concepteur de classes n’est pas disponible dans les projets .NET Core.

À propos des diagrammes de classes

Voici ce que vous pouvez faire avec des diagrammes de classes, plus détaillés :

  • Concevoir : modifiez le code de votre projet en changeant le diagramme de classes. Ajoutez de nouveaux éléments et supprimez ceux dont vous n'avez pas besoin. Vos changements sont répercutés dans le code.

  • Visualiser : comprenez la structure de votre projet en affichant ses classes dans un diagramme. Personnalisez votre diagramme pour pouvoir vous concentrer sur les détails du projet qui vous intéressent le plus. Enregistrez votre diagramme pour pouvoir l'utiliser plus tard à des fins de démonstration ou de documentation.

  • Refactoriser : substituez des méthodes, renommez des identificateurs, refactorisez des paramètres, et implémentez des interfaces et des classes abstraites.

Voir les types et les relations

Les diagrammes de classes affichent des informations détaillées sur les types, telles que leurs membres constitutifs et les relations entre eux. La visualisation de ces entités est une vue dynamique du code. Vous pouvez donc modifier les types dans le concepteur, puis visualiser vos modifications dans le code source de l’entité. De même, le diagramme de classes est constamment synchronisé avec les modifications apportées aux fichiers de code.

Remarque

Si votre projet contient un diagramme de classes et référence un type qui se trouve dans un autre projet, le diagramme de classes n’affiche pas le type référencé tant que vous n’avez pas généré le projet pour ce type. De même, le diagramme n’affiche pas les modifications apportées au code de l’entité externe tant que vous n’avez pas régénéré le projet pour cette entité.

Workflow des diagrammes de classes

Les diagrammes de classes peuvent vous aider à comprendre la structure de classe de projets. Ces projets peuvent avoir été créés par d’autres développeurs, ou vous avez simplement besoin d’un rappel sur un projet que vous avez créé vous-même. Vous pouvez utiliser les diagrammes de classes pour personnaliser, partager et présenter des informations de projet.

La première étape de la présentation des informations de projet consiste à créer un diagramme de classes qui affiche ce que vous souhaitez montrer. Pour plus d’informations, consultez Ajouter un diagramme de classes. Vous pouvez créer plusieurs diagrammes de classes pour un projet, ce qui vous permet d'afficher une vue distincte du projet, une partie spécifique des types du projet ou une partie spécifique des membres de types.

En plus de définir le contenu affiché par chaque diagramme de classes, vous pouvez également changer la présentation des informations. Pour obtenir plus d’informations, consultez Personnaliser des diagrammes de classes.

Après avoir affiné un ou plusieurs diagrammes de classes, vous pouvez les copier dans des documents Microsoft Office et les imprimer, ou les exporter sous forme de fichiers image. Si vous souhaitez obtenir plus d’informations, consultez Copier les éléments d’un diagramme de classes dans un document Microsoft Office, Imprimer des diagrammes de classes et Exporter des diagrammes de classes sous forme d’images.

Remarque

Le Concepteur de classes n’effectue pas le suivi de l’emplacement de vos fichiers sources. Ainsi, si vous changez la structure de votre projet ou déplacez des fichiers sources du projet, le Concepteur de classes peut perdre la trace du type, en particulier le type source d’un typedef, les classes de base ou les types d’association. Vous pouvez obtenir une erreur telle que celle-ci : Le Concepteur de classes n’est pas en mesure d’afficher ce type. Dans ce cas, refaites glisser le code source modifié ou déplacé vers le diagramme de classes pour le réafficher.

Ajouter des diagrammes de classes aux projets

Pour concevoir, modifier et refactoriser des classes et d'autres types, ajoutez un diagramme de classes à votre projet C#, Visual Basic ou C++. Pour visualiser différentes parties du code d'un projet, ajoutez plusieurs diagrammes de classes à ce dernier.

Vous ne pouvez pas créer de diagrammes de classes à partir de projets qui partagent du code dans plusieurs applications. Pour créer des diagrammes de classes UML, consultez Créer des projets et des diagrammes de modélisation UML.

Installer le composant Concepteur de classes

Si vous n’avez pas installé le composant Concepteur de classes, effectuez les étapes suivantes pour le faire.

  1. Ouvrez Programme d’installation de Visual Studio à partir du menu Démarrer de Windows ou en sélectionnant Outils>Obtenir les outils et fonctionnalités dans la barre de menus de Visual Studio.

    Le programme d’installation de Visual Studio s’ouvre.

  2. Si Visual Studio est déjà installé, cliquez sur le bouton Modifier dans les options.

  3. Sélectionnez l’onglet Composants individuels, puis faites défiler vers le bas jusqu’à la catégorie Outils de code.

  4. Sélectionnez Concepteur de classes, puis Modifier.

    Screenshot of the Class Designer component in the Visual Studio Installer.

    Screenshot of the Class Designer component in the Visual Studio Installer.

    L’installation du composant Concepteur de classes démarre.

Ajouter un diagramme de classes vide à un projet

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud de projet, puis choisissez Ajouter>Nouvel élément. Vous pouvez aussi appuyer sur Ctrl+Maj+A. Si une petite fenêtre s’affiche avec uniquement la possibilité d’ajouter un fichier de code, choisissez le bouton Afficher tous les modèles.

    La boîte de dialogue Ajouter un nouvel élément s’ouvre.

  2. Développez Général, puis sélectionnez Diagramme de classes dans la liste de modèles. Pour les projets Visual C++, examinez la catégorie Utilitaire afin de rechercher le modèle Diagramme de classes.

    Notes

    Si vous ne voyez pas le modèle Diagramme de classes, effectuez les étapes pour installer le composant Concepteur de classes pour Visual Studio.

    Le diagramme de classes s’ouvre dans le Concepteur de classes et apparaît comme fichier avec l’extension .cd dans l’Explorateur de solutions. Vous pouvez faire glisser des formes et des lignes vers le diagramme à partir de la boîte à outils.

Pour ajouter plusieurs diagrammes de classes, répétez les étapes de la procédure.

Ajouter un diagramme de classes basé sur des types existants

Dans l’Explorateur de solutions, ouvrez le menu contextuel d’un fichier (clic droit), puis choisissez Afficher le diagramme de classes.

-ou-

Dans Affichage de classes, ouvrez le menu contextuel de l’espace de noms ou du type, puis choisissez Afficher le diagramme de classes.

Conseil

Si l’Affichage de classes n’est pas ouvert, ouvrez l’Affichage de classes à partir du menu Affichage. Vous pouvez aussi appuyer sur Ctrl+Maj+C.

Pour afficher le contenu d'un projet complet dans un diagramme de classes

Dans l’Explorateur de solutions ou dans Affichage de classes, cliquez avec le bouton droit sur le projet et choisissez Afficher, puis choisissez Afficher le diagramme de classes.

Un diagramme de classes est alors créé et rempli automatiquement.

Important

Le Concepteur de classes n’est pas disponible dans les projets .NET Core.

Personnaliser des diagrammes de classes

Vous pouvez modifier la façon dont les diagrammes de classes affichent les informations. Il est possible de personnaliser le diagramme tout entier ou chaque type sur l'aire de conception.

Par exemple, vous pouvez ajuster le niveau de zoom d'un diagramme de classes entier, modifier la manière dont les membres de type sont groupés et ordonnés, masquer ou afficher les relations, et déplacer chaque type ou ensemble de types à votre guise dans le diagramme.

Notes

Personnaliser la façon dont les formes apparaissent dans le diagramme ne modifie pas le code sous-jacent pour les types représentés dans le diagramme.

Les sections qui contiennent des membres de type, telles que la section Propriétés d’une classe, sont appelées compartiments. Vous pouvez masquer ou afficher des compartiments spécifiques et des membres de type.

Effectuer un zoom avant et arrière dans le diagramme de classes

  1. Ouvrez et sélectionnez un fichier de diagramme de classes dans le Concepteur de classes.

  2. Dans la barre d’outils Concepteur de classes, cliquez sur le bouton Zoom avant ou Zoom arrière pour changer le niveau de zoom de l’aire du concepteur.

    ou

    Spécifiez une valeur de zoom particulière. Vous pouvez utiliser la liste déroulante Zoom ou taper un niveau de zoom valide (la plage valide est comprise entre 10 % et 400 %).

    Remarque

    La modification du niveau de zoom n’affecte pas l’échelle d’impression de votre diagramme de classes.

Personnaliser le regroupement et le tri des membres de type

  1. Ouvrez et sélectionnez un fichier de diagramme de classes dans le Concepteur de classes.

  2. Cliquez avec le bouton droit sur une zone vide de l’aire de conception et pointez sur Membres du groupe.

  3. Sélectionnez l'une des options disponibles :

    • Grouper par genre sépare chaque membre de type dans une liste groupée de propriétés, de méthodes, d’événements et de champs. Les groupes individuels dépendent de la définition des entités : par exemple, une classe n’affiche aucun groupe d’événements si aucun événement n’a encore été défini pour cette classe.

    • Grouper par accès sépare chaque membre de type dans une liste groupée en fonction des modificateurs d’accès du membre. Par exemple, Public et Privé.

    • Trier par ordre alphabétique affiche les éléments qui composent une entité en tant que liste unique classée par ordre alphabétique. La liste est triée dans l'ordre croissant.

Masquer des compartiments sur un type

  1. Ouvrez et sélectionnez un fichier de diagramme de classes dans le Concepteur de classes.

  2. Cliquez avec le bouton droit sur la catégorie de membre dans le type que vous souhaitez personnaliser (par exemple, sélectionnez le nœud Méthodes dans une classe).

  3. Cliquez sur Masquer le compartiment.

    Le compartiment sélectionné disparaît du conteneur de type.

Masquer des membres spécifiques sur un type

  1. Ouvrez et sélectionnez un fichier de diagramme de classes dans le Concepteur de classes.

  2. Cliquez avec le bouton droit sur le membre dans le type que vous souhaitez masquer.

  3. Cliquez sur Masquer.

    Le membre sélectionné disparaît du conteneur de type.

Afficher des compartiments et des membres masqués sur un type

  1. Ouvrez et sélectionnez un fichier de diagramme de classes dans le Concepteur de classes.

  2. Cliquez avec le bouton droit sur le nom du type avec le compartiment masqué.

  3. Cliquez sur Afficher tous les membres.

    Tous les compartiments et membres masqués s'affichent dans le conteneur de type.

Masquer les relations

  1. Ouvrez et sélectionnez un fichier de diagramme de classes dans le Concepteur de classes.

  2. Cliquez avec le bouton droit sur la ligne d'association ou d'héritage que vous souhaitez masquer.

  3. Cliquez sur Masquer pour les lignes d’association et sur Masquer la ligne d’héritage pour les lignes d’héritage.

  4. Cliquez sur Afficher tous les membres.

    Tous les compartiments et membres masqués s'affichent dans le conteneur de type.

Afficher les relations masquées

  1. Ouvrez et sélectionnez un fichier de diagramme de classes dans le Concepteur de classes.

  2. Cliquez avec le bouton droit sur le type avec l'association ou l'héritage masqué.

    Cliquez sur Afficher tous les membres pour les lignes d’association et sur Afficher la classe de base ou Afficher les classes dérivées pour les lignes d’héritage.

Supprimer une forme dans un diagramme de classes

Vous pouvez supprimer une forme de type dans le diagramme de classes sans affecter le code sous-jacent du type. La suppression de formes de type d’un diagramme de classes affecte uniquement ce diagramme : le code sous-jacent qui définit le type et les autres diagrammes qui affichent le type ne sont pas affectés.

  1. Sur le diagramme de classes, sélectionnez la forme de type que vous souhaitez supprimer du diagramme.

  2. Dans le menu Edition, choisissez Supprimer du diagramme.

    La forme de type et les lignes d'association ou d'héritage connectées à la forme n'apparaissent plus sur le diagramme.

Supprimer une forme de type et son code sous-jacent

  1. Cliquez avec le bouton droit sur la forme dans l'aire de conception.

  2. Sélectionnez Supprimer le code dans le menu contextuel.

    La forme est supprimée du diagramme et son code sous-jacent est supprimé du projet.

Copier les éléments d’un diagramme de classes dans un document Microsoft Office

Vous pouvez copier des formes depuis un diagramme de classes .NET (fichier .cd) vers d’autres documents. Vous obtenez une copie de la forme ou son code sous-jacent en fonction du type de document où vous la collez. Pour copier des formes depuis des diagrammes de classes UML dans un projet de modélisation, consultez Exporter des diagrammes en tant qu’images.

Copier un seul élément

Cliquez avec le bouton droit sur la forme et choisissez Copier l’image.

Copier plusieurs éléments

  1. Sélectionnez les formes sur le diagramme que vous souhaitez copier.

  2. Cliquez avec le bouton droit sur votre sélection, puis choisissez Copier l’image.

Copier tous les éléments dans un diagramme de classes

  1. Cliquez avec le bouton droit sur la surface du diagramme, puis choisissez Sélectionner tout ou appuyez sur Ctrl+A.

  2. Dans le menu Edition, sélectionnez Copier l’image.

Vous pouvez également choisir Copier au lieu de Copier l’image. Copier copie l’image en tant que bitmap normale. Copier l’image copie l’image en tant qu’image vectorielle, ce qui est recommandé pour la plupart des applications Office.

Exporter des diagrammes de classes sous forme d’images

Pour exporter un diagramme de classes que vous avez créé à partir du code d'un projet, enregistrez le diagramme en tant qu'image. Si vous souhaitez exporter les diagrammes de classes UML à la place, consultez Exporter des diagrammes en tant qu’images.

Exporter un diagramme

  1. Ouvrez votre fichier de diagramme de classes (.cd).

  2. Dans le menu Diagramme de classes ou dans le menu contextuel de la surface du diagramme, choisissez Exporter le diagramme en tant qu’image.

  3. Sélectionnez un diagramme.

  4. Sélectionnez le format voulu.

  5. Choisissez Exporter pour terminer l’exportation.

Pour mettre à jour automatiquement les images exportées qui sont liées à partir d'autres documents, exportez de nouveau le diagramme dans Visual Studio.

Vous pouvez imprimer un diagramme de classes à l’aide de la fonctionnalité d’impression de Visual Studio.

Pour imprimer un diagramme de classes

  1. Ouvrez le diagramme de classes.

  2. Cliquez sur Imprimer dans le menu Fichier.

L’intégralité du diagramme de classes est imprimé. Vous devrez peut-être ajuster les paramètres dans la boîte de dialogue Mise en page pour imprimer à la taille voulue.

Ajouter des commentaires aux diagrammes de classes

Vous pouvez utiliser des zones de commentaire pour annoter les diagrammes de classes. Une zone de commentaire comprend la propriété Text dans laquelle vous pouvez taper du texte. Les zones de commentaire sont présentes uniquement sur la surface du diagramme et pas dans le code.

Les commentaires résident dans la vue du diagramme de classes du Concepteur de classes. Si vous ouvrez un deuxième diagramme dans le même projet, les commentaires que vous avez créés dans la première vue ne sont pas visibles. Si vous supprimez un diagramme, tous les commentaires qu’il contient seront également supprimés.

Vous pouvez redimensionner une zone de commentaire, mais vous ne pouvez pas modifier d’autres aspects de son apparence comme la police, la taille de la police ou la couleur d’arrière-plan.

Pour ajouter un commentaire

  1. Faites glisser un commentaire de la Boîte à outils du Concepteur de classes vers le diagramme de classes.

  2. Cliquez dans la nouvelle zone de commentaire du diagramme et tapez votre texte.

Utilisez les raccourcis clavier et souris dans le diagramme de classes et dans la fenêtre des détails de classe

Vous pouvez utiliser le clavier en plus de la souris pour naviguer dans le Concepteur de classes et dans la fenêtre Détails de classe.

Utiliser la souris dans le Concepteur de classes

Les actions de la souris suivantes sont prises en charge dans les diagrammes de classes :

Combinaison avec la souris Context Description
Double-clic éléments Shape Ouvre l'éditeur de code.
Double-clic Connecteur d'interface lollipop Développe/réduit l'interface lollipop.
Double-clic Étiquette du connecteur d'interface lollipop Appelle la commande Afficher l’interface.
Roulette de la souris Diagramme de classes Fait défiler verticalement.
Maj+roulette de la souris Diagramme de classes Fait défiler horizontalement.
Ctrl+roulette de la souris Diagramme de classes Effectue un zoom.
Ctrl+Maj+clic Diagramme de classes Effectue un zoom.

Utiliser la souris dans la fenêtre Détails de classe

À l’aide de la souris, vous pouvez changer l’apparence de la fenêtre Détails de classe et des données qui y sont affichées en effectuant les étapes suivantes :

  • Cliquez sur une cellule modifiable pour en modifier le contenu. Vos modifications sont répercutées partout où ces données sont stockées ou affichées, notamment dans la fenêtre Propriétés et dans le code source.

  • Cliquez sur une cellule dans une ligne pour afficher les propriétés de l’élément représenté par cette ligne dans la fenêtre Propriétés.

  • Pour modifier la largeur d'une colonne, faites glisser la bordure droite de l'en-tête de colonne en fonction de la largeur de colonne souhaitée.

  • Développez ou réduisez les nœuds de compartiment ou de propriété en cliquant sur les flèches situées à gauche de la ligne.

  • La fenêtre Détails de classe comporte plusieurs boutons permettant de créer des membres dans la classe actuelle et de naviguer entre les compartiments des membres dans la grille de la fenêtre Détails de classe.

Utiliser le clavier dans le Concepteur de classes

Les actions du clavier suivantes sont prises en charge dans les diagrammes de classes :

Clé : Context Description
Touches de direction À l'intérieur des formes de type Navigation en arborescence dans le contenu de la forme (habillage de la forme pris en charge). Les touches droite et gauche permettent de développer/réduire l’élément actuel s’il peut être développé ou, sinon, de naviguer vers l’élément parent (voir la section sur la navigation en arborescence pour plus de détails sur le comportement).
Touches de direction Formes de niveau supérieur Permettent de déplacer les formes dans le diagramme.
Maj+touches de direction À l'intérieur des formes de type Combinaison de touches permettant la sélection continue d'éléments de forme, tels que des membres, des types imbriqués ou des compartiments. Ces raccourcis ne prennent pas en charge l'habillage.
Maison À l'intérieur des formes de type Permet d'atteindre le titre de la forme de niveau supérieur.
Maison Formes de niveau supérieur Permet d'atteindre la première forme dans le diagramme.
End À l'intérieur des formes de type Permet d'atteindre le dernier élément visible à l'intérieur de la forme.
End Formes de niveau supérieur Permet d'atteindre la dernière forme dans le diagramme.
Maj+Début À l'intérieur d'une forme de type Sélectionne des éléments dans la forme, en commençant par l'élément actuel et en terminant par l'élément supérieur de cette forme.
Maj+Fin À l'intérieur d'une forme de type Identique à Maj+Origine, mais du haut vers le bas.
Entrée Tous les contextes Appelle l’action par défaut sur la forme qui est également réalisable avec un double-clic. Dans la plupart des cas, il s'agit de la commande Afficher le code, mais certains éléments définissent l'action par défaut différemment (lollipops, en-têtes de compartiment, étiquettes lollipop).
+ et - Tous les contextes Si l’élément ayant le focus peut être développé, ces touches le développent ou le réduisent.
> Tous les contextes Sur un élément ayant des enfants, cette touche développe l’élément s’il est réduit et permet de naviguer vers le premier enfant.
< Tous les contextes Navigue jusqu'à l'élément parent.
Alt+Maj+L À l'intérieur des formes de type + sur les formes de type Navigue vers l’interface lollipop de la forme actuellement sélectionnée si elle est présente.
Alt+Maj+B À l'intérieur des formes de type + sur les formes de type Si la liste des types de base est indiquée sur la forme de type et possède plusieurs éléments, elle est développée si elle était réduite, et inversement.
Supprimer Sur les formes de type et zones de commentaire Appelle la commande Supprimer du diagramme.
Supprimer Sur tout le reste Appelle la commande Supprimer du code (membres, paramètres, associations, héritage, étiquettes lollipop).
Ctrl+Suppr Tous les contextes Appelle la commande Supprimer du code sur la sélection.
Onglet Tous les contextes Fait naviguer jusqu'à l'enfant suivant dans le même parent (prend en charge l'habillage).
Maj+Tab Tous les contextes Fait naviguer jusqu'à l'enfant précédent dans le même parent (prend en charge l'habillage).
Barre d’espace Tous les contextes Active ou désactive la sélection de l'élément actuel.

Utiliser le clavier dans la fenêtre Détails de classe

Note

Les combinaisons de touches suivantes reproduisent spécifiquement l’expérience de saisie du code.

Utilisez les touches suivantes pour naviguer dans la fenêtre Détails de classe :

Clé : Résultat
, (virgule) Si le curseur se trouve dans une ligne de paramètre, la saisie d'une virgule déplace le curseur dans le champ Nom du paramètre suivant. S’il se trouve dans la dernière ligne de paramètre d’une méthode, il se déplace dans le champ <ajouter un paramètre>, que vous pouvez utiliser pour créer un paramètre.

Si le curseur se trouve ailleurs dans la fenêtre Détails de classe, la saisie d’une virgule ajoute simplement une virgule dans le champ actuel.
; (point-virgule) ou ) (parenthèse fermante) Déplace le curseur dans le champ Nom de la ligne de membre suivante dans la grille de la fenêtre Détails de classe.
Onglet Déplace le curseur dans le champ suivant (de gauche à droite, puis de haut en bas). Si le curseur quitte un champ dans lequel vous avez tapé du texte, Détails de classe traite ce texte et le stocke s’il ne génère pas d’erreur.

S’il se trouve dans un champ vide comme <ajouter un paramètre>, la touche Tab le déplace dans le premier champ de la ligne suivante.
Barre d’espace Déplace le curseur dans le champ suivant (de gauche à droite, puis de haut en bas). Si le curseur se trouve dans un champ vide comme <ajouter un paramètre>, il se déplace dans le premier champ de la ligne suivante. Notez qu’un <espace> tapé juste après une virgule est ignoré.

Si le curseur se trouve dans le champ Résumé, la saisie d'un espace ajoute un caractère espace.

Si le curseur se trouve dans la colonne Masquer d'une ligne, la saisie d'un espace inverse la valeur de la case à cocher Masquer.
Ctrl+Tab Bascule vers une autre fenêtre de document, par exemple, de la fenêtre Détails de classe vers un fichier de code ouvert.
Échap Si vous avez commencé à taper du texte dans un champ, l'utilisation de la touche Échap annule la saisie en cours et rétablit le contenu précédent du champ. Si la fenêtre Détails de classe est active, mais qu’aucune cellule spécifique n’a le focus, l’utilisation de la touche Échap déplace le focus hors de la fenêtre Détails de classe.
Flèche haut et flèche bas Ces touches déplacent verticalement le curseur de ligne en ligne dans la grille de la fenêtre Détails de classe.
Flèche gauche Si le curseur se trouve dans la colonne Nom, le fait d’appuyer sur la flèche gauche réduit le nœud actuel dans la hiérarchie (s’il est ouvert).
Flèche droite Si le curseur se trouve dans la colonne Nom, le fait d’appuyer sur la flèche droite développe le nœud actuel dans la hiérarchie (s’il est réduit).

Conseil

Pour obtenir une liste complète des raccourcis clavier, consultez Raccourcis clavier dans Visual Studio.