Stylecop заменил FXcop? Какой продукт мы должны использовать с Visual Studio 2008?
Ответы:
Stylecop - это инструмент анализа стиля, работающий на уровне исходного кода. Он существует прежде всего для того, чтобы предоставить единый общий стиль, который управляемые проекты могут использовать, чтобы оставаться согласованными в более широком мире управляемого программного обеспечения. Он принимает решения относительно стиля, прежде всего, чтобы избежать священных войн (в конце концов, стиль почти всегда по своей сути субъективен). Не думаю, что когда-либо встречал кого-то, кому нравились бы все правила StyleCop, но это нормально . Это означает, что StyleCop в целом является хорошим компромиссом среди огромного набора существующих рекомендаций по стилю. (Если бы правила stylecop были гибко настраиваемыми, помимо простого включения / выключения, это бы лишило инструмент всей цели.)
FxCop, с другой стороны, представляет собой инструмент статического анализа, работающий на уровне управляемой сборки. Ему можно давать указания через атрибуты, потому что он может видеть атрибуты в элементах кода, например. Он обнаруживает проблемы, которые можно увидеть на «двоичном» уровне (так сказать) в отличие от синтаксического уровня.
Чтобы ответить на ваш вопрос, StyleCop не заменяет FxCop, а FxCop не заменяет stylecop. Это два разных инструмента с двумя разными целями, которые могут принести реальную пользу вашему коду.
(AKA, я бегаю с обоими. :))
Пара примеров того, что может обнаружить один, и того, что может обнаружить другой:
Нарушения StyleCop могут включать предупреждения, связанные с: пробелами, форматированием, документацией по общедоступным методам через xml-комментарии, порядком определения методов в классе.
Нарушения FxCop могут включать предупреждения, связанные с: глобализацией, сильной связью, цикломатической сложностью, потенциальным нулевым разыменованием.
stylecop работает с вашим исходным кодом C #. fxcop просматривает ваш скомпилированный код на любом языке .net.
Альтернативой или хорошим дополнением к FxCop / StyleCop могло бы стать использование коммерческого инструмента NDepend . С помощью этого инструмента можно написать правило кода для запросов LINQ (а именно CQLinq) .Отказ от ответственности: я один из разработчиков инструмента
Более 200 правил коды предлагается по умолчанию, они включают в себя дизайн , архитектуру , качество кода , эволюцию коды , соглашения об именах , мертвый код , использование .NET Fx ...
CQLinq предназначен для написания правил кода, которые можно проверить в реальном времени в Visual Studio или которые можно проверить в процессе сборки и сообщить в отчете HTML / javascript .
Сила CQLinq перед FxCop или StyleCop в том, что легко написать правило кода и сразу получить результаты. Предлагаются средства для просмотра согласованных элементов кода. Конкретно это выглядит так:
FXCop выполняет статический анализ кода ваших сборок управляемого кода. Думайте об этом как о поиске проблем, которые вызовут проблемы во время выполнения или которые повлияют на то, как разработчик считает, что код будет работать (недоступный код).
StyleCop анализирует структуру вашего кода с точки зрения текста. Думайте об этом как о проблемах, которые повлияют на вашу разработку и опыт проектирования (форматирование, соглашения об именах, документация)
Оба они ОЧЕНЬ ценные инструменты, и вы должны использовать оба, но они фокусируются на разных проблемах.
StyleCop выполняет анализ исходного кода, не очень настраивается. На самом деле это не то же самое, что FxCop, который анализирует скомпилированный код.
В статьях в Википедии об этом подробно описаны различия: