report date | 20 Mar 2024 14:40:20 |
analysis duration | 00:21.931 |
ndepend version | 2024.1.0 Professional Developer/Build-Machine Edition |
baseline | Compare with project {NDepend 2023.2.3} most recent analysis result (analysis result obtained on 20 Mar 2024 12:06:09) |
code coverage data | Loaded! Code Coverage metrics, Queries and Rules relative to code Coverage, can be used. |
Diagrams
Application Metrics
Note: Further Application Statistics are available.
|
- The number of projects with no issues.
- Sort the column #Un-resolved ascending to list these files first.
- The number of projects with at least one unresolved issue but no new issue added since the baseline.
- Sort the column #Un-resolved Issues to list these files first.
- The number of projects with at least one new issue introduced since the baseline.
- Sort the column #New Issues to list these files first.
This occurs because the search pattern for the source files grid is set to the project's name.
Project Name | #New Issues | #Un- resolved | #Fixed | New Debt | Debt | %Cov | #Types | #Statements |
---|---|---|---|---|---|---|---|---|
NDepend.Core ● | 0 | 0 | |m100|00| 1 | 0min 0s | 0min 0s | |c94|09| 94.45% | |m100|00| 2 308 | |m100|00| 93 609 |
NDepend.Analysis ● | 0 | 0 | |m100|01| 1 | 0min 0s | 0min 0s | |c98|04| 98.62% | |m4|05| 109 | |m5|07| 4 749 |
NDepend.SourcesZipper | 0 | 0 | |m0|03| 0 | 0min 0s | 0min 0s | |c100|00| 100% | |m0|22| 1 | |m0|21| 83 |
NDepend.Platform.DotNet ● | 0 | 0 | |m0|04| 0 | 0min 0s | 0min 0s | |c98|03| 98.94% | |m14|03| 344 | |m23|03| 22 415 |
NDepend.TrendLogger ● | 0 | 0 | |m0|02| 0 | 0min 0s | 0min 0s | |c100|01| 100% | |m0|21| 1 | |m0|20| 87 |
NDepend.VisualStudioExtension3 ● | 0 | 0 | |m0|05| 0 | 0min 0s | 0min 0s | |c100|02| 100% | |m1|11| 30 | |m1|12| 1 034 |
NDepend.API ● | 0 | 0 | |m0|06| 0 | 0min 0s | 0min 0s | |c98|06| 98.03% | |m13|04| 316 | |m9|04| 8 541 |
NDepend.WebSite.4Tests ● | 0 | 0 | |m0|07| 0 | 0min 0s | 0min 0s | |c95|07| 95.75% | |m4|06| 101 | |m6|05| 6 287 |
NDepend.Console.MultiOS ● | 0 | 0 | |m0|08| 0 | 0min 0s | 0min 0s | |c95|08| 95.65% | |m0|19| 3 | |m0|22| 42 |
NDepend.SonarQube.RuleRunner ● | 0 | 0 | |m0|09| 0 | 0min 0s | 0min 0s | |c98|05| 98.15% | |m0|15| 10 | |m0|15| 271 |
NDepend.UI ● | 0 | 0 | |m0|10| 0 | 0min 0s | 0min 0s | |c83|10| 83.63% | |m34|01| 804 | |m28|02| 26 624 |
NDepend.TeamCity ● | 0 | 0 | |m0|11| 0 | 0min 0s | 0min 0s | |c82|11| 82.14% | |m2|10| 50 | |m0|13| 812 |
NDepend.VisualStudioExtension.Impl .NetFx ● | 0 | 0 | |m0|12| 0 | 0min 0s | 0min 0s | |c77|12| 77.91% | |m0|13| 20 | |m1|10| 1 630 |
NDepend.Platform.DotNet.NetFx ● | 0 | 0 | |m0|13| 0 | 0min 0s | 0min 0s | |c76|13| 76.65% | |m2|09| 54 | |m5|06| 5 497 |
NDepend.UI.NetFx ● | 0 | 0 | |m0|14| 0 | 0min 0s | 0min 0s | |c75|14| 75.13% | |m26|02| 619 | |m61|01| 57 545 |
NDepend.VisualStudioExtension .Installer ● | 0 | 0 | |m0|15| 0 | 0min 0s | 0min 0s | |c66|15| 66.84% | |m0|17| 8 | |m0|18| 196 |
NDepend.Console ● | 0 | 0 | |m0|16| 0 | 0min 0s | 0min 0s | |c66|16| 66.67% | |m0|16| 9 | |m0|16| 234 |
VisualNDepend ● | 0 | 0 | |m0|17| 0 | 0min 0s | 0min 0s | |c65|17| 65.5% | |m0|18| 8 | |m0|17| 200 |
NDepend.VisualStudioExtension.Impl ● | 0 | 0 | |m0|18| 0 | 0min 0s | 0min 0s | |c40|18| 40.67% | |m2|08| 63 | |m2|09| 2 274 |
NDepend.ILSpy.Plugin ● | 0 | 0 | |m0|19| 0 | 0min 0s | 0min 0s | |c32|19| 32.31% | |m1|12| 26 | |m1|11| 1 149 |
NDepend.ReflectorAddIn | 0 | 0 | |m0|20| 0 | 0min 0s | 0min 0s | |c16|20| 16.49% | |m0|14| 13 | |m0|14| 655 |
VSCoverageToXml | 0 | 0 | |m0|21| 0 | 0min 0s | 0min 0s | 21N/A | |m0|20| 2 | |m0|19| 100 |
NDepend.VisualStudioExtension .Common3 ● | 0 | 0 | |m0|22| 0 | 0min 0s | 0min 0s | 22N/A | |m3|07| 75 | |m3|08| 3 691 |
- The number of Quality Gates that pass.
- A Quality Gate passes if its value is lower than its warning threshold, and lower than its failure threshold.
- The number of Quality Gates that warn.
- A Quality Gate warns if its value is equal to or higher than its warning threshold, but lower than its failure threshold.
- The number of Quality Gates that fail.
- A Quality Gate fails if its value is equal to or higher than its failure threshold. If any, it means that the code is not ready for production. You have the option to stop the build process upon any Quality Gate failure.
be run on the baseline. Hence they
have blank trend and baseline value.
Name | Trend | Baseline Status | Status | Group | |||
---|---|---|---|---|---|---|---|
| 87.18 % | 87.35 % | Quality Gates | ||||
| 94.68 % | Quality Gates | |||||
| 84.72 % | Quality Gates | |||||
| 0 issues | 0 issues | Quality Gates | ||||
| 0 issues | 0 issues | Quality Gates | ||||
| 0 rules | 0 rules | Quality Gates | ||||
| 0.00022 % | 0 % | Quality Gates | ||||
| -0.012 man-days | Quality Gates | |||||
| 0 namespaces | 0 namespaces | Quality Gates | ||||
| -0.083 man-days | Quality Gates | |||||
| 0 issues | 0 issues | Quality Gates |
- The number of CQLinq rules that are not violated. Those rules are not listed below.
- Notice that Roslyn Analyzers that pass are not imported. Thus, they are not counted in this number.
- The number of CQLinq rules marked as critical that are violated. They are listed below with a top-left red tick.
- By sorting the first column, violated critical rules can be listed first.
- Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
Size
% Coverage and % Debt
Issues
Rules
Quality Gates
Debt
Application Statistics
Stat | # Occurences | Avg | StdDev | Max |
---|---|---|---|---|
Properties on interfaces | 627 interfaces | 3.19 | 13.36 | 257 properties on NDepend.Helpers.Theming.ITheme |
Methods on interfaces | 627 interfaces | 7.86 | 16.79 | 267 methods on NDepend.Helpers.Theming.ITheme |
Arguments on methods on interfaces | 4,928 methods | 0.74 | 1.14 | 13 arguments on NDepend.WebSite.Base.IDatabaseOperations.RegisterNewEvaluation2(Date,Date,String,LicenseKind,String,String,String,String,String,String,String,String,UserRole) |
Public properties on classes | 3,684 Classes | 1.58 | 12.02 | 340 public properties on NDepend.Properties.IconsResources |
Public methods on classes | 3,684 classes | 3.72 | 14.11 | 341 public methods on NDepend.Properties.IconsResources |
Arguments on public methods on classes | 13,717 methods | 0.83 | 1.42 | 37 arguments on NDepend.WebSite.Base.LicenseRecord.TryBuild_V7AndMore_LicenseRecord(String,String,LicenseKind,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,Int32,DateTime,Decimal,Decimal,String,String,Boolean,Boolean,Int32,Boolean,DateTime,DateTime,DateTime,Boolean,Expirable,LicenseRecord&,String&,String&) |
IL instructions in non-abstract methods | 32,064 methods | 46.1 | 293.5 | 34101 IL instructions in NDepend.Core.CodeQueryImpl.CQL.Parsing.ParserHelper.GetPossibleExpressionBeginningWith(String) |
Cyclomatic complexity on non abstract Methods | 32,064 Methods | 3.53 | 19.23 | CC = 1890 for NDepend.Platform.DotNet.AnalysisImpl.DependencyResolver.DepthOfInheritanceComputer.GetDepthOfInheritanceFrameworkType(String) |
MyRules 000 |
UIRefactoring 000 |
Quality Gates 1100 |
Quality Gate Pass: Percentage Coverage |
Scalar Result: 87.35 %
Quality Gate Pass: Percentage Coverage on New Code |
Scalar Result: 94.68 %
Quality Gate Pass: Percentage Coverage on Refactored Code |
Scalar Result: 84.72 %
Quality Gate Pass: Blocker Issues |
No issue matched
Quality Gate Pass: Critical Issues |
No issue matched
Quality Gate Pass: Critical Rules Violated |
No rule matched
Quality Gate Pass: Percentage Debt |
Scalar Result: 0 %
Quality Gate Pass: New Debt since Baseline |
Scalar Result: -0.012 man-days
Quality Gate Pass: Debt Rating per Namespace |
No namespace matched
Quality Gate Pass: New Annual Interest since Baseline |
Scalar Result: -0.083 man-days
Quality Gate Pass: Treat Compiler Issues As Error |
failif count > 0
context.IssuesSet.AllIssues.Where(
i => i.Rule.Provider == RuleProvider.Import &&
i.Rule.Id.StartsWith("CS"))
No issue matched
Code Smells 000 |
Hot Spots 000 |
Code Smells Regression 000 |
Object Oriented Design 000 |
Design 000 |
Architecture 000 |
API Breaking Changes 000 |
Code Coverage 000 |
Dead Code 000 |
Security 000 |
Immutability 000 |
Naming Conventions 000 |
Source Files Organization 000 |
.NET Framework Usage 000 |
Defining JustMyCode 000 |
Trend Metrics 000 |
Code Diff Summary 000 |
Roslyn Analyzers 000 |
Failed to load rule file : RuleFile22.ndrules 000 |
Rules in : RuleFile.ndrules 000 |
Rules extracted from Source Code 000 |
Abstractness versus Instability Diagram
The Abstractness versus Instability Diagram helps to detect which assemblies are potentially painful to maintain (i.e concrete and stable) and which assemblies are potentially useless (i.e abstract and instable).
- Abstractness:
If an assembly contains many abstract types (i.e interfaces and abstract classes) and few concrete types, it is considered as abstract.
- Instability: An assembly is considered stable if its types are used by a lot of types from other assemblies. In this context stable means painful to modify.
Online documentation: