Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste artigo, vais aprender a visualizar dependências ao longo do teu código com code maps.
O que são mapas de código?
No Visual Studio, os mapas de código ajudam-no a ver mais rapidamente como o seu código de programa se encaixa sem ler ficheiros e linhas de código. Com estes mapas, pode ver a organização e as relações no seu código, incluindo a sua estrutura e dependências, como o atualizar e estimar o custo das alterações propostas.
Pode mapear dependências para código nestas linguagens:
Visual C# ou Visual Basic numa solução ou assemblies (.dll ou .exe)
Código nativo ou gerido em C ou C++ em projetos Visual C++, ficheiros de cabeçalho (.h ou
#include), ou bináriosProjetos e assemblies X++ feitos a partir de módulos .NET para Microsoft Dynamics AX
Note
Para projetos que não sejam C# ou Visual Basic, há menos opções para iniciar um code map ou adicionar itens a um code map existente. Por exemplo, não pode clicar com o botão direito num objeto no editor de texto de um projeto C++ e adicioná-lo a um mapa de código. No entanto, pode arrastar e largar elementos de código ou ficheiros individuais a partir do Explorador de Soluções, Vista de Classes e Navegador de Objetos.
Pré-requisitos
Para criar um mapa de código no Visual Studio, instale primeiro os componentes Code Map e Live Dependency Validation
Para criar e editar mapas de código, precisas da edição Visual Studio Enterprise. No entanto, nas edições Visual Studio Community e Professional, pode abrir diagramas gerados na edição Enterprise, mas não pode editá-los.
Note
Antes de partilhar mapas criados no Visual Studio Enterprise com outras pessoas que usam o Visual Studio Professional, certifique-se de que todos os itens no mapa (como itens ocultos, grupos expandidos e ligações entre grupos) estão visíveis.
Adicionar um mapa de código
Pode criar um mapa de código vazio e arrastar itens para ele, incluindo referências de assembly, ficheiros e pastas, ou pode gerar um mapa de código para toda ou parte da sua solução.
Para adicionar um mapa de código vazio:
No Explorador de Soluções, abra o menu de atalhos para o seu nó de solução de nível superior. Escolha Adicionar>Novo Item.
No diálogo Adicionar Novo Item , em Instalado, escolha a categoria Geral .
Escolhe o modelo Directed Graph Document (.dgml) e depois seleciona Adicionar.
Tip
Este modelo pode não aparecer em ordem alfabética, por isso desça até ao fim da lista de modelos se não o vir.
Um mapa em branco aparece na pasta Item da Solução da sua solução.
De forma semelhante, pode criar um novo ficheiro de mapa de código sem o adicionar à sua solução, selecionando Architecture>New Code Map ou File>New>File.
Saiba mais:
Gera um mapa de código para a tua solução
Para ver todas as dependências na sua solução:
Na barra de menus, escolhe Arquitetura>Gerar Mapa de Código para Solução. Se o seu código não mudou desde a última vez que o compilou, pode escolher Arquitetura>Gerar Mapa de Código para a Solução sem Compilar em alternativa.
É gerado um mapa que mostra as assembleias de topo e as ligações agregadas entre elas. Quanto maior for a ligação agregada, mais dependências representa.
Use o botão Legenda na barra de ferramentas do mapa de código para mostrar ou ocultar a lista de ícones de tipos de projeto (como Teste, Web e Projeto para Telemóvel), itens de código (como Classes, Métodos e Propriedades) e tipos de relação (como Herdado de, Implementa e Chama).
Esta solução de exemplo contém Pastas de Solução (Testes e Componentes), Projetos de Teste, Projetos Web e assemblies. Por defeito, todas as relações de contenção aparecem como grupos, que podes expandir e colapsar. O grupo Externals contém tudo o que está fora da sua solução, incluindo dependências da plataforma. Os conjuntos externos mostram apenas os itens que são usados. Por padrão, os tipos de base do sistema estão escondidos no mapa para reduzir a confusão.
Para aprofundar o mapa, expanda os grupos que representam projetos e assembleias. Podes expandir tudo pressionando CTRL+A para selecionar todos os nós e depois escolher Agrupar, Expandir no menu de atalho.
No entanto, isto pode não ser útil para uma solução de grande dimensão. Na verdade, para soluções complexas, limitações de memória podem impedir que expanda todos os grupos. Em vez disso, para ver dentro de um nó individual, expanda-o. Mova o ponteiro do rato para cima do nó e depois clique na seta para baixo ao aparecer.
Ou usar o teclado selecionando o item e depois pressionando a tecla mais (+). Para explorar níveis mais profundos de código, faça o mesmo com namespaces, tipos e membros.
Tip
Para mais detalhes sobre como trabalhar com mapas de código usando rato, teclado e toque, consulte Explorar e reorganizar mapas de código.
Para simplificar o mapa e focar em partes individuais, escolha Filtros na barra de ferramentas do mapa de código e selecione apenas os tipos de nós e links que lhe interessam. Por exemplo, podes esconder todos os contentores Solution Folder e Assembly.
Também pode simplificar o mapa escondendo ou removendo grupos e itens individuais do mapa, sem afetar o código da solução subjacente.
Para veres as relações entre os itens, seleciona-os no mapa. As cores das ligações indicam os tipos de relação, como mostrado no painel Legenda.
Neste exemplo, os links roxos são chamadas, os links pontilhados são referências e os links azul claro são acesso ao campo. Os ligações verdes podem ser herança, ou podem ser ligações agregadas que indicam mais do que um tipo de relação (ou categoria).
Tip
Se vires um link verde, isso pode não significar que existe apenas uma relação de herança. Também podem existir chamadas de método, mas estas são ocultas pela relação de herança. Para ver tipos específicos de links, use as caixas de seleção no painel de Filtros para esconder os tipos que não lhe interessam.
Para obter mais informações sobre um item ou link, mova o ponteiro por cima dele até aparecer uma dica de ferramenta. Isto mostra detalhes de um elemento de código ou das categorias que um link representa.
Para examinar itens e dependências representados por uma ligação agregada, selecione primeiro a ligação e depois abra o seu menu de atalhos. Escolha Mostrar Links Contribuintes (ou Mostrar Links Contribuintes no Novo Mapa de Código). Isto expande os grupos em ambas as extremidades da ligação e mostra apenas os itens e dependências que participam na ligação.
Para te focares em partes específicas do mapa, podes continuar a remover itens que não te interessam. Por exemplo, para explorar a visão de classe e membro, basta filtrar todos os nós de namespace no painel Filtros.
Outra forma de focar num mapa de solução complexo é gerar um novo mapa contendo itens selecionados a partir de um mapa existente. Mantém pressionado Ctrl enquanto selecionas os itens em que queres focar-te, abre o menu de atalhos e escolhe Novo Grafo a partir de Seleção.
O contexto envolvente é transferido para o novo mapa. Esconda pastas de solução e quaisquer outros contentores que não queiras ver usando o painel de Filtros .
Expande os grupos e seleciona itens no mapa para veres as relações.
Veja também:
- Navegar e reorganizar mapas de código
- Personalize mapas de código editando os ficheiros DGML
- Encontre potenciais problemas no seu código ao correr um analisador
Ver dependências
Suponha que tem uma revisão de código para realizar em alguns ficheiros com alterações pendentes. Para ver as dependências nessas alterações, podes criar um mapa de código a partir desses ficheiros.
Arraste itens do Explorador de Soluções, Vista de Classes ou Navegador de Objetos para um mapa de código novo ou existente. Para incluir a hierarquia dos pais para os seus itens, pressione e mantenha premida a tecla Ctrl enquanto arrasta itens, ou use o botão Incluir Pais na barra de ferramentas do mapa de código para especificar a ação padrão. Também pode arrastar ficheiros assembly de fora do Visual Studio, como a partir do Explorador do Windows.
Note
Quando adiciona itens de um projeto que é partilhado por várias aplicações, como Windows Phone ou Microsoft Store, esses itens aparecem no mapa com o projeto de aplicação atualmente ativo. Se mudares o contexto para outro projeto de aplicação e adicionares mais itens do projeto partilhado, esses itens aparecem agora com o projeto de aplicação recentemente ativo. As operações que você executa com um item no mapa aplicam-se somente aos itens que compartilham o mesmo contexto.
O mapa mostra os itens selecionados dentro dos seus conjuntos de contenção.
Para explorar itens, expande-os. Move o ponteiro do rato para cima de um item e depois clica no ícone do chevron (seta para baixo) quando ele aparecer.
Para expandir todos os itens, selecione-os usando Ctrl+A, depois abra o menu de atalho do mapa e escolha Expandir em Grupo>. No entanto, esta opção não está disponível se a expansão de todos os grupos criar um mapa inutilizável ou causar problemas de memória.
Continua a expandir os itens que te interessam, até ao nível da classe e do membro, se necessário.
Para ver os membros que estão no código mas não aparecem no mapa, clique no ícone Atualizar Elementos
no canto superior esquerdo de um grupo.Para ver mais itens relacionados com os do mapa, selecione um e selecione Mostrar Relacionado na barra de ferramentas do mapa de códigos, depois selecione o tipo de itens relacionados a adicionar ao mapa. Alternativamente, selecione um ou mais itens, abra o menu de atalhos e depois escolha a opção Mostrar para o tipo de itens relacionados a adicionar ao mapa. Por exemplo:
Para uma assembleia, escolha:
Option Description Mostrar Assembleias Isto Referencia Adicione os conjuntos que este assembly referencia. Montagens externas aparecem no grupo Externas . Mostrar Assembleias que Fazem Referência a Isto Adicione conjuntos na solução que referenciam este conjunto. Para um namespace, escolher Mostrar Assembleia Contida, se não for visível.
Para uma classe ou interface, escolha:
Option Description Mostrar Tipos de Base Para uma classe, adiciona a classe base e as interfaces implementadas.
Para uma interface, adicione as interfaces base.Mostrar Tipos Derivados Para uma classe, adiciona as classes derivadas.
Para uma interface, adiciona as interfaces derivadas e as classes ou estruturas de implementação.Mostrar Tipos Que Isto Referencia Adicione todas as classes e os seus membros que esta classe utiliza. Mostrar Tipos que Referenciam Isto Adicione todas as turmas e os seus membros que usam esta aula. Mostrar Espaço de Nomes Contido Adiciona o espaço de nomes pai. Mostrar que contém espaço de nomes e assembly Adicione a hierarquia do contentor pai. Mostrar Todos os Tipos de Base Adiciona a hierarquia da classe base ou da interface de forma recursiva. Mostrar Todos os Tipos Derivados Para uma classe, adicione todas as classes derivadas recursivamente.
Para uma interface, adicione todas as interfaces derivadas e implemente classes ou estruturas recursivamente.Para um método, escolha:
Option Description Mostrar Métodos Chamados por Isto Adiciona métodos que este método chama. Mostrar Campos Referenciados Adicione campos que este método referencia. Mostrar Tipo Contido Adicione o tipo de pai. Mostrar Contendo Tipo, Espaço de Nomes e Assembly Adiciona a hierarquia dos contentores pai. Mostrar Métodos Substituídos Para um método que sobrepõe outros métodos ou implementa o método de uma interface, adicione todos os métodos abstratos ou virtuais em classes base que sejam sobrepostos e, se existirem, o método da interface que está implementado. Para um campo ou propriedade, escolha:
Option Description Mostrar Tipo Contido Adicione o tipo de pai. Mostrar Contendo Tipo, Espaço de Nomes e Assembly Adiciona a hierarquia dos contentores pai.
O mapa mostra as relações. Neste exemplo, o mapa mostra os métodos chamados pelo
Findmétodo e a sua localização na solução ou externamente.Para simplificar o mapa e focar em partes individuais, escolha Filtros na barra de ferramentas do mapa de código e selecione apenas os tipos de nós e links que lhe interessam. Por exemplo, desative a visualização de Pastas de Solução, Assemblies e Namespaces.
Conteúdo relacionado
- Mapas de código partilhado
- Criar mapas de código para C++
- Melhorar o desempenho dos mapas de código
- Use mapas de código para depurar seus aplicativos
- Mapear métodos na pilha de chamadas durante a depuração
- Encontre possíveis problemas usando analisadores de mapa de código
- Navegar e reorganizar mapas de código
- Personalize mapas de código editando os ficheiros DGML