Patrick, of NDepend, emailed me last week letting me know of a cool new feature in NDepend Professional, the Build Comparison feature.
"Demo Build Comparison
Explains how to know precisely what have been changed between 2 builds, how coupling has been impacted and how to detect breaking compatibilities issues. "
After checking out that demo, I thought it was time again to check out NDepend. It seems that I've blogged about NDepend once a year, for the last three years, so I'm due...
NDepend is a "... tool for .NET developers that allows controlling the complexity, the quality and the evolution of .NET code. NDepend analyses source code and assemblies and generates a report. A GUI allows to visualize, zoom and control any part of the code. "
For me, my interest in NDepend is based on the key word, "evolution." I'm looking at it to help me manage not just my code, but the libraries/assembles I rely on. I want to see, in code, what has changed between different versions of the third party assemblies I use.
For example, I use the GData .Net assembly in a couple projects and have a pretty aggressive release cycle. I want to use NDepend to help me determine the differences between the current GData assembly and the one I'm using. To help me determine if I want to actually use it, help me focus my testing on new/changed areas that I'm actually calling, etc, etc.
Also I think NDepend will be critical for me the next time a new, yet already existing project, is thrown over the wall to me... In playing with it, it looks like one great way to visually explore the code and structure of a project. A way to help me get a bigger picture of a project, its dependences, etc.
And last, I like the UI. :)
I have yet to use a treemap in a project, but I keep looking for the right opportunity. NDepend's usage of a treemap makes understanding the code just that much easier.
There are other touches I dig too. The entire UI seems designed to help you deal with lots of data, yet with the ability to zoom in to help you focus on the details too. The Zoom on the grids/pivot tables is pretty cool. It lets you zoom in and out on them, again to let you see the Big Pic or to focus on a specific method... That's pretty neat UI (and something I want in my apps ;).
Oh yeah, I almost forgot. You can easily (samples are included) add NDepend reporting/analysis to your build process (MSBuild, NAnt and CruiseControl.NET). So you can get automated NDepend reports with each build...
Okay, enough for now... There's a free trial/Open Source/academic version which, while having limited features, gives you a good feel for the utility.
The Professional version is not hobby coder cheap, but for work not too expensive. It's one of those things that would take you forever to write yourself and when you need it, you'll really need it...
[Full Disclosure Notice: I've been offered a free Professional License if helped create a little buzz about NDepend. But I've been blogging about how cool NDepend is for that last three years, without that incentive... Also I'd blog about the Build Comparison feature anyway, as it's pretty cool and something I can really see a use for. And my wife is not about to let me buy NDepend Pro for my OSS projects, so if I can do something I was already going to do anyway, and get something cool free for it... well... ;) ]