Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A LOS SNIPPETS
POOHV
Grupo 4:
Ventura Rodrguez, David
Balao Rondn, Julio
Fernndez Burgos, Rafael
Garca Montes, Daniel
Garca Prez, Jos Manuel
NDICE:
PRLOGO
2-ADMINISTRADOR DE SNIPPETS
11
6-EJEMPLOS
13
7-BIBLIOGRAFA
16
8-APNDICE
17
9-GLOSARIO
18
10-CONCLUSIONES
19
PRLOGO:
Snippet es un trmino en programacin referido a fragmentos de cdigo que se usan con
bastante frecuencia en un programa y que a su vez tiene una estructura muy bien
definida, como podra ser el caso de la instruccin if:
if (expresin lgica)
{
instrucciones
}
2-ADMINISTRADOR DE SNIPPETS:
Para acceder al Administrador de Snippets pulsamos en el men herramientas,
Administrador de fragmentos de cdigo.
Aparece una ventana desde la cual podemos seleccionar de cada lenguaje los Snippets
que hay, agregar nuevos, importarlos, eliminarlos y buscar en lnea.
Ya est creado el snippet. Solo falta agregarlo al Visual Studio, que se explicar ms
adelante.
<Snippet>
<Declarations>
<Literal>
<ID>nombre</ID>
<ToolTip>breve descripcin</ToolTip>
<Default>valor</Default>
</Literal>
<Object>
<ID>nombre</ID>
<ToolTip>breve descripcin</ToolTip>
<Default>valor</Default>
<Type>tipo</Type>
</Object>
</Declarations>
<References>
<Reference>
<Assembly>librera</Assembly>
<Url>direccin</Url>
</Reference>
</References>
<Imports>
<Import>
<Namespace>espacio de nombre</Namespace>
</Import>
</Imports>
<Code Language="Lenguaje" Delimiter=$ Kind=Tipo>
<![CDATA[
Cdigo
]]>
</Code>
</Snippet>
Es aconsejable que una vez se tenga cierta soltura se utilice el snippet XML para la
creacin de snippets, ya que ahorra gran parte del trabajo en la escritura de las etiquetas.
Para utilizarlo es necesario escribir los snippets en Visual Studio, e introducir el snippet
como se describe al principio del tutorial.
Para ms informacin acerca de las etiquetas, ir a la referencia [2]:
10
Una vez ah, primero seleccionamos el lenguaje para el cual est hecho el snippet, en
nuestro caso C#.
12
6-EJEMPLOS:
A continuacin se muestra el cdigo de un par de snippets para que sirvan de ejemplo.
Snippet Singleton:
Este snippet ayuda a implementar el patrn de diseo Singleton. Este patrn sirve
asegurar que una clase tiene una sola instancia y proporciona un nico punto de acceso
para esta.
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets>
<CodeSnippet Format="1.0.0">
<Header>
<Title>singleton</Title>
<Shortcut>singleton</Shortcut>
<Description>Code
snippet
for
the
singleton
pattern</Description>
<Author>Grupo 4</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Default>ClassName</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>field name</ToolTip>
<Default>instance</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
public class $classname$$end${
private static $classname$ $field$;
private static readonly object semaph=new object();
private $classname$ (){
}
public static $classname$ GetInstance(){
if($field$ == null)
{
lock(semaph)
{
if($field$ == null)
$field$ = new $classname$();
13
}
}
return $field$;
}
} ]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Snippet property:
Este snippet sirve para crear una propiedad rpidamente, sin tener que recurrir a la
refactorizacin.
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0"
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSni
ppet">
<Header>
<Title>property</Title>
<Author>Grupo 4</Author>
<Shortcut>property</Shortcut>
<Description>Code snippet for adding
property</Description>
<SnippetTypes>
<SnippetType>SurroundsWith</SnippetType>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<Default>Object</Default>
</Literal>
<Literal>
<ID>field</ID>
<Default>field</Default>
</Literal>
<Literal>
<ID>Prop</ID>
<Default>Prop</Default>
</Literal>
</Declarations>
14
<Code Language="csharp">
<![CDATA[private $type$ $field$;
public $type$ $Prop$
{
get
{
return $field$;
}
set
{
if (value != null)
{
$field$ = value;
}
Else
throw new ArgumentNullException();
}
}]]>
</Code>
</Snippet>
</CodeSnippet>
15
7-BIBLIOGRAFA:
[1] http://bitworking.org/HowTemplatesWork.html
[2] MSDN,http://msdn2.microsoft.com/en-us/library/ms171418(VS.80).aspx
16
8-APNDICE:
Encoding (o codificacin de caracteres): Es un mtodo que permite convertir un
carcter de un lenguaje natural a otro sistema de representacin diferente, para ello a
cada carcter se le asigna un cdigo en binario, por tanto, el nmero total de caracteres
posibles en una codificacin vendr dado por el nmero de bits que utilice la misma, asi
si tuviera 8 bits el encoding dispondr de 256 caracteres.
As pues si un texto se pasa a un encoding diferente es muy posible que se produzcan
incompatibilidades y no se pueda ver el verdadero contenido del documento.
El ms relevante dentro del contexto de la informtica es el Unicode, que es la
codificacin estandar y cuyo objetivo es proporcionar el medio por el cual un texto en
cualquier idioma pueda ser codifiado para el uso informtico, motivo por el cual ha
sufrido numerosas revisiones aadiendo nuevos caracteres posibles a representar.
17
9-GLOSARIO:
XML: eXtensible Markup Language (lenguaje de marcas extensible). Ms que un
lenguaje, es una forma de hacer lenguajes de etiquetas, muy til para mostrar
informacin de forma estructurada.
Etiqueta: Cada uno de los elementos del lenguaje XML, las etiquetas pueden tener
atributos.
Atributos: Manera de incorporar caractersticas o propiedades a las etiquetas, el valor
de los atributos debe ir entre comillas.
Encoding: Cdigo que empareja un juego de caracteres con otro tipo de smbolos (en el
entorno de la informtica ceros y unos) con el fin de poder representar ese juego de
caracteres de otra manera.
18
10-CONCLUSIONES:
Sobre los snippets:
Como ya se ha expuesto durante el manual, la utilizacin de los snippets nos permite
ahorrar bastante tiempo en la escritura de las diferentes estructuras, por tanto seremos
mucho ms eficientes utilizando los mismos que haciendo caso omiso de su existencia y
escribiendo todo carcter a carcter, aprovechando ese tiempo para la escritura de ms
lineas, mejorando as la productividad del programador. Adems como se ha visto, crear
tu propio snippet es muy sencillo. En unos pocos minutos y sin tener mucho
conocimiento de XML se podra crear uno.
Sobre la realizacin del trabajo:
En la realizacin de este documento hemos encontrado una serie de problemas que no
estaban previstos en un primer momento.
La primera versin del documento se hizo sin muchas complicaciones, con una buena
organizacin y entregado en la fecha prevista. La nica duda que tenamos surgi en un
ltimo momento, sobre algo que no tenamos previsto, y le preguntamos al cliente
mediante un correo cuando la fecha de entrega del documento venca en un da.
Cuando nosotros cremos que habamos hecho un buen trabajo, el cliente nos envi un
correo con una gran serie de cosas a mejorar o de ampliar en el documento. Qu fall?
La mayora de estos problemas son por un mal entendimiento entre el cliente y los
desarrolladores. Nosotros cremos que haba que hacer una introduccin a los snippets
(de hecho el ttulo del documento es Introduccin a los snippets) y el cliente quera
algo ms que una introduccin.
Para evitar esta situacin, la elaboracin de los requisitos del documento deben ser
responsabilidad compartida entre cliente, desarrolladores e incluso de usuarios finales.
De esta forma, debamos haber comunicado con nuestro cliente con ms asiduidad, y no
solo cuando el plazo de entrega vence en pocos das. Adems cuando el cliente te
manda una lista de cosas a mejorar o ampliar y no te ponga fecha, es de buen ver el que
los desarrolladores le propongan una fecha de entrega al cliente. Desde este documento,
tambin queremos aconsejar que no se d al cliente una fecha de entrega ajustada, ya
que siempre hay imprevistos y complicaciones que hace que el proyecto se alargue.
19