Desenvolvimento - C#
Tempo é Dinheiro! Use Code Snippets com C#
Os Code Snippets (fragmentos de códigos) são um conjunto de códigos pré-definidos com a finalidade de ajudar na produtividade de qualquer aplicação.
por Adriano Santos1. Introdução
Os Code Snippets (fragmentos de códigos) são um conjunto de códigos pré-definidos com a finalidade de ajudar na produtividade de qualquer aplicação. Ela constitui uma das novas características do Visual Studio 2005, e está presente também nas versões Express 2008 “Orcas”. Assim sendo, podemos rapidamente inserir trechos de códigos prontos, bastando pressionar algumas teclas ou buscá-los com o mouse.
2. Como usar
Há várias maneiras de utilizar Code Snippets em seus projetos. Por exemplo, no editor, lembrando que estou falando exclusivamente para códigos feitos em C#, acione as teclas de atalho Ctrl+K+X, você perceberá na figura 1 que o "Code Snippet Inserter" tem características bem parecidas com o IntelliSense.
fig. 1: Code Snippet Inserter
As outras formas de acessá-lo, são:
- Menu, acione Edit, IntelliSense e Insert Snippet (figura 2).
fig. 2: Acionando Code Snippet Inserter pelo Menu
- Menu de Contexto, clique com o botão direito no editor de código, e selecione Insert Snippet (figura 3).
fig. 3: Acionando Code Snippet Inserter pelo Menu de contexto
Outro meio é através de atalhos, onde você digita o nome do Code Snippet ou somente suas inicias e pressiona a tecla Tab duas vezes assim que aparecer o IntelliSense.
Após inserir, perceba que o código escolhido será gerado automaticamente, restando apenas, modificar os campos realçados em verde (figura 4), estes campos são chamados de “campos de substituição”, após inserir os dados corretos de que precisa, pressione Enter para confirmar e verá que os campos de substituição desaparecerão e as alterações serão realizadas.
fig. 4: Identificando os campos de substituição
3. Manipulando Code Snippets com “Code Snippets Manager”
Todos os códigos fragmentados são organizados em arquivos XML , e podem ser divididos por categorias e subcategorias. Os códigos C# que acompanham a instalação padrão do Visual Studio 2005 você encontra na pasta VC#\Snippets, do diretório de instalação.
Para incluir mais códigos, deletar algum desnecessário, enfim manipulá-los de forma geral, use a ferramenta “Code Snippets Manager” (figura 5), para isso acesse menu Tool, Code Snippets Manager.
fig. 5: Code Snippets Manager
Nesta tela você perceberá que há mais códigos em Visual Basic.NET do que C#, algo que tende a mudar com o passar do tempo e também na versão 2008. A tela é bem intuitiva e dispensa comentários. Sua aparência deixa bem claro que não se trata de um editor de Code Snippets e sim de um gerenciador.
A Microsoft disponibiliza em seu site um editor para VB, link está disponível no final deste artigo. Ainda desconheço um projeto funcional de Editor para código C#.
4. Criado nosso próprio Code Snippets em C#
Agora que sabemos o que é e como usar Code Snippets, chegamos a um ponto crucial, como criar meu próprio fragmento de código em C#? Para isto iremos dar uma pequena introdução criando diretamente um arquivo XML e adicionando ao nosso Code Snippets Manager.
O cenário será o seguinte, em nosso ambiente de trabalho usamos constantemente um código para abrir formulários em um aplicativo MDI. Portanto, quero que minha equipe siga um padrão para confecção deste procedimento, bem como ajudá-los a ganhar tempo na digitação do mesmo, aqui os Code Snippets nos auxilia e muito.
Vamos então criar o arquivo XML, que contém a estrutura de nosso código fragmentado, mas antes iremos entender quais são os campos que devemos preencher neste arquivo. Segue um exemplo do código criado por Microsoft, para o comando While em C#.
while.snippet
<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>while</Title> <Shortcut>while</Shortcut> <Description>Code snippet for while loop</Description> <Author>Microsoft Corporation</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>expression</ID> <ToolTip>Expression to evaluate</ToolTip> <Default>true</Default> </Literal> </Declarations> <Code Language="csharp"> <![CDATA[while ($expression$) { $selected$ $end$ }]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets> |
Title: Título do Code Snippet;
Shortcut: tecla de atalho, que podemos usar dentro do editor de código;
Author: Criador do fragmento de código;
SnnipetType: Opcional, é usado para descrever atributos e elementos usados no código;
Declarations: Opcional, usado para declarar variáveis usadas no código. Estas declarações são interpretadas pelo editor de código como campos de substituições, mencionados anteriormente;
Declarations->ID: Nome da declaração;
Declarations->ToolTip: Descrição da declaração;
Declarations->Default: Valor padrão da declaração;
Code Language: Indica qual a linguagem usada no código (VB, C#, J#, etc.);
<![CDATA[ Código ]]>: entre as chaves você poderá incluir seu código;
Um detalhe importante, quando for referenciar declarações de variáveis em seu Code Snippet, devemos indicá-los entre dois sinais de $ (cifrão), exemplo: $declaracao1$. Outro detalhe, o arquivo deverá obrigatoriamente ter a extensão .snippet.
Vamos então ao que realmente nos interessa. Crie uma pasta em qualquer local, chamada “Meus Snippets”. No Visual Studio 2005, dentro de qualquer solução e projeto aberto, selecione File -> New File... e clique em XML File. O código pronto para o nosso Code Snippet em questão é:
showform.snippet
<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Show Formulário</Title> <Shortcut>showform</Shortcut> <Description>Code snippet criar um objeto WinForm e exibí-lo</Description> <Author>Adriano Santos (adrianodrix@hotmail.com)</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>Form1</ID> <ToolTip>Classe do objeto Form que será criado.</ToolTip> <Default>Form1</Default> </Literal> </Declarations> <Code Language="csharp"> <![CDATA[ $Form1$ form1 = new $Form1$(); form1.MdiParent = this; form1.Show(); ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets> |
Para gravar, indique este arquivo com o nome ShowForm e no dropdown “Save as Type”, selecione “Snippets Files” e salve-o dentro da pasta que criamos.
Ótimo! Até aqui temos nosso fragmento de código pronto, mas falta ainda vinculá-lo ao nosso Visual Studio 2005 para que possamos usá-lo. Para isto, vamos ao Snippets Code Manager, cliquem em Add..., selecione a pasta “Meus Snippets” e clique em Open. Neste ponto, o manager irá varrer a pasta e subpastas e listará todos os arquivos de Code Snippets encontrados. Vejamos aqui então uma grande oportunidade, de organizar nossos códigos por categoria e subcategorias, bastando para isso, organizar nossos arquivos em pastas distintas. Veja como ficou nosso Snippet Code após a instalação na figura 6.
fig. 6: Code Snippets ShowForm
Para usá-lo, o procedimento será o mesmo indicado anteriormente, acione a opção Insert Snippet e selecione o código, como indicado na figura 7.
fig. 7: Inserindo Code Snippet ShowForm
Veja o resultado na figura 8.
fig. 8: Código C# originado do Code Snippet ShowForm
5. Conclusão
Vimos o poder fantástico que o Visual Studio 2005 nos dá sob o critério de alavancar a qualidade de nosso código e garantir uma experiência agradável para o programador através dos Code Snippets, que nos proporciona rapidez na digitação de códigos repetitivos além de ajudar manter padronizada a estrutura do nosso código fonte.
Vimos também o poder de estensibilidade deste recurso, aprendendo desde a criação e instalação de um fragmento de código na nossa IDE.
Até o próximo pessoal!
6. Referências
Creating Code Snippets
http://msdn2.microsoft.com/en-us/library/ms165393(VS.80).aspx
Visual Basic Code Snippet Editor
http://msdn.microsoft.com/vbasic/downloads/tools/snippeteditor
DotNetJunkies
http://dotnetjunkies.com
GotCodeSnippets
http://gotcodesnippets.com