lunes, 2 de julio de 2007

Cacharreando Visual Studio .NET (I)

Krlo [blackhat4all@gmail.com]

Muchas veces existen opciones en algún programa con el que trabajamos que nunca llegamos a utilizar, en parte porque las desconocemos. El Visual Studio es un Entorno Integrado de Desarrollo (IDE por sus siglas en inglés), que posee una gran cantidad de secretos que deberíamos descubrir para sacarle mayor provecho. En dos artículos me propongo acercarlos a algunas facilidades del VS que posiblemente ya algunos conozcan -me disculpan en tal caso. Por otra parte supongo que han tenido un acercamiento a esta herramienta y son algo más que usuarios novatos. Ya para empezar, cuando me refiera a un documento dentro de la Ayuda del Visual Studio, lo hago específicamente sobre la que viene con la versión del 2005 (no estoy seguro si funcione en la del 2003).

Métodos Abreviados del Teclado::

Es casi increíble pero existen más 450 métodos abreviados de teclado predeterminados en Visual Studio. Para conocerlos, estas son las coordenadas: Tools » Options… » Environment » KeyBoard. Podemos modificarlos para asignar una nueva combinación, aunque se recomienda mantener la compatibilidad e impedir futuros dolores de cabeza cuando trabajemos en otra máquina.

Familiarizarse con los métodos abreviados toma su tiempo y al principio nos puede parecer tedioso, pero brinda buenos resultados al final, cuando nos ahorra tiempo y nos evita tener que levantar las manos del teclado. La siguiente tabla tiene algunos importantes:

Método abreviado de teclado Comando
Ctrl+K+C / Ctrl+K+U Activar/Desactivar comentarios en las líneas seleccionadas.
Ctrl+M+O / Ctrl+M+L Colapsar/Expandir todo el texto.
F12 Ir a la definición de una variable, objeto o función seleccionado.
Ctrl+Mayús+7 / Ctrl+Mayús+8 Se desplaza rápidamente hacia delante y hacia atrás en la pila para ir a la definición.
Mayús+F12 Encuentra todas las referencias de una función o una variable.
Mayús+Alt+Intro Alterna entre Pantalla Completa y Pantalla Normal.
Alt+S Muestra el diálogo de Find and Replace.
Mayús+Alt+Intro Alterna entre el modo de pantalla completa y el modo normal.
Ctrl+F Una búsqueda rápida.

Puede ser que alguno de los anteriores no funcione; en tal caso deberás editarlos por ti mismo.
Para un listado más completo, si tienes el MSDN, ver: Brief Specific Shortcut Keys.
Para ver como trabajar con shortcuts ver: How to: Work with Shortcut Key Combinations.

Splitter Bar: ver en dos partes el código::

Es muy útil poder ver en la pantalla dos partes del mismo documento, pues podemos compararlos de una manera muy práctica. Piensa en dos métodos que se relacionen como write y read, pues vas a leer en el mismo formato en que escribistes. En tales casos es útil dividir el área de trabajo en dos.

Exactamente encima del scroll de la derecha hay un splitter escondido; si lo movemos hacia abajo nos mostrará el mismo archivo de código doble, una copia encima de la otra. En la siguiente figura nos llevaremos mejor la idea:

Vista en dos.

Vale mencionar que el splitter introducido sólo es válido para el archivo donde se utilizó; los demás se seguirán viendo en el método estándar.

Esta opción aparece también en el menú Window como Split. El mismo menú tiene otras utilidades interesantes, por ejemplo podemos crear una nueva pestaña, al estilo Firefox, donde ver el archivo de código actual (es la primera opción New Window). Esto no parece muy práctico, pues al final de cuentas es lo mismo repetido, pero al combinarlo con la opción New Vertical Tab Group (un nuevo grupo de pestañas), tendremos el mismo código, uno al lado del otro. De esta forma podemos tener varios archivos en diferentes grupos. En la próxima figura lo veremos mejor:

Vista en dos.

Ver sólo el código::

Con la combinación de teclas Shift+Alt+Enter podemos tener el código en pantalla completa. Inclusive desaparece la barra de tareas, la de título, las barras de herramientas y los laterales. Sin duda es una idea práctica que nos deja tener mayor espacio de trabajo. Es muy útil cuando sabemos que sólo vamos a tirar líneas de código y no trabajar con cuestiones de diseño.

Ajuste de Línea::

En el Notepad tenemos una opción de autoajustar el texto para que quepa en la pantalla, pues muchas veces se nos pierden las líneas. En VS tenemos el mismo problema cuando escribimos una instrucción muy larga. En el menú Edit » Advanced » Word Wrap podemos resolver este problema de forma idéntica a la del Notepad. Para algunos es una opción poco estética; en mi opinión es sólo acostumbrarse.

Recortes de Código (Code Snippets)::

Existen patrones de código que usamos frecuentemente, por ejemplo:

for (int k = 0; k<10; k++){
// ...
}

Necesitamos escribir este código una y otra vez. Deberíamos tenerlo en algún lugar donde lo podamos usar sin recurrir al suplicio repetitivo anterior. Qué creen si lo ponemos en el Cuadro de Herramientas (Toolbox), simplemente seleccionándolo y arrastrándolo hasta el mismo. Si realizamos un nuevo grupo dentro del cuadro (click derecho Add Tab) llamado Recortes, estarán más organizados. Sería como trabajar con labels o botones, pero en este caso serían líneas de código. Cada vez que lo necesitemos ponemos el caret (|) en la posición del código donde iría y doble click con el Snippet (o recorte). Para darte algunas ideas de patrones, puedes incluir las siguientes:

string tmp ="";
Console.Write("");
Console.WriteLine("") ;
Console.Write();

Podemos dejar el ToolBox fijo para tenerlo más a mano. También es buena idea tener varios grupos de snippets para usarlo en dependencia del tipo de proyecto en que estemos trabajando, pues Console.Read no tiene mucho sentido en aplicaciones Windows.

Toolbox con Snippets

Otra forma más profesional (de hecho es mejor que la anterior, por eso la dejé para el final), es usar los snippets que vienen con VS. En cualquier lugar del documento, al dar click derecho tenemos las opciones Insert Snippet... y Surround With...

La primera nos inserta un snippet que podremos completar con la tecla Tab para movernos por todos sus valores que necesitan ser especificados. Si insertamos un snippet for tendremos que actualizar solamente el nombre del valor a iterar, generalmente i y además el límite de la iteración como un cadena.Length.

La segunda opción -me refiero a Surround With...- permite, dado un tramo de código seleccionado, convertirlo en el cuerpo de un snippet. Si escogemos una línea como Console.WriteLine("H3llo World"); y usamos el snippet if aparecerá algo como lo siguiente:

if(true){
  Console.WriteLine("Hello World");
}

Para crea nuestros propios snippet y usarlos de la manera anterior les aconsejo ver: Cómo crear Snippets. Se torna un poco complicado, pues hay que declararlas en XML.

Modificador / resetuserdata::

Esta opción permite restablecer Visual Studio a su estado de fábrica, en caso de que alguna vez se haya ejecutado en un estado dañado del que no pueda recuperarse. Desventaja: perderá toda la configuración y personalizaciones del entorno si usa este modificador. Sólo debemos usar este modificador como última alternativa en caso de experimentar un problema con el entorno grave y debe asegurarse de realizar copias de seguridad de la configuración del entorno, que exportará antes de usar este modificador.

Para usar este modificador, procedemos:

  1. Cierre todas las instancias de Visual Studio 2005.
  2. Haga clic en Inicio y seleccione Ejecutar...
  3. Escriba devenv.exe /resetuserdata.

Este comando tardará un par de minutos en ejecutarse a medida que Visual Studio se borra y restablece su estado original. Puede abrir el Administrador de tareas en este punto para comprobar si el proceso devenv.exe está aún en ejecución. Una vez que haya finalizado, podrá reiniciar Visual Studio. A continuación, volverá a recibir el saludo de inicio, como si estuviera ejecutando Visual Studio por primera vez en el equipo. Nunca he realizado este proceso, pero en caso de ver al IDE dando bateos, creo que es mejor opción que reinstalarlo.

Antes de terminar esta primera entrega, vamos a salirnos un poco del VS para tratar algo sobre buenas prácticas de programación.

Optimizar el trabajo con cadenas de texto::

La clase System.Text.StringBuilder proporciona métodos más eficientes para concatenar objetos string, porque crea un buffer de tamaño suficiente para contener la cadena original y poder crecer en el futuro. Si tenemos idea en un principio de cuanto sería el tamaño final, podemos instanciar la clase con ese valor. Se recomienda usar StringBuilder cuando vamos a concatenar más de 5 cadenas. Imagínense el caso de algún método recursivo que va agregando información a la cadena resultado de todo el proceso; sería muy conveniente usar StringBuilder. Ejemplo:

En Visual Basic:
Dim sResultado as String = "Nombre del usuario: " & sUserName & "."

En C#:
string sResultado = " Nombre del usuario: " + sUserName + ".";

Si usamos StringBuilder:

En Visual Basic:
Imports System.Text
Dim sbResultado As StringBuilder
sbResultado = New StringBuilder("Nombre del usuario: ")
sbResultado.Append(sUserName)
sbResultado.Append(".")
Dim sResultado As String = sbResultado.ToString


En C#:
using System.Text;
StringBuilder sbResultado = new StringBuilder("This is a message");
sbResultado.Append(sUserName);
sbResultado.Append(".");
string sResultado = sbResultado.ToString();

Conclusiones::

Para muchos, Visual Studio es la herramienta líder del mercado para desarrolladores; familiarizarse con él y sacarle el mayor provecho es lo que nos hará estar seguros de ello. De más está decir que si conoces alguna otra sugerencia o truco para trabajar con él, me escribas para compartirla con el resto de la comunidad.

Dejénos sus comentarios sobre cualquier cuestión del artículo que le motive. Para la próxima entrega estaremos hablando un poco de Visual Studio 2008 u Orcas; sobre sus principales características y potencialidades. Además, tocaremos el IntelliSense del VS 2005 y cómo configurarlo.

Para saber más...



Artículos relacionados


No hay comentarios: