Determinar SLOC e complexidade do C # e C ++ a partir de .NET
Pergunta
Eu tenho usado SourceMonitor no meu projeto para um par de anos para manter registros de complexidade de código-fonte e SLOC básico (incluindo comentários) para C # e componentes C ++. Estes são utilizados para relatórios externos para o nosso cliente, por isso não estou em posição de discutir os seus méritos ou falta de.
Eu tenho trabalhado em uma ferramenta de análise de repositório que é capaz de me dar uma visão snap-shot do projeto a qualquer data / hora. A próxima etapa quero acrescentar é o cache das métricas para um arquivo e revisão especificada.
Eu sei SourceMonitor pode ser programado para permitir-me para fornecer os arquivos a serem testados e agarrar as métricas fora do CSV arquivo de resultado ou XML.
Existe uma biblioteca nativa em .NET que eu poderia usar para fazer a mesma coisa - por exemplo, evitar gerando um processo externo e analisar os resultados.
Eu só realmente precisa os seguintes resultados:
- SLOC
- Número de linhas de comentário
- Complexidade do método mais complexo
- Nome do método mais complexo
Eu preciso executar isso em C # Código e normal C ++ código.
Edit: desde que eu já ter a ferramenta que fornece a interface gráfica e relatórios que quero, as métricas precisam ser script ou gerado usando uma biblioteca / API sem etapas manuais. Idealmente, eu quero para obter métricas para um arquivo especificado / revisão (em vez de um projeto inteiro) que o meu utilitário irá arrastar a partir da versão-controle automaticamente.
NOTA: Eu criei uma recompensa para isso e estava de férias quando expirou ... a resposta NDepends NÃO me satisfazer como ele não olhar para o código-fonte, mas a montagem em si !!!
Solução 5
Enquanto eu nunca fiz encontrar um produto .NET que pode igualmente parse C # e C ++, eu consegui encontrar um produto easy-to-use, CODECOUNT que suporta esses idiomas e muito mais.
Tem uma linha de comando simples, ao contrário SourceMonitor que estava sendo usado no meu projeto até CODECOUNT substituiu-o.
Outras dicas
Você pode encontrar um código-fonte aberto para C # SLOC e comentários aqui: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics
A ferramenta baseada linha de comando confiável para calcular SLOC é Cloc . Ele suporta muitos idiomas, incluindo C # e C ++. formatos de saída suportados são XML, CSV e SQL.
Isso não vai dar-lhe funcionar complexidade e não é programável (que eu saiba), mas o Gadgets SlickEdit para VS tem uma grande ferramenta relatório SLOC e você pode usar a partir do gerenciador solução e lhe dará um relatório detalhado sobre o nível de arquivo, projeto ou solução.
Você pode obtê-lo aqui: http://www.slickedit.com/content/view / 441