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.
Conteúdo relacionado
Para saber mais, confira estes documentos e instruções passo a passo para começar: