Asignar dependencias en el código mediante gráficos de dependencias

Cuando desee comprender las dependencias en el código, asígnelas con Visual Studio Ultimate. Cuando desee comprender las dependencias en todo el código, visualícelas creando mapas de código (solo en Visual Studio Ultimate). Esto ayuda a ver cómo encaja el código sin necesidad de leer archivos y líneas de código.

Gráfico con elementos seleccionados y grupos expandidos

A continuación encontrará unos vídeos:

Aquí está lo que necesita:

  • Visual Studio Ultimate 2013

  • Código de Visual C# .NET o de Visual Basic .NET en una solución o ensamblados (.dll o .exe)

  • Código de C o C++ nativo o administrado en proyectos de Visual C++, archivos de encabezado (.h o #include) o archivos binarios

  • Visual Studio 2013 Update 3 para asignar dependencias en:

    • Proyectos que comparten código entre varias aplicaciones

    • Proyectos y ensamblados de X++ creados desde módulos de .NET para Microsoft Dynamics AX

    También puede arrastrar los ensamblados y archivos binarios desde el Explorador de Windows a un gráfico existente y obtener relaciones codificadas por colores.

Empiece aquí:

  • Para ver las dependencias generales de la solución, vaya al menú Arquitectura. Haga clic en Generar gráfico de dependencias y Para la solución.

    o bien

  • Para ver dependencias concretas de la solución, abra el Explorador de soluciones. Seleccione los proyectos, las referencias de ensamblado, las carpetas, los archivos, los tipos o los miembros que le interesen. En la barra de herramientas del Explorador de soluciones, haga clic en Crear un nuevo documento de gráfico Botón para crear un nuevo gráfico a partir de los nodos seleccionados.

También puede:

  • Ver las dependencias entre los archivos de código fuente de C o C++ y los archivos de encabezado

  • Compartir gráficos de dependencias

  • Crear gráficos mediante programación

Ver las dependencias generales

Ver las dependencias de su solución

  1. En el menú Arquitectura, haga clic en Generar gráfico de dependencias y Para la solución.

    Se obtiene un gráfico que muestra los ensamblados de nivel superior y los vínculos agregados entre ellos. Cuanto más amplio sea el vínculo agregado, más dependencias representará. El grupo Externos contiene cualquier elemento que esté fuera de la solución, incluidas las dependencias de plataforma. En los ensamblados externos solo se muestran los elementos que están en uso.

    Gráfico de dependencias de ensamblados de nivel superior

  2. Para ver el interior de un ensamblado, expándalo. Mueva el puntero del mouse sobre un ensamblado y luego haga clic en el botón de contenido adicional (^) cuando aparezca. (Teclado: seleccione el elemento y, a continuación, presione la tecla con el signo MÁS [+]). Para explorar niveles de código más profundos, haga lo mismo para los espacios de nombres, los tipos y los miembros.

    Gráfico de dependencia con nodos agrupados

    De forma predeterminada, las relaciones de contención aparecen como grupos, que puede expandir y contraer. Para ver las relaciones de grupo como vínculos, en el menú contextual de gráfico, haga clic en Grupo, Desactivar agrupación.

    Gráfico de dependencia con nodos y vínculos

  3. Para examinar los elementos y las dependencias representados por un vínculo agregado, seleccione el vínculo primero y, a continuación, abra su menú contextual. Haga clic en Mostrar, Vínculos de contribución en el diagrama actual o Vínculos de contribución en un nuevo diagrama.

    Visual Studio expande los grupos en ambos extremos del vínculo y muestra solo los elementos y dependencias que participan en el vínculo.

  4. Para obtener más información acerca de un elemento o vínculo, mueva el puntero encima del elemento hasta que aparezca información sobre herramientas. Aparecerán las categorías que representa un vínculo.

  5. Para ver lo que significa el color del vínculo, en la barra de herramientas de gráfico, haga clic en Leyenda.

    Si ve un vínculo verde, podría no significar únicamente que hay una relación de herencia. También puede haber llamadas de método, ocultas por la relación de herencia.

  6. Para ver las dependencias entre miembros de grupos, haga clic en un elemento del gráfico.

    Gráfico con elementos seleccionados y grupos expandidos

  7. Para detectar posibles problemas en el código, ejecute un analizador.

Vea:

Ver las dependencias entre ensamblados o archivos binarios

  • Cree un gráfico en blanco o abra un gráfico existente (archivo .dgml). Desde fuera de Visual Studio, arrastre los ensamblados o archivos binarios al gráfico.

    NotaNota

    Solo puede arrastrar los ensamblados o archivos binarios desde el Explorador de Windows si ejecuta el Explorador de Windows y Visual Studio en el mismo nivel de permisos de Control de cuentas de usuario.Por ejemplo, si el Control de cuentas de usuario está activado y está ejecutando Visual Studio como administrador, el Explorador de Windows bloqueará la operación de arrastre.Para solucionar este problema, asegúrese de que Visual Studio se está ejecutando como administrador o desactive el Control de cuentas de usuario.Observe que, en Windows 8, el Explorador de Windows es el Explorador de archivos.

Crear un gráfico en blanco

  1. En el Explorador de soluciones, abra el menú contextual del nodo de la solución de nivel superior. Haga clic en Agregar, Elemento nuevo.

  2. En Instalado, haga clic en General.

  3. En el panel derecho, haga clic en Documento de gráfico dirigido.

    Ahora tiene un gráfico en blanco que aparece en la carpeta Elementos de la solución de la solución.

    Para abrir un nuevo gráfico en blanco sin agregarlo a la solución, en el menú Archivo, haga clic en Nuevo, Archivo.

    Para agregar un gráfico en blanco a un proyecto de modelado, abra el menú Arquitectura y haga clic en Nuevo diagrama.

Preguntas y respuestas

P: ¿Por qué se tarda tanto en crear el gráfico?

R: Al generar por primera vez un gráfico, Visual Studio crea índices para todas las dependencias que encuentra. Este proceso puede tardar algún tiempo, especialmente para las soluciones de gran tamaño, pero esto mejorará el rendimiento posterior. Si el código cambia, Visual Studio solo vuelve a crear índices para el código actualizado. Si no desea esperar a que termine el gráfico, puede cancelar este paso en cualquier momento e intentar lo siguiente:

  • Represente solo las dependencias que le interesan.

  • Antes de generar el gráfico para una solución completa, reduzca el ámbito de la solución.

Aunque Visual Studio puede ejecutarse con 1 GB de memoria, recomendamos que el equipo tenga al menos 2 GB de memoria para evitar demoras mientras Visual Studio crea el índice de código y genera el gráfico.

Podría llevar más tiempo crear gráficos o agregar elementos a un gráfico desde el Explorador de soluciones si la propiedad Copiar en el directorio de salida de un elemento del proyecto se establece en Copiar siempre. Esto podría causar problemas en compilaciones incrementales y Visual Studio con cada recompilación del proyecto. Para mejorar el rendimiento, cambie esta propiedad a Copiar si es posterior o PreserveNewest. Consulta Compilaciones incrementales.

P: ¿Por qué Visual Studio no ha creado el gráfico?

R: Esto puede deberse a que ninguno de los proyectos de la solución se ha compilado correctamente. Visual Studio genera un gráfico si al menos un proyecto se compila correctamente. El gráfico mostrará las dependencias únicamente del código compilado correctamente. Si se producen errores de compilación para determinados componentes, dichos errores se mostrarán en el gráfico. Asegúrese de que un componente se compila realmente y de que tiene dependencias antes de tomar decisiones sobre la arquitectura basadas en el gráfico.

Ver dependencias concretas

Por ejemplo, suponga que debe realizar una revisión de código en unos archivos con cambios pendientes. Para ver las dependencias de los cambios, cree un gráfico de dependencias a partir de dichos archivos.

Gráfico de dependencia con nodos agrupados

Ver dependencias concretas de la solución

  1. Abra el Explorador de soluciones. Seleccione los proyectos, las referencias de ensamblado, las carpetas, los archivos, los tipos y los miembros que le interesen.

  2. Realice un gráfico de los elementos y sus miembros. En la barra de herramientas del Explorador de soluciones, haga clic en Crear un nuevo documento de gráfico Botón para crear un nuevo gráfico a partir de los nodos seleccionados.

    Para buscar elementos que dependen de tipos o miembros, abra el menú contextual del tipo o del miembro desde el Explorador de soluciones. Haga clic en el tipo de dependencia. A continuación, seleccione los resultados.

    Cómo visualizar un código específico

    Para incluir las jerarquías principales con los elementos, en la barra de herramientas del Explorador de soluciones, abra la lista Crear un nuevo documento de gráfico. Haga clic en Nuevo gráfico de dependencias con antecesores.

    Cómo visualizar un código y elementos primarios específicos

    También puede arrastrar elementos a un gráfico en blanco o existente. Para crear un gráfico en blanco, en el menú Archivo, haga clic en Nuevo, Archivo, Documento de gráfico dirigido. Para incluir la jerarquía primaria para sus elementos, mantenga presionada la tecla CTRL mientras arrastra elementos.

    NotaNota

    Cuando se agregan elementos de un proyecto que se comparte entre varias aplicaciones, como Windows Phone o la Tienda Windows, dichos 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, dichos elementos aparecerán ahora con el nuevo proyecto de aplicación activo.Las operaciones que se realizan con un elemento en el mapa solo se aplican a los elementos que comparten el mismo contexto.

  3. Para explorar los elementos, expándalos. Mueva el puntero del mouse sobre un elemento y luego haga clic en el botón de contenido adicional (^) cuando aparezca. Para expandir todos los elementos, abra el menú contextual para el gráfico. Haga clic en Grupo, Expandir todo.

    NotaNota

    Esta opción no está disponible si el hecho de expandir todos los grupos genera un gráfico inutilizable o problemas de memoria.

  4. Para ver los miembros que existen en el código pero no aparecen en el gráfico, haga clic en Volver a obtener elementos secundarios Icono Volver a obtener elementos secundarios. Estos miembros del grupo aparecen con un estilo diferente para que pueda verlos más fácilmente. Consulta Editar y personalizar gráficos de dependencias.

  5. Para ver más elementos relacionados con los que están en el gráfico, abra el menú contextual de un elemento. Haga clic en Mostrar junto con la clase de relación que le interesa.

    Para un ensamblado, haga clic en:

    Referencias a ensamblados

    Agregue los ensamblados a los que este ensamblado hace referencia. Los ensamblados externos aparecen en el grupo Externos.

    Referencia a ensamblados

    Agregue los ensamblados de la solución que hacen referencia a este ensamblado.

    Para una clase, haga clic en:

    Tipos base

    Para una clase, agregue la clase base, así como las interfaces implementadas.

    Para una interfaz, agregue las interfaces base.

    Tipos derivados

    Para una clase, agregue las clases derivadas.

    Para una interfaz, agregue las interfaces derivadas y las clases o structs de implementación.

    Todos los tipos base

    Agregue la jerarquía de interfaz o de clase base de forma recursiva.

    Todos los tipos derivados

    Para una clase, agregue todas las clases derivadas de forma recursiva.

    Para una interfaz, agregue todas las interfaces derivadas y clases o structs de implementación de forma recursiva.

    Jerarquía de contención

    Agregue la jerarquía de contenedores principales.

    Tipos utilizados

    Agregue todas las clases y los miembros que esta clase utilice.

    Tipos de uso-por

    Agregue todas las clases y los miembros que usan esta clase.

    Para un método, haga clic en:

    Jerarquía de contención

    Agregue la jerarquía de contenedores principales.

    Métodos a los que se llama

    Agregue los métodos a los que llama este método.

    Métodos de llamada

    Agregue los métodos que llaman a este método.

    Métodos invalidados en tipos base

    Para obtener un método que invalide otros métodos o que implemente un método de una interfaz, agregue todo el resumen o los métodos virtuales en las clases base invalidadas y, si existe, el método de interfaz implementado.

    Campos de referencia

    Agregue los campos a los que hace referencia este método.

    Para un campo, haga clic en:

    Jerarquía de contención

    Agregue la jerarquía de contenedores principales.

    Referencia a métodos

    Agregue métodos que hagan referencia a este campo.

Ver dependencias concretas en ensamblados o archivos binarios

  1. En el menú Arquitectura, haga clic en Ventanas, Explorador de arquitectura.

  2. En la primera columna, en Sistema de archivos, haga clic en Seleccionar archivos.

  3. En el cuadro Abrir, busque y seleccione los ensamblados o archivos binarios. Haga clic en Abrir para agregarlos a la columna siguiente en el Explorador de arquitectura.

  4. En la columna siguiente, seleccione los ensamblados o archivos binarios.

    De forma predeterminada, la columna siguiente muestra los elementos contenidos en los elementos seleccionados.

    SugerenciaSugerencia

    Para seleccionar otros elementos relacionados, expanda la columna contraída situada a la derecha de la columna con los elementos seleccionados.En Navegación de nodo, seleccione los tipos de elementos que le interesen.En Navegación saliente o Navegación entrante, seleccione los tipos de relaciones que le interesen.Consulta Buscar código con el explorador de arquitectura.

  5. Busque y seleccione los elementos que desea colocar en el gráfico.

  6. Para crear un nuevo gráfico, en la barra de herramientas del Explorador de arquitectura, haga clic en Crear un nuevo documento de gráfico a partir de todos los nodos seleccionados Botón para crear un nuevo gráfico a partir de los nodos seleccionados.

    o bien

    Para agregar la selección a un gráfico, siga estos pasos:

    1. Abra el archivo .dgml del gráfico o cree un gráfico en blanco.

    2. En la barra de herramientas del Explorador de arquitectura, haga clic en Agregar todos los nodos seleccionados al documento de gráfico visible actualmente Botón para agregar todos los nodos seleccionados al gráfico.

      o bien

      Arrastre los elementos desde el Explorador de arquitectura hasta el gráfico.

Ver las dependencias entre los archivos de código fuente de C y C++ y los archivos de encabezado

Si desea crear gráficos más completos para proyectos de C++, establezca en esos proyectos la opción del compilador de información de examen (/FR). Consulta /FR, /Fr (Crear archivo .Sbr). Si no, aparece un mensaje que le solicita establecer esta opción. Si selecciona Aceptar, la opción se establece solamente en el gráfico actual. Puede ocultar el mensaje para todos los gráficos posteriores. Si oculta este mensaje, puede hacer que aparezca de nuevo. Establezca la siguiente clave del registro en 0 o elimine la clave:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\NativeProvider : AutoEnableSbr

Al abrir una solución que contiene proyectos de Visual C++, podría llevar algún tiempo la actualización de la base de datos de IntelliSense. Durante este tiempo, quizás no pueda crear gráficos de dependencias para los archivos de encabezado (.h o #include) hasta que la base de datos de IntelliSense finalice la actualización. Puede supervisar el progreso de actualización en la barra de estado de Visual Studio. Para resolver los problemas o los mensajes que aparecen porque ciertas opciones de IntelliSense están deshabilitadas, consulte Solucionar problemas de gráficos de código C y C++.

  • Para ver las dependencias entre todos los archivos de código fuente y los archivos de encabezado de la solución, en el menú Arquitectura, haga clic en Generar gráfico de dependencias y Para archivo de inclusión.

    Gráfico de dependencias para código nativo

  • Para ver las dependencias entre el archivo abierto actualmente y los archivos de código fuente y de encabezado relacionados, abra el archivo de origen o el archivo de encabezado. Abra el menú contextual del archivo desde cualquier parte del archivo. Haga clic en Generar gráficos de archivos de inclusión.

    Gráfico de dependencias de primer nivel para archivo .h

Solucionar problemas de gráficos de código C y C++

Estos elementos no se admiten para código de C y C++:

  • Los tipos base no aparecen en los gráficos que incluyen la jerarquía principal.

  • La mayoría de los elementos de menú Mostrar no están disponibles para el código de C y C++.

Podrían producirse los siguientes problemas al crear gráficos de dependencias para código de C y C++:

Problema

Causa posible

Solución

El gráfico de dependencias no se pudo generar.

No se compiló correctamente ningún proyecto de la solución.

Corrija los errores de compilación que se produjeron y, a continuación, vuelva a generar el gráfico.

Visual Studio no responde al intentar generar un gráfico de dependencias a partir del menú Arquitectura.

El archivo de base de datos de programa (.pdb) podría estar dañado.

Un archivo .pdb almacena la información de depuración, como tipo, método e información del archivo de código fuente.

Recompile la solución y, a continuación, inténtelo de nuevo.

Cierta configuración de la base de datos de navegador de IntelliSense está deshabilitada.

Cierta configuración de IntelliSense podría estar deshabilitada en el cuadro de diálogo Opciones de Visual Studio.

Active los valores para habilitarla.

Consulta Opciones, editor de texto, C/C++, avanzado.

Aparece el mensaje Métodos desconocidos en un nodo de método.

Este problema se produce porque no se puede resolver el nombre del método.

El archivo binario podría no tener una tabla de reubicación base.

Active la opción /FIXED:NO en el vinculador.

Consulta /FIXED (Dirección base fija).

El archivo de base de datos de programa (.pdb) podría no estar compilado.

Un archivo .pdb almacena la información de depuración, como tipo, método e información del archivo de código fuente.

Active la opción /DEBUG en el vinculador.

Consulta /DEBUG (Generar información de depuración).

No se puede abrir o encontrar el archivo .pdb en las ubicaciones esperadas.

Asegúrese de que existe el archivo .pdb en las ubicaciones esperadas.

Se ha quitado la información de depuración del archivo .pdb.

Si se ha usado la opción /PDBSTRIPED en el vinculador, incluya el archivo .pdb completo en su lugar.

Consulta /PDBSTRIPPED (Quitar símbolos privados).

El llamador no es una función y, o bien es un código thunk en el archivo binario o es un puntero en la sección de datos.

Cuando el llamador es un código thunk, intente usar _declspec(dllimport) para evitar el código thunk.

Vea:

Compartir gráficos de dependencias

Compartir el gráfico con otros usuarios de Visual Studio

  • Utilice el menú Archivo para guardar el gráfico.

    o bien

    Para guardar el gráfico como parte del proyecto específico, abra el menú contextual de la superficie del gráfico. Haga clic en Mover <nombreDeGráficoDeDependencias.dgml> en y el proyecto donde desea guardar el gráfico.

    Visual Studio guarda el gráfico como un archivo .dgml que puede compartir con otros usuarios de Visual Studio Ultimate, Visual Studio Premium y Visual Studio Professional.

    NotaNota

    Antes de compartir un gráfico con quienes usan Visual Studio Premium y Visual Studio Professional, asegúrese de expandir los grupos, de mostrar los nodos ocultos y los vínculos entre grupos, así como de recuperar los nodos eliminados que desea que los demás vean en el gráfico.De lo contrario, los otros usuarios no podrán ver estos elementos.

    Se podría producir el error siguiente al guardar un gráfico que está en un proyecto de modelado o que se copió de un proyecto de modelado en otra ubicación:

    "No se puede guardar nombreDeArchivo fuera del directorio del proyecto.No se admiten elementos vinculados".

    Visual Studio muestra el error pero crea la versión guardada de todas maneras.Para evitar el error, cree el gráfico fuera del proyecto de modelado.Después puede guardarlo en la ubicación que desee.Copiar el archivo en otra ubicación de la solución e intentar guardarlo después no dará resultado.

Exportar el gráfico como una imagen para que se pueda copiar en otras aplicaciones, como Microsoft Word o PowerPoint

  1. Abra el menú contextual de la superficie del gráfico. Haga clic en Editar, Copiar imagen.

  2. Pegue la imagen en otra aplicación.

Exportar el gráfico como archivo XPS para que se pueda ver en visores XML o XAML como Internet Explorer

  1. Abra el menú contextual de la superficie del gráfico. Haga clic en Guardar como XPS.

  2. Vaya adonde desea guardar el archivo.

  3. Asigne un nombre al gráfico. Asegúrese de que la casilla Guardar como tipo esté establecida en Archivos XPS (*.xps). Haga clic en Guardar.

Crear gráficos mediante programación

Para crear documentos de gráfico (archivos .dgml) para que pueda trabajar durante el procesamiento por lotes, ejecute la herramienta de línea de comandos GraphCmd.exe. Por ejemplo, para buscar las dependencias que han cambiado entre las compilaciones, ejecute la herramienta después de cada compilación. Para encontrar esta herramienta, busque en esta carpeta: C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE.

GraphCmd.exe solo admite código .NET y genera información de dependencia solo para ensamblados o archivos .dgml, no para el código fuente de archivos de proyecto o de solución de Visual Studio. GraphCmd.exe se ejecuta fuera de Visual Studio, por lo que la compatibilidad con las acciones de las consultas DGQL es limitada.

A continuación encontrará la sintaxis de GraphCmd.exe:

GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path

Estas son las opciones de GraphCmd.exe:

Puede especificar estas opciones más de una vez: -input, -query, -exec y -path.

-?

Mostrar ayuda sobre GraphCmd.exe.

-all

Incluir todos los resultados de la consulta intermedios, no solo para el último conjunto de nodos.

-exceptions

Notificar las excepciones de la consulta como un archivo de documento de gráfico (.dgml).

-input Nombre_Archivo

Procesar el archivo .dgml especificado.

Esto es útil para el posprocesamiento de un archivo .dgml grande y su filtrado, de forma que pueda visualizarlo más fácilmente en Visual Studio.

-query Nombre_Archivo

Ejecutar el archivo de Directed Graph Query Language (DGQL o .dgql) especificado.

Vea:

-exec "Instrucción_DGQL"

Ejecutar la instrucción DGQL especificada.

Vea Introducción a Directed Graph Query Language (DGQL).

-output Nombre_Archivo

Generar el archivo .dgml especificado.

-path alias=rutaDeAcceso

Especifique un nuevo alias que se usará en la entrada y salida de documentos DGML.

Por ejemplo:

GraphCmd -output MyGeneratedGraph.dgml -path "MyPathAlias=C:\Program Files\..."

Vea Alias para rutas de acceso usadas con frecuencia.

Alias para rutas de acceso usadas con frecuencia

Los alias para rutas de acceso usadas con frecuencia reducen el tamaño del archivo .dgml y el tiempo necesario para cargar o guardar el archivo. Para crear un alias, agregue una sección <Paths></Paths> al final del archivo .dgml. En esta sección, agregue un elemento <Path/> para definir un alias para la ruta de acceso:

<Paths>
   <Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>

Para hacer referencia al alias desde un elemento del archivo .dgml, rodee el valor Id del elemento <Path/> con un signo de dólar ($) y paréntesis (()):

<Nodes>
   <Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
   <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>

Para editar archivos .dgml, vea Editar y personalizar gráficos de dependencias.

Más información sobre Directed Graph Query Language (DGQL)

DGQL es un lenguaje de consultas ligero que puede usar para compilar DGML. Una instrucción DGQL sigue un modelo alternativo de selección de nodos y acciones de forma que cada selección de nodo crea la entrada para la siguiente acción, cuyo resultado se convierte en la entrada para la selección de nodo siguiente y así sucesivamente.

El formato de una instrucción DGQL es el siguiente:

<node selection> / <action> / <node selection> / <action> / ...

En la tabla siguiente se describe la sintaxis DGQL empleada para seleccionar nodos:

*

Seleccionar todos los nodos.

+ "text"

Seleccionar todos los nodos que contengan "text".

+ Id.Equals("text")

Seleccionar todos los nodos cuyo Id sea igual a "text".

+ Background.Contains("text")

Seleccionar todos los nodos cuyo atributo Background tenga un valor que contenga la cadena "text".

+ "text1" + "text2" + ...

Seleccionar todos los nodos que coincidan con "text1" o "text2".

+ MyProperty="True"

Seleccionar todos los nodos que tengan una propiedad denominada MyProperty cuyo valor sea "True".

- Label.Contains("text")

Seleccionar todos los nodos, excepto los que tienen un atributo Label que Contains la cadena "text".

+ Category.Is("MyCategory")

Seleccionar todos los nodos que tengan una categoría denominada MyCategory o que hereda de MyCategory.

En la tabla siguiente se describen ejemplos de acciones directas que se pueden realizar en los nodos seleccionados:

Acción de ejemplo

Descripción 

Microsoft.Contains

Devolver todos los nodos contenidos por los nodos de entrada. Puede reemplazar Contains con una categoría de vínculo diferente.

Microsoft.Open

Abrir el código fuente para los nodos de entrada.

NotaNota

Solo funciona dentro de Visual Studio.

Microsoft.AllOutBoundLinks

Devolver todos los nodos que son el destino de un vínculo de salida de los nodos de entrada.

Microsoft.AllInboundLinks

Devolver todos los nodos que son el extremo de origen de un vínculo a los nodos de entrada.

Microsoft.Core.CreateGroupsByProperties

Invocar la acción GroupByProperties.

Microsoft.AllNodes

Devolver todos los nodos de todo el gráfico.

Las acciones controladas por datos seleccionan elementos basándose únicamente en los datos de los nodos y vínculos de entrada. Cuando se hacen coincidir categorías usando acciones controladas por datos, se incluyen las categorías heredadas. En la tabla siguiente se describen ejemplos de acciones controladas por datos:

Tipo

Descripción 

Node:Both:Category

Devolver todos los nodos que tienen la categoría Category y están conectados con los nodos de entrada por un vínculo que señala en cualquier dirección.

Link:Both:Category

Devolver todos los nodos que están conectados con los nodos de entrada por un vínculo que señala en cualquier dirección y tienen la categoría Category.

Link:Backward:Category

Devolver todos los nodos que señalan a los nodos de entrada con un vínculo que tiene la categoría Category.

Link:Forward:Category

Devolver todos los nodos que señalan desde los nodos de entrada con un vínculo que tiene la categoría Category.

Sugerencias

  • Normalmente, hay una acción "predeterminada" para un conjunto dado de nodos de entrada, que el Explorador de arquitectura selecciona automáticamente. Para obtener el mismo comportamiento, use una acción vacía: //

  • El espacio en blanco no es significativo en DGQL, por lo que puede dar formato a la consulta para que quepa en una línea si es necesario. Esto es útil cuando se emplea la opción –exec con GraphCmd.

  • Al depurar DGQL, use la acción "Execute Expanded" en el Explorador de arquitectura para ayudarle a ver cada paso de la consulta y encontrar el paso que no está generando los resultados esperados.

Ejemplo

La siguiente instrucción DGQL realiza una consulta como se describe en los pasos siguientes:

+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
  1. Haga clic en el nodo Vista de clases en la primera columna del Explorador de arquitectura.

  2. Realice la acción "Microsoft.Solution.ClassView", devolviendo todos los espacios de nombres de la solución.

  3. Usa * para seleccionar todos los espacios de nombres.

  4. Seleccione todos los nodos que tienen la categoría CodeSchema_Class y que están relacionados con esos espacios de nombres por un vínculo en cualquier dirección. Normalmente serán vínculos de contención.

  5. Filtra las clases resultantes solo a las que tienen la propiedad CodeSchemaProperty_IsPublic="True".

Técnicamente, la acción "Microsoft.Solution.ClassView" es innecesaria porque es la acción "predeterminada" para el nodo Vista de clases. Por tanto, puede reemplazar esa acción con // para simplificar la consulta y que quepa en una única línea de la manera siguiente:

+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")

¿Qué más puedo hacer?

¿Dónde puedo obtener más información?

Categoría

Vínculos

Foros

Blogs