Recently, I heard about a great tool called NDepend. I had been reading a lot about it on many of the different blogs that I read, but never thought much about it. Well, yesterday I finally had a chance to play with it and I found some pretty amazing stuff. This is by far the best tool I've ever had the chance to use for really getting to the meat of any software application. Yes it does several things that I have seen before like, analyzes logic for bottlenecks, uses reflection to show meta data and IL information, but it goes WAY beyond that.
You can point NDepend at any DLL or EXE and it will treat it as a database. You can then run queries against it to find out all kinds of information, such as:
Code coverage
Comment percentage
Cyclomatic complexity within methods
Methods that have more than N number of lines
Methods that have more than N number of parameters
This is only the BEGINNING. You can create custom searches to retrieve information that will find uses of bad coding practices you do not want in your code base. You can event get automated NDepend reports with each build. This is great for monitoring less experienced developers to ensure proper coding practices.
There are visuals that convey critical information about the ENTIRE code base instantaneously. I highly recommend this application to anybody who is working on someone else's code, or to help learn better coding practices as a whole.
Download NDpend