Visual Studio 2005 SDK Version 4.0 - Customizações no ambiente de desenvolvimento.

Olá pessoal, tudo certo?

Em nossa discussão sobre mecanismos para customização do ambiente de desenvolvimento em .NET, já falamos de templates de projeto e templates de itens de projeto. A idéia é passar pelos mecanismos básicos de customização e por fim, discutir em detalhes o Guidance Automation Toolkit (GAT) . Hoje falaremos sobre o SDK - Software Development Kit v4.0 para o Visual Studio 2005.

2. Customização de funcionalidades através do Visual Studio 2005 SDK Version 4.0

Quando pensamos no uso de um SDK de um determinado produto, temos em mente acessar funcionalidades e recursos de forma programática, sem restrições. O mesmo acontece com o SDK do Visual Studio. Com ele, podemos acessar os recursos para administração de itens de projeto, soluções ativas, referência, componentes em uso, etc.

Desse modo, é possível criar customizações que adicionam funcionalidades integradas ao IDE (Integrated Development Environment) do Visual Studio. Entre as opções temos:

  • Criação de macros de expansão de código;
  • Criação de menus customizados;
  • Criação de janelas de ferramentas customizadas;
  • Visualização de informações consolidadas sobre os projetos abertos;
  • Extensões em conteúdo de arquivos de ajuda;
  • Criação de addin's de navegação;
  • Criação de wizards diversos, etc.

Assim, através do SDK acessamos o modelo de objetos do Visual Studio, implementado através das bibliotecas EnvDTE.dll e EnvDTE80.dll. (DTE - Development Tools Environment).

Uma customização muito comum é a criação de Addin's para o IDE. Já que estamos falando sobre ganhos de produtividade, pense num ADDIN que ofereça um Wizard, permitindo uma entrada de dados e que oriente o desenvolvedor na adição de novos recursos ao projeto ativo. Por exemplo, podemos visualizar todas as referências existentes no projeto, permitindo ainda adicionar novas referências de forma amigável.

Vamos imaginar um Addin implementado através de um classe chamada Viewer. O objetivo desse Addin é navegar pelas referências ativas de um projeto no Visual Studio, como vemos a seguir:

image

A figura acima apresenta a tela principal do Addin, navegando pelas referências e tipos presentes para o projeto. Esse tipo de customização é baseado no uso de classes do modelo de objetos do DTE, como vemos a seguir:

image

Veja que uma série de métodos são oferecidos, permitindo a implementação de atividades durante momentos como abertura ou fechamento do addin, conexão ao menu principal, shutdown, entre outros.

E para acessar a hierarquia de recursos presentes no projeto, o Addin faz uso da seguinte estrutura:

image

Veja que o método acima percorre os vários projetos da solução ativa e para cada projeto, percorre as várias referências presentes, criando uma lista para o desenvolvedor. Isso é feito através da instância VSProj.References.

Da mesma forma, veremos que é possível a construção de Code Snippet para obtenção de nomes de projeto, arquivos ou recursos, que poderão ser usados em templates ou guias de automação, utilizando a mesma navegação pelas estruturas do EnvDTE. Veja um exemplo de Code Snippet para obtenção do nome do projeto:

EnvDTE._DTE dte = (EnvDTE._DTE)automationObject;

Array activeProjects = (Array)dte.ActiveSolutionProjects;

EnvDTE.Project activeProject = (EnvDTE.Project)activeProjects.GetValue(0);

replacementsDictionary.Add(" $projectname$ ", activeProject.Name);

Maiores detalhes sobre esse tipo de navegação pelos recursos do projeto você tem aqui:

DTE2.ActiveSolutionProjects Property
Ref.: https://msdn2.microsoft.com/en-us/library/envdte80.dte2.activesolutionprojects(VS.80).aspx

O download do SDK v4.0 do Visual Studio 2005 está disponível aqui:

Download : Visual Studio 2005 SDK Version 4.0
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyID=51A5C65B-C020-4E08-8AC0-3EB9C06996F4&displaylang=en

Finalmente, a partir da instalação do SDK no ambiente do Visual Studio, novos templates são oferecidos para o desenvolvedor, como vemos na figura a seguir na pasta "Other project Types/Extensibility". Entre eles temos:

  • Visual Studio Integration Package
  • Visual Studio Language Package
  • Domain Specific Language Designer
  • Domain Specific Language Setup
  • Help Integration Wizard

image

Note que o SDK v4.0 também inclui as ferramentas para construção de DSL's, que veremos em posts futuros.

Importante: a documentação do SDK é leitura obrigatória para explorarmos os detalhes de implementação de Addins. Portanto, esse post não esgota o assunto, mas apenas aponta algumas direções e tópicos que achei interessante, entre os mecanismos de customização do ambiente Visual Studio 2005. No próximo post falaremos um pouco mais sobre guias de automação e linguagens para geração de código, como a T4 - Text Templating Transformation Toolkit.

Por enquanto é só! Até o próximo post :)

Waldemir.