Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, aprenderá cómo visualizar las dependencias a lo largo de su código utilizando mapas de código.
¿Qué son los mapas de código?
En Visual Studio, los mapas de código le ayudan a ver más rápidamente cómo encaja el código del programa sin leer archivos y líneas de código. Con estos mapas, puede ver la organización y las relaciones en el código, incluida su estructura y sus dependencias, cómo actualizarla y calcular el costo de los cambios propuestos.
Puede asignar dependencias para el código en estos lenguajes:
Visual C# o Visual Basic en una solución o ensamblados (.dll o .exe)
Código nativo o administrado de C o C++ en proyectos de Visual C++, archivos de encabezado (.h o
#include) o archivos binariosProyectos y ensamblados de X++ hechos a partir de módulos de .NET para Microsoft Dynamics AX
Note
Para proyectos distintos de C# o Visual Basic, hay menos opciones para iniciar un mapa de código o agregar elementos a un mapa de código existente. Por ejemplo, no puede hacer clic con el botón derecho en un objeto en el editor de texto de un proyecto de C++ y agregarlo a un mapa de código. Sin embargo, puede arrastrar y colocar elementos o archivos de código individuales desde el Explorador de soluciones, la vista de clases y el Explorador de objetos.
Prerequisites
Para crear un mapa de código en Visual Studio, instale primero los componentes Mapa de código y Validación de dependencia activa.
Para crear y editar mapas de código, necesita Visual Studio Enterprise Edition. Sin embargo, en las ediciones Visual Studio Community y Professional, puede abrir diagramas que se generaron en Enterprise Edition, pero no puede editarlos.
Note
Antes de compartir mapas creados en Visual Studio Enterprise con otros usuarios que usan Visual Studio Professional, asegúrese de que todos los elementos del mapa (como elementos ocultos, grupos expandidos y vínculos entre grupos) estén visibles.
Agregar un mapa de código
Puede crear un mapa de código vacío y arrastrar elementos a él, incluidas referencias de ensamblado, archivos y carpetas, o puede generar un mapa de código para toda o parte de la solución.
Para agregar un mapa de código vacío:
En el Explorador de soluciones, abra el menú contextual del nodo de solución de nivel superior. Elija Agregar>nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento , en Instalado, elija la categoría General .
Elija la plantilla Documento de gráfico dirigido (.dgml) y, a continuación, seleccione Agregar.
Sugerencia
Es posible que esta plantilla no aparezca alfabéticamente, por lo que desplácese hacia abajo hasta la parte inferior de la lista de plantillas si no la ve.
Aparece un mapa en blanco en la carpeta Elementos de solución de tu solución.
Del mismo modo, puede crear un nuevo archivo de asignación de código sin agregarlo a la solución seleccionando Arquitectura>Nueva asignación de código o Archivo>>.
Aprende más:
Generación de un mapa de código para la solución
Para ver todas las dependencias de la solución:
En la barra de menús, elija Arquitectura>Generar mapa de código para la solución. Si el código no ha cambiado desde la última vez que lo creó, puede seleccionar Arquitectura>Generar mapa de código para la solución sin compilar en su lugar.
Se genera un mapa que muestra los ensamblados de nivel superior y los vínculos agregados entre ellos. Cuanto más ancho sea el vínculo agregado, más dependencias representa.
Use el botón Leyenda de la barra de herramientas del mapa de código para mostrar u ocultar la lista de iconos de tipo de proyecto (como Test, Web y Phone Project), elementos de código (como Clases, Métodos y Propiedades) y tipos de relación (como Heredar de, Implementar y Llamadas).
Esta solución de ejemplo contiene carpetas de soluciones (pruebas y componentes), proyectos de prueba, proyectos web y ensamblados. De forma predeterminada, todas las relaciones de contención aparecen como grupos, que se pueden expandir y contraer. El grupo Externals contiene cualquier cosa fuera de la solución, incluidas las dependencias de la plataforma. Los ensamblajes externos solo muestran los elementos que se utilizan. De forma predeterminada, los tipos base del sistema se ocultan en el mapa para reducir el desorden.
Para explorar en profundidad el mapa, expanda los grupos que representan proyectos y ensamblados. Puede expandir todo presionando CTRL+A para seleccionar todos los nodos y, a continuación, elegir Agrupar, Expandir en el menú contextual.
Sin embargo, esto puede no ser útil para una solución grande. De hecho, en el caso de soluciones complejas, las limitaciones de memoria pueden impedir que expanda todos los grupos. En su lugar, para ver dentro de un nodo individual, expándelo. Mueva el puntero del ratón sobre el nodo y luego haga clic en el cheurón (flecha hacia abajo) cuando aparezca.
O bien, use el teclado seleccionando el elemento y presionando la tecla más (+). Para explorar niveles más profundos de código, haga lo mismo para los espacios de nombres, los tipos y los miembros.
Sugerencia
Para obtener más información sobre cómo trabajar con mapas de código mediante el mouse, el teclado y la entrada táctil, consulte Examinar y reorganizar mapas de código.
Para simplificar el mapa y centrarse en partes individuales, elija Filtros en la barra de herramientas del mapa de código y seleccione solo los tipos de nodos y vínculos que le interesen. Por ejemplo, puede ocultar todas las Solution Folder y Assembly contenedores.
También puede simplificar el mapa ocultando o quitando grupos y elementos individuales del mapa, sin afectar al código de solución subyacente.
Para ver las relaciones entre elementos, selecciónelas en el mapa. Los colores de los vínculos indican los tipos de relación, como se muestra en el panel Leyenda .
En este ejemplo, los vínculos púrpura son llamadas, los vínculos punteados son referencias y los vínculos azules claros son acceso a campos. Los vínculos verdes pueden ser herencia o pueden ser vínculos agregados que indican más de un tipo de relación (o categoría).
Sugerencia
Si ve un vínculo verde, podría no significar que solo hay una relación de herencia. Podría haber también llamadas a métodos, pero estas están ocultas por la relación de herencia. Para ver tipos específicos de vínculos, use las casillas del panel Filtros para ocultar los tipos que no le interesan.
Para obtener más información sobre un elemento o vínculo, mueva el puntero sobre él hasta que aparezca un cuadro de descripción. Esto muestra los detalles de un elemento de código o las categorías que representa un vínculo.
Para examinar elementos y dependencias representados por un vínculo agregado, seleccione primero el vínculo y, a continuación, abra su menú contextual. Elija Mostrar vínculos de contribución (o Mostrar vínculos de contribución en nuevo mapa de código). Esto expande los grupos en ambos extremos del vínculo y muestra solo los elementos y dependencias que participan en el vínculo.
Para centrarse en partes específicas del mapa, puede continuar quitando elementos que no le interesan. Por ejemplo, para explorar la vista de clase y miembro, simplemente filtre todos los nodos del espacio de nombres en el panel Filtros.
Otra manera de centrarse en un mapa de solución complejo es generar un nuevo mapa que contenga elementos seleccionados de un mapa existente. Mantenga presionada la tecla Ctrl mientras selecciona los elementos en los que desea centrarse, abra el menú contextual y elija Nuevo grafo en Selección.
El contexto que contiene se lleva al nuevo mapa. Oculte carpetas de soluciones y cualquier otro contenedor que no quiera ver mediante el panel Filtros .
Expanda los grupos y seleccione elementos en el mapa para ver las relaciones.
Consulte también:
- Examinar y reorganizar mapas de código
- Personalización de mapas de código editando los archivos DGML
- Búsqueda de posibles problemas en el código mediante la ejecución de un analizador
Ver dependencias
Supongamos que tiene una revisión de código para realizar en algunos archivos con cambios pendientes. Para ver las dependencias de esos cambios, puede crear un mapa de código a partir de esos archivos.
Arrastre elementos desde el Explorador de soluciones, la vista de clases o el Explorador de objetos a un mapa de código nuevo o existente. Para incluir la jerarquía primaria de los elementos, mantenga presionada la tecla Ctrl mientras arrastra elementos, o use el botón Incluir elementos primarios en la barra de herramientas del mapa de código para especificar la acción predeterminada. También puede arrastrar archivos de ensamblado desde fuera de Visual Studio, como desde el Explorador de Windows.
Note
Al agregar elementos de un proyecto que se comparte entre varias aplicaciones, como Windows Phone o Microsoft Store, esos elementos aparecen en el mapa con el proyecto de aplicación activo actualmente. Si cambia el contexto a otro proyecto de aplicación y agrega más elementos del proyecto compartido, esos elementos aparecerán ahora con el proyecto de aplicación recién activo. Las operaciones que se realizan con un elemento en el mapa solo se aplican a los elementos que comparten el mismo contexto.
El mapa muestra los elementos seleccionados dentro de los ensamblajes que los contienen.
Para explorar elementos, amplíelos. Mueva el puntero del ratón sobre un ítem, y luego haga clic en el icono de cheurón (flecha hacia abajo) cuando aparezca.
Para expandir todos los elementos, selecciónelos con Ctrl+A y, a continuación, abra el menú contextual del mapa y elija Expandir grupo>. Sin embargo, esta opción no está disponible si la expansión de todos los grupos crea problemas de memoria o mapa no utilizables.
Continúe expandiendo los elementos que le interesen, directamente hasta el nivel de clase y miembro si es necesario.
Para ver los miembros que están en el código pero no aparecen en el mapa, haga clic en el icono Refetch Children
(Refetch Children Icon) en la esquina superior izquierda de un grupo.Para ver más elementos relacionados con los del mapa, seleccione uno y elija Mostrar relacionado en la barra de herramientas del mapa de código y, a continuación, seleccione el tipo de elementos relacionados que se van a agregar al mapa. Como alternativa, seleccione uno o varios elementos, abra el menú contextual y, a continuación, elija la opción Mostrar para el tipo de elementos relacionados que se van a agregar al mapa. Por ejemplo:
Para un ensamblaje, seleccione:
Opción Description Mostrar ensamblajes referenciados Agregue ensamblados a los que hace referencia este ensamblado. Los ensamblados externos aparecen en el grupo Externals . Mostrar ensamblados que hacen referencia a esto Agregue ensamblados en la solución que referencian este ensamblado. Para un espacio de nombres, selecciona Mostrar ensamblaje que contiene, si no está visible.
Para una clase o interfaz, elija:
Opción Description Mostrar tipos base Para una clase, agregue la clase base y las interfaces implementadas.
Para una interfaz, agregue las interfaces base.Mostrar tipos derivados Para una clase, agregue las clases derivadas.
Para una interfaz, agregue las interfaces derivadas y las clases o estructuras de implementación.Mostrar tipos a los que hace referencia Agregue todas las clases y sus miembros que esta clase utiliza. Mostrar tipos que hacen referencia a esto Agregue todas las clases y sus miembros que usan esta clase. Mostrar contenedor de espacio de nombres Agregue el espacio de nombres primario. Mostrar que contiene espacio de nombres y ensamblado Agregue la jerarquía de contenedores primaria. Mostrar todos los tipos base Agregue la jerarquía de interfaz o clase base de forma recursiva. Mostrar todos los tipos derivados Para una clase, agregue todas las clases derivadas de forma recursiva.
Para una interfaz, agregue todas las interfaces derivadas e implemente clases o estructuras de forma recursiva.Para un método, elija:
Opción Description Mostrar los métodos que este llama Agregue los métodos que este método llama. Mostrar campos a los que hace referencia Agregue campos a los que hace referencia este método. Mostrar tipo de contención Añadir el tipo padre. Mostrar tipo contenedor, espacio de nombres y ensamblaje Agregue la jerarquía de contenedores primaria. Mostrar métodos invalidados Para un método que invalida otros métodos o implementa el método de una interfaz, agregue todos los métodos abstractos o virtuales en las clases base que se invalidan y, si existe, el método de la interfaz que se implementa. Para un campo o propiedad, elija:
Opción Description Mostrar tipo de contención Agregue el tipo padre. Mostrar tipo que contiene, espacio de nombres y ensamblaje Agregue la jerarquía de contenedores primaria.
El mapa muestra las relaciones. En este ejemplo, el mapa muestra los métodos a los que llama el
Findmétodo y su ubicación en la solución o externamente.Para simplificar el mapa y centrarse en partes individuales, elija Filtros en la barra de herramientas del mapa de código y seleccione solo los tipos de nodos y vínculos que le interesen. Por ejemplo, desactive la visualización de carpetas de soluciones, ensamblados y espacios de nombres.
Contenido relacionado
- Compartir mapas de código
- Crear mapas de código para C++
- Mejora del rendimiento del mapa de código
- Usa mapas de código para depurar tus aplicaciones
- Mapear métodos en la pila de llamadas durante la depuración
- Búsqueda de posibles problemas mediante analizadores de mapa de código
- Examinar y reorganizar mapas de código
- Personalización de mapas de código editando los archivos DGML