Partilhar via


Introdução ao VisualStudio.Extensibility para usuários VSSDK

Embora as extensões normalmente tenham sido carregadas no processo do Visual Studio, VisualStudio.Extensibility traz a maioria das extensões do Visual Studio fora do processo. Esse modelo fora do processo torna possível criar extensões mais confiáveis e eficientes. A documentação a seguir descreve:

  • A arquitetura geral do novo modelo de extensibilidade
  • Como aproveitar as APIs do novo modelo de extensibilidade
  • Como compilar e depurar F5 uma extensão com o novo modelo
  • Recursos e exemplos de código para começar a escrever uma extensão com o novo modelo

Sobre o modelo VisualStudio.Extensibility

O novo modelo VisualStudio.Extensibility visa resolver muitos dos problemas que os desenvolvedores enfrentam ao usar e escrever extensões no Visual Studio usando o modelo antigo. Esses problemas incluem:

  • Falhas e travamentos causados pela extensão do Visual Studio e outras extensões instaladas
  • Documentos e APIs inconsistentes e desatualizados, requisitos de especialização e arquitetura esmagadora
  • Reiniciando o Visual Studio necessário para instalar extensões
  • Não há suporte para .NET Core

Escrever extensões usando VisualStudio.Extensibility fornece os seguintes benefícios:

  • Maior confiabilidade – as extensões escritas com o novo modelo estão fora do processo e não bloqueiam a interface do usuário do Visual Studio. Isso significa que, se a extensão falhar, o VS não falhará como resultado.
  • Redução da complexidade da API – A API do novo modelo foi criada desde o início para ser mais coesa e fácil de implementar, mantendo a funcionalidade avançada do modelo antigo.
  • Somente .NET – Para se beneficiar dos aprimoramentos mais recentes no .NET e no C#, o novo modelo de extensibilidade só oferecerá suporte ao .NET para hospedagem fora do processo e é hospedado em um processo .NET .
  • Suporte ao .NET Core - As extensões fora do processo podem aproveitar o suporte para versões mais recentes do .NET e os benefícios que elas trazem.
  • Funcionalidade de carregamento a quente – extensões escritas usando o novo modelo podem ser instaladas e carregadas sem a necessidade de reiniciar o Visual Studio (excluindo extensões que exigem pré-requisitos de componente do Visual Studio que ainda não foram instalados).
  • Plataforma entre CPUs – Como a implementação subjacente é baseada em serviços agenciados compatíveis com RPC e é baseada em .NET, todas as extensões serão executadas em todas as plataformas de CPU suportadas pelo tempo de execução do .NET.

Tecnologia

O modelo VisualStudio.Extensibility é criado principalmente sobre contratos RPC que são fornecidos como serviços intermediados do Visual Studio. As extensões são hospedadas em um processo ServiceHub externo que se comunica com o Visual Studio via RPC. As extensões utilizam serviços fornecidos pelo Visual Studio e também podem fornecer serviços para o processo do Visual Studio em determinados casos.

Os pacotes de extensibilidade fornecidos como parte do SDK consistem em classes base, métodos de utilitário e objetos wrapper em torno desses contratos RPC, com o objetivo de tornar a área de superfície de extensibilidade mais fácil de usar e descobrir. Nosso objetivo é tornar mais fácil para os autores de extensão contribuírem rapidamente para o ecossistema do Visual Studio.

Para saber mais, confira estes documentos e instruções passo a passo para começar: