Shell do Visual Studio
O shell do Visual Studio é o principal agente de integração no Visual Studio. O shell fornece a funcionalidade necessária para permitir que VSPackages compartilhem serviços comuns. Como o objetivo arquitetônico do Visual Studio é adquirir a funcionalidade primária nos VSPackages, o shell é uma estrutura para fornecer funcionalidade básica e oferecer suporte à comunicação cruzada entre seus VSPackages de componente.
Responsabilidades da Shell
O shell tem as seguintes responsabilidades principais:
Suporte (através de interfaces COM) a elementos básicos da interface do usuário (UI). Isso inclui menus e barras de ferramentas padrão, quadros de janela de documento ou janelas filho de interface de vários documentos (MDI) e quadros de janela de ferramenta e suporte a encaixe.
Manter uma lista em execução de todos os documentos atualmente abertos em uma tabela de documentos em execução (RDT) para coordenar a persistência de documentos e garantir que um documento não possa ser aberto de mais de uma maneira ou de maneiras incompatíveis.
Suporte à interface de roteamento e manipulação de comandos,
IOleCommandTarget
.Carregando VSPackages em momentos apropriados. O carregamento atrasado de um VSPackage é necessário para melhorar o desempenho do shell.
Gerenciando determinados serviços compartilhados, como SVsShell, que fornece funcionalidade básica de shell e SVsUIShell, que fornece funcionalidade básica de janela.
Gerenciando os arquivos da solução (.sln). As soluções contêm grupos de projetos relacionados, semelhantes aos arquivos de espaço de trabalho (.dsw) no Visual C++ 6.0.
Rastreando seleção, contexto e moeda em todo o shell. O shell rastreia os seguintes tipos de itens:
O projeto atual
O item de projeto atual ou ItemID o atual IVsHierarchy
A seleção atual para a janela Propriedades ou
SelectionContainer
As IDs de contexto da interface do usuário ou CmdUIGuids que controlam a visibilidade de comandos, menus e barras de ferramentas
Os elementos ativos no momento, como a janela ativa, o documento e o gerenciador de desfazer
Os atributos de contexto do usuário que impulsionam a Ajuda dinâmica
O shell também medeia a comunicação entre VSPackages instalados e serviços atuais. Ele oferece suporte aos principais recursos do shell e os disponibiliza para todos os VSPackages integrados no Visual Studio. Esses recursos principais incluem os seguintes itens:
Sobre a caixa de diálogo e a tela inicial
Caixas de diálogo Adicionar Novo e Adicionar Item Existente
Janela Modo de Exibição de Classe e Pesquisador de Objetos
Caixa de diálogo Referências
Janela Estrutura de Tópicos do Documento
Janela de Ajuda Dinâmica
Localizar e substituir
Abrir as caixas de diálogo Projeto e Abrir Arquivo no menu Novo
Caixa de diálogo Opções no menu Ferramentas
Janela Propriedades
Gerenciador de Soluções
Janela Lista de Tarefas
Caixa de Ferramentas