My bare minimum NDepend rules (and how to get them into a new project)

When you run an Ndepend anylsis over a project you will notice a certain tendency of the Code Queries (CQL) to overwhelm you. By default NDepends comes with a lot of queries against your code that can help you to have an eye on code quality metrics.

After having used NDepend for some like, I like to keep a bare minimum of rules around that I deem really important…

Capture

Capture2

Capture3

 

I haven’t seen a simple way to get my own set of CQL queries into an NDepend project, so here’s what I do to get them into a new project.

function ReplaceNode([string]$projectName) {
$here = pwd
$xml = New-Object -TypeName System.Xml.XmlDocument
$xml.Load("$here\$projectName.ndproj")
$oldNode = $xml.SelectSingleNode("/NDepend/CQLQueries")
$xml2 = New-Object -TypeName System.Xml.XmlDocument
$xml2.Load("C:\dotnet\bin\NDepend Support\CQL.xml")
$newNode = $xml2.SelectSingleNode("/CQLQueries")
$imported = $xml.ImportNode($newNode,$true)
$oldNode.ParentNode.ReplaceChild($imported,$oldNode)
$xml.Save("$here\$projectName.ndproj")
}

It assumes you are in the directory that contains your new NDepend project, requires you to enter the name and has the location of your CQL queries hard coded.