Compartir a través de


Asignar dependencias específicas en mapas de código

Cuando desee comprender dependencias concretas dentro del código, visualícelas creando mapas de código (solo en Visual Studio Ultimate). Podrá navegar entre estas relaciones utilizando el mapa que aparece junto a su código. Esto le ayudará a realizar un seguimiento del lugar en que se encuentra en el código mientras trabaja.

Mapa de código: Relaciones de mapa en el código

Una flecha verde muestra la posición del cursor en el editor. Puede tomar notas en un mapa, como en papel.

Los mapas de código impiden perderse en bases de código de gran tamaño, código con el que no esté familiarizado o código heredado. Por ejemplo, en la depuración, es posible que tenga que buscar en varios proyectos y archivos. Los mapas de código facilitan la navegación por estos fragmentos de código y permiten ver las relaciones entre ellos. No tiene que recordar todo este código, realizar un seguimiento de los archivos o dibujar un diagrama de papel independiente. Si tiene que interrumpir su trabajo, los mapas de código ayudan recordar el código en que está trabajando.

Crear o abrir un mapa de código

Para crear un mapa de código, necesita Visual Studio Ultimate 2013 y una solución con Visual C#. NET, Visual Basic. NET, X ++ para Microsoft Dynamics AX o código de C++ (compatibilidad limitada). Para obtener relaciones codificadas por colores, necesitará Visual Studio 2013 Update 3. Para asignar código de X++ y código compartido entre varias aplicaciones, necesitará Visual Studio 2013 Update 2 o una versión posterior.

También puede crear un mapa de código mediante lo siguiente:

  • Haga clic con el botón derecho, por ejemplo, en un archivo de origen o uno binario en el Explorador de soluciones y seleccione Mostrar en mapa de código. Esto permite crear un mapa de código para el elemento seleccionado.

  • Arrastre un elemento, por ejemplo, un archivo de origen o un archivo binario desde el Explorador de soluciones a un mapa de código abierto para incluir o resaltar el elemento en el mapa.

  • Haga clic con el botón derecho en un área vacía de la ventana del editor y seleccione Mostrar en mapa de código. Esto permite crear un nuevo mapa de código vacío.

  • Haga clic con el botón derecho en un objeto o en una clase en la ventana del editor y seleccione Mostrar en mapa de código. Esto permite crear un mapa de código para el elemento seleccionado. También puede buscar todas las referencias o mostrar elementos relacionados en un mapa de código con este menú.

  • Haga clic en el botón Mapa de código situado en el menú Depurar cuando la aplicación esté en pausa.

  • En un archivo de IntelliTrace abierto, o como un gráfico de dependencias del menú Arquitectura.

Puede ver, realizar modificaciones limitadas y navegar por los mapas de código mediante Visual Studio Premium 2013 o Visual Studio Professional 2013.

Antes de compartir mapas con otros usuarios que utilizan la versión Premium o Professional, asegúrese de que todos los elementos del mapa estén visibles, como, por ejemplo, los elementos ocultos, los grupos expandidos y los vínculos entre grupos.

Vea los mapas de código en acción: Descripción de código complejo con mapas de código (Channel 9)

Entender el problema

Supongamos que hay un error en un programa de dibujo en el que está trabajando. Para reproducir el error, abra la solución en Visual Studio Ultimate y presione F5 para iniciar la depuración.

Cuando dibuje una línea y elija Deshacer mi último trazo, no sucederá nada hasta que se dibuje la línea siguiente.

Mapa de código: Error de reproducción

Por tanto, comienza la investigación buscando el método Undo. Lo encuentra en la clase PaintCanvas.

Mapa de código: Buscar código

Empezar a asignar el código

Ahora comienza la asignación del método undo y sus relaciones. Desde el editor de código, agrega el método undo y los campos a los que se hace referencia a un nuevo mapa de código. Cuando se crea un nuevo mapa, es posible que se tarde algo de tiempo en indizar el código. Esto ayuda a que se ejecuten más rápido las operaciones posteriores.

Mapa de código: Mostrar el método y los campos relacionados

Sugerencia

El resaltado verde muestra los últimos elementos agregados al mapa.La flecha verde muestra la posición del cursor en el código.Las flechas entre los elementos representan diferentes relaciones.Puede obtener más información acerca de elementos del mapa examinando su información sobre herramientas.

Mapa de código: Mostrar informaciones sobre herramientas

Para consultar la definición de código de cada campo, haga doble clic en el campo del mapa o elija el campo y presione F12. La flecha verde se desplaza entre los elementos del mapa. El cursor del editor de código también se desplaza automáticamente.

Mapa de código: Examinar la definición de campo

Mapa de código: Examinar la definición de campo

Sugerencia

También puede mover la flecha verde en el mapa moviendo el cursor en el editor de código.

Entender las relaciones entre los elementos de código

Ahora desea saber qué otro código interactúa con los campos history y paintObjects. Puede agregar todos los métodos que hacen referencia a estos campos al mapa. Puede hacer esto desde el mapa o desde el código.

Mapa de código: Buscar todas las referencias

Cambie el diseño para reorganizar el flujo de las relaciones y facilitar la lectura del mapa. También puede mover los elementos por el mapa arrastrándolos.

Mapa de código: Cambiar el diseño

Sugerencia

De forma predeterminada, Diseño incremental está activado.El mapa se reorganiza lo menos posible cuando se agregan nuevos elementos.Para reorganizar el mapa completo cada vez que agregue nuevos elementos, desactive Diseño incremental.

Mapa de código: Cambiar el diseño

Examinemos estos métodos. En el mapa, haga doble clic en el método PaintCanvas o elija este método y presione F12. Verá que este método crea history y paintObjects como listas vacías.

Mapa de código: Examinar la definición de método

Ahora repita los mismos pasos para examinar la definición del método clear. Verá que clear lleva a cabo algunas tareas con paintObjects e history. A continuación, llama al método Repaint.

Mapa de código: Examinar la definición de método

Ahora, examine la definición del método addPaintObject. También realiza algunas tareas con history y paintObjects. También llama a Repaint.

Mapa de código: Examinar la definición de método

Buscar el problema examinando la asignación

Parece que todos los métodos que modifican history y paintObjects llaman a Repaint. Con todo, el método undo no llama a Repaint, aunque undo modifica los mismos campos. Por tanto, cree que puede corregir este problema mediante una llamada a Repaint desde undo.

Mapa de código: Buscar la llamada a método que falta

Si no tuviese un mapa para encontrar la llamada que falta, posiblemente sería más difícil localizar este problema, sobre todo con código más complejo.

Compartir la información y pasos siguientes

Antes de que usted u otro usuario corrija este error, puede hacer anotaciones en el mapa acerca del problema y de cómo corregirlo.

Mapa de código: Comentar y marcar elementos para el seguimiento

Por ejemplo, puede agregar comentarios al mapa y marcar los elementos con colores.

Mapa de código: Elementos comentados y marcados

Si tiene Microsoft Outlook instalado, puede enviar el mapa a otras personas por correo electrónico. También puede exportar el mapa como imagen u otro formato.

Mapa de código: Compartir, exportar, enviar por correo

Corregir el problema y mostrar lo que hizo

Para corregir este error, agregue la llamada de Repaint a undo.

Mapa de código: Agregar la llamada a método que falta

Para confirmar la corrección, reinicie su sesión de depuración e intente reproducir el error. Ahora, si elige Deshacer mi último trazo funciona como se esperaba y confirma que su corrección ha sido la adecuada.

Mapa de código: Confirmar la corrección del código

Puede actualizar el mapa para mostrar la corrección que realizó.

Mapa de código: Actualizar el mapa con la llamada a método que falta

El mapa muestra ahora un vínculo entre deshacer y Volver a dibujar.

Mapa de código: Mapa actualizado con la llamada a método

Nota

Cuando actualice el mapa, puede que vea un mensaje que indica que se ha actualizado el índice de código utilizado para crear el mapa.Esto significa que alguien ha cambiado el código, lo que hace que el mapa no coincida con código actual.Esto no detiene su actualización del mapa, pero podría tener que volver a crearlo para confirmar que coincide con el código.

Ahora ha terminado con la investigación. Encontró y corrigió correctamente el problema asignando el código. También tiene un mapa que le ayuda a navegar por el código y a recordar lo que ha aprendido, y le muestra los pasos llevados a cabo para corregir el problema.

Vea también

Conceptos

Asignar métodos en la pila de llamadas durante la depuración en Visual Studio

Visualizar el código