Guidance Automation Toolkit - Customizações no ambiente de desenvolvimento
Olá pessoal, tudo certo?
Finalmente, o terceiro mecanismo para as customizações no ambiente de desenvolvimento são os Guias de Automação. Para o Visual Studio temos o GAT - Guidance Automation Toolkit, como sua principal ferramenta. Ele trabalha sobre um framework específico de automação, chamado Microsoft.Practices.RecipeFramework.
Como já falamos aqui no blog, o pacote GAT adiciona ao ambiente do Visual Studio a infra-estrutura de linguagens e ferramentas para a construção de pacotes de automação para geração de código. O objetivo é automatizar a codificação, baseando-se em templates e modelos de software que o arquiteto ou desenvolvedor selecionou como melhores práticas para um tipo de solução.
Vamos iniciar com a preparação do ambiente sobre o Visual Studio 2005, onde temos os seguintes extensions e pacotes de atualização indicados abaixo:
1) Microsoft .NET Framework 2.0 Service Pack 1
https://www.microsoft.com/downloads/details.aspx?familyid=79bc3b77-e02c-4ad3-aacf-a7633f706ba5&displaylang=en
2) Microsoft .NET Framework 3.0 Redistributable Package
https://www.microsoft.com/downloads/details.aspx?familyid=10CC340B-F857-4A14-83F5-25634C3BF043&displaylang=en
3) Microsoft .NET Framework 3.0 Service Pack 1
https://www.microsoft.com/downloads/details.aspx?familyid=ec2ca85d-b255-4425-9e65-1e88a0bdb72a&displaylang=en
4) Guidance Automation Extensions - July 2007 (GAT)
https://www.microsoft.com/downloads/details.aspx?familyid=C0A394C0-5EEB-47C4-9F7B-71E51866A7ED&displaylang=en
5) Guidance Automation Toolkit - July 2007 (GAX)
https://www.microsoft.com/downloads/details.aspx?familyid=E3D101DB-6EE1-4EC5-884E-97B27E49EAAE&displaylang=en
6) Visual Studio 2005 SDK Version 4.0
https://www.microsoft.com/downloads/details.aspx?FamilyID=51A5C65B-C020-4E08-8AC0-3EB9C06996F4&displaylang=en
7) Microsoft® Visual Studio® 2005 Team Suite Service Pack 1 - June 2007
https://www.microsoft.com/downloads/details.aspx?familyid=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displaylang=en
A partir desta instalação, nosso Visual Studio 2005 estará apto para trabalhar com o GAT/GAX, disponibilizando uma nova pasta de templates de projeto, como vemos a seguir:
Assim, a pasta Guidance Packages permite a criação de novos guias de automação, através do template de projeto "Guidance Package Development/Guidance Package". Por exemplo, podemos pensar na automação de um cenário para construção de aplicações ASP.NET. Pense em templates de navegação otimizados e homologados pela equipe de arquitetura. O objetivo nesse cenário é garantir produtividade durante a construção de novas aplicações, através da geração dinâmica de arquivos e items de projeto. Essa geração dinâmica de código ocorre sobre uma linguagem de templates, a Text Templating Transformation Toolkit ou simplesmente T4.
Um Guidance Package (ou Pacote de Automação) é criado para um propósito específico, visando atender algum tipo de solução que queremos automatizar. Assim, caracteriza-se também como uma unidade de versionamento e distribuição. Uma vez finalizado, o pacote pode ser registrado e distribuído para as várias estações de desenvolvimento. Os desenvolvedores finais serão os usuários desse pacote de automação.
A figura a seguir descreve bem esses passos no processo de modelagem e construção de um guia de automação:
De fato, um Guidance Package consiste de templates do Visual Studio, como vimos anteriormente (templates de projeto e templates de itens de projeto) e receitas de automação (passos de automação). Entre os elementos que compõem um guia de automação temos:
- Recipes (Receitas)
- Wizards (Sequência de passos para entrada de dados, nos moldes dos Addin's Wizards que vimos no post anterior)
- Value Providers (Provedores de valores)
- Type Converters (Conversores de tipos)
- Actions (Ações)
- Code Generation (Geração de código, onde temos os templates em linguagem T4)
A figua abaixo apresenta bem a hierarquia de componentes de um guia de automação, veja:
Entendido os conceitos sobre o GAT/GAX, vejamos como utilizá-lo. Uma sequência de passos para a construção de um guia de automação é dada abaixo:
- Definir as receitas desejadas para o guia, incluindo a definição de argumentos, wizards e ações;
- Definir os templates de Visual Studio envolvidos;
- Escrever as ações;
- Escrever os tipos de argumentos e conversores necessários;
- Definir templates T4, se uma ação utilizar templates T4 para geração de código;
- Testar o pacote de automação;
- Construir o pacote com os arquivos de setup, para distribuição;
Ao final, um pacote de guia conterá os seguintes artefatos:
- arquivo de configuração do guia de automação (necessário);
- templates de Visual Studio;
- templates T4;
- DLL implementando ações, editores de tipos, provedores de valores e conversores de tipos (note que uma única DLL é recomendada);
Uma boa maneira de iniciar seus trabalhos sobre o guia de automação GAT é seguir os passos da solução exemplo, que vem com a instalação do GAT/GAX. Veja na tela principal da solução os principais passos recomentados, são 7 passos:
Finalmente, vamos exportar esse guia de automação para outras máquinas. A solução template do Guidance Package gera também um template de Setup, que disponibiliza o pacote para instalação. Veja abaixo os projetos contidos na solução de um guia de automação, onde notamos o projeto de Setup que deve ser instalado na estação do desenvolvedor:
Desse modo, passamos pelos principais elementos sobre a modelagem e construção de um Guia de Automação. Recomendo fortemente a leitura dos arquivos de ajuda do GAT e GAX, para um maior detalhamento. O material tem bastante informações importante, que ajudará na evolução e construção de guias de automação sofisticados.
A Microsoft também disponibiliza uma série de Fábricas de Software, que nada mais são do que pacotes de automação prontos para assuntos específicos. Isso significa que a base das várias Fábricas de Software que a Microsoft disponibiliza é realmente o GAT/GAX que vimos aqui. Entre as fábricas mais conhecidas temos:
- Mobile Client Software Factory
- Smart Client Software Factory
- Web Client Software Factory
- Web Service Software Factory
- Application Block Software Factory
Em posts futuros, vamos avançar em outros assuntos relacionados ao ganho de produtividade no ambiente de desenvolvimento. Entre eles teremos as Fábricas de Software e as Linguagens de Domínio Específico, ou DSL's - Domain Specific Languages. Fiquem ligados.
Por enquanto é só! Até o próximo post :)
Waldemir.
Comments
- Anonymous
January 21, 2008
(comentando este e os outros dois artigos anteriores) Não sabia da existência disto, embora me pareça essencial. Acho que não tinha pensado a respeito. Provavelmente é do mesmo framework que são construídos os templates (e wizards) do SQL Server, não? Um amigo meu que é desenvolvedor gosta muito de fazer ferramentas. Você acredita que o GAT pode ser utilizado para conceber um "Gerador de Formulários"? Ou um "Gerador de Telas", sejam elas relatórios, páginas ASP ou WinForms. Imagine ler um DataSet, entender os campos (tipos de dados, identificar os campos relevantes) e montar os formulários baseando-se nisto. Very cool.