sábado, 14 de abril de 2012

Creado Code Snippet en Visual Studio


Muchas veces en nuestros proyectos tenemos métodos o páginas web con estructuras similares, pero que según el comportamiento de cada una deben de cambiarse. Tal vez tenemos una página web como un mantenimiento que siempre tiene el mismo comportamiento pero diferente cantidad de campos a ser editados, o un webService que recibe una clase request y envía una clase response como respuesta y que tienen cierta herencia que hace que siempre se debe de heredar de una clase especifica o se deban de usar métodos específicos.
Entonces siempre tenemos que estar copiando y pegando todo el contenido de un archivo y pegándolo en el archivo nuevo y después de eso quitar todo lo que no ocupamos y empezar la edición. Tomando eso en cuenta, uno se percata que está perdiendo mucho el tiempo siempre copiando pegando y eliminando lo innecesario, y que esto nos puede llevar a errores que a veces duramos mucho en resolver. Buscando una solución se me vino a la mente crear code snippet y templates en visual studio para evitarnos este proceso.

Como crear code snippet en Visual Studio
·         Creamos un archivo de texto le damos el nombre de snippet y le colocamos la extensión .snippet este es un archivo XML que va a contener el código de nuestro snippet.
·         Editamos el archivo el cual va ser algo como esto, la primera parte es crear el encabezado de nuestro archivo.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
      <Title>MiMetodo</Title>
      <Shortcut>Mi Metodo</Shortcut>
      <Description>Ejemplo de un Snippet</Description>
      <Author>rlamunoz</Author>
    </Header>

  • En Title agregamos el titulo del snippet tal y como aparecera en visual studio
  • En Shortcut agregamos un nombre o forma corta de encontrar nuestro snippet
  • En Descripction agregamos la descripción de que hace nuestro snippet
  • En Author agregamos quien creó el code snippet

Seguido en el XML viene la estructura de los campos que va a solicitar la plantilla cuando sea utilizada desde Visual Studio.


    <Snippet>
      <Declarations>
        <Literal Editable="true">
          <ID>NombreMetodo</ID>
          <ToolTip>Nombre del Metodo</ToolTip>
          <Default>MetodoPrueba</Default>
          <Function>
          </Function>
        </Literal>
        <Literal Editable="true">
          <ID>Descripcion</ID>
          <ToolTip>Descripción del Método</ToolTip>
          <Default>Ingresar la descripción del método.</Default>
          <Function>
          </Function>
        </Literal>
   </Declarations>

Para cada uno de los campos que queremos variar en nuestro método vamos a agregar un literal el cual es editable.

  • En ID agregamos el nombre del campo variable.
  • En Tooltip agregamos una pista de que es lo que debe de ir en ese campo
  • En Default agregamos el valor por default del campo, en el caso de que el nombre del método se omita este va a ser MetodoPrueba.

·         Una vez que tenemos los campos que serán editables debemos de crear el método y colocar cada literal dentro de este, para colocar los ID de los literals dentro debemos de hacerlo de la siguiente forma $NombreMetodo$

<Code Language="csharp">
<![CDATA[/// <summary>
                /// Método: $ NombreMetodo $
                /// Descripción: $ Descripcion $
                /// </summary>
                /// <remarks>
                ///</remarks>
                /// <param></param>
                /// <returns></returns>
public void  $ NombreMetodo $()
{
        try
                    {

        }
        catch (Exception objExcepcion)
                   {
                              
       }
}
]]></Code>
                 </Snippet>
 </CodeSnippet>
</CodeSnippets>

Este es un ejemplo muy básico, pero supongamos que dentro del método tenemos programación que siempre es la misma y los cambios son muy pocos. Salvamos el archivo y tenemos nuestro snippet.
Ahora lo que vamos a hacer es instalarlo en visual studio para poder utilizarlo en nuestros proyectos
·         En visual studio vamos a Tools y elegimos Code Snippets Manager o mediante el teclado Ctrl + K, Ctrl +B, esto nos abre la siguiente ventana:




·         En la pantalla seleccionamos el Lenguaje en el que vamos a agregar nuestro snippet, en mi caso selecciono C#. Selecciono la carpeta My Code Snippets y pulso el botón import… el cual abre una ventana donde voy a buscar el archivo .snippet que creamos anteriormente. Pulsamos el botón OK, y listo podemos utilizar nuestro snippet.
·         Para utilizar el snippet dentro del código solo deben de utilizar el juego de teclas Ctrl+k, Ctrl+X y seleccionar el snippet buscándolo por el nombre.