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.
Object-Oriented developers get more and more inspired by the functional programming approach where most states are immutable. An object is immutable if its state doesn’t change once it has been created. A method is pure if its execution doesn’t change any field state. Immutable objects and pure methods are two efficient ways to limit unexpected side-effects.
Through some dedicated CQLinq conditions and rules, NDepend lets assert immutability and purity on your classes and methods. The best place to start with this feature is to look at the list of default CQLinq rules and to read the associated documentation.
Immutable types: understand their benefits and use them
Manage state in a multi-threaded environment