Determinar SLOC y la complejidad de C # y C ++ desde .NET
Pregunta
He estado usando SourceMonitor en mi proyecto durante un par de años para mantener registros de la complejidad del código fuente y SLOC básico (incluidos los comentarios) para los componentes C # y C ++. Estos se utilizan para informes externos a nuestros clientes, por lo que no estoy en condiciones de discutir sus méritos o falta de ellos.
He estado trabajando en una herramienta de análisis de repositorio que puede darme una vista instantánea del proyecto en cualquier fecha / hora. La siguiente etapa que quiero agregar es el almacenamiento en caché de las métricas para un archivo y revisión específicos.
Sé que SourceMonitor puede ser programado para permitirme suministrar los archivos que se probarán y tomar las métricas del archivo de resultados CSV o XML.
¿Hay una biblioteca nativa en .NET que pueda usar para hacer lo mismo? evite generar un proceso externo y analizar los resultados.
Solo necesito realmente las siguientes métricas:
- SLOC
- Número de líneas de comentarios
- Complejidad del método más complejo
- Nombre del método más complejo
Necesito ejecutar esto en el código C # y el código C ++ normal.
Editar: dado que ya tengo una herramienta que proporciona la GUI y los informes que quiero, las métricas necesitan ser escritas o generadas usando una biblioteca / API sin pasos manuales. Idealmente, quiero obtener métricas para un archivo / revisión específico (en lugar de un proyecto completo) que mi utilidad arrastrará automáticamente desde el control de versiones.
NOTA: ¡Creé una recompensa por esto y estaba de vacaciones cuando expiró ... la respuesta de NDepends NO me satisface ya que no mira el código fuente sino el ensamblaje en sí mismo!
Solución 5
Aunque nunca encontré un producto .NET que pueda analizar igualmente C # y C ++, logré encontrar un producto fácil de usar, CODECOUNT que admite esos idiomas y muchos más.
Tiene una línea de comando simple, a diferencia de SourceMonitor que se estaba usando en mi proyecto hasta que CODECOUNT lo reemplazó.
Otros consejos
Puede encontrar un código fuente abierto para C # SLOC y comentarios aquí: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics
Una herramienta confiable basada en la línea de comandos para calcular SLOC es Cloc . Es compatible con muchos lenguajes, incluidos C # y C ++. Los formatos de salida admitidos son xml, csv y sql.
Esto no le dará complejidad de la función y no es programable (que yo sepa), pero SlickEdit Gadgets for VS tiene una excelente herramienta de informes SLOC y puede usar desde el explorador de soluciones y le dará un informe detallado en el archivo, proyecto o nivel de solución.
Puede obtenerlo aquí: http://www.slickedit.com/content/view / 441