Arquitetura do plug-in de controle do código-fonte
Você pode adicionar suporte de controle do código-fonte para o ambiente de desenvolvimento integrado (IDE) do Visual Studio implementando e anexando um plug-in de controle do código-fonte. O IDE se conecta ao plug-in de controle do código-fonte por meio da API de plug-in de controle do código-fonte bem definida. O IDE expõe os recursos de controle de versão do sistema de controle do código-fonte fornecendo uma interface do usuário (UI) que consiste em barras de ferramentas e comandos de menu. O plug-in de controle do código-fonte implementa a funcionalidade de controle do código-fonte.
Recursos de plug-in de controle do código-fonte
O plug-in de controle do código-fonte fornece recursos para ajudar a criar e conectar seu aplicativo de controle de versão ao IDE do Visual Studio. O plug-in de controle do código-fonte contém a especificação de API que deve ser implementada por um plug-in de controle do código-fonte para que ele possa ser integrado ao IDE do Visual Studio. Ele também contém um exemplo de código (escrito em C++) que implementa um plug-in de controle do código-fonte esqueleto demonstrando a implementação de funções essenciais compatíveis com a API de plug-in de controle do código-fonte.
A especificação da API do plug-in de controle do código-fonte permite que você aproveite qualquer sistema de controle do código-fonte de sua escolha se você criar uma DLL de controle do código-fonte com o conjunto necessário de funções implementadas de acordo com a API do plug-in de controle do código-fonte.
Componentes
O pacote do adaptador de controle do código-fonte no diagrama é o componente do IDE que converte a solicitação do usuário para uma operação de controle do código-fonte em uma chamada de função suportada pelo plug-in de controle do código-fonte. Para que isso aconteça, o IDE e o plug-in de controle do código-fonte devem ter um diálogo eficaz que passe informações entre o IDE e o plug-in. Para que esse diálogo ocorra, ambos devem falar a mesma língua. A API de plug-in de controle do código-fonte descrita nesta documentação é o vocabulário comum para essa troca.
Diagrama de arquitetura mostrando a interação entre o VS e o plug-in de controle do código-fonte
Conforme mostrado no diagrama de arquitetura, o shell do Visual Studio, rotulado como shell VS no diagrama, hospeda os projetos de trabalho do usuário e os componentes associados, como os editores e o Gerenciador de Soluções. O pacote do adaptador de controle do código-fonte lida com a interação entre o IDE e o plug-in de controle do código-fonte. O pacote do adaptador de controle do código-fonte fornece sua própria interface do usuário de controle do código-fonte. É a interface do usuário de nível superior com a qual o usuário interage para iniciar e definir o escopo de uma operação de controle do código-fonte.
O plug-in de controle do código-fonte pode ter sua própria interface do usuário, que pode consistir em duas partes, conforme mostrado na imagem. A caixa rotulada "Vendor UI" representa elementos de interface do usuário personalizados que você, como criador do plug-in de controle do código-fonte, fornece. Eles são exibidos diretamente pelo plug-in de controle do código-fonte quando o usuário invoca uma operação avançada de controle do código-fonte. A caixa rotulada "Interface do usuário auxiliar" é um conjunto de recursos da interface do usuário do plug-in de controle do código-fonte que são invocados indiretamente por meio do IDE. O plug-in de controle do código-fonte passa mensagens relacionadas à interface do usuário para o IDE por meio de funções especiais de retorno de chamada fornecidas pelo IDE. A interface do usuário auxiliar facilita uma integração mais perfeita com o IDE (geralmente por meio do uso de um botão Avançado) e, portanto, fornece uma experiência de usuário final mais unificada.
Um plug-in de controle do código-fonte não pode fazer alterações no shell do Visual Studio e, consequentemente, no pacote do adaptador de controle do código-fonte ou na interface do usuário de controle do código-fonte fornecida pelo IDE. Ele deve fazer uso máximo da flexibilidade oferecida por meio da implementação das várias funções da API do plug-in de controle do código-fonte que contribuem para uma experiência integrada do usuário final. A seção de referência da documentação da API do plug-in de controle do código-fonte inclui informações sobre alguns recursos avançados do plug-in de controle do código-fonte. Para explorar esses recursos, o plug-in de controle do código-fonte deve declarar seus recursos avançados ao IDE durante a inicialização e implementar funções avançadas específicas para cada recurso.