Revista MSDN Magazine Edição 27 - Visual Studio - Criando templates para projetos e itens
O artigo trata do aproveitamento de templates existentes, da criação de novos templates de projeto e item e personalização de templates via metadados XML.
Criando templates para projetos e itens
· Aproveitando templates existentes;
· Criando novos templates de projeto e item;
· Personalizando templates via metadados XML.
· Visual Studio 2005, XML.
Durante o nosso trabalho com clientes na construção de aplicações para o Microsoft .NET Framework, freqüentemente nos era solicitada a mesma característica para o Visual Studio .NET: "seria ótimo se pudéssemos criar nossos próprios tipos e itens de projeto, de forma que todos os desenvolvedores da nossa organização tivessem acesso aos mesmos". Muitas organizações desejam criar templates de projeto compartilhados, tais como Web Sites ou itens de projeto, como por exemplo uma página Web ou formulários padrão. O Visual Studio 2005 introduz um novo modelo para a definição de templates para projetos e itens, que não apenas tornam isso possível, porém também relativamente simples. Daremos uma olhada a respeito de como consumir, criar e personalizar esses templates.
Nota: Enquanto um template de projeto contém modelos para vários arquivos contidos em uma aplicação, um template de item define um modelo para um item em particular, como uma classe, formulário, user control ou um arquivo. São as opções que aparecem na janela Add New Item.
Antigamente, os usuários podiam criar templates de projetos ou itens, mas era necessário possuir conhecimentos sobre formatações "enigmáticas" de arquivos texto, de arquivos JavaScript e de convenções de nomenclatura de pastas, assim como também um pouco de "magia", para fazer o conjunto funcionar. Com o novo modelo, um usuário pode criar um simples arquivo .ZIP dos itens a serem incluídos no template e um arquivo de metadados XML, que descreve o template e o seu conteúdo. Esses novos modelos suportam a criação de itens de templates tais como uma página Web, um arquivo de código C# ou Visual Basic ou um arquivo de configuração. Também suporta templates de projeto simples, tais como Web Sites, bibliotecas de classes ou aplicações smart client, bem como soluções multi-projeto. Na realidade, a maioria dos projetos e itens de template que já estão no Visual Studio 2005 são baseados nesse mesmo mecanismo de template.
Aproveitando um template existente
O modo mais fácil de entender como esses templates funcionam, é dar uma olhada, para aprender a aproveitar um template já existente. No Visual Studio 2005, podemos configurar os locais para procurar templates, e esses locais podem usar qualquer caminho do tipo Universal Naming Convention (UNC - Convenção de Nomenclatura Universal). Na caixa de diálogo Options, sob o item Projects and Solutions, podemos configurar os locais específicos do usuário, para procurar projetos ou itens de template (Figura 1). Os valores padrão para essas configurações apontam para pastas de templates dentro de Meus Documentos. Os templates incluídos no Visual Studio 2005 estão localizados sob o diretório de instalação do Visual Studio, e são incluídos por padrão, nas caixas de diálogo de setup do projeto.
Figura 1. Opções para configurar os locais dos templates
Colocando um arquivo .ZIP junto com o arquivo de metadados apropriado no local de template configurado pelo usuário, o novo template de projeto ou item aparecerá nas caixas de diálogo respectivas. O código de exemplo que acompanha este artigo inclui exemplos de templates de projeto que podem ser copiados nesses diretórios para serem testados. Depois de adicionar o arquivo .ZIP, iniciamos o Visual Studio 2005, escolhemos File New>Project e veremos que o template do novo projeto foi incluído na seção My Templates da caixa de diálogo (Figura 2). Selecionando esse template de projeto será criado um novo projeto com os itens contidos no arquivo ZIP.
Figura 2. Os Templates aparecem na Caixa de diálogo New Project
Vários benefícios são obtidos ao aproveitarmos os templates desse modo. O mais importante é que os locais são configuráveis, e os grupos de desenvolvimento poderão definir um arquivo de compartilhamento em um servidor comum onde serão disponibilizados os templates para o grupo. Todos os desenvolvedores no grupo poderão configurar o seu ambiente para apontar para o arquivo de compartilhamento onde se encontram os templates. Quando um novo template é disponibilizado para o servidor, copiando-se o arquivo ZIP para o diretório compartilhado, todos os desenvolvedores têm acesso imediato ao mesmo a partir do Visual Studio. Depois da distribuição inicial, as mudanças no template serão feitas em um só lugar, não havendo necessidade de distribuição posterior para as estações de trabalho de cada desenvolvedor.
Além disso, pelo fato do template ser usado como um verdadeiro template, o mesmo permanecerá inalterado, podendo ser reutilizado para criar novos projetos. Essa é uma grande melhoria sobre a abordagem tradicional "copiar e colar", onde um desenvolvedor cria um arquivo ou projeto e o repassa para outro. Sem um gerenciamento eficiente, o original será rapidamente perdido, e será modificado sem chance de retornar a uma versão funcional conhecida. Os locais dos template de projeto e de itens são configurados independentemente, portanto, uma organização pode escolher entre ter só templates de projeto centralizados e permitir aos desenvolvedores criar os seus próprios templates.
Além dos templates, o Visual Studio 2005 incorpora um conceito de "starter kit". Starter kits permitem um aproveitamento amplo de exemplos através de sites de comunidades, a partir dos quais podem ser carregados os templates. Na caixa de diálogo New Project, uma das opções é Search Online Templates. Escolhendo essa opção, podemos procurar por starter kits on-line, via palavra-chave. Quando um starter kit for achado, poderemos optar por carregá-lo e instalá-lo no diretório apropriado, de forma que poderemos usá-lo como um template para adicionar itens ou projetos. Como o nome o diz, starter kits são geralmente usados como ferramentas de aprendizado ou como exemplos para auxiliar na difusão de conhecimentos ou para prover um ponto de partida para projetos maiores.