Какие инструменты доступны для статического анализа кода C #? Я знаю о FxCop и StyleCop. Есть ли другие? Я пробежался по NStatic раньше, но он разрабатывался для того, что кажется вечным - оно выглядит довольно гладко из того, что я мало о нем видел, поэтому было бы хорошо, если бы он когда-нибудь увидел свет.
В том же духе (это, прежде всего, мой интерес к статическому анализу), инструменты для тестирования кода на проблемы многопоточности (взаимоблокировки, условия гонки и т. Д.) Также кажутся немного скудными. Typemock Racer только что появился, так что я буду смотреть на это. Что-нибудь кроме этого?
Реальные мнения об используемых вами инструментах приветствуются.
c#
code-analysis
static-analysis
Павел Мрозовский
источник
источник
Ответы:
Инструменты обнаружения нарушения кода:
Fxcop , отличный инструмент от Microsoft. Проверьте соответствие директивам .net Framework.
Изменить октябрь 2010 года: больше не доступен в качестве отдельной загрузки. Теперь он включен в Windows SDK и после установки находится в папке Program Files \ Microsoft SDK \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe.
Редактировать февраль 2018 года . Эта функциональность теперь интегрирована в Visual Studio 2012 и более поздних версий, как Анализ кода
Clocksharp , основанный на анализе исходного кода (до C # 2.0)
Mono.Gendarme , похожий на Fxcop, но с лицензией с открытым исходным кодом (на основе Mono.Cecil )
Smokey , похожий на Fxcop и Gendarme, основан на Mono.Cecil . Больше не в разработке, основной разработчик теперь работает с командой Жандарма.
Coverity Prevent ™ для C # , коммерческий продукт
PRQA QA · C # , коммерческий продукт
PVS-Studio , коммерческий продукт
CAT.NET , надстройка для Visual Studio, помогающая выявить недостатки в безопасности. Править ноябрь 2019 года. Ссылка не работает.
CodeIt.Right
Spec #
Pex
SonarQube , FOSS и коммерческие опции для поддержки написания более чистого и безопасного кода.
Метрические инструменты качества:
Проверка инструментов стиля:
Обнаружение дублирования:
Общие инструменты рефакторинга
источник
Инструмент NDepend указан как Quality Metric Tools, но он также является инструментом обнаружения нарушений кода . Отказ от ответственности: я один из разработчиков инструмента
С помощью NDepend можно написать кодовое правило поверх запросов LINQ (то, что мы называем CQLinq) . Более 200 правил кода CQLinq предлагаются по умолчанию. Сила CQLinq в том, что написать кодовое правило легко и сразу получить результаты. Предлагаются средства для просмотра соответствующих элементов кода. Например:
Кроме того, NDepend поставляется со многими другими статическими анализами, такими как функции. Это включает:
источник
источник
Вы видели CAT.NET ?
Из рекламы -
Я использовал раннюю бета-версию, и мне показалось, что стоит обратить внимание на несколько вещей.
источник
Помимо превосходного списка от madgnome, я бы добавил детектор дублирующегося кода, который основан на командной строке (но бесплатен):
http://sourceforge.net/projects/duplo/
источник
Klocwork имеет инструмент статического анализа для C #: http://www.klocwork.com
источник
Я нахожу надстройки « Метрики кода» и « Матрицы структур зависимостей» для Reflector очень полезными.
источник
Optimyth Software только что запустила сервис статического анализа в облаке www.checkinginthecloud.com . Просто безопасно загрузите ваш код, запустите анализ и получите результаты. Нет проблем.
Он поддерживает несколько языков, включая C #. Более подробную информацию можно найти на сайте wwww.optimyth.com.
источник
Axivion Bauhaus Suite - это инструмент статического анализа, который работает с C # (а также с C, C ++ и Java).
Он предоставляет следующие возможности:
Эти функции можно запускать разово или как часть процесса непрерывной интеграции. Проблемы могут быть выделены для каждого проекта или разработчика, когда система интегрирована с системой контроля исходного кода.
источник