NDepend 這款 Visual Studio工具管理複雜的.NET代碼並獲得優質的代碼。利用NDepend，可以通過Code Metrics（代碼標準）測量軟件的質量，通過Graphs & Treemaps（圖表和樹型圖）進行查看，通過標準規則和自定義規則來執行操作。這樣一來，軟件設計就變得十分具體明確，用戶可以有效地審核代碼、輕鬆地進行大規模重構並管理升級。
專案越來越大，也越來越難一眼看出專案潛在的品質問題，這時必須利用一些第三方工具幫我們進一步分析 .NET 專案 (或整個方案)，而這套 NDepend 正是一個極其優異的產品，對於一些多人開發的專案或是有點龐大或複雜的專案，都能利用 NDepend 幫我們做品質分析，甚至於可以跟 TFS 或其他 CI 整合進開發流程，透過自訂規則確保專案在開發的過程中都能有效維持一定的程式碼品質。
NDepend project can now reference Visual Studio solution(s)
- An NDepend project file can reference one or several Visual Studio solution or project file(s).
- It is still possible to reference only assemblies, or both assemblies and VS solutions.
- The result is less maintenance: the assemblies-set analyzed remains automatically synchronized with the VS projects-set when some VS projects are added or removed from the VS solution analyzed.
- One or several textual filters on VS solution's assemblies names can be defined to refine the set of assemblies to analyze. Per default the filter -test is proposed to filter out test assemblies.
- The Attach a new NDepend project to a VS solution dialog now proposes to reference the VS solution per default.
Azure DevOps (VSTS) / TFS extension now RTM
The NDepend Azure DevOps / TFS extension is now sold per 5 user pack from the NDepend buy page.
Support for OpenCover xml coverage files
NDepend is now able to import coverage data from one or several OpenCover coverage file (.xml extension).
Support for Visual Studio coverage binary file
NDepend was able to import coverage data from one or several Visual Studio coverage XML file (.coveragexml extension).
It is now also able to import coverage data from Visual Studio coverage binary file (.coverage extension).
New Security Rules
New rules related to security:
- Don't use CoSetProxyBlanket and CoInitializeSecurity
- Don't use System.Random for security purposes
- Don't use DES/3DES weak cipher algorithms
- Don't disable certificate validation
- Review publicly visible event handlers
- Pointers should not be publicly visible
- Seal methods that satisfy non-public interfaces
- Review Commands Vulnerable to SQL Injection
- Review Data Adapters Vulnerable to SQL Injection
Others new rules:
- Don't Implement ICloneable in category .NET Framework Usage > System
- Avoid fields with same name in class hierarchy in category Naming Conventions
- Avoid various capitalizations for method name in category Naming Conventions
- Avoid mutually-dependent types in category Architecture
Improved exclusion of code elements from coverage statistics with an attribute
- Default support for the attribute System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute for all coverage technologies.
- Default support for the attributes System.Diagnostics.DebuggerNonUserCodeAttribute and System.Diagnostics.DebuggerHiddenAttribute for the Visual Studio coverage technology only.
- New flag in the NDepend code model ICodeContainer.ExcludedFromCoverageStatistics (applicable for IMethod, IType, INamespace and IAssembly).
- The trend metric # Lines of Code Uncoverable now relies on ICodeContainer.ExcludedFromCoverageStatistics and so the code queries generated when clicking the Dashboard > Coverage > Lines of code uncoverable.
- Better validation of the custom attribute provided in Project Properties > Analysis > Coverage > Settings.
20 bugs fixed
- A crash could happen in NDepend VS extension or VisualNDepend if some debt or annual-interest values were overflow. Now the "overflow" string is shown instead of these values.
- When having a lot of application and third-party assemblies to analyze, when refreshing the Project Properties > Code to Analyze panel upon assemblies resolving, grid views were slowing down with flickering.
- The version of a Visual Studio solution might not be determined. This could result in resolving failure of assemblies compiled from a solution file.
Evaluate the Health of Your Application
NDepend allows your team to accurately gauge the overall health of your application, no matter how complex it is.
Code Rule and Code Query
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.
Compare Builds and Code Diff
Compare two versions of a code base and its issues set, and browse diff and changes in any way you can think of.
Harness Test Coverage Data
Import test coverage data, and make the most of it in the NDepend feature-rich context.
Continuous Code Quality
A unique approach to continuously keep the technical debt under control and reimburse it with time.
Smart Technical Debt Estimation
For each issue, the cost to fix and the severity are estimated through customizable C# formulas.
Quality Gates are C# LINQ (CQLinq) queries that implement PASS/FAIL criteria to code quality.
In-Depth Issues Management
Explore the issues-set in a few clicks and focus your effort on what is urgent and important.
Reduce Friction Between Your Developer Teams
NDepend's reporting and analysis helps architects and developers to communicate and reduce confusion.
Continuous Integration Reporting
Integrate NDepend analysis into your build process and get highly customized and detailed reports to see progression and prevent code quality degradation.
Complexity and Diagrams
Spot too complex code at a glance thanks to unique diagramming capabilities in the .NET world.
Code Quality, 82 Code Metrics
Lines of Code, Cyclomatic Complexity, Coupling, Nesting Depth, Rank, NDepend supports them all (and much more).
Easily Manage Gigantic Projects with Hundreds of Developers
Large companies often have many large builds that work together, often in mysterious ways. NDepend's in-depth reporting and custom code queries can help your company enforce its own coding standards and maintain very complex projects.
Get Trend Charts about pretty much any code metrics to master the evolution of your application.
Explore Existing Architecture
Explore how the code is actually structured and shed light on architectural flaws kept secret.
Warnings on Build Process Health
Be warned of potential build process problems before they end up causing friction and pain.
Working with Legacy Code is Now Easier
By mapping out the structure of the project, it is much easier to see how components and dependencies are connected.
Detect Dependency Cycles
Get rid of dependency cycles between components to achieve higher code maintainability.
Enforce Immutability and Purity
NDepend helps maintaining clean side-effects free code to achieve clean concurrent programming.
Full Visual Studio integration, .NET Reflector support, super fast and lightweight analysis, NDepend is conceived for real-world programmers.
NDepend.API and Power Tools
Write your own static analyzer based on NDepend.API, or tweak existing open-sources Power Tools.
- Code Rule and Code Query over LINQ (CQLinq)
- Smart Technical Debt Estimation
- Quality Gates
- In-Depth Issues Management
- Trend Monitoring
- Harness Test Coverage Data
- Code Quality, 82 Code Metrics
- Explore Existing Architecture
- Detect Dependency Cycles
- Compare Builds and Code Diff
- Enforce Immutability and Purity
- Complexity and Diagrams
- Continuous Integration Reporting
- Warnings on Build Process Health
- NDepend.API and Power Tools
- Real-World Proof
NDepend v2019.1.1 for Developer
NDepend for Developer is dedicated to developers that use NDepend interactive UI from:
the NDepend Visual Studio extension, supported VS versions: 2017, 2015, 2013, 2012 and 2010.
or through the VisualNDepend.exe standalone executable.
Each machine on which NDepend for Developer is activated, counts as a license seat.
NDepend v2019.1.1 for Build Machine
NDepend for Build Machine is dedicated to build servers and Continuous Integration (CI) servers that integrate NDepend analysis into their build processes and produce NDepend reports
Each physical machine, each virtual machine (VM), each agent, on which NDepend for Build Machine is activated, counts as a license seat.
NDepend for Build Machine is required to integrate NDepend into: SonarQube, TeamCity, Jenkins, AppVeyor, TFS 2013, Bamboo.
NDepend Azure DevOps / TFS extension
The NDepend Azure DevOps / TFS Extension lets run an NDepend analysis after each rebuild and explore results in an interactive dashboard embedded in the AzureDevOps / TFS dashboard.
The NDepend Azure DevOps / TFS Extension is sold per 5x users allowed to access the extension dashboard. Only users accessing the hub are counted. Let's precise that the NDepend analysis is triggered no matter if the user responsible for commit is allowed to access the extension dashboard or not.
|Developer Edition||Build Machine Edition||Azure DevOps / TFS Edition|
|Integration in Visual Studio 2017, 2015, 2013, 2012 and 2010
(see screenshots here)
Quality Gates and Rules validation within Visual Studio, before commit
Interactive Dependency Graph
Interactive Dependency Matrix
Interactive Metrics Visualization through Treemaping
|Integration into the Build Process with Jenkins, AppVeyor,Bamboo, TeamCity, SonarQube, TFS 2013.
Automatic Report Production through
Running an Analysis from Power Tools and NDepend.API.
|Integration with Azure DevOps and TFS 2017 and upper versions.
Cloud Code Quality integrated within Azure DevOps, no need for VPS hosting (Virtual Private Server).
|Fail the build upon Quality Gate failure|
|Facilities to Create and Customize NDepend Project
Write Custom Rules and Queries and edit default ones.
Rich code search by generating code queries
Usage of Power Tools and NDepend.API
(except Running an Analysis)
|Analysis run that scans any Visual Studio solution and any .NET assembly
Dashboard in UI ; in Report ; in Azure DevOps / TFS
Smart Technical Debt Estimation
Quality Gates validation
Comparison against a Baseline
Import of Test Coverage Data from
Visual Studio Coverage, OpenCover, dotCover or NCover
Run Default and Custom Code Rules and Queries
Trend Metrics and Trend Charts