Como: Gere gráficos de dependência para.NET de código
Para explorar a organização e os relacionamentos.NET código, use Visual Studio Ultimate para gerar gráficos de dependência. Use estes gráficos para ajudá-lo a visualizar, explorar e analisar dependências no código. Um gráfico representa os elementos de código e suas relações, como um conjunto de nós que estão conectados por links ou bordas.
Observação |
---|
Se você tiver uma solução muito grande, gerar um gráfico de dependência pode causar uma exceção de memória de insuficiente. Se isso ocorrer, reduza o escopo de sua solução. Você pode também usar o Explorer de arquitetura para selecionar os projetos e as dependências que você deseja visualizar e então gerar o gráfico. |
Para gerar gráficos de dependência para código c e C++ e para projetos Web, baixe e instale Microsoft Visual Studio 2010 Visualization and Modeling Feature Pack.
Para obter mais informações, consulte:
Escolha um gráfico de dependência para gerar
Visual Studio Ultimatepermite gerar documentos de gráfico rapidamente para explorar dependências no código. Para gerar documentos de gráfico usando uma ferramenta de linha de comando, consulte Gerar documentos de gráfico para processamento em lote.
Para |
Gerar um gráfico que mostra as relações |
---|---|
Consulte uma visão geral do código-fonte |
Entre todos os assemblies, todos os namespaces ou todas as classes em um Visual Studio solução. O gráfico mostra as dependências de agregados de nível superior de nós que você selecionou. |
Consulte as dependências específicas no código-fonte |
Entre as áreas selecionadas de código fonte em um Visual Studio solução. Use Explorer de arquitetura para procurar o código hierarquicamente e selecionar a tipos específicos de estruturas e relacionamentos. |
Consulte uma visão geral do código compilado |
Em uma ou várias.Os arquivos de assembly NET (. dll) ou executável (. exe) |
Consulte as dependências específicas no código compilado |
Entre as áreas selecionadas no.NET assembly (. dll) ou arquivos executáveis (. exe). Use Explorer de arquitetura para procurar e selecionar os tipos específicos de estruturas e relacionamentos. |
Depois de gerar o gráfico, você pode usá-lo para explorar o código de maneiras diferentes. Para obter mais informações, consulte Como: Explore o código com gráficos de dependência.
Consulte uma visão geral do código-fonte em uma solução de Visual Studio
Abra a solução.
Sobre o arquitetura , aponte para Gerar o gráfico de dependênciae, em seguida, execute uma das seguintes etapas:
Clique em
Para gerar um gráfico que mostra
Por conjunto
Agregados dependências entre todos os assemblies produzidos por sua solução e quaisquer dependências externas, eles dependem.
Para ver os namespaces, classes e métodos dentro de um assembly, expandem o assembly no gráfico. Conjuntos de módulos externos mostram somente os itens que estão em uso.
Por Namespace
Agregados dependências entre todos os namespaces em sua solução e namespaces externos que o código depende.
Para ver as classes e métodos dentro de um namespace, expanda o namespace no gráfico. Namespaces externos mostram somente os itens que estão em uso.
Por classe
Agregados dependências entre todas as classes em sua solução. Nenhuma informação sobre classes externas usadas pelo código aparecerá.
- ou -
Para ver as dependências em vários tipos de estruturas, clique em personalizado.
No Gerar o gráfico de dependência caixa de diálogo, clique em pelo menos uma das seguintes caixas: Assemblies, Namespaces, tipos, ou métodos.
Use a tabela a seguir para filtrar o gráfico:
Para
Execute essas etapas.
Consulte as referências de dependências externas.
Isso é útil para explorar a compilação de assemblies como interno em assemblies externos.
Selecione itens externos
Consulte apenas esses tipos e métodos com os níveis de acesso específico.
Por exemplo, convém para simplificar o gráfico selecionando apenas os tipos públicos.
Expanda o Filtro de acesso painel e selecione os níveis que você deseja.
ObservaçãoVocê deve selecionar pelo menos um nível de acesso de tipo.Para reduzir o número de dependências no gráfico, selecione os níveis de acesso que você deseja para métodos.Consulte as dependências de alto nível, mostrando as relações de confinamento como grupos aninhados e dependências como links agregados.
ObservaçãoPara métodos, dependências aparecerá como links individuais, links agregados não porque os métodos são os nós de folha de nível mais baixo.Selecione o Confinamento de mostrar como grupo caixa.
Consulte as dependências de baixo nível, mostrando as relações de confinamento como nós vinculado e dependências como links individuais.
Limpar o Confinamento de mostrar como grupo caixa.
Quando você tiver terminado, clique em OK.
Visual Studiocria um gráfico direcionado de documento (arquivo de .dgml) e o abre.
A espessura do link de dependência agregada indica aproximadamente quantos individuais dependências representando a dependência de agregados. Para ver os tipos de dependências que a link representa, mova o ponteiro sobre o link até que a dica de ferramenta apareça.
Observação Gráficos de dependência para gerar a partir de arquitetura menu não mostrar chamadas para métodos virtuais para o tipo mais derivado. Em vez disso, eles mostram dependências nos tipos de declarar esses membros virtuais. No entanto, você pode usar o modo de exibição de classe em Explorer de arquitetura para localizar essas chamadas. Pode em seguida, arraste-os do Explorer de arquitetura para um gráfico existente, ou você pode gerar um novo gráfico da Explorer de arquitetura barra de ferramentas.
Consulte as dependências específicas no código de origem em uma solução de Visual Studio
Use Explorer de arquitetura para encontrar o código e os relacionamentos que você deseja visualizar. Você também pode usar consultas predefinidas para gerar um gráfico.
Abra a solução.
Se Explorer de arquitetura não está aberto no arquitetura , aponte para Windowse, em seguida, clique em Explorer de arquitetura.
Na primeira coluna de Explorer de arquitetura, em Visual Studio, clique em um dos seguintes modos:
Exibição de classe para explorar a hierarquia lógica do código.
Use para procurar namespaces, tipos, métodos e assim por diante.
Modo de exibição de solução para explorar a hierarquia física do código
Use para procurar projetos, arquivos de origem e assim por diante.
Na próxima coluna, selecione os itens que você deseja explorar. Para selecionar tudo na coluna, pressione ctrl + A.
A próxima coluna mostra os itens que estão relacionadas à sua seleção com base nos tipos padrão de itens e relacionamentos para essa coluna.
Observação Para selecionar outros tipos de itens e relacionamentos, expanda a coluna recolhida à direita da coluna com suas seleções. Em Nó de navegação, selecione os tipos de itens que deseja. Em Saída navegação ou De entrada de navegação, selecione os tipos de relacionamentos que você deseja. Para obter mais informações, consulte Como: Localizar o código usando o Explorer de arquitetura.
Repita a etapa 4 até que você selecione os itens que você deseja.
Observação Para incluir chamadas dependências em seu gráfico, procure e selecione todos os métodos são chamados de suas classes selecionados.
Para criar um novo gráfico de sua seleção na Explorer de arquitetura a barra de título, clique em criar um novo documento do gráfico de todos os nós.
Visual Studiocria um gráfico direcionado de documento (arquivo de .dgml) e o abre.
- ou -
Para adicionar sua seleção para um gráfico existente ou para um gráfico em branco, siga estas etapas:
Abra o arquivo de .dgml do gráfico existente, ou criar um gráfico em branco.
Sob o Explorer de arquitetura a barra de título, clique em Adicionar todos os nós selecionados para o documento do gráfico visível no momento.
- ou -
Arraste os nós de Explorer de arquitetura para o gráfico.
Criar um gráfico em branco
Para abrir um gráfico em branco, no arquivo , aponte para novae em seguida, clique em arquivo.
- ou -
Para adicionar um gráfico em branco para o Itens de solução pasta, na Solution Explorer, o botão direito do mouse no nó da solução de nível superior e, em seguida, clique em Add New Item.
Em Modelos instalados, clique em Geral.
No painel direito, clique em Documento direcionado de gráfico, nomeie o gráfico e, em seguida, clique em Add.
Para obter mais informações sobre as diferentes maneiras que você pode interagir com o gráfico, clique no link de Ajuda que aparece no gráfico em branco.
Explore o código-fonte usando consultas predefinidas
Abra a solução.
Se Explorer de arquitetura não está aberto no arquitetura , aponte para Windowse, em seguida, clique em Explorer de arquitetura.
Na primeira coluna de Explorer de arquitetura, em Consultas salvas de DGQL, clique em Em pastas.
Na próxima coluna, clique em uma das consultas a seguir, dependendo do tipo de gráfico que você deseja criar:
Para gerar um gráfico que mostra
Clique em
Todos os assemblies referenciados pela solução.
Dos resultados da consulta, você pode gerar um gráfico que mostra as dependências entre esses assemblies.
Todos os References.dgql de Assembly
Uma lista simples de todos os assemblies de saída na solução sem links de dependência.
Todos os Assemblies.dgql de saída
Para gerar um gráfico de dependência padrão assemblies selecionados, siga estas etapas:
Na próxima coluna, selecione os assemblies que desejar.
No lado direito da coluna atual, clique na coluna de ação recolhido para expandi-la.
ObservaçãoA coluna de ação aparece realçada quando você move o ponteiro sobre ele.Na coluna ação, em comandos, clique em Gráfico padrão.
Todos os projetos na solução.
Dos resultados da consulta, você pode gerar um gráfico que mostra as referências entre esses projetos.
Todos os References.dgql de projeto
Uma lista simples de todos os projetos na solução.
Se sua solução inclui pastas de solução, essa lista é diferente daquele mostrado quando você clicar em o modo de exibição de solução no Explorer de arquitetura.
Todos os Projects.dgql
Todos os tipos na solução.
Dos resultados da consulta, você pode gerar um gráfico que mostra as relações de herança entre esses tipos.
Graph.dgql de herança
A próxima coluna mostra os resultados como uma lista plana. Embora os links podem existir entre esses nós, Explorer de arquitetura não mostrá-los.
Para gerar um gráfico, incluindo links, para todos os itens na coluna de resultados, siga estas etapas:
Na coluna de resultados, pressione CTRL+a para selecionar todos os itens.
Pressione e mantenha pressionado o CTRL chave para incluir somente itens na coluna atual no gráfico e, no Explorer de arquitetura a barra de título, clique em criar um novo documento do gráfico de todos os nós.
Visual Studiocria um gráfico direcionado de documento (arquivo de .dgml) e o abre.
Consulte uma visão geral do código compilado
Criar um gráfico em branco, ou abrir arquivo de .dgml de um gráfico existente.
De fora Visual Studio, arraste o arquivo. dll ou. exe para o gráfico.
Observação Arrastando a partir de referências pasta na Solution Explorer não é suportado. Você pode arrastar módulos (assemblies) do Windows Explorer somente se você estiver executando o Windows Explorer e Visual Studio no mesmo controle de acesso de usuário (UAC) permissões nível. Por exemplo, se o UAC estiver habilitado e você estiver executando o Visual Studio como administrador, em seguida, Windows Explorer bloqueará a operação de arrastar. Para contornar este problema, desative o UAC ou usar as consultas predefinidas para explorar a sua solução.
Consulte as dependências específicas no código compilado
Se Explorer de arquitetura não está aberto no arquitetura , aponte para Windowse, em seguida, clique em Explorer de arquitetura.
Na primeira coluna, em Sistema de arquivos, clique em Selecionar arquivos.
No Abrir caixa, navegue até os arquivos. dll ou. exe para selecionar e abri-los.
Na próxima coluna, selecione os assemblies. Para selecionar tudo na coluna, pressione ctrl + A.
A próxima coluna mostra os itens que estão relacionadas à sua seleção com base nos tipos padrão de itens e relacionamentos para essa coluna.
Observação Para selecionar outros tipos de itens e relacionamentos, expanda a coluna recolhida à direita da coluna com suas seleções. A coluna de ação aparece realçada quando você move o ponteiro sobre ele. Em Nó de navegação, selecione os tipos de itens que deseja. Em Saída navegação ou De entrada de navegação, selecione os tipos de relacionamentos que você deseja. Para obter mais informações, consulte Como: Localizar o código usando o Explorer de arquitetura.
Escolha uma das seguintes opções:
Para criar um gráfico de dependência dos seguintes itens
Siga estas etapas.
Conjuntos de Módulos (Assemblies)
À direita da coluna que contém os assemblies, clique na coluna de ação recolhido para expandi-la.
A coluna de ação aparece realçada quando você move o ponteiro sobre ele.
Na coluna ação, em comandos, clique em Gráfico padrão.
Classes e métodos
Percorra as classes e métodos, a seleção de todos os itens que você deseja incluir no gráfico.
Para criar um novo gráfico, na Explorer de arquitetura a barra de título, clique em criar um novo documento do gráfico de todos os nós.
Visual Studiocria um gráfico direcionado de documento (arquivo de .dgml) e o abre.
- ou -
Para adicionar sua seleção para um gráfico existente ou para um gráfico em branco, siga estas etapas:
Abra o arquivo de .dgml do gráfico existente, ou criar um gráfico em branco.
Sob o Explorer de arquitetura a barra de título, clique em Adicionar todos os nós selecionados para o documento do gráfico visível no momento.
- ou -
Arraste os nós de Explorer de arquitetura para o gráfico.
Gerar documentos de gráfico para processamento em lotes
Para gerar documentos do gráfico (arquivos de .dgml) no modo em lote, use o GraphCmd.exe ferramenta de linha de comando. Por exemplo, você pode encontrar as dependências que foram alterados entre compilações executando a ferramenta após cada compilação.
Para localizar essa ferramenta, procure-o na seguinte pasta: 10.0\Common7\IDE do c:\Arquivos de Programas\Microsoft Visual Studio.
Observação |
---|
GraphCmd.exe gera informações de dependência somente para assemblies ou arquivos de .dgml, o código de origem não Visual Studio arquivos de solução ou projeto. |
A sintaxe para GraphCmd.exe é:
GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec
"DGQL_Statement" -output File_Name -path alias=path
A tabela a seguir descreve as opções para GraphCmd.exe:
-? |
Exiba a Ajuda do GraphCmd.exe. |
-all |
Inclua todos os resultados intermediários de consulta, não apenas para o último conjunto de nós. |
-exceptions |
Relate as exceções de consulta como um arquivo de documento (.dgml) do gráfico. |
-input Nome_do_arquivo |
Processe o arquivo de .dgml especificado. Isso é útil para um arquivo grande .dgml de pós-processamento e filtragem de forma que você pode visualizar a ele mais facilmente em Visual Studio. |
-query Nome_do_arquivo |
Execute o arquivo especificado de (DGQL ou .dgql) de linguagem de consulta de gráfico direcionado. Para obter mais informações, consulte:
|
-exec "DGQL_Statement" |
Execute a instrução de DGQL especificada. Para obter mais informações, consulte Compreensão direcionado gráfico Query Language (DGQL). |
-output Nome_do_arquivo |
O arquivo especificado de .dgml de saída. |
-path alias=caminho |
Especifique um novo alias para usar a entrada e saída de documentos DGML. Por exemplo:
Para obter mais informações, consulte Aliases para os caminhos de Commonly-Used. |
Comentários
GraphCmd.exe é executado fora Visual Studio, portanto, o suporte para ações em consultas de .dgql é limitado.
Você pode especificar várias vezes para as seguintes opções: -input, -query, -exec, and -path.
Aliases para caminhos usados comumente
Aliases para caminhos usados comumente reduzem o tamanho do arquivo .dgml e o tempo necessário para carregar ou salvar o arquivo. Para criar um alias, adicione um <Paths></Paths> seção no final do arquivo .dgml. Nesta seção, adicione um <Path/> elemento para definir um alias para o caminho:
<Paths>
<Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>
Para fazer referência o alias de um elemento no arquivo .dgml, coloque o Id da <Path/> elemento com um sinal de cifrão ($) e parênteses (()):
<Nodes>
<Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
<Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>
Para obter mais informações sobre como editar arquivos de .dgml, consulte Como: Editar e personalizar documentos do gráfico.
Noções básicas sobre direcionado a linguagem de consulta do gráfico (DGQL)
DGQL é uma linguagem de consulta simples que você pode usar para criar DGML. Uma instrução DGQL segue um padrão alternado de seleção de nó e as ações que cada seleção de nó cria a entrada para a próxima ação cuja saída torna-se entrada para a próxima seleção de nó e assim por diante.
O formato de uma instrução DGQL é:
<node selection> / <action> / <node selection> / <action> / ...
A tabela a seguir descreve a sintaxe DGQL usada para selecionar nós:
* |
Selecione todos os nós. |
+ "text" |
Selecione todos os nós que contêm "texto". |
+ Id.Equals("text") |
Selecione todos os nós cujos Id é igual a "texto". |
+ Background.Contains("text") |
Selecione todos os nós cujos Background atributo tem um valor que contém a seqüência "texto". |
+ "text1" + "text2" + ... |
Selecione todos os nós que corresponde a "Texto1" or "text2". |
+ MyProperty="True" |
Selecione todos os nós que têm uma propriedade chamada MyProperty cujo valor é "True". |
- Label.Contains("text") |
Selecione todos os nós exceto aqueles que têm um Label que o atributo Contains a seqüência de caracteres "texto". |
+ Category.Is("MyCategory") |
Selecione todos os nós que têm uma categoria denominada MyCategory ou que herda de MyCategory. |
Ações são fornecidas por provedores de dados DGML registrados no Visual Studio, mas você pode descobrir essas ações, salvando uma consulta que foi criada no Explorer de arquitetura. Para obter mais informações sobre como usar a arquitetura do Explorer, consulte Como: Localizar o código usando o Explorer de arquitetura.
A tabela a seguir descreve os exemplos de ações de direta que pode ser executadas em nós selecionados:
Ação de exemplo |
Descrição |
---|---|
Microsoft.Contains |
Retorne todos os nós são contidos por nós de entrada. Você pode substituir Contains com uma categoria de link diferente. |
Microsoft.Open |
Abra o código-fonte para os nós de entrada.
Observação
Funciona somente em Visual Studio.
|
Microsoft.AllOutBoundLinks |
Retorne todos os nós que são o alvo de um link de saída de nós de entrada. |
Microsoft.AllInboundLinks |
Retorne todos os nós de extremidade de origem de um link para os nós de entrada. |
Microsoft.Core.CreateGroupsByProperties |
Chamar o GroupByProperties ação. |
Microsoft.AllNodes |
Retorne todos os nós no gráfico inteiro até o momento. |
Ações orientadas por dados selecionam itens com base somente nos dados em nós de entrada e links. Ao fazer a correspondência de categorias usando ações orientadas a dados, herdadas de categorias são incluídas. A tabela a seguir descreve os exemplos de ações orientados por dados:
Tipo |
Descrição |
---|---|
Node:Both:Category |
Retornar todos os nós que tenham a categoria Category e estão conectados com os nós de entrada por um link que aponta em qualquer direção. |
Link:Both:Category |
Retornar todos os nós conectados com os nós de entrada por um link que aponta na direção de e possui a categoria Category. |
Link:Backward:Category |
Retornar todos os nós que apontam para os nós de entrada com um link de categoria de Category. |
Link:Forward:Category |
Retornar todos os nós que apontam de nós de entrada com um link de categoria de Category. |
Dicas
Geralmente, há um "padrão" ação para um determinado conjunto de nós de entrada, que é selecionado automaticamente pelo Explorer de arquitetura. Para obter o mesmo comportamento, use uma ação vazia: //
Espaço em branco não é significativo em DGQL, portanto, você pode formatar a sua consulta para caber em uma linha, se necessário. Isso é útil quando você usar o –exec opção com GraphCmd.
Quando estiver depurando DGQL, use a ação "Execute Expanded" no Explorer de arquitetura para ajudá-lo de ver a cada etapa da consulta e localizar a etapa que não está produzindo os resultados esperados.
Exemplo
A instrução a seguir DGQL executa uma consulta, conforme descrito nas etapas a seguir:
+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
Comece selecionando o o modo de exibição de classe nó na primeira coluna do Explorer de arquitetura.
Executa a ação "Microsoft.Solution.ClassView", retornando todos os namespaces na solução.
Use * para selecionar todos os namespaces.
Selecione todos os nós que tenham a categoria CodeSchema_Class e estão relacionados a esses espaços para nome por um link em qualquer direção. Geralmente, esses serão os links de confinamento.
Filtrar as classes resultantes a apenas aqueles que possuem a propriedade CodeSchemaProperty_IsPublic="True".
Tecnicamente, a ação "Microsoft.Solution.ClassView" é desnecessário, porque ele é o "padrão" ação para o o modo de exibição de classe nó. Portanto, você pode substituir essa ação com // para simplificar a consulta e formatá-lo em uma única linha da seguinte maneira:
+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")
Consulte também
Tarefas
Como: Salvar, compartilhar e exportar documentos do gráfico
Conceitos
Visualizando o código existente
Outros recursos
Como: Explore o código com gráficos de dependência