Я использую SourceMonitor в своем проекте в течение нескольких лет, чтобы вести учет сложности исходного кода и базового SLOC (включая комментарии) для компонентов C# и C++. Они используются для внешних отчетов нашим клиентам, поэтому я не могу оспаривать их достоинства или отсутствие.
Я работал над инструментом анализа репозитория, который может дать мне моментальный снимок проекта в любую дату / время. Следующий этап, который я хочу добавить, - это кеширование метрик для указанного файла и ревизии.
Я знаю, что в SourceMonitor можно создать сценарий, позволяющий мне предоставлять файлы для тестирования и извлекать метрики из файла результатов CSV или XML.
Есть ли в .NET собственная библиотека, которую я мог бы использовать для того же, например избегайте порождения внешнего процесса и анализа результатов.
Мне действительно нужны только следующие показатели:
Мне нужно запустить это с кодом C# и обычным кодом C++.
Обновлено: поскольку у меня уже есть инструмент, который предоставляет графический интерфейс и отчеты, которые я хочу, метрики должны быть написаны или сгенерированы с использованием библиотеки / API без ручных действий. В идеале я хочу получить метрики для указанного файла / ревизии (а не для всего проекта), которые моя утилита будет автоматически перетаскивать из системы управления версиями.
ПРИМЕЧАНИЕ: я создал за это вознаграждение и был в отпуске, когда срок его действия истек ... ответ NDepends НЕ удовлетворяет меня, поскольку он смотрит не на исходный код, а на саму сборку !!!





NDepend проверяет сборки, а не исходный код. Но он может создавать очень полные отчеты и имеет множество замечательных функций для получения и использования показателей кода. Таким образом, я не знаю ни одного API NDepend.
Это не усложнит вам функции и не поддерживает сценарии (о которых я знаю), но SlickEdit Gadgets для VS имеет отличный инструмент для отчетов SLOC, который вы можете использовать из проводника решений и предоставит вам подробный отчет в файле, уровень проекта или решения.
Вы можете получить его здесь: http://www.slickedit.com/content/view/441
Вы можете найти открытый исходный код для C# SLOC и комментарии здесь: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics
Хотя мне так и не удалось найти продукт .NET, который мог бы одинаково анализировать C# и C++, мне все же удалось найти простой в использовании продукт CODECOUNT, который поддерживает эти языки и многие другие.
У него простая командная строка, в отличие от SourceMonitor, который использовался в моем проекте до тех пор, пока CODECOUNT не заменил его.
Надежным инструментом для расчета SLOC на основе командной строки является Cloc. Он поддерживает множество языков, включая C# и C++. Поддерживаемые форматы вывода: xml, csv и sql.
У этого есть API? Работает ли он с отдельными исходными файлами или со всем проектом? Довольно дорого для моих нужд и много чего мне не нужно, учитывая, что в настоящее время я делаю это с помощью SourceMonitor.