Navegando e atualizando os modelos de camada no código de programa
Este pacote de recursos de 2010 de Visual Studio permite que você navegue e atualizar os modelos de camada em Visual Studio 2010 Ultimate usando o código de programa. Este tópico descreve os elementos e relações de modelos de camada.
Para obter mais informações sobre os diagramas de camada ponto de vista do usuário do, consulte Diagramas de camada: Referência e Diagramas de camada: Diretrizes. Para obter mais informações, consulte Pacotes de funcionalidades de Visual Studio.
Transações
Quando você atualiza um modelo, considere a possibilidade de colocar as alterações em um ILinkedUndoTransaction. Isso agrupa as alterações em uma transação. Se qualquer uma das alterações falhar, toda a transação será revertida. Se o usuário desfaz uma alteração, todas as alterações serão desfeitas juntos.
Para obter mais informações, consulte Como: Atualizações do modelo de link usando transações.
using (ILinkedUndoTransaction t =
LinkedUndoContext.BeginTransaction("a name"))
{
// Make changes here ....
t.Commit(); // Don't forget this!
}
Detenção
Camadas (ILayer) e o modelo de camada (ILayerModel) podem conter comentários e camadas.
Uma camada (ILayer) podem estar contidos em um modelo de camada (ILayerModel) ou pode ser aninhada em outra ILayer.
Para criar um comentário ou uma camada, use os métodos de criação no recipiente apropriado.
Links de dependência
Um link de dependência é representado por um objeto. Ele pode ser navegado em qualquer direção:
Para criar um link de dependência, chame source.CreateDependencyLink(target).
Comentários
Comentários podem estar contidos dentro de camadas ou o modelo de camada e também podem ser vinculados a qualquer elemento de camada:
Um comentário pode ser vinculado a qualquer número de elementos, incluindo nenhum.
Criar um comentário chamando CreateComment() no recipiente apropriado.
Criar um vínculo usando CreateLink() no comentário.
Elementos de camada
Todos os tipos de elemento que pode estar contido em um modelo são elementos de camada:
Referências de artefato
Uma referência de artefato (ILayerArtifactReference) representa o vínculo entre uma camada e um item de projeto como, por exemplo, um arquivo, classe ou pasta. Quando o usuário cria ou adiciona uma camada, arrastando itens para o diagrama de camada do Solution Explorer ou do Explorer de arquitetura, eles estão criando artefatos. Qualquer número de referências de artefato pode ser vinculado a uma camada.
Cada linha na camada Explorer exibe uma referência de artefato. Para obter mais informações, consulte Como: Crie diagramas de camada de artefatos.
Os tipos de entidade e métodos preocupados com referências de artefato são:
ILayerArtifactReference. A propriedade categorias indica que tipo de artefato é referenciado como, por exemplo, uma classe, um arquivo executável ou um assembly. Categorias determina como o identificador identifica o artefato de destino.
CreateArtifactReferenceAsync()cria uma referência de artefato a partir de um Project ou ProjectItem. Esta é uma operação assíncrona. Portanto, geralmente fornecem um retorno de chamada é chamado quando a criação foi concluída.
Referências de artefato de camada não deve ser confundidas com artefatos em diagramas de caso de uso.
Formas e diagramas
Dois objetos são usados para representar cada elemento em um modelo de camada: an ILayerElement, and an IShape. O IShape representa a posição e tamanho da forma no diagrama. Em modelos de camada, todos ILayerElement tem um IShapee cada IShape em uma camada diagrama tem um ILayerElement. IShapetambém é usado para modelos UML. Portanto, nem todas as IShape tem um elemento de camada.
Da mesma maneira, o ILayerModel é exibido em uma IDiagram.
No código de um comando personalizado ou um manipulador de gesto, você pode obter o diagrama atual e a seleção atual das formas a partir de DiagramContext Importar:
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) ... }}
IShapee IDiagram também são usados para exibir todos os modelos UML. Para obter mais informações, consulte Como: Exibir um modelo em diagramas.
Consulte também
Referência
Conceitos
Diagramas de camada: Referência
Diagramas e modelos UML estendendo
Outros recursos
Adicionando comandos e gestos para diagramas de camada
Adicionar validação de arquitetura de personalizada aos diagramas de camada
Adicionando propriedades personalizadas a um diagrama de camada