Como: Explorar el código con gráficos de dependencia
En Visual Studio Ultimate, use los gráficos de dependencias para obtener más información sobre la organización y las relaciones del código existente. Estos gráficos representan las estructuras como nodos y las relaciones como vínculos, que se muestran como flechas entre nodos. Para generar un gráfico, vea Cómo: Generar gráficos de dependencia para código .NET.
En el ejemplo siguiente se muestra cómo las estructuras y las relaciones se representan como nodos y vínculos en el gráfico:
Nodos y vínculos de un gráfico
En el ejemplo siguiente se muestra cómo las estructuras y las relaciones de contención se representan como grupos en el gráfico:
Nodos agrupados en un gráfico
Precaución |
---|
En un gráfico se muestran solo las dependencias del código que se compilan correctamente. Los componentes y su contenido no aparecerán si se producen errores de compilación en esos componentes. Por tanto, debe asegurarse de que un componente se compila realmente y de que tiene dependencias antes de tomar decisiones sobre la arquitectura basadas en el gráfico. |
En este tema
Explorar dependencias en el gráfico
Buscar áreas de complejidad
Explorar dependencias en el gráfico
Las dependencias del gráfico se representan mediante los siguientes tipos de vínculos:
Un vínculo individual representa una única dependencia entre dos nodos.
Un vínculo agregado representa todas las dependencias que transcurren en la misma dirección entre dos grupos.
Un vínculo entre grupos no es más que un vínculo entre dos nodos de diferente grupos.
Nota
De forma predeterminada, en el gráfico solo se muestran los vínculos entre grupos de los nodos que están seleccionados. Para mostrar estos vínculos en todo momento, en la barra de herramientas del gráfico, haga clic en la lista desplegable situada junto al botón Cambiar el modo en que se presentan los vínculos entre grupos en el gráfico y, a continuación, haga clic en Mostrar todos los vínculos entre grupos. Si la barra de herramientas del gráfico no está visible, en el menú Ver, elija Barras de herramientas y, a continuación, haga clic en Gráfico dirigido.
Use las tareas siguientes para explorar las dependencias que le interesen:
Para |
Siga estos pasos |
---|---|
Ver una lista de dependencias representadas por un vínculo |
|
Buscar un nodo por nombre Se usa para buscar en varios niveles de nodos agrupados. |
|
Buscar el origen o destino de un vínculo Este método se usa para poder ver con facilidad el origen o destino de un vínculo específico cuando hay demasiados vínculos. |
|
Examinar las dependencias entre nodos de grupos diferentes |
|
Examinar las dependencias subyacentes de un vínculo agregado
Nota
Este mecanismo solo funciona cuando cada uno de los extremos del vínculo está conectado a un ensamblado.Si no hay información del ensamblado, no se puede crear el gráfico.
|
|
Buscar áreas de complejidad
Use un gráfico de dependencias para identificar áreas de código que podrían mejorarse. En un gráfico de dependencias correcto, aparecerá un número mínimo de dependencias. Por ejemplo, puede:
Buscar código que contenga bucles o dependencia circulares.
Examine estas áreas para ver si puede simplificarlas. Piense si estos ciclos se pueden interrumpir.
Buscar código que tenga demasiadas dependencias.
Analice estas áreas para determinar si están realizando demasiadas funciones o para estudiar el impacto que tendría modificarlas. Para crear código que resulte más fácil de mantener, cambie, pruebe y reutilice código, piense si puede refactorizar estas áreas para que puedan definirse de forma más clara o si puede combinar el código que realiza funciones similares.
Buscar código que no contenga dependencias.
Examine estas áreas para ver si son necesarias o si este código debería quitarse.
Puede ejecutar en estos gráficos analizadores específicos que le ayuden a realizar estas tareas. Estos analizadores siguen ejecutándose una vez aplicados. Si cambia el gráfico, los analizadores aplicados volverán a procesar automáticamente el gráfico actualizado. Para dejar de ejecutar un analizador, haga clic con el botón secundario en el analizador del cuadro Leyenda y, a continuación, haga clic en Eliminar.
Nota
Si tiene un gráfico muy grande, ejecutar un analizador podría producir una excepción de memoria insuficiente. Si se produce la excepción, modifique el gráfico para reducir su ámbito o genere uno menor, y después ejecute el analizador.
Para buscar áreas de complejidad en el código
Asegúrese de que el diseño del gráfico está establecido en el diseño de árbol o el diseño de clústeres rápidos.
Para obtener más información, vea Cómo: Navegar y examinar los documentos de gráfico.
Haga clic con el botón secundario en el gráfico, elija Analizadores y, a continuación, haga clic en una de las opciones siguientes:
Analyzer
Para identificar nodos que
Referencia circular
Tengan dependencia circulares entre sí
NotaLas dependencias circulares dentro del grupo Genéricos no se muestran en el gráfico cuando se expande el grupo.Buscar concentradores
Se encuentran en el 25% por arriba de los nodos con mayor número de conexiones
Para seleccionar estos nodos en el gráfico y ocultar todos los demás
Haga clic con el botón secundario en el gráfico y, a continuación, haga clic en Mostrar selección avanzada.
En el cuadro Selección, expanda Propiedades y, a continuación, Concentrador.
En Concentrador, haga clic True.
El 25% por arriba de los nodos con mayor número de conexiones están seleccionados.
Haga clic con el botón secundario en el gráfico, elija Selección y, a continuación, haga clic en Ocultar no seleccionados.
Se ocultan en el gráfico los nodos no seleccionados y el analizador identifica los nuevos nodos como concentradores.
También puede identificar áreas densas de dependencias cambiando el diseño del gráfico a la vista de matriz de dependencias. Para obtener más información sobre la vista de matriz de dependencias, vea Cómo: Navegar y examinar los documentos de gráfico.
Nodos a los que no se hace referencia
No tienen referencias de otros nodos.
PrecauciónCompruebe cada uno de estos casos antes de determinar que el código no se usa.Ciertas dependencias, como las dependencias XAML y las dependencias en tiempo de ejecución, no se pueden buscar en el código de forma estática.
Vea también
Conceptos
Cómo: Generar gráficos de dependencia para código .NET