Dentro do SDK do Visual Studio
Existem muitas maneiras de estender o Visual Studio. Três tipos comuns são: automação, VSPackage extensões e extensões do Managed Extensibility Framework (MEF).
Automação é usada principalmente para automatizar tarefas repetitivas, como ocorre com macros e suplementos ou fornecem uma estrutura para a entrada do usuário, assim como acontece com os assistentes.
Criar um VSPackage é uma maneira eficiente para estender o Visual Studio. Visual Studio inclui muitos componentes que são VSPackages, por exemplo o depurador e barras de ferramentas predefinidas. Uma extensão de VSPackage pode acessar e estender a muitos dos componentes do Visual Studio, como, por exemplo, o shell e o sistema do projeto.
O Managed Extensibility Framework (MEF) é um mecanismo de extensibilidade que é usado pela primeira vez no editor de 2010 de Visual Studio. MEF permite personalizar e estender o editor sem precisar criar um VSPackage.
O modelo de extensibilidade de Visual Studio
O modelo de extensibilidade de Visual Studio é composto das bibliotecas diferentes que permitem que os extensores acessar e estender os componentes de Visual Studio.
A primeira camada do modelo é encontrada na API do Visual Studio, que é o mesmo conjunto de interfaces que os desenvolvedores da Microsoft usam para desenvolver o Visual Studio. Você pode usar uma biblioteca baseada em modelo chamada biblioteca de Visual Studio (VSL) para escrever extensões em código não gerenciado.
Se você estiver escrevendo uma extensão em código gerenciado, você pode usar diretamente os assemblies de interoperabilidade de Visual Studio ou você pode usar o Framework de pacote gerenciado (MPF). A estrutura de pacote gerenciado fornece classes que quebrar muitas das interfaces na API Visual Studio.
Se você estiver estendendo o editor de 2010 de Visual Studio, você pode usar os assemblies de editor, bem como os assemblies MEF que definem os contratos pelo qual sua extensão é anunciada para o editor de Visual Studio.
Para obter mais informações, consulte:
Serviços de Visual Studio
Um serviço fornece um conjunto específico de interfaces de componentes consumir. Visual Studio fornece um conjunto de serviços que podem ser usados por todos os componentes, incluindo extensões. Por exemplo, os serviços de Visual Studio permitem que as janelas de ferramentas ser mostrado ou ocultado dinamicamente, permitir o acesso a Ajuda, barra de status ou eventos da interface do usuário. O editor de 2010 de Visual Studio também fornece serviços que podem ser importados pelas extensões do editor.
Para obter mais informações, consulte:
Componentes extensíveis de Visual Studio
Os seguintes componentes são os mais freqüentemente usados pelas extensões de Visual Studio:
Comandos do shell
Menus e barras de ferramentas
Janelas de ferramentas
Janelas de documento
Editors
Serviços de linguagem
Projects
Modelos
Comandos
Comandos são funções que realizam tarefas, como imprimir um documento, a atualização de um modo de exibição ou criando um novo arquivo.
Quando você estende o Visual Studio, você pode criar comandos e registrá-los com o shell de 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 na Ferramentas menu e um comando para exibir uma janela de ferramenta apareceria na Other Windows submenu da Exibir menu.
Quando você cria um comando, você também deve criar um manipulador de eventos para ele. O manipulador de eventos determina quando o comando é visíveis ou ativados, permite que você modifique o seu texto e garante que o comando responda apropriadamente quando ele é ativado. Na maioria dos casos, o IDE manipula os comandos usando o IOleCommandTarget interface. Comandos no Visual Studio são manipulados, começando com o contexto do comando mais interno, com base na seleção de local e prosseguir com o contexto mais externo, com base na seleção global. Os comandos adicionados ao menu principal estão imediatamente disponíveis para execução de scripts.
Para obter mais informações, consulte Como a VSPackages adicionar elementos de Interface do usuário ao IDE.
Menus e barras de ferramentas
Menus e barras de ferramentas fornecem uma maneira para os usuários a chamar comandos. Menus são linhas ou colunas de comandos que normalmente são exibidos como itens individuais de texto na parte superior uma janela de ferramenta. Submenus são menus secundários que aparecem quando um usuário clicar em comandos que incluem uma pequena seta. Os menus contextuais aparecem quando um usuário clica certos elementos de interface do usuário. Alguns nomes de menu comuns são arquivo, Editar, Exibir, e janela. Para obter mais informações, consulte Tarefas comuns com comandos, Menus e barras de ferramentas.
Barras de ferramentas são linhas ou colunas de botões e outros controles, como, por exemplo, caixas de texto, caixas de listagem e caixas de combinação. Botões da barra de ferramentas geralmente têm imagens de ícone, como, por exemplo, um ícone de pasta para um Abrir arquivo de comando ou uma impressora para um Print comando. Todos os elementos da barra de ferramentas são associados a comandos. Quando você clica em um botão da barra de ferramentas, o comando associado é executado. No caso de um controle drop-down, cada item na lista drop-down está associado um comando diferente. Alguns controles de barra de ferramentas, como, por exemplo, um controle de splitter são híbridos. Um lado do controle é um botão de barra de ferramentas e o outro lado é uma seta para baixo que exibe vários comandos quando é clicado.
Para obter mais informações, consulte
Janelas de ferramentas
Janelas de ferramentas são usadas no IDE para exibir informações. Caixa de ferramentas, Solution Explorer, Propriedades janela, e Navegador da Web são exemplos de janelas de ferramentas.
Normalmente, a ferramenta windows oferecem vários controles com o qual o usuário pode interagir. Por exemplo, o Propriedades janela permite que o usuário defina propriedades de objetos que servem a um propósito específico. O Propriedades janela é especializado nesse sentido, mas também em geral, porque ele pode ser usado em várias situações diferentes. Da mesma forma, o saída janela é especializada porque ele fornece uma saída baseada em texto, mas geral porque vários subsistemas de Visual Studio podem ser usado para fornecer uma saída para o usuário Visual Studio.
Considere a imagem de Visual Studio, que contém várias janelas de ferramentas a seguir.
Algumas das janelas de ferramentas são ancoradas juntos em um único painel que exibe a janela de ferramentas do Solution Explorer e oculta a ferramenta windows mas disponibiliza-los clicando nas guias. A imagem mostra duas outras janelas de ferramenta, o Error List e saída janela, encaixada em um único painel.
O painel do documento principal, o que mostra várias janelas do editor é também mostrada. Embora a ferramenta windows normalmente têm uma única instância (por exemplo, você pode abrir apenas uma Solution Explorer), janelas do editor podem ter várias instâncias, cada um deles é usado para editar um documento separado, mas todos eles são encaixados no mesmo painel. A figura mostra um painel de documento que tem duas janelas do editor, uma janela de designer de formulário e uma janela do navegador que mostra a página inicial. Todas as janelas no painel do documento estão disponíveis clicando nas guias, mas a janela do editor que contém o arquivo EditorPane.cs é visível e ativo.
Quando você estende o Visual Studio, você pode criar a ferramenta janelas que permitem aos usuários do Visual Studio interagir com sua extensão. Você também pode criar seus próprios editores que permitem que os usuários de Visual Studio editar documentos. Porque os editores e janelas de ferramentas serão integradas em Visual Studio, você não tem programá-los para encaixar ou sejam exibidos corretamente em uma guia. Quando eles estão corretamente registrados no Visual Studio, eles terão automaticamente os recursos típicos de janelas de ferramentas e janelas de documento em Visual Studio.
Para obter mais informações, consulte
Janelas de documento
Uma janela de documento é uma janela filho com quadros de uma janela de interface de documentos múltiplos (MDI). Janelas de documento normalmente são usadas para hospedar controles de edição, editores de formulário (também conhecido como designers) ou editores de texto, mas também podem hospedar outros tipos funcionais. O Novo arquivo caixa de diálogo inclui exemplos de janelas de documento que fornece a Visual Studio.
A maioria dos editores são específicos para uma linguagem de programação ou para um tipo de arquivo, como, por exemplo, conjuntos de quadros, páginas HTML, arquivos C++ ou arquivos de cabeçalho. Selecionando um modelo na Novo arquivo caixa de diálogo, um usuário cria dinamicamente uma janela de documento para o editor para o tipo de arquivo que está associado com o modelo. Uma janela de documento também é criada quando um usuário abre um arquivo existente.
Janelas de documento são restritas à área do cliente MDI. Cada janela de documento possui uma guia na parte superior e ordem de tabulação está vinculada a outras janelas que podem ser abertas na área de MDI. Clicando com o botão direito na guia de uma janela do documento exibe um menu de atalho que inclui opções para dividir a área MDI em vários grupos de guia horizontal ou vertical. Dividindo a área MDI permite que vários arquivos para serem exibidos ao mesmo tempo.
Para obter mais informações, consulte
Editors
O Editor de 2010 de Visual Studio é um novo tipo de componente Visual Studio. Enquanto o novo editor é um VSPackage, ele permite que você personalizá-lo e usá-lo para seu próprio tipo de conteúdo por meio de Managed Extensibility Framework (MEF). Em muitos casos, não será necessário criar um VSPackage para estender o editor, embora se desejar incluir recursos do shell (por exemplo, um comando de menu ou uma tecla de atalho), você pode combinar uma extensão MEF com VSPackage.
Você também pode criar um editor personalizado, por exemplo, se você quiser ler e gravar em um banco de dados, ou se você 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 Editores.
Serviços de linguagem
Se desejar que o editor de Visual Studio para oferecer suporte à programação novas palavras-chave ou até mesmo uma nova linguagem de programação, você pode criar um serviço de linguagem. Cada serviço de linguagem pode implementar a determinados recursos do editor totalmente, parcialmente ou nem aparecer. Dependendo de como está configurado, o serviço de linguagem pode fornecer o realce de sintaxe, correspondência de chave, suporte de IntelliSense e outros recursos no editor.
O cerne de um serviço de idioma são um analisador e um scanner. Um scanner (ou o analisador 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. Quando você cria um serviço de linguagem, você deve implementar o analisador e o scanner para que o Visual Studio pode entender a tokens e a gramática do idioma.
Você pode criar serviços de linguagem gerenciada ou não gerenciado.
Para obter mais informações, consulte
Implementando um serviço de idioma usando a estrutura de pacote gerenciado.
Passo a passo: Criando um serviço de linguagem (estrutura de pacote gerenciado)
Projects
No Visual Studio, os projetos são os recipientes que os desenvolvedores usam para organizar e criar o código-fonte e outros recursos. Projetos permitem organizar, desenvolver, depurar e implantar o código-fonte, faz referência a serviços da Web e bancos de dados e outros recursos. Os VSPackages pode estender o sistema do projeto Visual Studio, fornecendo ferramentas personalizadas, subtipos de projeto e tipos de projeto.
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. Projeto e informações de status que diz respeito à solução são armazenadas em dois arquivos de solução, o arquivo da solução baseada em texto (. sln) e o arquivo de opção (. suo) do usuário de solução de binário. Esses arquivos são semelhantes aos arquivos de grupo (. vbg) que foram usados em versões anteriores do Visual Basic, e o espaço de trabalho (. dsw) e o usuário opções arquivos (. opt) que foram usados em versões anteriores do Visual C++.
Para obter mais informações, consulte
Modelos de projeto e Item
Visual Studio inclui modelos predefinidos de projetos e modelos de item de projeto. Você pode também fazer seus próprios modelos ou adquirir modelos da comunidade e integrá-los em seguida, em Visual Studio. O MSDN Code Gallery é o lugar certo para modelos e extensões.
Modelos contêm a estrutura do projeto e arquivos básicos que são necessárias para criar um determinado tipo de aplicativo, controle, biblioteca ou classe. Quando você deseja desenvolver um software que se parece com um dos modelos, criar um projeto que é baseado no modelo e, em seguida, modificar os arquivos nesse projeto.
Dica
Essa arquitetura de modelo, não há suporte para Visual C++ projetos.Para obter informações sobre como criar Visual C++ modelos de projeto, consulte Projetando um assistente.
Para obter mais informações, consulte Adicionando o projeto e modelos de Item de projeto.
Shell integrado e aplicativos isolados do Shell
Você pode integrar sua extensão em Visual Studio no modo integrado ou modo isolado.
Usar o shell integrado permite que você fornecer ferramentas personalizadas que seus clientes podem utilizar em conjunto com outros componentes de Visual Studio. Shell integrado é otimizado para hospedar ferramentas de software e da linguagem.
Usando o shell isolado permite que você criar ferramentas personalizadas que são executados no shell do Visual Studio com esses componentes de Visual Studio que você deseja incluir. O shell isolado é otimizado para ferramentas especializadas que têm acesso completo aos serviços de Visual Studio, mas também têm uma aparência personalizada e identidade visual.
Para obter mais informações, consulte