Partager via


Navigation et mise à jour des modèles de couche dans le code de programme

Ce Feature Pack Visual Studio 2010 vous permet de parcourir et de mettre à jour les modèles de couche dans Visual Studio 2010 Ultimate à l'aide du code de programme. Cette rubrique décrit les éléments et les relations dans les modèles de couche.

Pour plus d'informations sur les diagrammes de couche du point de vue de l'utilisateur, consultez Diagrammes de couche : référence et Diagrammes de couche : instructions. Pour plus d'informations, consultez Packs de fonctionnalités Visual Studio.

Transactions

Lorsque vous mettez à jour un modèle, envisagez de placer les modifications dans ILinkedUndoTransaction. Cela regroupe vos modifications dans une transaction. En cas d'échec de l'une des modifications, la transaction entière sera restaurée. Si l'utilisateur annule une modification, toutes les modifications seront annulées ensemble.

Pour plus d'informations, consultez Comment : lier des mises à jour de modèles à l'aide de transactions.

using (ILinkedUndoTransaction t =
        LinkedUndoContext.BeginTransaction("a name"))
{ 
    // Make changes here ....
    t.Commit(); // Don't forget this!
}

Relation contenant-contenu

ILayer et ILayerModel peuvent tous les deux contenir ILayers.

Les couches (ILayer) et le modèle de couche (ILayerModel) peuvent contenir des commentaires et des couches.

Une couche (ILayer) peut être contenue dans un modèle de couche (ILayerModel) ou peut être imbriquée dans une autre ILayer.

Pour créer un commentaire ou une couche, utilisez les méthodes de création sur le conteneur approprié.

Liens de dépendance

Un lien de dépendance est représenté par un objet. Il peut être parcouru dans un sens ou dans l'autre :

Un ILayerDependencyLink connecte deux ILayers.

Pour créer un lien de dépendance, appelez source.CreateDependencyLink(target).

Commentaires

Les commentaires peuvent être contenus dans les couches ou le modèle de couche, et peuvent également être liés à tout élément de couche :

Les commentaires peuvent être attachés à tout élément de couche.

Un commentaire peut être lié à n'importe quel nombre d'éléments, et même à aucun.

Pour obtenir les commentaires joints à un élément de couche, utilisez :

ILayerModel model = diagram.GetLayerModel(); 
IEnumerable<ILayerComment> comments = 
   model.Comments.Where(comment => 
      comment.Links.Any(link => link.Target == layerElement));

Avertissement

La propriété Comments d'une ILayer obtient les commentaires contenus dans la ILayer. Elle n'obtient pas les commentaires liés à elle.

Créez un commentaire en appelant CreateComment() sur le conteneur approprié.

Créez un lien en utilisant CreateLink() sur le commentaire.

Éléments de couche

Tous les types d'éléments qui peuvent être contenus dans un modèle sont des éléments de couche :

Les ILayerElements constituent le contenu du diagramme de couche.

Propriétés

Chaque ILayerElement a un dictionnaire de chaîne nommé Properties. Vous pouvez utiliser ce dictionnaire pour joindre des informations arbitraires à tout élément de couche.

Références d'artefact

Une référence d'artefact (ILayerArtifactReference) représente le lien entre une couche et un élément de projet tels qu'un fichier, une classe ou un dossier. Lorsque l'utilisateur crée ou ajoute une couche en faisant glisser des éléments sur le diagramme de couche à partir de l'Explorateur de solutions ou du Navigateur de l'architecture, il crée des artefacts. Il est possible de lier n'importe quel nombre de références d'artefact à une couche.

Chaque ligne dans l'Explorateur de couches affiche une référence d'artefact. Pour plus d'informations, consultez Comment : créer des diagrammes de couche à partir d'artefacts.

Les principaux types et méthodes concernés par les références d'artefact sont les suivants :

ILayerArtifactReference. La propriété Categories indique quel type d'artefact est référencé, tel qu'une classe, un fichier exécutable ou un assembly. Elle détermine comment l'identificateur identifie l'artefact cible.

CreateArtifactReferenceAsync() crée une référence d'artefact à partir d'un Project ou ProjectItem. Il s'agit d'une opération asynchrone. Par conséquent, vous fournissez habituellement un rappel appelé lorsque la création est terminée.

Les références d'artefact de couche ne doivent pas être confondues avec les artefacts dans les diagrammes de cas d'usage.

Formes et diagrammes

Deux objets sont utilisés pour représenter chaque élément dans un modèle de couche : ILayerElement et IShape. IShape représente la position et la taille de la forme sur le diagramme. Dans les modèles de couche, chaque ILayerElement a une IShape, et chaque IShape sur un diagramme de couche a un ILayerElement. IShape est également utilisée pour les modèles UML. Par conséquent, toutes les IShape n'ont pas un élément de couche.

De la même manière, le ILayerModel est affiché sur un IDiagram.

Dans le code d'un gestionnaire de mouvements ou de commandes personnalisé, vous pouvez obtenir le diagramme en cours et la sélection actuelle de formes à partir de l'importation DiagramContext :

public class ... {
[Import]
    public IDiagramContext DiagramContext { get; set; }
...
public void ... (...) 
{ IDiagram diagram = this.DiagramContext.CurrentDiagram;
  ILayerModel model = diagram.GetLayerModel();
  if (model != null)
  { foreach (ILayer layer in model.Layers) { ... }}
  foreach (IShape selected in diagram.SelectedShapes)
  { ILayerElement element = selected.GetLayerElement();
    if (element != null) ... }}

Chaque ILayerElement est présenté par un IShape.

IShape et IDiagram sont également utilisés pour afficher des modèles UML. Pour plus d'informations, consultez Comment : afficher un modèle sur des diagrammes.

Voir aussi

Référence

Layer Diagrams: Guidelines

Concepts

Diagrammes de couche : référence

Autres ressources

Ajout de commandes et de mouvements aux diagrammes de couche

Ajout d'une validation d'architecture personnalisée aux diagrammes de couche

Ajout de propriétés personnalisées à un diagramme de couche

Extension de modèles et de diagrammes UML

Historique des modifications

Date

Historique

Motif

Avril 2011

Ajout d'informations sur l'accès aux commentaires et aux propriétés.

Améliorations apportées aux informations.