Buscando y navegando en el código con VS 2010

Este es el noveno post de una serie que estoy escribiendo sobre las próximas versiones de Vs 2010 y NET 4. En el post de hoy veremos algunas de las nuevas características de búsqueda de código y navegación de VS 2010.

Buscando y navegando en el código

Los desarrolladores necesitan ser capaces de navegar, buscar y entender fácilmente el código en el que están trabajando. En estudios de usavilidad que hemos realizado, nos hemos dado cuenta que los desarrolladores están más tiempo leyendo, revisando y buscando código existente que escribiendo nuevo código.

El editor de códio de VS 2010 añade unas cuantas características que nos permite ser más productivos a la hora de buscar y navegar entre el codigo, y nos permiten entender más fácilmente cómo se está usando el código en una solución.

Buscando y navegando en el código fuente de ASP.NET MVC

Para este post voy a usar el código fuente de ASP.NET MVC (que tiene varias miles de líneas de código) para que me ayude a demostrar algunas de las nuevas mejoras de VS 2010. Si tenéis instalada la Beta 2 de VS 2010, podéis seguir este post con el código de ASP.NET MVC que podéis descargar aquí.

Podréis ver que el rendimiento de estas características es realmente alto con este proyecto - aunque tenga miles de líneas de código. Todas las características que voy a mostrar más adelante están ya incluidas en VS 2010 (y funcionan en todos los tipos de proyctos tanto de VB como de C #)

Soporte de "Navegar a" de VS 2010

Ser capaz de encontrar y navegar en el código es muy importante, tanto en proyectos pequeños como en grandes.

Visual Studio 2010 soporta el nuevo atajo de teclado (Ctrl+coma). Cuando presionamos estas teclas, nos aparece el diálogo "Navigate to" permitiendonos buscar rápidamente tipo, archivos, variables de nuestra solución - y seguidamente abrirlo rápidamente:

El diálogo "Navigate to" nos ofrece una UI de búsqueda incremental realmente rápida - nada más empezar a escribir código y ya podemos empezar a buscar. Por ejemplo, escribimos "cont" (sin pulsar enter) y veremos que hay 176 resultados en la lista:

Si escribimos algunos caracteres más veremos que la lista se filtra para obtener los resultados que coinciden con "controller":

Podemos usar el scroll bara para navegar entre los resultados - o usar la tecla de tabulación y usar los cursores si no queremos apartar las manos del teclado. Veréis que la ventana "Navigate to" liesta todos los tipos de resultados que coinciden con el criterio de búsqueda indicado - incluyendo nombres de tipos, métodos/propiedades, declaraciones de campos, y nombres de archivos:

Seleccionando cualqueira de los resultados se abrirá el archivo de código fuente (si no está ya abierto) y nos llevará al trozo de código correspondiente (y resaltará el nombre):

Capacidades de búsqueda "agradables"

El diálogo "Navigate to" soporta algunas capacidades de búsqueda "agradables" que nos permiten realizar pequeños filtros y búsquedas sin tener que conocer exáctamente el nombre de lo que estemos buscando. Esto funciona bien con la búsqueda incremental/inmediata de la UI de búsqueda - y nos permiten redefinir nuestras búsquedas y obtener resultados en tiempo real a medida que escribimos.

Para probarlo busquemos primero la palabra "cache". Fijaos que la lista de resultados no incluye tan sólo elementos que comienzan por esa palabra - también muestra aquellos que contienen esa palabra:

Podemos añadir varias palabras al textbox para filtrar los resultados. Por ejemplo, en la siguiente pantalla estoy filtrando la lista para que tan sólo incluya aquellos que contienen "cache" Y "action" en el nombre:

Los tipos y miembros del .NET Framework que usan el patrón de nombres "Pascal Casing" - es decir, la primera letra de la palabra en un tipo o miembro está capitalizado. El diálogo "Navigate To" nos permite usar esta convención para filtrar tipos rápidamente. Tan sólo escribimos la primera letra en mayúsculas en un tipo/miembro y será filtrado en los resultados.

Por ejemplo, con el filtro "AMS" tenemos el siguiente resultado (sólo aquellos tipos y miembros que tienen palabras que comienzan con A luego M y luego S):

El diálogo "Navigate to" nos permitirá filtrar rápidamente y localizar código con muy pocas pulsaciones de teclas - y no tendremos que usar el ratón, abrir el explorador de soluciones, y hacer clic en el archivo.

Ver la jerarquía de llamadas

Ser capaces de buscar y navegar rápidamente por el código no está nada mal. Ser capaz de descubrir cómo se está usando es mucho mejor. VS 2010 introduce la nueva característica "ver la jerarquía de llamadas" que nos permite descubrir rápidamente dónde se está usando un método o una propiedad en nuestro código, y nos permite ver todo el arbol de llamadas sin tener que ejecutar o depurar la solución).

Para usar esta característica tan sólo tenemos que seleccionar el nombre de un método o propiedad y usar las teclas (Ctrl+K, Ctrl+T),  o con el botón derecho del ratón seleccionando la opción "View Call Hierarchy":

Esto nos mostrará una nueva ventana llamada "Call Hierarchy" que se muestra por defecto debajo del editor de código. Aquí podéis ver cómo se muestra esta ventana mostrando dos métodos de nuestra solución que invocan al método ViewPage.RenderView:

Ahora podemos navegar por toda esa jerarquía par ver quién la está llamando:

Para métodos y propiedades virtuales podemos usar esta ventana para ver quién la sobresescribe.

Haciendo doble clic en los miembros de esta ventana se abrirá el archivo de código fuente correspondiente y nos llevará directamente al código que está haciendo la llamada:

Esto nos permite navegar rápidamente por nuestro código y entender mejor las relaciones entra clases y métodos a medida que programamos.

Referencias resaltadas

Con Vs2010, cuando seleccionamos o destacamos una variable/parámetro/campo en el editor de código, todos los usos que se hagan serán destacados en el editor. Esto hace más sencillo identificar dónde y cómo se está usando una variable o parámetro.

Por ejemplo, cuando seleccionamos el parámetro "controllerContext" que se le pasa al método Controller.ActionInvoker.GetParameterValue() en el editor, veremos cómo los 4 usos se resaltan en el editor:

Si selecciono una varaiable local del método, todos los lugares donde se use quedarán resaltados.

Si hay varios usos resaltados, podemos navegar directamente a ellos con las combinaciones de teclas: Ctrl+shift+cursor Arriba y Ctrl+shift + cursor Abajo para ir saltando al anterior y al siguiente respectivamente.

Resumen

El nuevo editor de texto de VS 2010 hace más facil buscar, navegar y explorar el código de un proyecto o solución. El rendimiento de estas operaciones es realmente rápido (incluso con grandes cantidades de código) y es mantienen actualizados a medida que vamos modificando el código. El resultado final es que eres mucho más productivo.

Espero que sirva.

Scott.

.D.: he estado usando Twitter más reciente mente para hacer post rápidos y compartir enlaces. Podéis seguirme en Twitter en http://www.twitter.com/scottgu (@scottgu es nombre en twitter).

Traducido por: Juan María Laó Ramos

Artículo original.

2 pensamientos en “Buscando y navegando en el código con VS 2010

  1. Pingback: Serie sobre VS 2010 y .NET 4.0 « Thinking in .NET

  2. Pingback: Selección Box y edición Multilinea con VS 2010 « Thinking in .NET

Deja un comentario