2015-08-19 4 views
2

Я искал расширение для интеграции VS с Sonar, чтобы избежать ожидания запуска Sonar, чтобы получить отзыв о моем коде. Живая обратная связь действительно важна в дополнение к общей обратной связи через интерфейс Sonar (предоставление общего набора правил, истории, тенденций, анализа ...).Уточнение намерений SonarLint

Я видел плагин для Eclipse, IntelliJ & в последние годы, которые выполнявшиеся анализ сонара (на основе общего набора правил), используя инкрементный анализ также ...

В последнее время, я нашел vssonarextension что, кажется, сделать довольно много то же самое (инкрементный & анализ предварительного просмотра) для проектов C# в Visual Studio. Но я также нашел официальный SonarLint (недавно переименованный из SonarQube для C#), и я не могу понять, как это работает. Кажется, он отключен от сервера SonarQube и переопределяет правила, уже реализованные на сервере (через плагин C#), я ошибаюсь? Вы можете уточнить?

ответ

4

SonarLint for Visual Studio основан на новой платформе .NET compiler (Roslyn), которая поставляется в Visual Studio 2015. Это расширение работает на отдельных машинах разработчика и (на данный момент) не подключено к серверу SonarQube.

Чтобы поделиться набором общих правил между машинами разработчика, вы можете сохранить и зафиксировать файл набора правил вместе с вашим решением. На каждой машине разработчиков этот файл набора правил будет подхвачен платформой компилятора .NET и, следовательно, SonarLint. (Если вы не хотите устанавливать расширение SonarLint VS, у вас есть возможность отправить эту функциональность по решению в виде Nuget package)

Чтобы увидеть результат анализа на сервере SonarQube, вам нужно будет используйте бегун SonarQube MsBuild (more info). Это внутренне использует сборки SonarLint и добавляет еще несколько правил, которым требуются параметры, указанные на сервере.

+0

Мой вопрос кажется шире на самом деле ... :) Я понял, что MSBuild SonarQube Runner wa это просто обертка вокруг (старого) SonarQube Runner, которая запускает анализ с использованием плагина C#. У этого плагина были правила (sonar-cssquid). Если я хорошо понимаю, правила были перенесены из плагина в SonarLint для VS? –

2
  1. SonarLint для Visual Studio интегрируется с Visual Studio 2015 и обеспечивает прямую обратную связь, как вы кодируете, о недостатках качества. Он также автоматически предлагает исправления кода. Он не имеет отношения к серверу SonarQube: вы не сможете увидеть, например, все новые проблемы, возникшие после последнего анализа SonarQube, комментировать проблемы и т. Д. Мы работаем с Microsoft, чтобы улучшить эту сверхурочную работу.
  2. vssonarextension - неофициальное расширение Visual Studio (также) для SonarQube. Он не разработан и не поддерживается SonarSource. Я понимаю, что это расширение является попыткой реплицировать плагины Eclipse/IntelliJ SonarQube.
  3. Говоря о плагинах Eclipse/IntelliJ SonarQube (вскоре они будут переименованы в SonarLint для Eclipse/IntelliJ) - это оба предшествуют SonarLint для Visual Studio, потому что они имеют это соединение с сервером SonarQube, но также отстают из-за отсутствия обратной связи в реальном времени (или близкой к реальному времени). Плагин Eclipse SonarQube имеет новую функцию для анализа файлов каждый раз, когда они сохраняются, улучшая опыт. Более того, ни один из двух не может предложить исправления кода на данный момент.
  4. MSBuild SonarQube Runner - это не просто «обертка» вокруг сонара: он захватывает информацию о вашем проекте во время фактической сборки msbuild, заставляет выполнение FxCop и так далее. Да, в версии 1.0 фаза end вызовет спутника-сонара, но это действительно просто деталь реализации. Более новые версии сервера SonarQube позволят загружать аналитические отчеты через веб-службу, вместо того чтобы полагаться на прямой доступ со стороны сонара к базе данных. Поэтому в будущем мы можем представить себе чистую реализацию C# для MSBuild SonarQube Runner, которая может работать без установки Java.
  5. Плагин SonarQube C# обеспечивает поддержку C# в SonarQube. Вы, очевидно, не можете установить SonarLint для Visual Studio в SonarQube, поскольку это расширение для Visual Studio 2015 ... Теперь плагин SonarQube C# встроен в некоторую версию SonarLint VS: он запускает исполняемый файл Windows, который будет повторно использовать его. dll, которые использует расширение Visual Studio. Таким образом, нет необходимости дублировать реализации правил.

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

Смежные вопросы