Hundreds of default code rules to check against best practices. Support for Code Query over C# LINQ (CQLinq) to easily customize rules and query code.
Code evolution and code maintenance are some of the most prominent characteristics of software engineering. Nowadays Visual Studio relies mostly on Git to to explore code changes. But there is an impedance mismatch : Git and others Source Control Manager deals with textual changes while Visual Studio deals with code: Source Control Managers don't distinguish between comments change, formatting change, code in method refactored, type added, method visibility change or field removed.
NDepend comes with some advanced code evolution and code diff features that can distinguish between code change (like method behavior changed) and text change (like comment changed). These features are not meant to compete with or replace the Source Control Manager. Instead these NDepend features can be used as a complementary handy tool to track changes with a focus on code quality related changes.
Some properties of NDepend diff are:
- The NDepend code diff feature is based on the concept of baseline: the current analysis result is compared against an older analysis result, which constitutes the baseline.
- Since NDepend v2019.3 NDepend zips source files parsed. This way source diff can be performed against the baseline out-of-the-box, no upfront configuration is needed.
- Diff can be queried. This way some rules can be enforced for code diff like the rules in the group API Breaking Changes and Code Smells Regression. More on querying diff in this documentation.
- The tool used to diff sources is by default Visual Studio, but any other source diff tool like WinMerge can be plugged from NDepend > Options > Source File Compare Tool.