Mostrando las entradas con la etiqueta Utilidades. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Utilidades. Mostrar todas las entradas

sábado, 1 de marzo de 2008

Resharper 3.0 - Buscar y navegar

Siguiendo con la serie de entradas dedicadas a Resharper 3.0, en esta entrada vamos a ver la categoría Navegación y búsqueda. Hay muchas prestaciones y características. A continuación enumero solo algunas.

Ir a tipo por nombre:
A través de un atajo de teclado, en este caso CTRL+N podemos encontrar rápidamente un archivo de nuestra solución. Con esta funcionalidad podemos ingresar parte del nombre del archivo y Resharper genera de forma dinámica una lista de las clases, archivo o carpetas de nuestra solución que respondan al criterio de búsqueda. Esta característica nos permite utilizar caracteres comodines (*, ?). Como podemos observar en la imagen basta con ingresar pag para que Resharper busque todas nuestras clases o carpetas que comienzan con esa combinación de teclas.

Ir a miembro del archivo:
De la misma forma que buscamos archivos en nuestra solución con la característica anterior, es posible buscar nombres de elementos (atributos, métodos) dentro de un determinado archivo. Para esta funcionalidad existe también un atajo de teclas, en este caso CTRL+F12

Encontrar Usos:
A través de esta característica, podemos visualizar de forma rápida todos los usos de un determinado elemento (tipo, método, atributo, etc). En este caso, el atajo de teclado es ALT+F7.

Resharper abre una nueva ventana con los resultados de la búsqueda.

Vista de tipo jerárquica:
Esta característica nos permite ver la jerarquía de clases y herencia para una clase determinada de nuestra solución y poder navegar de forma directa a través de ella, todo esto desde una ventana emergente. En esta caso la combinación de teclas para acceder de modo directo es CTRL+ALT+H.

Vista de estructura de archivo:
Con este tipo de vista que básicamente explora la estructura de un determinado archivo de nuestra solución es posible dirigirnos y seleccionar un elemento determinado tales como regiones, atributos y métodos. Una de las cosas que me resultó de lo más atractivo es la sincronización con el editor, de tal forma que si arrastramos un elemento en esta vista (por ejemplo mover la ubicación de un determinado método), automáticamente el código es modificado en el editor.

viernes, 3 de agosto de 2007

Visual Studio add-in: GhostDoc

GhostDoc es un add-in para Microsoft Visual Studio 2003/2005 que permite generar de forma automátizada comentarios XML indispensables para la documentación en nuestros desarrollos. El mayor problema de escribir estos comentarios XML es quye es un trabajo tedioso que demanda tiempo y por lo general se termina escribiendo siempre comentarios generales y similares. El objetivo de GhostDoc es automatizar este trabajo tedioso mirando el nombre de nuestras clases y métodos como así también y realizar una "adivinanza" de lo que los comentarios XML deberían incluir. El único problema, pero que a largo plazo redunda en mejoras a nuestro código es que funciona en inglés y de acuerdo a las recomendaciones en la nomenclatura de nuestros elementos (clases, interfaces o métodos). No debería reemplazar nuestra tarea de documentación pero al menos se encarga de la parte repetitiva de la misma.

- Source / Download: http://www.roland-weigelt.de/ghostdoc/

- Licencia: FREE.

- COPYRIGHT. Copyright © Roland Weigelt

- Proceso de instalación: En el sitio web se pueden obtener los instaladores para las diferentes versiones de VS.NET (2003/2005). El proceso de instalación es bien sencillo y no ofrece complicaciones.

- Integración con el IDE de Desarrollo: Luego de la instalación al abrir VS 2005 nos aparecen dos pantallas para terminar de configurar el ad-in. En las mismas se nos requiere asignar un atajo de teclado donde CTRL+Shift+D es el atajo por defecto aunque podemos seleccionar de un drop down list otras opciones e incluso podemos omitir este paso. Este add-in tiene tres formas principales de integrarse a nuestro IDE

  • A través de una opcion en el menú Tools -> GhostDoc
  • A través del menú contextual con la opción "Document this"
  • A través del atajo de teclado una vez que hemos seleccionado un elemento (clase, interface, método)

- Veamos un ejemplo:

Supongamos que tenemos el siguiente método

    public DataSet getEmployeeList(long companyId, string companyName)
{
DataSet dsEmployees = new DataSet();
// Code for getting DataSet
return dsEmployees;
}

Al seleccionar el método y utilizar cualquiera de las tres opciones enumeradas anteriormente veremos que se genera de forma automática lo siguiente:

    /// <summary>
/// Gets the employee list.
/// </summary>
/// <param name="companyId">The company id.</param>
/// <param name="companyName">Name of the company.</param>
/// <returns></returns>
public DataSet getEmployeeList(long companyId, string companyName)
{
DataSet dsEmployees = new DataSet();
// Code for getting DataSet
return dsEmployees;
}

Como se puede observar, dependiendo de cuan descriptivo sean nuestros nombres de métodos y parámetros y las recomendaciones seguidas en cuestión de nomenclatura, resulta un complemento de mucha utilidad.

Visual Studio add-in: CopySourceAsHtml

CopySourceAsHtml es un add-in para Microsoft Visual Studio 2003/2005 que permite copiar código fuente, coloreo de sintaxis y todo el formato provisto por Visual Studio como HTML para que sea muy cómodo insertarlo en nuestros sitios webs, blogs o foros. En nuestra fase de prueba hemos notado algunos problemas en como se visualiza en Blogger pero si se edita el HTML de Blogger se pueden lograr resultados aceptables. Más abajo incluimos una sección de código C# (aunque puede ser utilizado con VB.NET o cualquier lenguaje soportado por el Framework) para dar un ejemplo de cómo funciona. La idea de este add-in es lograr que un browser visualice el código lo más parecido posible al entorno de desarrollo y lo logra de forma más que aceptable.

- Source / Download: http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/

- Licencia: FREE. COPYRIGHT NOTICE. Copyright © 2006 J.T. Leigh & Associates Inc. All rights reserved.


- Proceso de instalación: En el sitio web se pueden obtener los instaladores para las diferentes versiones de VS.NET (2003/2005). El proceso de instalación es bien sencillo y no ofrece complicaciones.

- Integración con el IDE de Desarrollo: La integración con el IDE de desarrollo es realmente muy simple, intuitiva y efectiva. Todo lo que necesitamos es seleccionar nuestro código fuente y realizar click derecho donde encontraremos la opción "Copy As HTML". Esta opción abre una caja de diálogo donde podemos setear numerosas propiedades como agregar números de línea, el tamaño de la indentación, y hasta podemos incluir código CSS personalizado.


lunes, 30 de julio de 2007

Dando formato a código C# y HTML

Una de las necesidades que surgen a partir de la decisión de comenzar un blog o sitio web que involucra tecnologías de desarrollo es la de ofrecer a tus lectores code snippets o porciones de código tanto HTML como C#.

Uno de los add-ins que he utilizado es CopySourceAsHTML. Pueden leer un artículo que he escrito en la siguiente url: http://www.ide-plugins.com.ar/visual-studio-add-ins/visual-studio-.net-2005/copysourceashtml.html

Esta extensión para Visual Studio funciona muy bien y me ha resultado muy util en otros sitios web y herramientas CMS (DNN, Joomla, etc), pero en lo que respecta a Blogger, no genera el código de forma óptima por lo cual he necesitado cambiarlo por uno que me recomendó mi amigo Martin Olivares Pick.

Se trata de un formateador online que podemos encontrar en: http://www.manoli.net/csharpformat/
Funciona mucho mejor con Blogger y es muy simple de utilizar, por lo tanto lo recomiendo ampliamente.

Gracias Martin!!!

jueves, 15 de marzo de 2007

- Conversión de Ilist en DataTable

Nota: Este código ha sido probado con .NET Framework 2.0

Muchas veces retornamos de nuestra fuente de datos un set de datos de tipo Ilist, el cual enlazamos a nuestros GridViews sin ningún problema.

Como veremos en próximas entradas, hay una forma muy interesante de realizar sorting y paging al mismo tiempo, para ello necesitamos pasar como parámetro un DataTable en uno de los métodos que implementaremos , por lo cual vamos a escribir una utilidad que convierta un Ilist en un DataTable.

Como en casos anteriores, tomaremos la aplicación de ejemplo de este blog (virtualEducation) y agregaremos en el módulo de Utilidades la clase Converter.cs, la cual iremos completando en las próximas entradas. En esta oportunidad , solo definiremos el método public static DataTable IList2DataTable(IList iList) para tener solo el conversor que necesitamos.

Aquí tenemos el código:


using System;
using System.Collections;
using System.Data;
using System.Reflection;

namespace Utilidades {
public class Converter {
public static DataTable IList2DataTable(IList iList) {
DataTable oDataTableReturned = new DataTable();

if (iList.Count > 0) {
object _baseObj = iList[0];
Type objectType = _baseObj.GetType();
PropertyInfo[] properties = objectType.GetProperties();

foreach (PropertyInfo property in properties) {
DataColumn oColumna;
oColumna = new DataColumn();
oColumna.ColumnName = property.Name;
oColumna.DataType = property.PropertyType;
oDataTableReturned.Columns.Add(oColumna);
}

foreach (object objItem in iList) {
DataRow oFila;
oFila = oDataTableReturned.NewRow();
foreach (PropertyInfo property in properties) {
oFila[property.Name] = property.GetValue(objItem, null);
}
oDataTableReturned.Rows.Add(oFila);
}
}
return oDataTableReturned;
}
}
}

lunes, 12 de marzo de 2007

- GUID Generator con C#

GUID es un acrónimo para Globally Unique Identifier o identificador único global, es un número de 128 bits que es producido por el sistema operativo Windows o por algunas aplicaciones Windows para identificar un componente particular, una aplicación, un archivo, un registro en una base de datos y/o un usuario. Por ejemplo, podemos tener un sitio web que genere un GUID y se lo asigne a un usuario para grabar las acciones de este usuario en la sesión (lo que se conoce como session tracking).

GUID se utiliza también en el registro de Windows para identificar dlls COM. Algunos DBAs incluso utilizan un GUID como claves primarias de sus bases de datos.
Un ejemplo de GUID generado es el siguiente: {ded53e2b-91e9-4682-b673-862ca6503b2e}

Si bien no está garantizado que un GUID generado sea único, el total de claves que se pueden generar (2 elevado a la 128 potencia
) es tan grande que la probabilidad de que se repita es realmente muy pequeña. Para dar una idea de esto podemos decir que una aplicación que genere 10 mil millones de GUID la probabilidad de que se repita una clave generada es de 1 en un quintillión (en la escala americana - 10 elevado a la 30 potencia en la escala tradicional).

Veamos entonces como se genera un GUID en una aplicación Windows con C#. Para mostrar un ejemplo vamos a utilizar la aplicación virtualEducation que generamos en una entrada anterior (ver entrada) y vamos a ubicar nuestra clase GUIDGenerator en el módulo de Utilidades.
Este es todo el código que necesitamos:



namespace Utilidades {
class GUIDGenerator {
public static string getGUIDString() {
string guidIdentifier = System.Guid.NewGuid().ToString();
guidIdentifier = guidIdentifier.Replace("-", string.Empty);
guidIdentifier.ToUpper();
return guidIdentifier;
}
}
}