2009-04-27 10 views
27

Acabo de recibir una gran pila de código C# (la mayoría indocumentados) y me gustaría visualizar su estructura antes de sumergirme y comenzar a refactorizar. He hecho esto en el pasado (en otros idiomas) con herramientas que generan gráficos de llamadas.Herramienta de generación de gráficos de llamada C#

¿Puede recomendar una buena herramienta para facilitar el descubrimiento de la estructura en C#?

ACTUALIZACIÓN

Además de las herramientas mencionadas aquí que he visto (a través de los tubos) la gente dice que .NET Reflector y CLR Profiler tienen esta funcionalidad. Alguna experiencia con estos?

Respuesta

16

NDepend es bastante bueno en esto. Además, Visual Studio 2008 Team System tiene un conjunto de características que le permiten realizar un seguimiento de la complejidad ciclomática, pero es mucho más básico que NDepend. (Ejecute análisis de código)

+0

NEl conjunto de características de Dependencia y las capturas de pantalla (del sitio web) se ven interesantes. Voy a verificarlo. –

2

No estoy seguro de si lo hará sobre el código fuente, pero ANTS Profiler producirá un gráfico de llamadas para una aplicación en ejecución (puede ser más útil de todos modos).

3

Visual Studio 2010.

Además, en un método por método - Reflector (Analizador (Ctrl + R); "depende" y "utilizado por")

+0

O reflector exterior ... haga clic derecho ... encuentre todas las refrencias, vaya a la definición –

+0

¿tendré que convertir mi proyecto a un nuevo formato de Visual Studio? Si es así, ¿qué tan fácil es este proceso? –

+0

@Waylon Flinn: quién sabe ... el producto aún no se ha lanzado, o incluso en versión beta. Sin embargo: con VS2005 a VS2008, los archivos del proyecto se actualizaron automáticamente y fueron (en gran medida) compatibles con versiones anteriores; los archivos de la solución se actualizaron automáticamente, pero * * no eran compatibles con versiones anteriores. –

2

SequenceViz y DependencyStructureMatrix para el reflector podría ayudarle a cabo: http://www.codeplex.com/reflectoraddins

+0

SequenceViz se ve interesante pero no puedo hacer que funcione con la versión más reciente de .NET Reflector –

+0

Finalmente los puse a trabajar. SequenceViz parece que no presenta la información actual de una manera que sea útil en el nivel de método. DependencyStructureMatrix fue útil, pero solo apareció para dar información a nivel de Asamblea y Clase. Estoy buscando cosas en el nivel de Método. Gracias por recomendar estos, pueden ser útiles para otra cosa. –

5

He usado doxygen para tener cierto éxito. Es un poco confuso, pero gratis y funciona.

+1

El último binario de Windows de Doxygen incluye una herramienta de GUI conocida como Doxywizard. Usted señala esto a la ruta de instalación de Graphviz que instala por separado, y lo observa construir sus gráficos. –

+0

Estaba usando el Doxywizard. La parte que encontré confusa es que no usaría la configuración de C# (aunque funciona bien con la configuración de Java). Han pasado varios meses desde que traté de usarlo. –

8

En cuanto NDepend, se puede producir algún gráfico utilizable llamada como por ejemplo (imagen a tamaño completo here)

alt text

Encuentra más explicaciones sobre NDepend gráfico de llamadas here.

7

Es un poco tarde, pero http://sequenceviz.codeplex.com/ es una herramienta impresionante que muestra el diagrama de llamadas/diagrama de secuencia. Los diagramas son generados por ingeniería inversa .NET Assemblies.

0

A partir de hoy (junio de 2017), la mejor herramienta en su clase es la función Inspección de Resharper. Le permite encontrar todas las llamadas entrantes, llamadas salientes, origen/destino de valor, etc.

La mejor parte de ReSharper, en comparación con otras herramientas mencionadas anteriormente: es menos problemático.

Cuestiones relacionadas