2010-08-29 19 views
10

¿Existe algún tipo de aplicación que analice el código fuente y muestre gráficamente todas las conexiones entre funciones?C# - ¿Aplicación para mostrar todas las dependencias entre funciones?

lo necesito para un código heredado que estoy trabajando - Es enorme, funcional y mal escrito ... :(

+1

¿Puedes cambiar a visual studio 2010? Luego solo usa las herramientas de compilación en ese –

+0

@Rune FS: +1. Considero que esta es una respuesta legítima. No estoy seguro si otros estarían de acuerdo conmigo o no. Es posible que desee mencionar dónde encontrar esas herramientas en VS. –

+1

posible duplicado de [Herramienta de generación de gráficos de llamada C#] (http://stackoverflow.com/questions/793685/c-call-graph-generation-tool) – Timwi

Respuesta

2

NDepend puede manejar calling graph madgnome bien de hecho como se sugiere. Déjame desarrollar un poco. Primero puede solicitar la llamada Graph con una consulta CQL; segundo, puede exportar el resultado de la consulta al Dependency Graph o Dependency Matrix.

Concretamente, a continuación solicitamos las personas que llaman a los métodos de la clase AppDomain en NUnit 2.4.8 (podría ser un método, un campo, un espacio de nombres ... lo que sea). Este menú también podría aparecer en Visual Studio gracias al complemento NDepend VS.

alt text

Entonces se genera una consulta CQL para nosotros, podemos ver que los 30 métodos se hacen coincidir en el gráfico de llamadas. Tenemos la opción de exportar conjunto de métodos stos OA gráfico gráfica ...

alt text

... y aquí está la gráfica outputed (ver una versión ampliada de imagen de este gráfico here)

alt text

+0

¡Gracias por la explicación detallada! – Yossale

7

NDepend hacer exactamente eso y más otras cosas (métricas de código ...)

0

.Net Reflector es bastante limpio - lo he usado un par de veces para conseguir este tipo de información. Hay una serie de complementos, al menos uno de los cuales genera diagramas de dependencia.

Además, en VS.Net 2008 o superior, haga clic derecho en 'Buscar todas las referencias' puede ser útil.

0

ReSharper proporciona características que le permiten ver el gráfico de los métodos, que están llamando a su método y viceversa. (llamadas salientes y entrantes)

Esta es la nueva característica llamada "Call Tracking"

Cuestiones relacionadas