Что такое StyleCop, как инструменты для VB.NET
см. также Статический код VB.NET Anaylsis
Для лучшего или худшего теперь у нас есть VB.NET документ стандартов кодирования, основанный на стандарте кодирования С#, как это предусмотрено в StyleCop.
Например
- количество пробелов, которые вы должны поместить в каждую сторону знака "+" и т.д.
- все члены экземпляра (поля и методы!) должны иметь доступ как "me.fieldName"
- Все общие члены должны быть доступны как "className.fieldName"
Как я обычно думаю:
Если в документе требований это должен быть проверен автоматическим Система
Я ищу (в идеале бесплатные) инструменты, которые будут проверять, что не хватает правил для кода VB.NET, поскольку это проблемы стиля, которые не входят в скомпилированный вывод, FxCop не пригодится.
(Я бы лично соответствовал скорее тем, что мы просто проверяем важные вещи, такие как дублированный код и единую разумность для каждого класса (так что не более нескольких тысяч линейных классов!), но поскольку мне нужно придерживаться стандартного документа кодирования, я хочу есть инструмент, который поможет мне сделать это.)
см. также Принудительное использование имени класса при доступе к общему члену.
О щедрости.
Я ищу список инструментов проверки кода VB.NET, с коротким сроком выполнения каждого инструмента и его ограничений. Если инструменты не являются бесплатными, включите в них некоторый идеал стоимости.
Есть ли у кого-нибудь опыт использования CodeRush/Refactor! или ReSharper с VB.NET для проверки этого типа проблем стиля кодирования?
Ответы
Ответ 1
Я не знаю бесплатных инструментов анализа исходного кода с хорошей поддержкой VB. Однако есть, по крайней мере, два коммерческих инструмента, которые могут быть подходящими:
Лично я предпочитаю механизм создания правил CodeIt.Right, поэтому я бы предпочел, чтобы были запланированы значительные разработки пользовательских правил. Однако, если вы просто хотите использовать правила вне коробки, Code Auditor поставляется с довольно большим количеством правил стиля кода, чем CodeIt.Right, большинство встроенных правил которых нацелены на скомпилированный IL (например, FxCop).
Ответ 2
Единственные, о которых я знаю, это:
Microsoft FxCop
Конечно, это работает только на скомпилированных сборках, поэтому не дает той же функциональности, что и StyleCop, и, конечно же, не поможет в таких вещах, как схемы именования.
Однако самое близкое:
Aivosto Project Analyzer v9.0 для Visual Basic, VB.NET и VBA
Полная версия не является бесплатной, но это самая близкая вещь для StyleCop для VB.NET, которую я могу найти.
Было несколько вызовов для версии Microsoft StyleCop версии VB.NET, например, в этот поток на code.msdn.microsoft.com. Тот же поток также дает хорошее представление о том, почему версия VB.NET не существует.
Ответ 3
Я использую ReSharper на ежедневной основе, и я нахожу это подходящим как для форматирования кода, так и для решения проблем с именами. Он позволяет настроить, как должно выполняться именование, как отображаются проблемы (подсказка, предложение, предупреждение и т.д.) И предоставляет точный форматировщик кода (пробел, паратезис, разрывы строк, этот определитель и т.д.).
Обратите внимание, что я не знаю, может ли он запускаться в пакетном режиме.
Ответ 4
В VB-компилятор уже встроен очень хороший инструмент стиля. Он называется Option Explicit On, помещает его в начало файла исходного кода или использует Tools + Options + Project и Solutions + VB Defaults, Option Explicit = On. Если это не было включено ранее, может возникнуть ошибка при компиляции кода после его изменения.
Если он чист или уже включен, считайте, что вы на 95% близки к написанию чистого кода на С# и что язык больше не имеет значения.
Ответ 5
Turning Option Explicit по умолчанию всегда отличная идея и должна быть стандартной практикой. Я бы сказал, что он должен быть включен по умолчанию в VS из коробки. Но он не близок к тому, чтобы применять правила, установленные для StyleCop для С#, и не позволяет вам создавать свои собственные правила.
Вся причина существования StyleCop заключается в том, что FxCop работает только на скомпилированных сборках, оставляя веб-проекты на холоде для аналогичного инструмента. С помощью StyleCop веб-разработчики получают то же самое превосходное правило и жесткую интеграцию VS. Это отличный инструмент для любого разработчика С#.
К сожалению, это только С#, версия VB будет удовлетворять большому сообществу, которому осталось что-то похожее.