Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá a visualizar dependências em seu código com mapas de código.
O que são mapas de código?
No Visual Studio, os mapas de código ajudam você a ver mais rapidamente como o código do programa se encaixa sem ler arquivos e linhas de código. Com esses mapas, você pode ver a organização e as relações em seu código, incluindo sua estrutura e suas dependências, como atualizá-la e estimar o custo das alterações propostas.
Você pode mapear dependências para código nestes idiomas:
Visual C# ou Visual Basic em uma solução ou assemblies (.dll ou .exe)
Código C ou C++ nativo ou gerenciado em projetos do Visual C++, arquivos de cabeçalho (.h ou
#include) ou bináriosProjetos e assemblies X++ feitos de módulos .NET para o Microsoft Dynamics AX
Note
Para projetos diferentes de C# ou Visual Basic, há menos opções para iniciar um mapa de código ou adicionar itens a um mapa de código existente. Por exemplo, você não pode clicar com o botão direito do mouse em um objeto no editor de texto de um projeto C++ e adicioná-lo a um mapa de código. No entanto, você pode arrastar e soltar arquivos ou elementos de código individuais do Gerenciador de Soluções, Modo de Exibição de Classe e Pesquisador de Objetos.
Pré-requisitos
Para criar um mapa de código no Visual Studio, primeiro instale os componentes mapa de código e validação de dependência dinâmica
Para criar e editar mapas de código, você precisa do Visual Studio Enterprise Edition. No entanto, nas edições Visual Studio Community e Professional, você pode abrir diagramas que foram gerados na edição Enterprise, mas não é possível editá-los.
Note
Antes de compartilhar mapas criados no Visual Studio Enterprise com outras pessoas que usam o Visual Studio Professional, verifique se todos os itens no mapa (como itens ocultos, grupos expandidos e links entre grupos) estão visíveis.
Adicionar um mapa de código
Você pode criar um mapa de código vazio e arrastar itens para ele, incluindo referências de assembly, arquivos e pastas, ou pode gerar um mapa de código para toda ou parte da solução.
Para adicionar um mapa de código vazio:
No Gerenciador de Soluções, abra o menu de atalho para o nó da solução de nível superior. Escolha Adicionar>Novo Item.
Na caixa de diálogo Adicionar Novo Item , em Instalado, escolha a categoria Geral .
Escolha o modelo de Documento do Grafo Direcionado(.dgml) e, em seguida, selecione Adicionar.
Gorjeta
Esse modelo pode não aparecer em ordem alfabética, portanto, role para baixo até a parte inferior da lista de modelos se você não vê-lo.
Um mapa em branco aparece na pasta Itens de Solução.
Da mesma forma, você pode criar um novo arquivo de mapa de código sem adicioná-lo à sua solução selecionando Arquitetura>Novo Mapa de Códigoou>Novo>Arquivo.
Saiba mais:
Gerar um mapa de código para sua solução
Para ver todas as dependências em sua solução:
Na barra de menus, escolha Arquitetura>Gerar Mapa de Código para solução. Se o código não tiver sido alterado desde a última vez que o compilou, você poderá selecionar Arquitetura>Gerar Mapa de Códigos para a Solução sem Compilação.
Um mapa é gerado mostrando as montagens de nível superior e os links agregados entre elas. Quanto maior o link de agregação, mais dependências ele representa.
Use o botão Legenda na barra de ferramentas do mapa de código para mostrar ou ocultar a lista de ícones de tipo de projeto (como Teste, Web e Projeto de Telefone), itens de código (como Classes, Métodos e Propriedades) e tipos de relação (como Herdar de, Implementar e Chamadas).
Esta solução de exemplo contém pastas de solução (testes e componentes), projetos de teste, projetos Web e assemblies. Por padrão, todas as relações de contenção aparecem como grupos, que você pode expandir e recolher. O grupo Externos contém qualquer coisa fora da sua solução, incluindo dependências de plataforma. Os assemblies externos mostram apenas os itens usados. Por padrão, os tipos base do sistema ficam ocultos no mapa para reduzir a desordem.
Para fazer uma busca detalhada no mapa, expanda os grupos que representam projetos e assemblies. Você pode expandir tudo pressionando CTRL+A para selecionar todos os nós e, em seguida, escolhendo Grupo, Expandir no menu de atalho.
No entanto, isso pode não ser útil para uma solução grande. Na verdade, para soluções complexas, as limitações de memória podem impedir que você expanda todos os grupos. Em vez disso, para ver dentro de um nó específico, expanda-o. Mova o ponteiro do mouse sobre o nó e clique na divisa (seta para baixo) quando ela aparecer.
Ou use o teclado selecionando o item e pressionando a tecla de adição (+). Para explorar níveis mais profundos de código, faça o mesmo para namespaces, tipos e membros.
Gorjeta
Para obter mais detalhes sobre como trabalhar com mapas de código usando o mouse, o teclado e o toque, consulte Procurar e reorganizar mapas de código.
Para simplificar o mapa e se concentrar em partes individuais, escolha Filtros na barra de ferramentas do mapa de código e selecione apenas os tipos de nós e links nos quais você está interessado. Por exemplo, você pode ocultar todos os contêineres da Pasta da Solução e do Assembly.
Você também pode simplificar o mapa ocultando ou removendo grupos individuais e itens do mapa, sem afetar o código da solução subjacente.
Para ver as relações entre itens, selecione-as no mapa. As cores dos links indicam os tipos de relação, conforme mostrado no painel Legenda .
Neste exemplo, os links roxos são chamadas, os links pontilhados são referências e os links azuis claros são acesso ao campo. Links verdes podem ser herança ou podem ser links de agregação que indicam mais de um tipo de relação (ou categoria).
Gorjeta
Se você vir um link verde, isso pode não significar que há apenas uma relação de herança. Também podem ser chamadas de método, mas estão ocultas pela relação de herança. Para ver tipos específicos de links, use as caixas de seleção no painel Filtros para ocultar os tipos nos quais você não está interessado.
Para obter mais informações sobre um item ou link, mova o ponteiro sobre ele até que uma dica de ferramenta seja exibida. Isso mostra detalhes de um elemento de código ou das categorias que um link representa.
Para examinar itens e dependências representados por um link de agregação, primeiro selecione o link e, em seguida, abra o menu de atalho. Escolha Mostrar links de contribuição (ou mostrar links de contribuição no novo mapa de código). Isso expande os grupos nas duas extremidades do link e mostra apenas os itens e dependências que participam do link.
Para se concentrar em partes específicas do mapa, você pode continuar a remover itens em que não está interessado. Por exemplo, para explorar a visão de classe e membro, basta filtrar todos os nós de namespace no painel Filtros.
Outra maneira de se concentrar em um mapa de solução complexo é gerar um novo mapa contendo itens selecionados de um mapa existente. Segure Ctrl ao selecionar os itens nos quais você deseja se concentrar, abra o menu de atalho e escolha Novo Grafo na Seleção.
O contexto abrangente é levado para o novo mapa. Ocultar pastas de solução e quaisquer outros contêineres que você não deseja ver usando o painel Filtros .
Expanda os grupos e selecione itens no mapa para exibir as relações.
Confira também:
- Navegar e reorganizar mapas de código
- Personalizar mapas de código editando os arquivos DGML
- Encontre possíveis problemas em seu código executando um analisador
Exibir dependências
Suponha que você tenha uma revisão de código a ser executada em alguns arquivos com alterações pendentes. Para ver as dependências nessas alterações, você pode criar um mapa de código a partir desses arquivos.
Arraste itens do Gerenciador de Soluções, do Modo de Exibição de Classe ou do Pesquisador de Objetos para um mapa de código novo ou existente. Para adicionar a hierarquia parente de seus itens, pressione e mantenha pressionada a tecla Ctrl enquanto arrasta itens, ou use o botão Incluir Parentes na barra de ferramentas do mapa de código para definir como ação padrão. Você também pode arrastar arquivos de assembly de fora do Visual Studio, como do Windows Explorer.
Note
Quando você adiciona itens de um projeto compartilhado em vários aplicativos, como Windows Phone ou Microsoft Store, esses itens aparecem no mapa com o projeto de aplicativo ativo no momento. Se você alterar o contexto para outro projeto de aplicativo e adicionar mais itens do projeto compartilhado, esses itens agora aparecerão com o projeto de aplicativo recém-ativo. As operações executadas com um item no mapa se aplicam somente aos itens que compartilham o mesmo contexto.
O mapa mostra os itens selecionados dentro de seus conjuntos que os contêm.
Para explorar itens, expanda-os. Mova o ponteiro do mouse sobre um item e clique no ícone de divisa (seta para baixo) quando ele aparecer.
Para expandir todos os itens, selecione-os usando Ctrl+A e, em seguida, abra o menu de atalho do mapa e escolha Expandir Grupo>. No entanto, essa opção não estará disponível se a expansão de todos os grupos criar um mapa inutilizável ou problemas de memória.
Continue expandindo os itens nos quais você está interessado, até o nível de classe e membro, se necessário.
Para ver os membros que estão no código, mas não aparecem no mapa, clique no ícone Refetch Children
no canto superior esquerdo de um grupo.Para ver mais itens relacionados aos que estão no mapa, selecione um e escolha Mostrar Relacionado na barra de ferramentas do mapa de código e selecione o tipo de itens relacionados a serem adicionados ao mapa. Como alternativa, selecione um ou mais itens, abra o menu de atalho e escolha a opção Mostrar para o tipo de itens relacionados a serem adicionados ao mapa. Por exemplo:
Para uma montagem, escolha:
Opção Description Mostrar Assemblies Estas referências Adicione conjuntos aos quais este conjunto faz referência. Os assemblies externos aparecem no grupo Externos. Mostrar assemblies que referenciam isso Adicione assemblies na solução que fazem referência a este assembly. Para um namespace, escolha Mostrar Assembly que o contém, se ele não estiver visível.
Para uma classe ou interface, escolha:
Opção Description Mostrar tipos base Para uma classe, adicione a classe base e as interfaces implementadas.
Para uma interface, adicione as interfaces base.Mostrar tipos derivados Para uma classe, adicione as classes derivadas.
Para uma interface, adicione as interfaces derivadas e as classes ou structs de implementação.Mostrar tipos que são referenciados Adicione todas as classes e seus membros que essa classe usa. Mostrar tipos que fazem referência a isso Adicione todas as classes e seus membros que utilizam essa classe. Exibir Namespace contendo Adicione o namespace pai. Mostrar Namespace e Assembly Recipientes Adicione a hierarquia de contêiner pai. Mostrar todos os tipos base Adicione a classe base ou a hierarquia de interface recursivamente. 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 structs recursivamente.Para um método, escolha:
Opção Description Mostrar Métodos Chamados por Este Adicione métodos que este método invoca. Mostrar campos essa referência Adicione campos que esse método referencia. Mostrar tipo de contenção Adicione o tipo pai. Mostrar Tipo Recipiente, Namespace e Assembly Adicione a hierarquia de contêiner pai. Mostrar métodos substituídos Para um método que substitui outros métodos ou implementa o método de uma interface, adicione todos os métodos abstratos ou virtuais em classes base substituídas e, se houver, o método da interface implementado. Para um campo ou propriedade, escolha:
Opção Description Mostrar tipo de contenção Adicione o tipo pai. Mostrar Tipo Recipiente, Namespace e Assembly Adicione a hierarquia do contêiner pai.
O mapa mostra as relações. Neste exemplo, o mapa mostra os métodos chamados pelo
Findmétodo e sua localização na solução ou externamente.Para simplificar o mapa e se concentrar em partes individuais, escolha Filtros na barra de ferramentas do mapa de código e selecione apenas os tipos de nós e links nos quais você está interessado. Por exemplo, desative a exibição de Pastas de Solução, Assemblies e Namespaces.
Conteúdo relacionado
- Compartilhar mapas de código
- Criar mapas de código para C++
- Melhorar o desempenho do mapa de código
- Usar mapas de código para depurar seus aplicativos
- Mapear métodos na pilha de chamadas durante a depuração
- Encontrar possíveis problemas usando analisadores de mapa de código
- Navegar e reorganizar mapas de código
- Personalizar mapas de código editando os arquivos DGML