Monday, January 19, 2009

First Impressions of NDepend

I've tried out Visual NDepend a few times now. I have a need to do dependency analysis across shared libraries used by many small applications (and a few medium sized ones). The sort of questions I need to answer are straightforward. What assemblies and methods use assembly X and method Y is the most important one. This guides regression testing and code reviews. So far NDepend provides the answers to my questions and more.

It needs a proper installer. For an app that has such a professional UI, it seems strange to have no installer. The Pro version ships as a zip file. I created an NDepend folder under Program Files and unzipped it there, then created a shortcut and dropped it on my desktop. I do have to say that this process was relatively painless; I did not run into any gotchas in the course of doing this very simple manual install.

I have used the Visual NDepend app several times now. I've tried some complex code, and some relatively simple code. It's amazing to see how the dependencies ramp up quickly even for simple apps.

Be aware that you need .PDB files to get SLOC counts and other metrics, but dependencies can still be analyzed with just the DLL's.

You will want to run NDepend before using Dotfsucator or any other obfuscation product.

The feature I like best so fare is the dependency matrix. I especially like the directionality arrows that remind you of which assembly is calling which.

Labels: , ,