More than 150 default code rules to check against best practices. Support for Code Query over LINQ (CQLinq) to easily write custom rules and query code.
Whether you consider that your components are classes, namespaces, assemblies or a mix in between, NDepend detects dependency cycles between them. It can also help you to find the right way to get rid of a particular dependency cycle. Once dependency cycles have been removed, NDepend can continuously check your code base to warn you as soon as a cycle is accidentally created.
White papers: Control Component Dependencies
Keep your code structure clean
Layering, the Level metric and the Discourse of Method
Re-factoring, Re-Structuring and the cost of Levelizing