I saw my first preview of .NET in 1999 and that means to me that the code base of the .NET development community includes code that is approaching a decade old (not considering code that was pulled forward from pre .NET code.)

In the post DOT COM era where fiscal responsibility continues to increase and the software development life-cycle continues to DECREASE, there is a growing focus on re-tooling our existing intellectual assets.

One way to do this includes code-refactoring. (See Wikipedia Explanation here.)

Visual Studio 2005 includes some code-refactoring features (start here) and Visual Studio 2008 / ORCAS takes it to the next level (read here). 

There are even some cool FREE refactoring tools available like the one that Brad writes about here.


It’s called NDepend (a commercial product.) http://www.ndepend.com/

You know that I’m a tools (really all software) junkie and I get lots of software to evaluate and provide feedback on.

I’ve been putting NDepend through its paces for a while and I think it ROCKS.

In addition to MASSIVE refactoring, it does things like Code Quality Audits, Build Comparisons, Naming Rules, Multi Thread rationalization (COOL !), and tons more.

One of my favorite features is Code Query Language (CQL).

CQL lets me use a SQL-Like vocabulary to ask semantically specific questions about my code base.

Things like “Tell me which public methods cold be private” or “Show me all the public methods with more than 30 lines of code.”

When I first started to use NDepend I approached it as a tool to understand and improve existing code (usually that someone else wrote), now that I’m learning more about what it can do I find myself using it to analyze and improve the new code that I’m writing.

You can even plug it into Visual Studio with Reflector.

You can download a trial or apply for Open Source use here.

Hope you’ll check it out.