Определить SLOC и сложность C # и C ++ из .NET - PullRequest
4 голосов
/ 25 сентября 2008

Я использую SourceMonitor в своем проекте в течение нескольких лет, чтобы вести учет сложности исходного кода и базового SLOC (включая комментарии) для компонентов C # и C ++. Они используются для внешней отчетности для наших клиентов, поэтому я не могу оспаривать их достоинства или отсутствие.

Я работал над инструментом анализа репозитория, который может дать мне мгновенный снимок проекта в любой день / время. Следующий этап, который я хочу добавить, - это кэширование метрик для указанного файла и ревизии.

Я знаю, что в SourceMonitor можно создавать сценарии, позволяющие мне предоставлять файлы для тестирования и извлекать метрики из файла результатов CSV или XML.

Есть ли нативная библиотека в .NET, которую я мог бы использовать для того же - например, Избегайте порождения внешнего процесса и анализа результатов.

Мне действительно нужны только следующие метрики:

  • SLOC
  • Количество строк комментариев
  • Сложность самого сложного метода
  • Название наиболее сложного метода

Мне нужно запустить это для C # кода и обычного C ++ кода.

Редактировать: так как у меня уже есть инструмент, который предоставляет графический интерфейс и отчеты, которые я хочу, метрики должны быть написаны в сценарии или созданы с использованием библиотеки / API без ручных действий. В идеале я хочу получить метрики для указанного файла / ревизии (а не для всего проекта), которые моя утилита будет автоматически перетаскивать из системы контроля версий.

ПРИМЕЧАНИЕ: я создал за это награду и находился в отпуске, когда срок его действия истек ... Ответ NDepends НЕ удовлетворяет меня, так как он не смотрит на исходный код, а на саму сборку !!!

Ответы [ 5 ]

2 голосов
/ 31 марта 2009

Вы можете найти открытый исходный код для C # SLOC и комментарии здесь: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics

2 голосов
/ 25 сентября 2008
1 голос
/ 06 марта 2012

Надежный инструмент для расчета SLOC на основе командной строки: Cloc . Он поддерживает много языков, включая C # и C ++. Поддерживаемые форматы вывода: xml, csv и sql.

0 голосов
/ 26 августа 2010

Хотя я никогда не находил продукт .NET, который мог бы одинаково анализировать C # и C ++, мне все же удалось найти простой в использовании продукт CODECOUNT , который поддерживает эти языки и многие другие.

Он имеет простую командную строку, в отличие от SourceMonitor, который использовался в моем проекте вплоть до замены CODECOUNT.

0 голосов
/ 10 ноября 2008

Это не даст вам сложность функции и не поддерживает сценарии (насколько я знаю), но гаджеты SlickEdit для VS имеют отличный инструмент отчетов SLOC, который вы можете использовать из обозревателя решений и предоставит вам подробный отчет по адресу уровень файла, проекта или решения.

Вы можете получить его здесь: http://www.slickedit.com/content/view/441

...