Hierarquias no Visual Studio

O ambiente de desenvolvimento integrado (IDE) do Visual Studio exibe um projeto como uma hierarquia. No IDE, uma hierarquia é uma árvore de nós, onde cada nó tem um conjunto de propriedades associadas. Uma hierarquia de projeto é um contêiner que contém os itens do projeto, as relações dos itens e as propriedades e comandos associados dos itens.

No Visual Studio, você gerencia hierarquias de projeto usando a interface de hierarquia, IVsHierarchy. A IVsUIHierarchy interface redireciona comandos que você invoca de itens de projeto para a janela de hierarquia apropriada em vez do manipulador de comandos padrão.

Hierarquias do projeto

Cada hierarquia de projeto contém itens que você pode exibir e editar. Esses itens variam dependendo do tipo de projeto. Por exemplo, um projeto de banco de dados pode conter procedimentos armazenados, exibições de banco de dados e tabelas de banco de dados. Um projeto de linguagem de programação, por outro lado, provavelmente incluirá arquivos de origem e arquivos de recursos para bitmaps e caixas de diálogo. As hierarquias podem ser aninhadas, o que lhe dá alguma flexibilidade adicional ao criar uma hierarquia de projeto.

Quando você cria um novo tipo de projeto, o tipo de projeto controla o conjunto completo de itens que podem ser editados nele. No entanto, os projetos podem conter itens para os quais não têm suporte de edição. Por exemplo, projetos do Visual C++ podem conter arquivos HTML, mesmo que o Visual C++ não fornece qualquer editor personalizado para o tipo de arquivo HTML.

As hierarquias gerenciam a persistência dos itens que elas contêm. A implementação da hierarquia deve controlar quaisquer propriedades especiais que afetem a persistência dos itens dentro da hierarquia. Por exemplo, se os itens representarem objetos em um repositório em vez de arquivos, a implementação da hierarquia deverá controlar a persistência desses objetos. O próprio IDE direciona a hierarquia para salvar os itens em conformidade com a entrada do usuário, mas o IDE não controla nenhuma ação necessária para salvar esses itens. Em vez disso, o projeto está no controle.

Quando um usuário abre um item em um editor, a hierarquia que controla esse item é selecionada e se torna a hierarquia ativa. A hierarquia selecionada determina o conjunto de comandos disponíveis para atuar no item. Controlar o foco do usuário dessa maneira permite que a hierarquia reflita o contexto atual do usuário.