This project was renamed to NDepCheck and moved to GitHub!

Overview

.NET Architecture Checker is a tool that helps you to keep the (static) architecture of a .NET software clean. You specify allowed dependencies between namespaces, classes, or even methods, and .NET Architecture Checker will check whether the dependencies are violated somewhere. You will use this in Nightly Builds or Continuous Integration Builds to prevent the introduction of unwanted dependencies.

Ideally, the software architect will specify the intended dependencies (or rather, dependency rules) for some module before code is written. However, by creating a diagram of the dependencies, it is also possible to explore and document the dependencies of an existing piece of software. Both ways of proceeding are especially useful to prevent the dreaded cyclic dependencies, which usually result in a tangled monolith of interdependencies, making a software unmaintainable in a quite short period of time.

.NET Architecture Checker has proven its usefulness (and stability) in a project of 25 developers with now more than 2 million LOC.

Used Software

.NET Architecture Checker is based on Microsoft's .NET Framework.
Internally, .NET Architecture Checker uses Mono's Cecil for .NET (version 0.6) from http://www.mono-project.com/Cecil.
For graph drawing, you need DOT from AT&T's GraphViz tool library at http://www.graphviz.org.

Installation

Concepts

Usage

Examples of defining rules up-front—the preferred scenario

An example of a dependency detection session: Understanding the dependencies in Microsoft's Enterprise Library (January 2006)

Design considerations

Open items

Last edited Mar 5, 2014 at 8:20 AM by thoemmi, version 9