Introduction
NDepend is a static code analyzing tool which will help us to improve the source code quality by reducing the issues in our code.
Patrick Smacchia introduced NDepend in 2007. This tool will likely find hundreds or even thousands of issues affecting our code base. Stopping all work to try and fix all issues for weeks would be quite unproductive. This is the only tool that proposes to focus on progress from a baseline. The tool estimates the technical debt evolution since the baseline.
Recent code smells that should be fixed before committing any code to source control are highlighted in the code just edited.
NDepend is the only .NET tool that can tell the developer that over the past hour, the code just written has introduced debt that would cost for example about 30 minutes should it have to be repaid later. Knowing this, the developer can fix the code before even committing it to the source control.
In this post, we can see all the steps to download and install NDepend in our Windows machine and analyze our source code.
Please refer to NDepend official site for more information.
This tool can be useful for developers, architects, and DevOps people. This is integrated with all Visual Studio versions from 2010 to 2022. All features are available side-by-side with Visual Studio Code and Rider thanks to the standalone app VisualNDepend.exe
We can use this tool to analyze .NET 6.0, .NET 5.0, (and soon .NET 7), .NET Core and other versions, .NET Fx 4.x, ASP.NET Core, Blazor, Xamarin, Unity and UWP applications.
Download and Install NDepend on Windows machine.
NDepend is giving a 14-day fully functional trial version. We can use this trial version to explore all the features and once we are satisfied, we can buy the professional version.
We can extract the Zip file in any folder except '%ProgramFiles%\NDepend'. This might provoke problems because of Windows protection.
The Zip file includes four main executable files.
NDepend.Console.exe is a console application which is used for registering and unregistering the license of NDepend. It can also be used from your CI/CD to generate HTML+js reports about the health of your code base (see some sample reports here)
NDepend.PowerTools.exe is another console application which will help us to perform various operations via command line. Notice that power-tools are Open-Source and relies on the NDepend.API.
Currently, this tool has 18 various usages. We can choose any of these choices and hit enter key to continue.
I have chosen ‘r’. This power tool analyzed the .NET 5.0 and 6.0 public APIs.
NDepend.VisualStudioExtension.Installer.exe is an installer file. This file will install the NDepend extension in our Visual Studio version.
I am using Visual Studio 2022 on my machine. We can choose our respective versions.
You must agree to the license terms. It may take some time to complete the entire extension installation.
After successful installation, we can open Visual Studio.
We can see the new extension under the Extensions menu. We can choose the New Project option from the menu.
We can give a valid Project Name. We are going to analyze one .NET 6.0 project. I have already written one project for JWT Authentication. We can use this project to analyze with NDepend.
We can click Add VS Solution or Project button and add our existing .NET 6.0 project.
We can choose our existing project by clicking on the Browse button. We can also select multiple projects by clicking on the Check All button. It will select all the compatible projects that exist in our system.
We can click the play button on the left top corner to start the analysis.
After analysis (it just takes a few seconds), we can see new menus in the NDepend toolbar.
We can click Dashboard option.
We can see the elaborated analysis in the dashboard page. Total 355 lines in our project. Among the 355 lines, 24 lines are comments. We got an exceptionally good A rating. Still there are 5 rules violation and 15 issues in the code.
We can click on 5 violated rules and see the details below.
Same way, we can click on the single issue with priority High and see more details of the issue.
Dependency Graph is another option in the tool. We can choose this option from the menu. See a 6 minutes intro video about the graph on youtube here.
Dependency Matrix is another good option in this tool. See a 5 minutes intro video about the matrix on youtube here.
Code Metrics View is also one of the good features in this tool. See a 4 minutes intro video about this metric view on youtube here.
VisualNDepend.exe is a standalone tool which can be used to analyze the .NET projects without Visual Studio.
We can create a new project or open an existing NDepend project and analyze using this Visual tool.
All the features like Dashboard, Dependency Graph, Dependency Matrix, and Code Metrics View are available in this tool as well.
Once we have bought the professional license, we can update the license using NDepend Console tool.
Conclusion
In this post, we have seen the introduction of NDepend tool which is a static code analysis tool that can be used for improving the code quality of our .NET or .NET Core source code. We have installed the NDepend extension in Visual Studio 2022 and analyzed one existing .NET 6.0 project using this tool. We have seen various features like Dashboard, Dependency Graph, Dependency Matrix, and Code Metrics View in this tool. I have just given an introduction about NDepend tool in this post. We can see more information about this tool in an upcoming post later. Please feel free to give your valuable feedback about this article.