Сменил ли Stylecop FXcop? Какой продукт мы должны использовать с Visual Studio 2008?
Stylecop против FXcop
Ответ 1
Stylecop - это инструмент анализа стиля, который работает на уровне исходного кода. Он существует прежде всего для обеспечения единого общего стиля, который управляемые проекты могут использовать, чтобы оставаться согласованным в более крупном мире управляемого программного обеспечения. Он принимает решения относительно стиля прежде всего, чтобы избежать священных войн (ведь стиль почти всегда неотъемлемо субъективный). Я не думаю, что когда-либо встречал кого-то, кто любил все правила StyleCop, но это нормально. Это означает, что StyleCop - это, как правило, хороший компромисс среди обширного набора стилей, которые существуют. (Если правила стильного стиля были очень настраиваемыми, помимо простого включения/выключения их, это победит всю цель инструмента.)
FxCop, с другой стороны, представляет собой инструмент статического анализа, который работает на уровне управляемой сборки. Он может передаваться через атрибуты, потому что он может видеть атрибуты на элементах кода, например.. Он обнаруживает проблемы, которые можно увидеть на "двоичном" уровне (как бы), в отличие от синтаксического уровня.
Чтобы ответить на ваш вопрос, StyleCop не отменяет FxCop, а FxCop не отменяет стиль. Это два разных инструмента с двумя разными целями, которые могут обеспечить реальную выгоду для вашего кода.
(AKA, я бегу с обоими.:))
Несколько примеров вещей, которые можно обнаружить против вещей, которые может обнаружить другое:
Нарушения StyleCop могут включать предупреждения, связанные с: Whitespace, Formatting, Public method documentation через xml-comments, порядок определения метода внутри класса.
Нарушения FxCop могут включать предупреждение, связанное с: глобализацией, жесткой связью, циклической сложностью, потенциальными нулевыми типами.
Ответ 2
stylecop работает с вашим исходным кодом на С#. fxcop просматривает ваш скомпилированный код с любого языка .net.
Ответ 3
Альтернативой или хорошим дополнением к FxCop/StyleCop будет использование коммерческого инструмента NDepend. С помощью этого инструмента можно написать правило кода над запросами LINQ (а именно CQLinq). Отказ от ответственности: я являюсь одним из разработчиков этого инструмента
По умолчанию предлагаются более 200 правил кода, включая дизайн, архитектуру, качество кода, эволюцию кода, соглашения об именах, мертвый код, Использование .NET Fx...
CQLinq предназначен для написания кодовых правил, которые могут быть проверены в прямом эфире в Visual Studio или могут быть проверяется во время процесса сборки и сообщается в отчете HTML/javascript.
Сила CQLinq над FxCop или StyleCop заключается в том, что просто написать правило кода и получить немедленные результаты. Предлагаются средства для просмотра согласованных элементов кода. Конкретно это выглядит так:
Ответ 4
FXCop выполняет статический анализ кода ваших управляемых кодовых сборок. Подумайте об этом как о поиске проблем, которые могут вызвать проблемы во время выполнения или что повлияет на то, как разработчик полагает, что код будет работать (код недоступен).
StyleCop анализирует структуру вашего кода с текстовой точки зрения. Подумайте об этом как о проблемах, которые повлияют на ваш опыт разработки и проектирования (форматирование, соглашения об именах, документация).
Они оба очень ценные инструменты, и вы должны использовать их, но они фокусируются на разных проблемах.
Ответ 5
StyleCop выполняет анализ исходного кода, который не очень настраивается. Это не делает то же самое, что FxCop, который анализирует скомпилированный код.
В статьях Википедии об этом содержатся хорошие резюме различий: