Анализ кода / FxCop в VS2008 - PullRequest
       10

Анализ кода / FxCop в VS2008

8 голосов
/ 18 декабря 2008

FxCops - это что-то новое для меня, но, как всегда, я хотел бы познакомиться с новыми вещами .. Из того, что я прочитал, FxCops уже включен в VS2008. Я предполагаю, что это функция «Анализ кода». Тем не менее, всякий раз, когда я пытаюсь запустить его, кажется, что он начинает восстановление и заканчивается в состоянии «Завершено восстановление». Я проверил окно вывода и там есть куча предупреждений. Но если я не ошибаюсь, для этого должно быть больше графического интерфейса, чем стена текста в моем окне вывода, верно?
Мне не хватает окна, которое должно было всплыть? Могу ли я открыть его где-нибудь? Или что-то еще мне не хватает?

Ответы [ 4 ]

3 голосов
/ 18 декабря 2008

Да, Code Analysis - хорошее дружеское имя для FxCop. Однако я не знаю о дружественном окне за списком ошибок / предупреждений, где они должны появляться, с префиксом CA.

На экране свойств проекта есть вкладка Анализ кода, где вы можете рассматривать предупреждения как ошибки, чтобы обеспечить соблюдение правил, которые вас интересуют.

2 голосов
/ 09 февраля 2009

Точно так же, как все знают, потому что мне потребовалось много времени, чтобы понять это ... Code Analysis / FxCop включен только в версии Team 2008 и Team Suite, а не в Professional Edition.

2 голосов
/ 18 декабря 2008

Вы ничего не пропустили - нет всплывающего окна.

Список проблем в окне вывода - это почти все, что вы получите в FxCop. Просто FxCop - это отдельное приложение.

Вот хорошая статья о FxCop и анализе кода:

http://geekswithblogs.net/sdorman/archive/2008/08/19/visual-studio-and-code-analysis.aspx

1 голос
/ 18 декабря 2008

Альтернативой FxCop было бы использование инструмента NDepend, который позволяет писать Правила кода для запросов C # LINQ (а именно CQLinq) . NDepend интегрирован в VS 2012, 2010 и 2008. Отказ от ответственности: я один из разработчиков инструмента

По умолчанию предлагается более 200 правил кода . Настроить существующие правила или создать свои собственные правила легко благодаря хорошо известному синтаксису C # LINQ .

Правила кода NDepend можно проверить в реальном времени в Visual Studio и во время процесса сборки в сгенерированном отчете HTML + javascript .

Вы, кажется, обеспокоены количеством ложных срабатываний . Чтобы сохранить количество ложных срабатываний на низком уровне, CQLinq предлагает уникальные возможности для определения набора JustMyCode с помощью специальных запросов кода с префиксом notmycode . Дополнительные объяснения об этой функции можно найти здесь . Вот, например, два notmycode запроса по умолчанию:

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

warnif count > 0 
from m in Methods
where m.CyclomaticComplexity > 20 &&
      m.WasAdded() || m.CodeWasChanged()
select new { m, m.CyclomaticComplexity }
...