Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta seção fornece informações detalhadas sobre extensões do Visual Studio, incluindo arquitetura do Visual Studio, componentes, serviços, esquemas, utilitários e similares.
Arquitetura de extensibilidade
A ilustração a seguir mostra a arquitetura de extensibilidade do Visual Studio. Os VSPackages fornecem funcionalidade de aplicativo, que é compartilhada no IDE como serviços. Um IDE padrão também oferece uma ampla gama de serviços, como SVsUIShell, que fornece acesso à funcionalidade de janelas do IDE.
Visão generalizada da arquitetura do Visual Studio
VSPackages
VSPackages são módulos de software que compõem e estendem o Visual Studio com elementos de interface do usuário, serviços, projetos, editores e designers. VSPackages são a unidade de arquitetura central do Visual Studio. Para obter mais informações, consulte VSPackages.
Visual Studio Shell
O shell do Visual Studio fornece funcionalidade básica e suporte à comunicação cruzada entre seus componentes VSPackages e extensões MEF. Para obter mais informações, consulte Visual Studio Shell.
Diretrizes de experiência do usuário
Se você estiver planejando criar novos recursos para o Visual Studio, você deve dar uma olhada nestas diretrizes para dicas de design e usabilidade: Diretrizes de experiência do usuário do Visual Studio.
Comandos
Comandos são funções que realizam tarefas, como imprimir um documento, atualizar uma exibição ou criar um novo arquivo.
Quando você estende o Visual Studio, você pode criar comandos e registrá-los com o shell do Visual Studio. Você pode especificar como esses comandos aparecerão no IDE, por exemplo, em um menu ou barra de ferramentas. Normalmente, um comando personalizado aparece no menu Ferramentas e um comando para exibir uma janela de ferramenta aparece no submenu Outras janelas do menu Exibir .
Ao criar um comando, você também deve criar um manipulador de eventos para ele. O manipulador de eventos determina quando o comando está visível ou habilitado, permite modificar seu texto e garante que o comando responda adequadamente quando é ativado. Na maioria dos casos, o IDE manipula comandos usando a IOleCommandTarget interface. Os comandos no Visual Studio são manipulados começando com o contexto de comando mais interno, com base na seleção local, e prosseguindo para o contexto mais externo, com base na seleção global. Os comandos adicionados ao menu principal ficam imediatamente disponíveis para scripts.
Para obter mais informações, consulte Comandos, menus e barras de ferramentas.
Menus e barras de ferramentas
Menus e barras de ferramentas fornecem uma maneira para os usuários invocarem comandos. Os menus são linhas ou colunas de comandos que normalmente são exibidos como itens de texto individuais na parte superior de uma janela de ferramentas. Submenus são menus secundários que aparecem quando um usuário clica em comandos que incluem uma pequena seta. Os menus de contexto aparecem quando um usuário clica com o botão direito do mouse em determinados elementos da interface do usuário. Alguns nomes de menu comuns são Arquivo, Editar, Exibir e Janela. Para obter mais informações, consulte Estendendo menus e comandos.
Barras de ferramentas são linhas ou colunas de botões e outros controles, como caixas de combinação, caixas de listagem e caixas de texto. Os botões da barra de ferramentas geralmente têm imagens de ícones, como um ícone de pasta para um comando Abrir arquivo ou uma impressora para um comando Imprimir . Todos os elementos da barra de ferramentas estão associados a comandos. Quando você clica em um botão da barra de ferramentas, seu comando associado é executado. No caso de um controle suspenso, cada item na lista suspensa é associado a um comando diferente. Alguns controles da barra de ferramentas, como um controle divisor, são híbridos. Um lado do controle é um botão da barra de ferramentas e o outro lado é uma seta para baixo que exibe vários comandos quando é clicado.
Ferramenta Windows
As janelas de ferramentas são usadas no IDE para exibir informações. Caixa de ferramentas, Gerenciador de Soluções, janela Propriedades e Navegador da Web são exemplos de janelas de ferramentas.
As janelas de ferramentas normalmente oferecem vários controles com os quais o usuário pode interagir. Por exemplo, a janela Propriedades permite que o usuário defina propriedades de objetos que servem a uma finalidade específica. A janela Propriedades é especializada neste sentido, mas também geral porque pode ser usada em muitas situações diferentes. Da mesma forma, a janela Saída é especializada porque fornece saída baseada em texto, mas geral porque muitos subsistemas no Visual Studio podem usá-la para fornecer saída para o usuário do Visual Studio.
Considere a seguinte imagem do Visual Studio, que contém várias janelas de ferramentas:
Algumas das janelas de ferramentas são encaixadas em um único painel que exibe a janela de ferramentas do Gerenciador de Soluções e oculta as outras janelas de ferramentas, mas as disponibiliza clicando em guias. A imagem mostra duas outras janelas de ferramentas, a janela Lista de Erros e Saída , encaixadas em um único painel.
Também é mostrado o painel principal do documento, que mostra várias janelas do editor. Embora as janelas de ferramentas normalmente tenham apenas uma instância (por exemplo, você pode abrir apenas um Gerenciador de Soluções), as janelas do editor podem ter várias instâncias, cada uma das quais é usada para editar um documento separado, mas todas estão encaixadas no mesmo painel. A imagem mostra um painel de documentos que tem duas janelas do editor, uma janela do designer de formulários. Todas as janelas no painel de documentos estão disponíveis clicando em guias, mas a janela do editor que contém EditorPane.cs arquivo está visível e ativa.
Quando você estende o Visual Studio, você pode criar janelas de ferramentas que permitem que os usuários do Visual Studio interajam com sua extensão. Você também pode criar seus próprios editores que permitem que os usuários do Visual Studio editem documentos. Como as janelas e os editores de ferramentas serão integrados ao Visual Studio, você não precisa programá-los para encaixar ou aparecer em uma guia corretamente. Quando eles são registrados corretamente no Visual Studio, eles terão automaticamente os recursos típicos de janelas de ferramentas e janelas de documentos no Visual Studio. Para obter mais informações, consulte Estendendo e personalizando ferramentas do Windows.
Janelas de documentos
Uma janela de documento é uma janela secundária emoldurada de uma janela de interface de múltiplos documentos (MDI). As janelas de documentos normalmente são usadas para hospedar editores de texto, editores de formulários (também conhecidos como designers) ou controles de edição, mas também podem hospedar outros tipos funcionais. A caixa de diálogo Novo arquivo inclui exemplos de janelas de documento que o Visual Studio fornece.
A maioria dos editores são específicos para uma linguagem de programação ou para um tipo de arquivo, como páginas HTML, conjuntos de quadros, arquivos C++ ou arquivos de cabeçalho. Ao selecionar um modelo na caixa de diálogo Novo arquivo , um usuário cria dinamicamente uma janela de documento para o editor para o tipo de arquivo associado ao modelo. Uma janela de documento também é criada quando um usuário abre um arquivo existente.
As janelas de documentos são restritas à área do cliente MDI. Cada janela de documento tem uma guia na parte superior e a ordem de tabulação está vinculada a outras janelas que podem estar abertas na área MDI. Clicar com o botão direito do mouse na guia de uma janela de documento exibe um menu de atalho que inclui opções para dividir a área MDI em vários grupos de guias horizontais ou verticais. A divisão da área MDI permite que vários arquivos sejam visualizados ao mesmo tempo. Para obter mais informações, consulte Janelas de documentos.
Editores
O editor do Visual Studio permite personalizá-lo e usá-lo para seu próprio tipo de conteúdo por meio do Managed Extensibility Framework (MEF). Em muitos casos, você não precisará criar um VSPackage para estender o editor, embora se você quiser incluir recursos do shell (por exemplo, um comando de menu ou uma tecla de atalho), você pode combinar uma extensão MEF com um VSPackage.
Você também pode criar um editor personalizado, por exemplo, se desejar ler e gravar em um banco de dados, ou se desejar usar um designer. Você também pode usar um editor externo, como o Bloco de Notas ou o Microsoft WordPad. Para obter mais informações, consulte Editor e Extensões de Serviço de Idiomas.
Serviços Linguísticos
Se você quiser que o editor do Visual Studio ofereça suporte a novas palavras-chave de programação ou até mesmo uma nova linguagem de programação, crie um serviço de linguagem. Cada serviço linguístico pode implementar determinados recursos do editor totalmente, parcialmente ou podem não implementar de todo. Dependendo de como está configurado, o serviço de linguagem pode fornecer realce de sintaxe, correspondência de chaves, suporte IntelliSense e outros recursos no ambiente de edição.
No centro de um serviço linguístico estão um analisador e um scanner. Um scanner (ou léxico) divide um arquivo de origem em elementos que são conhecidos como tokens, e um analisador estabelece as relações entre esses tokens. Ao criar um serviço de linguagem, você deve implementar o analisador e o mecanismo de varredura para que o Visual Studio possa entender os tokens e a gramática do idioma. Você pode criar serviços linguísticos gerenciados ou não gerenciados. Para obter mais informações, consulte Extensibilidade do serviço de idioma herdado.
Projetos
No Visual Studio, projetos são os contêineres que os desenvolvedores usam para organizar e criar o código-fonte e outros recursos. Os projetos permitem organizar, criar, depurar e implantar código-fonte, referências a serviços da Web e bancos de dados e outros recursos. VSPackages podem estender o sistema de projeto Visual Studio fornecendo tipos de projeto, subtipos de projeto e ferramentas personalizadas.
Os projetos também podem ser reunidos em uma solução, que é um agrupamento de um ou mais projetos que trabalham juntos para criar um aplicativo. As informações de projeto e status referentes à solução são armazenadas em dois arquivos de solução, o arquivo de solução baseada em texto (.sln) e o arquivo de opção de usuário de solução binária (.suo). Esses arquivos são semelhantes aos arquivos de grupo (.vbg) que foram usados em versões anteriores do Visual Basic e os arquivos de espaço de trabalho (.dsw) e opções do usuário (.opt) que foram usados em versões anteriores do C++.
Para obter mais informações, consulte Projetos e soluções.
Modelos de projeto e item
Visual Studio inclui modelos de projeto predefinidos e modelos de item de projeto. Você também pode criar seus próprios modelos ou adquirir modelos da comunidade e, em seguida, integrá-los ao Visual Studio. A Galeria de Códigos do MSDN é o lugar certo para modelos e extensões.
Os modelos contêm a estrutura do projeto e os arquivos básicos necessários para criar um tipo específico de aplicativo, controle, biblioteca ou classe. Quando você quiser desenvolver um software que se assemelhe a um dos modelos, crie um projeto baseado no modelo e, em seguida, modifique os arquivos nesse projeto.
Observação
Esta arquitetura de modelo não é suportada para projetos Visual C++.
Para obter mais informações, consulte Adicionar Modelos de Projeto e Item de Projeto.
Propriedades e Opções
A janela Propriedades exibe as propriedades de um ou vários itens selecionados: As páginas Opções de Propriedades Estendidas contêm conjuntos de opções que pertencem a um componente específico, como uma linguagem de programação ou um VSPackage: Opções e Páginas de Opções. As configurações geralmente são recursos relacionados à interface do usuário que podem ser importados e exportados: Suporte para configurações do usuário.
Serviços do Visual Studio
Um serviço oferece um conjunto específico de interfaces para os componentes utilizarem. Visual Studio fornece um conjunto de serviços que podem ser usados por quaisquer componentes, incluindo extensões. Por exemplo, os serviços do Visual Studio permitem que as janelas da ferramenta sejam mostradas ou ocultadas dinamicamente, permitem o acesso à Ajuda, barra de status ou eventos da interface do usuário. O editor do Visual Studio também fornece serviços que podem ser importados por extensões de editor. Para obter mais informações, consulte Usando e fornecendo serviços.
Depurador de código
O depurador é a interface de utilizador para os componentes de depuração específicos da linguagem. Se você criou um novo serviço de idioma, precisará criar um mecanismo de depuração específico para se conectar ao depurador. Para obter mais informações, consulte Extensibilidade do depurador do Visual Studio.
Controle do código-fonte
Para obter informações sobre como implementar um plug-in de controle do código-fonte ou VSPackage, consulte Controle do código-fonte.
Feiticeiros
Você pode criar um assistente em conjunto com um novo tipo de projeto, para que o assistente possa ajudar os usuários a tomar as decisões certas quando criarem um novo projeto desse tipo. Para obter mais informações, consulte Assistentes.
Ferramentas personalizadas
As ferramentas personalizadas permitem associar uma ferramenta a um item em um projeto e executar essa ferramenta sempre que o arquivo for salvo. Para obter mais informações, consulte Ferramentas personalizadas.
Utilitários VSSDK
O VSSDK inclui um conjunto de utilitários que você pode precisar para trabalhar com diferentes aspetos do VSPackages. Para obter mais informações, consulte Utilitários VSSDK.
Usando o Windows Installer
Em alguns casos, pode ser necessário usar o Windows Installer em vez do instalador VSIX: por exemplo, talvez seja necessário gravar no registro. Para obter informações sobre como usar o Windows Installer com suas extensões, consulte Instalando VSPackages com o Windows Installer.
Visualizador de Ajuda
Pode integrar as suas próprias páginas de ajuda e F1 no Visualizador de Ajuda. Para obter mais informações, consulte Microsoft Help Viewer SDK.