Introduction To SonarQube
Introduction To SonarQube
What is SonarSource?
Sonar is an open source platform used by developers to manage source code quality and
consistency. It covers a wide area of code quality checkpoints ranging from styling errors,
potential bugs, and code defects to design inefficiencies, code duplication, lack of test
coverage, and excess complexity.
Poor code quality leads to low team velocity, application decommissioning, production
crashes, bad company reputation. Sonar Source provides the solution to improve
Maintainability, Reliability, and Security. Sonar Source has been developed with the main
objective in mind: make code quality management accessible to everyone with minimal
effort.
SonarQube and SonarLint are products of Sonar Source.
SonarQube
SonarQube (formerly known as Sonar) is an open source tool suite to measure and analyze to
the quality of source code. It is implemented in Java language and is able to analyze the code
of about 20 different programming languages. Anything that affects code base, from minor
styling details to critical design errors, is inspected and evaluated by SonarQube, which helps
software application developers to identify the issue and its effect.
Main Features
1. Write Clean Code
o Overall Health
Discovered issues can either be Unreachable source code, a Bug, Vulnerability, Code Smell,
Coverage or Duplication. Each category has a corresponding number of issues. Dashboard page
shows where you stand in terms of quality in a glimpse of an eye.
o Enforce Quality gate
To fully enforce a code quality practice across all teams, you need to set up a Quality Gate. A
Quality Gate is a set of conditions the project must meet before it can qualify for production
release. The overview of the project will show the results of the SonarQube analysis.
o Shared rulesets
SonarQube provides the facility to create your own quality profiles, in which you can define
Sonar Rules which can be shared among different projects.
How it helps for different users in Organization
Developers
As SonarQube provide details of different errors and coding quality level analysis it helps
developers to improve the code quality and also helps to improve the coding skills. The
developer can improve knowledge about the coding standards, best practices and etc. Regularly
use of the SonarQube leads developers to identify the coding standard violations and they tend
to adhere to those standards even at the time of coding.
Technical management
SonarQube supports easy integration with version control system to track down the code
changes along with developer’s detail who made those changes. This helps to identify the
developer’s performance in coding practices.
Non-technical management
Non-Technical management wants to see how measurable code quality going on. They don’t
understand complexity and duplications. But with the matrix and total numbers, it is easy to
make a decision for each project.
Current Limitation
The Roslyn analyzers NuGet packages are currently applied on every project, including those
which were excluded from the SonarQube analysis, and the test projects.
You are free to change the rulesets for each project manually, and we don’t warn you yet if you
loosen the quality by removing rules
The main difference between SonarQube and the other tools is that the code analysis runs
externally in your CI server (continue integration server) and the result is sent to SonarQube.
Then, this analysis is processed by the SonarQube server which is stored in their database.
Which will require extra effort in configuring your CI server?
What is SonarLint?
SonarLint is a free, open source, and available in the Visual Studio Gallery, which supports
C#, VB.NET which will help you fix code quality issues before they even exist.
SonarLint plugin for Visual Studio supports only in Visual Studio 2015 and Visual Studio
2017.
Features of SonarLint
1. Instant View
SonarLint will provide developers with instant feedback in their IDEs as they are writing code,
like with a spell checker. SonarLint also shows already existing issues in the code and enables
developers to differentiate what issues they introduced.
2. On-the-fly Detection
Issues appear as you type code. SonarLint provides the facility to identify problems as you
write code, just like a spell checker for text.
3. Smart Education
Error descriptions come with issue detection. It provides Rich documentation which will let
you understand issues in details and explain what is coding best practices.
It gives a code example and shows how to resolve the example issue which is easy to
understand the issue. In this way, it is powerful tools for developer developers to learn.
4. Push Notifications
It tracks Quality Gate status like failed, passed, and warning. It also gives an analysis has
assigned a new issue to you.
5. Connected Mode
The user can connect to a SonarQube server and bind your Visual Studio solution to a
SonarQube project. This operation automatically updates the rulesets of the solution and
attaches the solution to the required Roslyn analyzers.
Difference between SonarLint and SonarQube
SonarLint SonarQube
It concentrates on what you are It analyzes all the source code for
writing run time while coding. all files in frequent interval.