Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 14 Julio 2015, 20:52 PM

Título: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: Eleкtro en 14 Julio 2015, 20:52 PM
¿Qué es esto?



Snippet Tool es una extensión para Visual Studio, la cual mediante un menú desplegable en el menú contextual del editor de código, nos ayudará a realizar pequeñas pero repetitivas tareas de documentación XML y Snippets, para C# y VB.Net.

(http://i.imgur.com/d7MqYp0.png)

Snippet Tool no es una herramienta completa de documentación XML.

La idea principal fue desarrollar una simple extensión que me ayudase a automatizar la creación de archivos Snippet desde el texto seleccionado en el editor (vease el comando "Create Snippet File" en el menú contextual),
despues, decidí añadírle algunas funcionalidad adicionales cómo se puede comprobar en la imagen, a modo de complemento para cubrir necesidades que otras extensiones profesionales de documentación XML, cómo por ejemplo Ghost Doc, no llevan a cabo.

La idea es utilizar dichas funcionalidades cómo complemento, en combinación de alguna otra extensión cómo la ya mencionada, Ghost Doc.





Características








Demostración



Estas imágenes pertenecen a la versión 1.0



(http://i.imgur.com/jQMkorx.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/8XOZg5e.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/adKeIYi.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/i9lD38u.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/ohqnFfH.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/NODbe3o.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/C2VFOoE.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/UoD4hcC.gif)






Ejemplo de compilación y renderizado de la documentación



(http://i.imgur.com/1DNOMRj.png)

Código (xml) [Seleccionar]
<member name="M:ConsoleApplication1.Program.TestFunc(System.Int32,System.Int32)">
   <summary>
   This is a test method that performs a loop.
   </summary>
   
   <example> This is a code example.
   <code>
   try
   {
       TestFunc(1, 10);
   }
   catch
   {}
   </code>
   </example>
   
   <param name="param1">
   An <see cref="T:System.Int32"/> that determines the first value of the <see langword="for"/> loop.
   Use <paramref name="param2"/> to assign the last value.
   </param>
   
   <param name="param2">
   An <see cref="T:System.Int32"/> that determines the last value of the <see langword="for"/> loop.
   Use <paramref name="param1"/> to assign the first value.
   </param>
   
   <remarks>
   For more information see <see href="https://msdn.microsoft.com/en-us/library/5kzh1b5w.aspx"/>
   </remarks>
   
   <seealso href="https://msdn.microsoft.com/en-us/library/5kzh1b5w.aspx"/>
</member>


(http://i.imgur.com/phS1pbc.png)







Código Fuente



Versión 1.3 (http://www.mediafire.com/download/kih2744ii5il1rf/Snippet+Tool+Extension.rar)


Notas:
La extensión ha sido desarrollada con la SDK de Visual Studio 2013, obviamente es necesario disponer de las referencias de dicha SDK para editar el proyecto.
Microsoft Visual Studio 2013 SDK (http://www.microsoft.com/en-eg/download/details.aspx?id=40758)





Descarga el instalador de la extensión (paquete VSIX)



Versión 1.0
Para Visual Studio 2013 (http://www.mediafire.com/download/bi50umwydrpbm86/Snippet+Tool.vsix)
(EXPERIMENTAL) Para Visual Studio 2010, 2012, o 2015 (http://www.mediafire.com/download/0wibvmle1dwsglv/Snippet+Tool+%28vsixmanifest+hardcoded%29.vsix)


Versión 1.1
Para Visual Studio 2013 (https://visualstudiogallery.msdn.microsoft.com/c1789188-31f2-44ee-aaf9-af43aa4b55f2)
(EXPERIMENTAL) Para Visual Studio 2010, 2012, o 2015 (https://visualstudiogallery.msdn.microsoft.com/776ff18b-d8a8-43cc-82c1-a65a8509202b)


Versión 1.3
Para Visual Studio 2010, 2012, 2013 y 2015 (https://visualstudiogallery.msdn.microsoft.com/776ff18b-d8a8-43cc-82c1-a65a8509202b)





Observaciones



Las combinaciones del teclado se pueden presionar desde cualquier editor, por ejemplo desde el explorador de soluciones, esto no es una mejora, sino un fallo de diseño que se intentaré solucionar en futuras versiones.

Si encuentran cualquier bug no duden en comunicármelo preferiblemente DEJANDO UN COMENTARIO EN ESTE POST en lugar de enviarme un email o mensaje privado, y trataré de solucionar el problema.

También estoy abierto a sugerencias para implementar nuevas funcionalidades en la extensión, pero no voy a añadirle cosas típicas cómo por ejemplo soporte para insertar sumarios, ya que para eso está Ghost Doc (u otras extensiones).

Espero que les haya servido y gustado este aporte.

Un saludo!
Título: Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: Eleкtro en 15 Julio 2015, 18:34 PM
Nueva versión 1.1

Cambio de imagen, más comandos, y un panel de opciones en el menú herramientas de Visual Studio, ¡más y mejor!:

(http://i.imgur.com/aflgfeU.png)

Added

Improved

Fixed

Modified
Título: Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: DarK_FirefoX en 15 Julio 2015, 19:08 PM
Excelente idea, realmente fantástico. Lo descargué y lo probaré en un rato. Luego te digo que tal me fue.

Salu2s
Título: Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: Eleкtro en 15 Julio 2015, 19:18 PM
Cita de: DarK_FirefoX en 15 Julio 2015, 19:08 PMExcelente idea, realmente fantástico. Lo descargué y lo probaré en un rato. Luego te digo que tal me fue.

Salu2s

Vale :P, gracias.

Por curiosidad, ¿qué versión de VS utilizas?, me gustaría saber si la extensión se instala y funciona correctamente en VS2010, 2012 o 2015.

PD: Luego publicaré y compartiré un enlace de descarga desde la galería de extensiones de MSDN y quitaré el enlace de Mediafire, así se podrá descargar e instalar desde allí o también desde la IDE de Visual Studio directamente.

Saludos
Título: Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: DarK_FirefoX en 15 Julio 2015, 19:24 PM
Cita de: Eleкtro en 15 Julio 2015, 19:18 PM
Vale :P, gracias.

Por curiosidad, ¿qué versión de VS utilizas?, me gustaría saber si la extensión se instala y funciona correctamente en VS2010, 2012 o 2015.

Utilizo VS2013, todavía no he querido dar el brinco a VS2015.

Salu2s
Título: Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: kub0x en 16 Julio 2015, 01:43 AM
Grandísimo aporte  ;-) ;-) Descargando  ::)

¿Cómo has conseguido realizar la documentación al estilo MSDN? Soy profano en documentación en C#, utilizo plugins, pero a la hora de exportar ni idea de como darle formato a la docu de las API que escribo.

Cita de: Eleкtro en 14 Julio 2015, 20:52 PM
(http://i.imgur.com/phS1pbc.png)

Saludos!
Título: Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: Eleкtro en 16 Julio 2015, 03:12 AM
Cita de: kub0x en 16 Julio 2015, 01:43 AM¿Cómo has conseguido realizar la documentación al estilo MSDN?

Es muy sencillo, te explico, de forma resumida:
La imagen de arriba es puro Html compilado con la herramienta HTML Help Compiler (hhc.exe) del paquete Microsoft HTML Help Workshop que puedes descargar gratuitamente desde MSDN;
los archivos de la estructura de archivos o filesystem (index.html, style.css, image.jpg, etc) son comprimidos y empaquetados en un archivo de ayuda con formato .chm (Microsoft Compiled HTML Help File).

La razón de que tenga un aspecto visual parecido a MSDN, es por que hoy en día existen muchas herramientas que además de ofrecer plantillas Html de ese estilo, automatizan dicha tarea de documentación Html para APIs, extrayendo los datos de las fuentee de documentación de una solución .Net mediante el uso de Reflection para los miembros no documentados mnualmente (ej: Int32), y de la documentación existente en los archivos de documentación XML generados por la solución de VS para los miembros que hayan sido documentados manualmente, claro está.

La herramienta que utilicé para compilar el ejemplo en la imagen de arriba, es la opción favorita que se puede encontrar dentro del software open-source:
Sandcastle Help File Builder (https://github.com/EWSoftware/SHFB)

De hecho, prefiero utilizar ese programa antes que cualquier software comercial craqueado, y sabes que de eso tengo un montón para .Net, jaja, pero SandCastle aun siendo gratuito es insuperable.
Por otro lado, para documentar la UI de una aplicación, sus características etc, es preferible usar herramientas más especializadas en esa tarea, cómo por ejemplo Help&Manual, Helpinator, o Dr. Explain, cada una de ellas tiene funcionalidades alucinantes, sobre todo la "captura" que realiza Dr. Explain sobre los elementos de una GUI (pruébalo, en serio). WinCHM también es útil, pero es muy simplón.

Para compilar en formato .chm, el cual es el formato de documentación offline más común, pues cómo ya he mencionado necesitarás disponer del compiler (hhc.exe) que viene incluido en el paquete Microsoft HTML Help Workshop:
Microsoft HTML Help Downloads (https://msdn.microsoft.com/en-us/library/windows/desktop/ms669985%28v=vs.85%29.aspx)
(no recuerdo si el SandCastle incluye el hhc.exe, pero igualmente para utilizar otras herramientas de este tipo lo necesitarás por que no lo suelen incluir por defecto, es un requisito adicional)

Si deseas documentar la API en formato HxS entonces necesitarás el compiler del paquete Microsoft Help 2 pero no es descargable desde la MSDN, viene incluido en la instalación de VS2008, y está considerado cómo formato obsoleto, vaya, que no vale la pena interesarse por él.

También puedes compilar en formato .mshc para visualizarlo con la herramienta Microsoft Help Viewer que viene incluida en la instalación de VS.

EDITO: Ah, se me olvidó comentarte que además con la extensión GhostDoc puedes generar los archivos htm al estilo MSDN con el comando "Preview Comment" (pero no compilar un .chm).

Saludos!
Título: Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
Publicado por: Eleкtro en 11 Diciembre 2015, 20:31 PM
Nueva versión 1.3

( Descárgala en el comentario principal! )

(http://i.imgur.com/d7MqYp0.png)

Añadido

Corregido

Mejorado




Demostración de las nuevas características:

(http://i.imgur.com/aTofyhS.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/n6ETig1.gif)

(http://www.swapkitcorp.com/images/BetterLineSeparator.png)

(http://i.imgur.com/LXtThNm.gif)