If you are anything like me, then you love to have information about the code you write whether its test coverage, cyclomatic complexity, or other metrics that can give you some insight into your code.
Before the shouting starts, I’m not talking about metrics as KPIs or using them for targets that developers have to meet, I’m simply talking about information you can use to better understand your code which may in turn help you to improve the code.
If you are lucky enough to have the Premium or Ultimate edition of VS2010 or VS2008 Team Suite/Developer, then you get this functionality as part of Visual Studio, if not then you need another tool to provide you with this information. Even if you do have the native VS analysis functionality, you may find that there are tools out there that provide a lot more information that the built in tools.
is one such tool which provides metrics on your code but that isn’t all, it will allow you to delve inside the architecture of your application, allow you to diff the code, has test coverage analysis and build server integration built in.
NDepend will also work with VS2005 upwards and as it can be used independently of Visual Studio. You can actually use it even if you only have the Express editions of Visual Studio.
Disclaimer: I do not work for NDepend but I was lucky enough to be provided the software to “play with”, my opinion in this and any subsequent post is my opinion and nobody else’s.
I'm going to put together a series of posts, this being the first, on NDepend trying to give you an idea of the product and what you can, and can't, do with it.
In this post, I’m going to talk about the different editions of NDepend and give some information on each of them:
Currently, there are 3 editions of NDepend:
- Trial/Open-Source/Academic Edition
- Professional Developer Edition
- Professional Build Machine Edition
The Trial/Open-Source/Academic Edition, referred to as Trial from this point, is a good starting place for anybody interested in trying NDepend.
As you may expect though, this edition has limited functionality but to be fair to NDepend it provides the majority of features that the Professional Developer edition does so you can get a really good idea of what you can do though there are limitations imposed on the level of functionality supported for each feature.
You are able to use the trial version freely for non-commercial software but it is time limited (current downloadable version will stop working 12th March 2012) although you are able to download another version once the software has past its expiry date. The site provides guidance on using the trial version so you can decide if you really should be using it or not.
Professional Developer Edition
This is the full version that you’ll really want if you like NDepend, not only does it provide unfettered access to the majority of the functionality in the software (more on this in a bit) but also comes with additional features:
- Test coverage import – happy to use NCover or Visual Studio Coverage
- Reflector integration – provides an addin to reflector to allow you to jump into NDepend from a context menu entry
- Build Comparison/Code Diff - provides a way to diff code & builds to understand what’s changed
This edition is the one you’d most likely use day to day to check on how your code is doing and to be able to target any areas that you can see could do with some attention.
Professional Build Machine Edition
If you have a Continuous Integration server, then you can enhance it with this edition that will allow you to generate reports from NDepend in your build process on the quality of the code when compared with the metrics you’ve defined.
This integration will not stop your build, it will only generate the report that you have configured.
Above, I’ve given you a run down of some of the differences between the versions and what they do. A full comparison can be found here on the NDepend site.
As I eluded to the professional version doesn’t appear to support some of the features that the trial version does, namely those related to build server integration.
I can understand why this has been done as it allows people to download a single version of the software and try out both the interactive and build integration facets of the application.
It would be nice though to be able to get the Professional edition to do this functionality even if only for trial purposes, it is possible it already does this but the aforementioned comparison chart seems to indicate that it doesn't have those features.
The next post will probably just be a short one as I’m going to be looking at the installation of NDepend.