Programação com a API de UML
A API de UML do Visual Studio Ultimate permite que você escreva código para criar, ler e atualização modelos UML e diagramas.
Além das páginas de referência de API, os tópicos a seguir descrevem a API.
Tópico |
Tipos de exemplo e os métodos descritos |
Recursos descritos |
---|---|---|
Elementos UML e suas propriedades e associações.Por exemplo, IElement e seus descendentes, incluindo: IPackage de IInteraction, IModel, IClass, IActivity, IUseCase, IComponent, |
Na Visual Studio Ultimate, modelos UML estão de acordo com a UML specification versão 2.1.2, que pode ser obtida na Página de recursos do UML.Cada tipo é uma interface que tem o mesmo nome como o tipo UML, prefixado com "I". |
|
IPackage.CreateClass() IClass.CreateOperation() |
Cada tipo de elemento tem métodos para a criação de seus filhos. |
|
IShape, IDiagram IShape.Move() |
Cada elemento em um modelo pode ser representado como uma forma em um diagrama.Em alguns casos, você pode criar novas formas para cada objeto.Você pode mover, redimensionar, cor e recolher ou expandir essas formas. |
|
IModelStore IDiagramContext |
O modelo de armazenamento armazena o modelo. O contexto do diagrama fornece acesso para o diagrama atual e o armazenamento. |
|
ILinkedUndoContext |
Você pode vincular a uma série de alterações em uma transação. |
|
Como: definir um comando de Menu em um diagrama de modelagem |
IMenuCommand IGestureExtension ICommandExtension |
Você pode estender a funcionalidade de um diagrama definindo comandos invocados clicando e arrastando para o diagrama. |
ValidationContext |
Você pode definir a validação regras que ajudam a certificar-se de que um modelo compatível com restrições especificadas. |
|
IElement, IShape |
Quando um elemento é arrastado do Gerenciador de modelos UML ou em um diagrama UML para outro diagrama ou aplicativo, ele é serializado como um IDataObject. |
|
IInteraction, ILifeline, IMessage |
Criação e atualização de um diagrama de interação são ligeiramente diferente do que trabalhar com os outros tipos de diagramas. |
|
ILayer, ILayerDiagram |
Você pode escrever código para criar e edição diagramas de camada e também validarcódigo deprograma em relação a elas. |
Sobre a implementação
As ferramentas de modelagem UML baseiam-se no Ferramentas de Linguagem Específica do Domínio.Cada pacote e cada diagrama é representado por um Ferramentas de Linguagem Específica do Domínio modelo e uma coleção de regras e outros métodos mantém a consistência entre eles.
Tipos a partir dessa plataforma são visíveis em alguns dos assemblies que fazem referência a para escrever extensões UML.Embora você possa fazer extensões para as ferramentas UML, acessando o Ferramentas de Linguagem Específica do Domínio API, você deve ter as seguintes considerações em mente:
Você pode achar que algumas alterações aparentemente simples introduzem inconsistências e efeitos inesperados.
A implementação pode mudar no futuro, para que as adaptações feitas usando o Ferramentas de Linguagem Específica do Domínio API talvez não funcione.
Os assemblies de API
Esta tabela resume os assemblies que oferecem extensibilidade para ferramentas UML e os espaços para nome que você recomenda-se usar.
Assembly |
Namespaces |
Fornece acesso a: |
---|---|---|
Microsoft.VisualStudio.UML.interfaces |
(Tudo) |
Os tipos UML. |
Microsoft.VisualStudio.ArchitectureTools.Extensibility |
||
Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation |
||
Microsoft.VisualStudio.Modeling.SDK.11.0 |
||
(outros espaços para nome) |
Recomendado somente para uso avançado. |
|
Microsoft.VisualStudio.Modeling.SDK.Diagrams.11.0 |
Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement |
|
(outros espaços para nome) |
Recomendado somente para uso avançado. |
|
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
||
Microsoft.TeamFoundation.WorkItemTracking.Client |
||
Microsoft.TeamFoundation.Client |
||
System.ComponentModel.Composition |
||
System. LINQ |
Fácil manipulação das coleções, especialmente quando lidando com relacionamentos. |
Consulte também
Conceitos
Diagramas e modelos UML estendendo