Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 63 Next »

Table of Contents

The C# Ecosystem is a Set of Plugins

The C# Ecosystem offers the following plugins:

  • Mandatory plugins:
    • .NET Core: the core plugin that defines API used by every other plugin in the ecosystem.
    • C# Core: the plugin that parses C# code source, computes metrics and detects copy-paste.
       
  • Optional plugins adding features from external tools:
    • .NET FxCop: launches FxCop analyses to detect issues related to potential bugs, tight coupling, globalization, etc.
    • .NET Gendarme: launches Gendarme analyses to detect issues related to coding bad practices, smell detection, performance, etc
    • .NET Gallio: launches Gallio to run tests and gets execution report as well as coverage report (using PartCover or OpenCover or NCover or ...).
    • .NET NDeps: launches a dependency parser tool, built on Mono Cecil, to get dependency data between assemblies and classes. 
    • C# StyleCop: launches StyleCop analyses to detect issues mainly related to coding style (formatting, comments, ...).

Installing the C# Ecosystem

  1. Install the .NET and C# plugins from the Update Center or download it into the SONARQUBE_HOME/extensions/plugins directory
    • Prior to SonarQube 3.5: you need to click on the Install button of all the 7 plugins
    • Since SonarQube 3.5: you just need to click on the Install button of the C# group, this will install everything including the .NET plugins
  2. Restart the SonarQube server

Installing .Net SDK

To run analysis, the .Net SDK has to be installed. Depending on your projects, install the right version(s) of the .Net SDK.

Then, log in as a System administrator and go to Settings > Configuration > General Settings > .NET and set the sonar.dotnet.X.Y.sdk.directory properties: absolute path to the .Net SDK X.Y installation director.

Installing Silverlight

To run analysis on solution containing Silverlight code, Silverlight has to be installed. Depending on your projects, install the right version(s) of Silverlight.

Then, log in as a System administrator and go to Settings > Configuration > General Settings > .NET and set the sonar.silverlight.X.mscorlib.location properties: absolute path to the core assembly for Silverlight X framework.

Installing the External Tools

External tools have to be installed on the Windows boxes where analyses are performed. As it is recommended to install the SonarQube server and the client(s) on different machines, this means that you can run the SonarQube server on a Linux box and run the analyses on Windows boxes.

Tool

Install required if corresponding plugin is installed?

Website

Supported version (Tested one in bold)

FxCop

YES

http://www.infoq.com/news/2010/06/FXCop-10

1.36+ (10.0)

StyleCop

NO, StyleCop 4.7 binaries are embedded in the plugin.

http://stylecop.codeplex.com

4.6+ (4.7)

Gendarme

NO, Gendarme 2.10 binaries are embedded in the plugin.

http://www.mono-project.com/Gendarme

2.10+ (2.10)

Gallio

YES

http://www.gallio.org

3.1 Update 2 + (3.2.3)

PartCover

YES if you want to use PartCover as the coverage engine.
Since PartCover is no longer maintained, OpenCover is preferred.

https://github.com/sawilde/partcover.net4
(click on the "Downloads" button)

2.2, 2.3 and 4.0 (4.0)

NCover

YES if you want to use NCover as the coverage engine

http://www.ncover.com

3.0 (3.0)
Version 4 is currently not supported. 

OpenCover

YES if you want to use OpenCover as the coverage engine.

https://github.com/sawilde/opencover

1.0.X, 2.0.X, 4.0.X (4.0.1118)

JetBrains dotCoverYES if you want to use dotCover as the coverage engine.http://www.jetbrains.com/dotcover/1.X, 2.X (1.2 & 2.0)
NDepsNO, binaries are embedded in the plugin.https://github.com/grozeille/DependencyParser 

Some notes:

  • These external tools need the .Net framework to be installed. FxCop10 and OpenCover require .Net 4 but the other ones run fine with .Net 3.5.
  • StyleCop plugin relies on MsBuild to run the analysis.

FAQ

Do I really need Java to analyze my C# projects?

Actually you do not!
The analysis can be triggered either by the SonarQube Runner or by Maven. Both are Java programs so what is the trick? The SonarQube Runner works fine with IKVM. IKVM is a very nice open source project which implements java in .NET. If you want to try it with the SonarQube Runner, you just need to edit the script sonar-runner.bat and replace the call to java by a call to IKVM:

In place of Java, a .NET process will be used. IKVM will recompiled on the fly the java jars used for the analysis to .NET dll files. The recompilation will slow down significantly the analysis. IKVM could be used to transform jar files to dll files prior to any execution (using ikvmc). The problem is that the SonarQube Runner downloads plugins jar files at the beginning of the analysis from the target SonarQube server instance. Hence we cannot pre-compiled all the jars files needed to run an analysis without changing the way the runner works. 
Right now it is not very useful to use IKVM with the SonarQube Runner. However, this looks very promising for a future Visual Studio integration (wink)

  • No labels