Background
Back in June 2016, I had written the review of NDepend Pro. Recently NDepend upgraded their version and I was fortunate to have access to the latest version. This post is about my first experience of using it. I will use the same project about Martingale Theory Simulator, the source code for which is available on Github which was analyzed last time using the earlier version.
IDE Support
First thing you notice with the new version is the support for Visual Studio 2017 projects & solutions. I had received the version before the release of VS 2017. It is heartening to see the support for the latest & the greatest version of Visual Studio from day one.
Another thing I noticed immediately after launching the VisualNDepend exe is the integration with industry standard tools like VSTS, TeamCity, SonarCube and Reflector. Except for VSTS all the other tools were supported in the earlier version as well. This upgrade supports VSTS instead of TFS.
I first ran the analysis with older version of NDepend pro 6.3 and then used the same project to analyze with the new version 2017.1. The new version was able to identify the presence of existing analysis results and warned me that due to the changes in the method for analysis many things would be marked as new even if there is no change in the source code.
Analysis Results
The analysis dashboard has a layout similar to the previous edition. The look and feel is similar to the previous dashboards. There is one exception though. If you look at the screenshot below you will find the technical Debt section highlighted.
If you have used SonarCube in the past you will be able to relate to this. In my opinion, measuring technical debt and the effort required to go from one particular rating to another (from B to A in 23 mins in above example) is extremely useful. It gives a quantitative measure of the efforts required to address the Technical Debt for the project team. I like this feature the most. I was expecting it to be based on SQALE rating. It was infact using this method to calculate the debt.
Along with the snapshot, the dashboard also shows the trend for each of the measures used for code quality check.
The trends are always helpful in depicting the progression of code. In my experience I have seen teams start with excellent figures for all the quality measures (like code coverage, cyclomatic complexity etc.). As the project moves on, you start to see the drop in certain numbers. If the trend is visible it can help the teams to take necessary actions before things get out of hands.
Nowadays many teams are moving towards automated deployments. Continuous integration plays a very important part in automating different aspects of software factory. It would be important for tools like NDepend to support the required features which can be easily integrated into CI / CD pipelines.
In the installation folder I see that there is a console exe (NDependConsole.exe) available. I would like to try this option in future to see how it can be integrated with automated build process.
Conclusion
This post was just to get a feeling of what is available in the latest version of NDepend pro. I particularly liked the inclusion of Technical Debt indicator. I am yet to explore all the new features. I would like to explore the CI / CD related features in future posts. Since NDepend Pro 2017 provides support for VS 2017, cross platform development using .NET Core is another aspect on my mind. All those possibilities will come in future.
For the time being I find the little editions to the latest version quite useful. Hope you will also find usefulness of this wonderful tool for your real projects. Until next time Happy Programming.