Dependency Graph

Online documentation:

Dependency Matrix

Online documentation:

Visualizing Code Metrics through Treemaping

With the Online documentation, understand how Treemaping can help you see patterns in your code base, that would be hard to spot with other ways.

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).

Online documentation:

For beginners: Where to start

Quick Tips

Code Quality from Now!

Main
Main \ Rules
Main \ Rules \ Code Quality
Main \ Rules \ Code Quality Regression
Main \ Rules \ Object Oriented Design
Main \ Rules \ Design
Main \ Rules \ Architecture and Layering
Main \ Rules \ API Breaking Changes
Main \ Rules \ Dead Code
Main \ Rules \ Visibility
Main \ Rules \ Purity - Immutability - Side-Effects
Main \ Rules \ Naming Conventions
Main \ Rules \ Source Files Organization
Main \ Rules \ .NET Framework Usage
Main \ Rules \ .NET Framework Usage \ System
Main \ Rules \ .NET Framework Usage \ System.Collection
Main \ Rules \ .NET Framework Usage \ System.Runtime.InteropServices
Main \ Rules \ .NET Framework Usage \ System.Threading
Main \ Rules \ .NET Framework Usage \ System.Xml
Main \ Rules \ .NET Framework Usage \ System.Globalization
Main \ Group of Queries \ Object Oriented Design
Main \ Group of Queries \ API Breaking Changes
Main \ Group of Queries \ Code Diff Summary
Main \ Group of Queries \ Dead Code
Main \ Metrics \ Application Statistics
Main \ Metrics \ Assemblies Metrics
Main \ Metrics \ Namespaces Metrics
Main \ Metrics \ Types Metrics
Main \ Assemblies Dependencies
Main \ Namespaces Dependencies
Main \ Types Dependencies
Main \ Build Order
Main \ Analysis Log

NDepend Report Build Summary


» Application name :
» Report build date :
» Analysis Duration :
» NDepend version :
             ccnet v1.5 RTM
05/17/2012 19:52:18
00:11
4.0.0.6435
        
[ For beginners: Where to start ]    [ Quick tips ]    [ NDepend site ]

The present HTML report is a summary of data gathered by the analysis.
It is recommended to use the NDepend interactive UI capabilities
to make the most of NDepend by mastering all aspects of your code.
» Baseline for Comparison :  Compare with project {ccnet v1.5 RC1} most recent analysis (analysis made on 2012 May - 17 Thursday 19:50)
» Code Coverage Data :   Loaded! Code Coverage metrics, Queries and Rules relative to code Coverage, can be used.

Diagrams      

.NET Assemblies Dependency Graph      graphHelp

[ scaled ]
   [ full ]
Dependency Graph
.NET Assemblies Dependency Matrix      matrixhHelp

[ scaled ]
   [ full ]
Dependency Matrix
Treemap View      treemaphHelp

[ scaled ]
   [ full ]
Treemap Metric View
Abstractness versus Instability      abstInsthHelp

[ scaled ]
   [ full ]
Abstractness vs. Instability

Application Metrics

                    Note: Further Application Statistics are available.
# Lines of code : 28,224
# Assemblies : 13
# Namespaces : 76
# Types : 1,126
# Methods : 8,293
# Fields : 3,756
# C# source files : 992
# IL instruction : 188,974
# Lines of comment : 28,181
# Classes : 889
# Abstract classes : 24
# Interfaces : 171
# Value types : 4
# Exception types : 25
# Attribute types : 1
# Delegate types : 21
# Enumeration types : 62
# Generic methods : 17
# Generic types : 8
Third Party Usage
 # Assemblies used : 24
 # Namespaces used : 84
 # Types used : 730
 # Methods used : 2,028
 # Fields used : 119
Percentage …
… code coverage : 53.76%
  … of comment : 49%
 … of public types : 87.83%
 … of public methods : 78.9%
 … of classes with public field(s) : 15.9%

Rules summary  
 35 93 0 

This section lists all Rules violated, and Rules or Queries with Error
  • » Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
  • » Number of Rules violated : 93

Summary of Rules violated

graphHelp    NDepend rules report too many flaws on existing code base?
Adopt the Code Quality from Now! strategy.
   
graphHelp    Rules can be checked live at development-time,
from within Visual Studio. Online documentation.

warningCritical    Some Critical Rules are violated.
Critical Rules can be used to break the build process if violated. Online documentation.

Name # Matches Elements Group
Name # Matchs Elements Group
warningCritical   Types too big - critical
4 typesCode Quality
warningCritical   Methods too complex - critical
1 methodsCode Quality
warningCritical   Methods with too many parameters - critical
2 methodsCode Quality
warning   Quick summary of methods to refactor
105 methodsCode Quality
warning   Methods too big
60 methodsCode Quality
warning   Methods too complex
11 methodsCode Quality
warning   Methods potentially poorly commented
145 methodsCode Quality
warning   Methods with too many parameters
21 methodsCode Quality
warning   Methods with too many local variables
7 methodsCode Quality
warning   Methods with too many overloads
9 methodsCode Quality
warning   Types with too many methods
65 typesCode Quality
warning   Types with too many fields
19 typesCode Quality
warning   Types with poor cohesion
40 typesCode Quality
warning   From now, all methods added or refactored should respect basic quality principles
20 methodsCode Quality Regression
warning   From now, all types added or refactored should respect basic quality principles
32 typesCode Quality Regression
warning   From now, all types added or refactored should be 100% covered by tests
85 typesCode Quality Regression
warning   Avoid making complex methods even more complex (Source CC)
5 methodsCode Quality Regression
warning   Avoid making complex methods even more complex (IL CC)
3 methodsCode Quality Regression
warning   Avoid making large methods even larger
12 methodsCode Quality Regression
warning   Avoid adding methods to a type that already had many methods
12 typesCode Quality Regression
warning   Avoid adding instance fields to a type that already had many instance fields
3 typesCode Quality Regression
warning   Base class should not use derivatives
2 typesObject Oriented Design
warning   Class shouldn't be too deep in inheritance tree
8 typesObject Oriented Design
warning   Class with no descendant should be sealed if possible
725 typesObject Oriented Design
warning   Overrides of Method() should call base.Method()
131 methodsObject Oriented Design
warning   A stateless class or structure might be turned into a static type
33 typesObject Oriented Design
warning   Non-static classes should be instantiated or turned to static
241 typesObject Oriented Design
warning   Methods should be declared static if possible
185 methodsObject Oriented Design
warning   Constructor should not call a virtual methods
13 methodsObject Oriented Design
warning   Don't assign static fields from instance methods
3 fieldsObject Oriented Design
warning   Avoid empty interfaces
2 typesObject Oriented Design
warning   Avoid custom delegates
21 typesDesign
warning   Types with disposable instance fields must be disposable
39 typesDesign
warning   Classes that are candidate to be turned into structures
317 typesDesign
warning   Avoid namespaces with few types
28 namespacesDesign
warning   Nested types should not be visible
38 typesDesign
warning   Declare types in namespaces
1 namespacesDesign
warning   Instances size shouldn't be too big
52 typesDesign
warning   Attribute classes should be sealed
1 typesDesign
warning   Don't use obsolete types, methods or fields
32 methodsDesign
warning   Don't forget to implement methods that throw NotImplementedException
103 methodsDesign
warning   Avoid namespaces mutually dependent
36 namespacesArchitecture and Layering
warning   Avoid namespaces dependency cycles
5 namespacesArchitecture and Layering
warning   Assemblies with poor cohesion (RelationalCohesion)
3 assembliesArchitecture and Layering
warningCritical   API Breaking Changes: Methods
35 methodsAPI Breaking Changes
warningCritical   API Breaking Changes: Fields
21 fieldsAPI Breaking Changes
warningCritical   API Breaking Changes: Interfaces and Abstract Classes
8 typesAPI Breaking Changes
warning   Potentially dead Types
1 typesDead Code
warning   Potentially dead Methods
44 methodsDead Code
warning   Methods that could have a lower visibility
2368 methodsVisibility
warning   Types that could have a lower visibility
736 typesVisibility
warning   Fields that could have a lower visibility
582 fieldsVisibility
warning   Fields should be declared as private
510 fieldsVisibility
warning   Constructors of abstract classes should be declared as protected or private
6 typesVisibility
warning   Avoid public methods not publicly visible
97 methodsVisibility
warning   Fields should be marked as ReadOnly when possible
311 fieldsPurity - Immutability - Side-Effects
warning   Structures should be immutable
2 typesPurity - Immutability - Side-Effects
warning   Property Getters should be immutable
28 methodsPurity - Immutability - Side-Effects
warning   Avoid static fields with a mutable field type
22 fieldsPurity - Immutability - Side-Effects
warning   A field must not be assigned from outside its parent hierarchy types
75 fieldsPurity - Immutability - Side-Effects
warning   Instance fields should be prefixed with a 'm_'
2388 fieldsNaming Conventions
warning   Static fields should be prefixed with a 's_'
179 fieldsNaming Conventions
warning   Interface name should begin with a 'I'
5 typesNaming Conventions
warning   Abstract base class should be suffixed with 'Base'
6 typesNaming Conventions
warning   Methods name should begin with an Upper character
157 methodsNaming Conventions
warning   Avoid types with name too long
18 typesNaming Conventions
warning   Avoid methods with name too long
47 methodsNaming Conventions
warning   Avoid fields with name too long
6 fieldsNaming Conventions
warning   Avoid having different types with same name
14 typesNaming Conventions
warning   Avoid naming types and namespaces with the same identifier
3 typesNaming Conventions
warning   Methods prefixed with 'Try' should return a boolean
2 methodsNaming Conventions
warning   Avoid defining multiple types in a source file
15 typesSource Files Organization
warning   Namespace name should correspond to file location
1025 typesSource Files Organization
warning   Types with source files stored in the same directory, should be declared in the same namespace
7 namespacesSource Files Organization
warning   Types declared in the same namespace, should have their source files stored in the same directory
3 namespacesSource Files Organization
warning   Mark assemblies with CLSCompliant
13 assembliesSystem
warning   Mark assemblies with ComVisible
9 assembliesSystem
warning   Mark attributes with AttributeUsageAttribute
1 typesSystem
warning   Remove calls to GC.Collect()
1 methodsSystem
warning   Don't call GC.Collect() without calling GC.WaitForPendingFinalizers()
1 methodsSystem
warning   Do not raise too general exception types
54 methodsSystem
warning   Do not raise reserved exception types
1 methodsSystem
warning   Uri fields should be of type System.Uri
30 fieldsSystem
warning   Types should not extend System.ApplicationException
23 typesSystem
warning   Don't use .NET 1.x HashTable and ArrayList
49 methodsSystem.Collection
warning   P/Invokes should be static and not be visible
1 methodsSystem.Runtime.InteropServices
warning   Move P/Invokes to NativeMethods class
8 methodsSystem.Runtime.InteropServices
warning   NativeMethods class should be static and internal
1 typesSystem.Runtime.InteropServices
warning   Don't create threads explicitely
3 methodsSystem.Threading
warning   Don't use dangerous threading methods
15 methodsSystem.Threading
warning   ReaderWriterLock Acquire[Reader/Writer]Lock/ReleaseLock must be both called within the same method
1 methodsSystem.Threading
warning   Method should not return concrete XmlNode
19 methodsSystem.Xml
warning   Float and Date Parsing must be culture aware
2 methodsSystem.Globalization

Application Statistics

Stat # Occurences Avg StdDev Max
Stat # Occurences Avg StdDev Max
Properties on interfaces 171 interfaces 1.293.7632 properties on ThoughtWorks.CruiseControl.Core.IIntegrationResult
Methods on interfaces 171 interfaces 5.239.2870 methods on ThoughtWorks.CruiseControl.Remote.ICruiseServer
Arguments on methods on interfaces 894 methods 0.940.957 arguments on ThoughtWorks.CruiseControl.WebDashboard.Dashboard.IProjectGrid.GenerateProjectGridRows(ProjectStatusOnServer[],String,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)
Public properties on classes 889 Classes 1.63.3935 public properties on ThoughtWorks.CruiseControl.Core.IntegrationResult
Public methods on classes 889 classes 6.358.3475 public methods on ThoughtWorks.CruiseControl.Core.Project
Arguments on public methods on classes 5,643 methods 0.820.9513 arguments on ThoughtWorks.CruiseControl.Remote.ProjectStatus..ctor(String,String,ProjectActivity,IntegrationStatus,ProjectIntegratorState,String,DateTime,String,String,DateTime,String,String,Int32)
IL instructions in non-abstract methods 7,366 methods 25.6561.491856 IL instructions in Validator.MainForm.InitializeComponent()
Cyclomatic complexity on non abstract Methods 7,366 Methods 2.092.98 CC = 76 for ThoughtWorks.CruiseControl.Core.Util.PathUtils.Match(String,String,Boolean)

Assemblies Metrics

If you wish to define thresholds on assemblies' Code Metrics, consider writing some Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Assemblies # lines of code# IL instruction # Types # Abstract Types # lines of comment% Comment% CoverageAfferent CouplingEfferent CouplingRelational CohesionInstabilityAbstractnessDistance
Assemblies # lines of code# IL instruction # Types # Abstract Types # lines of comment% Comment% CoverageAfferent CouplingEfferent CouplingRelational CohesionInstabilityAbstractnessDistance
ThoughtWorks.CruiseControl.Remote v1.5.7256.129031930715319499563502761463.420.350.120.37
Objection v1.5.7256.11721266146178838281.430.780.430.15
ThoughtWorks.CruiseControl.Core v1.5.7256.11400295579528991790856711164534.120.80.190.01
ThoughtWorks.CruiseControl.WebDashboard v1.5.7256.1317022071209412116402802184.610.20.14
ThoughtWorks.CruiseControl.CCTrayLib v1.5.7256.1617838763176242108254313723.1810.140.1
cctray v1.5.7256.151240201826-0461100
ccnet v1.5.7256.181527504636-0461.6100
ccservice v1.5.7256.1118769303924-0580.67100
CCValidator v1.5.7256.11226821221169536-02301.3310.050.03
CCCmd v1.0.0.0141855201710-0421100
ThoughtWorks.CruiseControl.Core.Extensions v1.5.7256.124172316472-022110.330.24
ThoughtWorks.CruiseControl.Remote.Extensions v1.5.7256.1614497211865-0411.7110.290.2
ThoughtWorks.CruiseControl.MSBuild v1.5.7256.197764304029-0481100

Types Metrics : Code Quality

For a particular Code Metric defined for types, values in red represent the 15% highest values.
If you wish to define thresholds on types' Code Metrics, consider writing some Rule.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
If the code base analyzed has too many types, NDepend doesn't list Types Metrics to avoid a too big report. The section Types Metrics can be activated by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Hide section Types Metrics if...
It is recommended to use the NDepend interactive UI capabilities to browse large applications.

Types Metrics : Code Members and Inheritance

Type Name # Instance Methods Nb Static Methods Nb Properties # Fields# Children ClassesDepth Of Inheritance Tree Type Namespace
Type Name Nb Instance Methods Nb Static Methods Nb Properties Nb FieldsNb Children ClassesDepth Of Inheritance Tree Type Namespace

Types Metrics : Lack Of Cohesion Of Methods and Association Between Classes

Namespaces Metrics

If you wish to define thresholds on namespaces' Code Metrics, consider writing some Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces # lines of code# IL instruction # Types # lines of comment% Comment% CoverageAfferent CouplingEfferent Coupling
Namespaces # lines of code# IL instruction # Types # lines of comment% Comment% CoverageAfferent CouplingEfferent Coupling
ThoughtWorks.CruiseControl.Remote.dll::ThoughtWorks.CruiseControl.Core32232538100212
ThoughtWorks.CruiseControl.Remote.dll::ThoughtWorks.CruiseControl.Remote1179751258262068563624
ThoughtWorks.CruiseControl.Remote.Security11770714369757774
ThoughtWorks.CruiseControl.Remote.Events271467887610042
ThoughtWorks.CruiseControl.Remote.Messages27215803261869791010
ThoughtWorks.CruiseControl.Remote.Monitor578421918606515608
ThoughtWorks.CruiseControl.Remote.Parameters232155165447049129
ThoughtWorks.CruiseControl.Remote.Mono46633601361-413
Objection169124813318364
Objection.NetReflectorPlugin31810010013
ThoughtWorks.CruiseControl.Core.dll::ThoughtWorks.CruiseControl.Core241816868100199445672442
ThoughtWorks.CruiseControl.Core.Tasks2265171266939996362726
ThoughtWorks.CruiseControl.Core.Triggers244154484386483212
ThoughtWorks.CruiseControl.Core.Queues2231660112725492113
ThoughtWorks.CruiseControl.Core.Logging624964348717
ThoughtWorks.CruiseControl.Core.Label1961386103676585117
ThoughtWorks.CruiseControl.Core.dll::ThoughtWorks.CruiseControl.Core.Extensions130816574363309
ThoughtWorks.CruiseControl.Core.State9364841255798312
ThoughtWorks.CruiseControl.Core.Util17851188282142244663036
ThoughtWorks.CruiseControl.Core.Util.Log4NetTrace342703165823817
ThoughtWorks.CruiseControl.Core.Sourcecontrol2963200097036345571526
ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic39827841012567564016
ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial15387961034092010
ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce267170381864189013
ThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper1579373993890010
ThoughtWorks.CruiseControl.Core.Security73944203514656668320
ThoughtWorks.CruiseControl.Core.Security.Auditing835585136629618
ThoughtWorks.CruiseControl.Core.Config2711837293045291924
ThoughtWorks.CruiseControl.Core.Config.Preprocessor1791224111754969215
ThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation10475413151273214
ThoughtWorks.CruiseControl.Core.Publishers100263862810885283326
ThoughtWorks.CruiseControl.Core.Publishers.Statistics2361392144126372121
001---31
ThoughtWorks.CruiseControl.WebDashboard.dll::ThoughtWorks.CruiseControl.Remote4271969-23
ThoughtWorks.CruiseControl.WebDashboard.ServerConnection2081429920549451013
ThoughtWorks.CruiseControl.WebDashboard.IO83558114434481715
ThoughtWorks.CruiseControl.WebDashboard.Configuration915949211816718
ThoughtWorks.CruiseControl.WebDashboard.Resources634191624923510
ThoughtWorks.CruiseControl.WebDashboard.MVC170111716116321811
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise684211356771410
ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET17119215-08
ThoughtWorks.CruiseControl.WebDashboard.MVC.View4934851269913
ThoughtWorks.CruiseControl.WebDashboard.Dashboard69151495713015481734
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.Actions483714324064315
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.GenericPlugins5642451106678112
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators293222412-111
ThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport23315169156407219
ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport376268718269412127
ThoughtWorks.CruiseControl.WebDashboard.Plugins.Security7038642425-113
ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration49133581236942-020
ThoughtWorks.CruiseControl.WebDashboard.Plugins.FarmReport125711611838217
ThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport11582410452830620
ThoughtWorks.CruiseControl.WebDashboard.Plugins.ViewAllBuilds645110621617
ThoughtWorks.CruiseControl.WebDashboard.Plugins.DeleteProject39336538498407
ThoughtWorks.CruiseControl.WebDashboard.Plugins.Statistics996784362657115
ThoughtWorks.CruiseControl.WebDashboard.Plugins.CCTray30181200-09
ThoughtWorks.CruiseControl.WebDashboard.Plugins.AddProject631139798-01
ThoughtWorks.CruiseControl.WebDashboard.Plugins.RSS320100-16
ThoughtWorks.CruiseControl.CCTrayLib14689616442347615
ThoughtWorks.CruiseControl.CCTrayLib.Presentation4428275395512702241230
ThoughtWorks.CruiseControl.CCTrayLib.Properties137611451-19
ThoughtWorks.CruiseControl.CCTrayLib.Monitoring7394877573693357723
ThoughtWorks.CruiseControl.CCTrayLib.Configuration236144417602086710
ThoughtWorks.CruiseControl.CCTrayLib.X103172015192234134111
ThoughtWorks.CruiseControl.CCTrayLib.Security196120076424-010
ThoughtWorks.CruiseControl.CCTrayLib.Speech5334527114919
ThoughtWorks.CruiseControl.CCTrayLib.Growl5037120036112
ThoughtWorks.CruiseControl.CCTray51240247-014
ThoughtWorks.CruiseControl.Console8152753228-014
ThoughtWorks.CruiseControl.Service11876933020-020
Validator119780381964835-033
Validator.Properties2917421432-110
ThoughtWorks.CruiseControl.CCCmd141855200-09
ThoughtWorks.CruiseControl.Core.Extensions.dll::ThoughtWorks.CruiseControl.Core.Extensions2417235067-07
ThoughtWorks.CruiseControl.Remote.Extensions.dll::ThoughtWorks.CruiseControl.Remote61449710062-010
ThoughtWorks.CruiseControl.MSBuild9776432419-04

Code Quality  
 0 13 0 

warningCritical    Critical Rule warning: Types too big - critical
// <Name>Types too big - critical</Name>
warnif count > 0 from t in JustMyCode.Types where 
   
t.NbLinesOfCode > 500 ||
   
t.NbILInstructions > 3000
   
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode, t.NbILInstructions,
                
t.Methods, t.Fields }

// Types where NbLinesOfCode > 500 are extremely complex 
// and should be split in a smaller group of types. 
// See the definition of the NbLinesOfCode metric here 
// http://www.ndepend.com/Metrics.aspx#NbLinesOfCode

// In average, a line of code is compiled to around
// 6 IL instructions. This is why the code metric
// NbILInstructions is used here, in case the 
// code metric NbLinesOfCode is un-available because
// of missing assemblies corresponding PDB files.
// See the definition of the NbILInstructions metric here 
// http://www.ndepend.com/Metrics.aspx#NbILInstructions

4 types matched

types# lines of code (LOC)# IL instructionsMethodsFieldsFull Name
types# lines of code (LOC)# IL instructionsMethodsFieldsFull Name
MainForm6384 36043 methods51 fieldsValidator.MainForm
MainForm5293 38052 methods62 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
Project5123 29493 methods26 fieldsThoughtWorks.CruiseControl.Core.Project
CruiseServer4073 05571 methods19 fieldsThoughtWorks.CruiseControl.Core.CruiseServer

Statistics

Stat   # lines of code (LOC)   # IL instructions   Methods   Fields
Sum:2 08614 08900
Average:521.53 52200
Minimum:4073 05500
Maximum:6384 36000
Standard deviation:81.898498.1200
Variance:6 707248 11900
warningCritical    Critical Rule warning: Methods too complex - critical
// <Name>Methods too complex - critical</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.ILCyclomaticComplexity > 40 && 
  
m.ILNestingDepth > 5
  
orderby m.ILCyclomaticComplexity descending,
          
m.ILNestingDepth descending
select new { m, m.ILCyclomaticComplexity, m.ILNestingDepth }

// Methods with ILCyclomaticComplexity > 40 and ILNestingDepth  > 4
// are really too complex and should be split 
// in smaller methods, or even types.
// See the definition of the ILCyclomaticComplexity metric here 
// http://www.ndepend.com/Metrics.aspx#ILCC
// See the definition of the ILNestingDepth metric here 
// http://www.NDepend.com/Metrics.aspx#ILNestingDepth

1 methods matched

methodIL Cyclomatic Complexity (ILCC)IL Nesting DepthFull Name
methodIL Cyclomatic Complexity (ILCC)IL Nesting DepthFull Name
HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)436ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController .HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)

Statistics

Stat   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth
Sum:436
Average:436
Minimum:436
Maximum:436
Standard deviation:00
Variance:00
warningCritical    Critical Rule warning: Methods with too many parameters - critical
// <Name>Methods with too many parameters - critical</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbParameters > 8
  
orderby m.NbParameters descending
select new { m, m.NbParameters }

// Methods with more than 8 parameters might be painful to call 
// and might degrade performance. You should prefer using 
// additional properties/fields to the declaring type to 
// handle numerous states. Another alternative is to provide 
// a class or structure dedicated to handle arguments passing 
// (for example see the class System.Diagnostics.ProcessStartInfo 
//  and the method System.Diagnostics.Process.Start(ProcessStartInfo))
//  See the definition of the NbParameters metric here 
// http://www.ndepend.com/Metrics.aspx#NbParameters

2 methods matched

methods# ParametersFull Name
methods# ParametersFull Name
.ctor(String,String,ProjectActivity,IntegrationStatus ,ProjectIntegratorState,String,DateTime,String,String,DateTime,String ,String,Int32)13ThoughtWorks.CruiseControl.Remote.ProjectStatus..ctor(String,String ,ProjectActivity,IntegrationStatus,ProjectIntegratorState,String ,DateTime,String,String,DateTime,String,String,Int32)
.ctor(ICruiseRequest,IBuildNameRetriever,IRecentBuildsViewBuilder ,IPluginLinkCalculator,IVelocityViewGenerator,ILinkFactory ,ILinkListFactory,IFarmService,IFingerprintFactory)9ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder. .ctor(ICruiseRequest,IBuildNameRetriever,IRecentBuildsViewBuilder ,IPluginLinkCalculator,IVelocityViewGenerator,ILinkFactory ,ILinkListFactory,IFarmService,IFingerprintFactory)

Statistics

Stat   # Parameters
Sum:22
Average:11
Minimum:9
Maximum:13
Standard deviation:2
Variance:4
warningCritical    Rule warning: Quick summary of methods to refactor
// <Name>Quick summary of methods to refactor</Name>
warnif count > 0 from m in JustMyCode.Methods where 
                                    
// Code Metrics' definitions
  m.NbLinesOfCode > 30 ||           // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
  m.NbILInstructions > 200 ||       // http://www.ndepend.com/Metrics.aspx#NbILInstructions
  m.CyclomaticComplexity > 20 ||    // http://www.ndepend.com/Metrics.aspx#CC
  m.ILCyclomaticComplexity > 50 ||  // http://www.ndepend.com/Metrics.aspx#ILCC
  m.ILNestingDepth > 5 ||           // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
  m.NbParameters > 5 ||             // http://www.ndepend.com/Metrics.aspx#NbParameters
  m.NbVariables > 8 ||              // http://www.ndepend.com/Metrics.aspx#NbVariables
  m.NbOverloads > 6                 // http://www.ndepend.com/Metrics.aspx#NbOverloads

select new { m, m.NbLinesOfCode, m.NbILInstructions, m.CyclomaticComplexity, 
             
m.ILCyclomaticComplexity, m.ILNestingDepth, 
             
m.NbParameters, m.NbVariables, m.NbOverloads } 

105 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 105 methods matched. All matched methods could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched methods.
methods# lines of code (LOC)# IL instructionsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting Depth# Parameters# Variables# OverloadsFull Name
methods# lines of code (LOC)# IL instructionsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting Depth# Parameters# Variables# OverloadsFull Name
.ctor(String,String,ProjectActivity,IntegrationStatus ,ProjectIntegratorState,String,DateTime,String,String,DateTime,String ,String,Int32)19631101303ThoughtWorks.CruiseControl.Remote.ProjectStatus..ctor(String,String ,ProjectActivity,IntegrationStatus,ProjectIntegratorState,String ,DateTime,String,String,DateTime,String,String,Int32)
InitialisePassword()251234410101ThoughtWorks.CruiseControl.Remote.EncryptingConnection .InitialisePassword()
Update(QueueSnapshot)55305123021121ThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue.Update (QueueSnapshot)
OnWatcherUpdate(Object,ServerUpdateArgs)92513184832201ThoughtWorks.CruiseControl.Remote.Monitor.Server.OnWatcherUpdate (Object,ServerUpdateArgs)
Update(ProjectStatus)4931620252141ThoughtWorks.CruiseControl.Remote.Monitor.Project.Update(ProjectStatus )
Add(Option)210110109ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(Option)
Add(String,Action<String>)110110209ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String,Action <String>)
Add(String,String,Action<String>)535221319ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String,String ,Action<String>)
Add(String,OptionAction<String,String>)110110209ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String ,OptionAction<String,String>)
Add(String,String,OptionAction<String,String>)535221319ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String,String ,OptionAction<String,String>)
Add<T>(String,Action<T>)110110209ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<T>(String,Action <T>)
Add<T>(String,String,Action<T>)111110309ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<T>(String,String ,Action<T>)
Add<TKey,TValue>(String,OptionAction<TKey,TValue>)110110209ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<TKey,TValue> (String,OptionAction<TKey,TValue>)
Add<TKey,TValue>(String,String,OptionAction<TKey,TValue>)111110309ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<TKey,TValue> (String,String,OptionAction<TKey,TValue>)
WriteOptionPrototype(TextWriter,Option,Int32&)2723112193341ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.WriteOptionPrototype (TextWriter,Option,Int32&)
Instantiate(Type,String,Object[])312159143382Objection.ObjectionStore.Instantiate(Type,String,Object[])
Integrate(IntegrationRequest)4530112172171ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate (IntegrationRequest)
InitialiseSecureConnection(LoginRequest)1276110191ThoughtWorks.CruiseControl.Core.CruiseServerClient .InitialiseSecureConnection(LoginRequest)
Integrate()4127420325051ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Integrate()
.ctor(IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)30158461711ThoughtWorks.CruiseControl.Core.CruiseServer..ctor (IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)
CheckSecurity(String,String,SecurityPermission,Nullable<SecurityEvent> )5241623264481ThoughtWorks.CruiseControl.Core.CruiseServer.CheckSecurity(String ,String,SecurityPermission,Nullable<SecurityEvent>)
Integrate(IntegrationRequest)4122610153161ThoughtWorks.CruiseControl.Core.Project.Integrate(IntegrationRequest)
PublishResults(IIntegrationResult,Dictionary<String,String>)4224713253282ThoughtWorks.CruiseControl.Core.Project.PublishResults (IIntegrationResult,Dictionary<String,String>)
Execute(IIntegrationResult)64422192651151ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.Execute (IIntegrationResult)
GetRequestStatus(HttpRequestSettings)72556234151181ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.GetRequestStatus (HttpRequestSettings)
Validate(IConfiguration,ConfigurationTrace ,IConfigurationErrorProcesser)26141101543111ThoughtWorks.CruiseControl.Core.Tasks.BaseExecutableTask.Validate (IConfiguration,ConfigurationTrace,IConfigurationErrorProcesser)
Execute(IIntegrationResult)262049154181ThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)3425014194181ThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask.Execute (IIntegrationResult)
FindProperty(Object,String)3219011145281ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility.FindProperty (Object,String)
ConvertXmlToDynamicValues(NetReflectorTypeTable,XmlNode,String[])70459203853221ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility .ConvertXmlToDynamicValues(NetReflectorTypeTable,XmlNode,String[])
Read(XmlNode,NetReflectorTypeTable)2623210165271ThoughtWorks.CruiseControl.Core.Tasks.MergeFileSerialiser.Read(XmlNode ,NetReflectorTypeTable)
Execute(IIntegrationResult)271847112191ThoughtWorks.CruiseControl.Core.Tasks.SequentialTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)3419071421121ThoughtWorks.CruiseControl.Core.Tasks.ModificationReaderTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)35262101731101ThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.Execute (IIntegrationResult)
GetProcessArguments(IIntegrationResult)37369462121ThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask .GetProcessArguments(IIntegrationResult)
GetProcessArguments(IIntegrationResult)343089141141ThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask .GetProcessArguments(IIntegrationResult)
ImportCode(XmlDocument)56323102831211ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.ImportCode (XmlDocument)
Enqueue(IIntegrationQueueItem)4631914263151ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.Enqueue (IIntegrationQueueItem)
Generate(IIntegrationResult)242089151141ThoughtWorks.CruiseControl.Core.Label.AssemblyVersionLabeller.Generate (IIntegrationResult)
RetrieveUserInformation(String)32208451161ThoughtWorks.CruiseControl.Core.Util.LdapHelper .RetrieveUserInformation(String)
Match(String,String,Boolean)102620507653151ThoughtWorks.CruiseControl.Core.Util.PathUtils.Match(String,String ,Boolean)
MatchPath(String,String,Boolean)83479345243161ThoughtWorks.CruiseControl.Core.Util.PathUtils.MatchPath(String,String ,Boolean)
KillPid(Int32)381939132161ThoughtWorks.CruiseControl.Core.Util.KillUtil.KillPid(Int32)
LogonUser(String,String,String,Int32,Int32,IntPtr&)00N/A00601ThoughtWorks.CruiseControl.Core.Util.Impersonation.LogonUser(String ,String,String,Int32,Int32,IntPtr&)
DownloadFolder(String,String,Boolean)4224713164371ThoughtWorks.CruiseControl.Core.Util.FtpLib.DownloadFolder(String ,String,Boolean)
UploadFolder(String,String,Boolean)372249152381ThoughtWorks.CruiseControl.Core.Util.FtpLib.UploadFolder(String,String ,Boolean)
GetTheList(List<Modification>,String,String,Boolean)4223113164481ThoughtWorks.CruiseControl.Core.Util.FtpLib.GetTheList(List <Modification>,String,String,Boolean)
ParseChangeSet(StringBuilder)251494831121ThoughtWorks.CruiseControl.Core.Sourcecontrol.VstsHistoryParser .ParseChangeSet(StringBuilder)
Parse(TextReader,DateTime,DateTime)261274633111ThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeamHistoryParser .Parse(TextReader,DateTime,DateTime)
Parse(TextReader,DateTime,DateTime)341495823161ThoughtWorks.CruiseControl.Core.Sourcecontrol.MksHistoryParser.Parse (TextReader,DateTime,DateTime)
CreateNewModification(String,String,String,String,String,String)836231611ThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .CreateNewModification(String,String,String,String,String,String)
GetModifications(IIntegrationResult,IIntegrationResult)50314172432121ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications (IIntegrationResult,IIntegrationResult)
GetFolderVersion(IIntegrationResult,IIntegrationResult)36208121432111ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317 .GetFolderVersion(IIntegrationResult,IIntegrationResult)
ParseModificationsFromLogEntry(XmlNode,DateTime,DateTime)2915381243101ThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .ParseModificationsFromLogEntry(XmlNode,DateTime,DateTime)
Parse(TextReader,DateTime,DateTime)2815912137371ThoughtWorks.CruiseControl.Core.Sourcecontrol.AccuRevHistoryParser .Parse(TextReader,DateTime,DateTime)
GetCommitModifications(Match,DateTime,DateTime)262144923101ThoughtWorks.CruiseControl.Core.Sourcecontrol.GitHistoryParser .GetCommitModifications(Match,DateTime,DateTime)
GetTypeString(String)2518724273101ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser .GetTypeString(String)
AnalyzeModifications(IList)3421591931131ThoughtWorks.CruiseControl.Core.Sourcecontrol.PvcsHistoryParser .AnalyzeModifications(IList)
Parse(String,String,DateTime)352259174391ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyParser .Parse(String,String,DateTime)
Open()332108114051ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand .Open()
Parse(TextReader,DateTime,DateTime)311625823111ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4HistoryParser .Parse(TextReader,DateTime,DateTime)
.ctor(String,SecurityRight,SecurityRight,SecurityRight,SecurityRight ,UserName[])832110602ThoughtWorks.CruiseControl.Core.Security.RolePermission..ctor(String ,SecurityRight,SecurityRight,SecurityRight,SecurityRight,UserName[])
Initialise()2313651040101ThoughtWorks.CruiseControl.Core.Security.FileBasedSessionCache .Initialise()
eval_constant(String)2718971231101ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_constant(String)
SendMessage(String,String,String,String,String,String)443242621ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.SendMessage (String,String,String,String,String,String)
GetMailMessage(String,String,String,String,String,String,String[])20100673741ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher .GetMailMessage(String,String,String,String,String,String,String[])
get_Recipients()5028221263041ThoughtWorks.CruiseControl.Core.Publishers.EmailMessage.get_Recipients ()
Execute(IIntegrationResult)341928133191ThoughtWorks.CruiseControl.Core.Publishers.PackagePublisher.Execute (IIntegrationResult)
GenerateFileList(IIntegrationResult)302019155191ThoughtWorks.CruiseControl.Core.Publishers.PackagePublisher .GenerateFileList(IIntegrationResult)
Process(XmlDocument,String)21109572291ThoughtWorks.CruiseControl.Core.Publishers.Statistics .StatisticsChartGenerator.Process(XmlDocument,String)
GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)N/AN/AN/AN/AN/A7N/A1ThoughtWorks.CruiseControl.WebDashboard.Dashboard.IProjectGrid .GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)
GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)1385572751ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectGrid .GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)
.ctor(ICruiseRequest,IBuildNameRetriever,IRecentBuildsViewBuilder ,IPluginLinkCalculator,IVelocityViewGenerator,ILinkFactory ,ILinkListFactory,IFarmService,IFingerprintFactory)1033110901ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder. .ctor(ICruiseRequest,IBuildNameRetriever,IRecentBuildsViewBuilder ,IPluginLinkCalculator,IVelocityViewGenerator,ILinkFactory ,ILinkListFactory,IFarmService,IFingerprintFactory)
Execute(ICruiseRequest)3624971221101ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder .Execute(ICruiseRequest)
.ctor(ICruiseRequest,ILinkFactory,IVelocityViewGenerator ,IDashboardConfiguration,ISessionRetriever,ISessionStorer)724110601ThoughtWorks.CruiseControl.WebDashboard.Dashboard.LoginViewBuilder. .ctor(ICruiseRequest,ILinkFactory,IVelocityViewGenerator ,IDashboardConfiguration,ISessionRetriever,ISessionStorer)
.ctor(ICruiseRequest,ILinkFactory,IVelocityViewGenerator,IFarmService ,IFingerprintFactory,ISessionRetriever)724110601ThoughtWorks.CruiseControl.WebDashboard.Dashboard .TopControlsViewBuilder..ctor(ICruiseRequest,ILinkFactory ,IVelocityViewGenerator,IFarmService,IFingerprintFactory ,ISessionRetriever)
ForceBuildIfNecessary(IRequest)232179122131ThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction.ForceBuildIfNecessary(IRequest)
.ctor(IFarmService,IVelocityTransformer,IVelocityViewGenerator ,ILinkFactory,ILinkListFactory,IFingerprintFactory,ICruiseUrlBuilder ,ISessionRetriever)930110801ThoughtWorks.CruiseControl.WebDashboard.Dashboard.RecentBuildLister. .ctor(IFarmService,IVelocityTransformer,IVelocityViewGenerator ,ILinkFactory,ILinkListFactory,IFingerprintFactory,ICruiseUrlBuilder ,ISessionRetriever)
SetupObjectSourceForRequest(HttpContext)1301 136264531161ThoughtWorks.CruiseControl.WebDashboard.Dashboard .CruiseObjectSourceInitializer.SetupObjectSourceForRequest(HttpContext )
.ctor(IAction,IVelocityViewGenerator,ObjectSource,IVersionProvider ,IFingerprintFactory,IUrlBuilder,IPluginConfiguration,ICruiseRequest)930110801ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators .SiteTemplateActionDecorator..ctor(IAction,IVelocityViewGenerator ,ObjectSource,IVersionProvider,IFingerprintFactory,IUrlBuilder ,IPluginConfiguration,ICruiseRequest)
Execute(ICruiseRequest)231423511101ThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport .ServerSecurityConfigurationServerPlugin.Execute(ICruiseRequest)
Execute(ICruiseRequest)41315111711121ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ProjectReportProjectPlugin.Execute(ICruiseRequest)
UpdateConfigurationSetting(XmlDocument,ConfigurationSetting,Boolean)272629143351ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration.Package .UpdateConfigurationSetting(XmlDocument,ConfigurationSetting,Boolean)
Execute(ICruiseRequest)3630613152151ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .AdministerAction.Execute(ICruiseRequest)
SaveServer(IRequest,Hashtable)44250101722111ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .AdministerAction.SaveServer(IRequest,Hashtable)
.ctor(IProjectSpecifier,String,Boolean,Boolean,Boolean,Boolean)724110601ThoughtWorks.CruiseControl.WebDashboard.Plugins.DeleteProject .DeleteProjectModel..ctor(IProjectSpecifier,String,Boolean,Boolean ,Boolean,Boolean)
Equals(Object)465977111ThoughtWorks.CruiseControl.WebDashboard.Plugins.DeleteProject .DeleteProjectModel.Equals(Object)
PlaySound(Byte[],Boolean,Boolean,Boolean,Boolean,Boolean)1466772615ThoughtWorks.CruiseControl.CCTrayLib.Audio.PlaySound(Byte[],Boolean ,Boolean,Boolean,Boolean,Boolean)
PlaySound(String,Boolean,Boolean,Boolean,Boolean,Boolean)2817514142625ThoughtWorks.CruiseControl.CCTrayLib.Audio.PlaySound(String,Boolean ,Boolean,Boolean,Boolean,Boolean)
BindX10Controls(X10Configuration)32197231131ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl .BindX10Controls(X10Configuration)
.ctor(ICCTrayMultiConfiguration,ISynchronizeInvoke,MainForm)28214451331ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController. .ctor(ICCTrayMultiConfiguration,ISynchronizeInvoke,MainForm)
HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)4840622436251ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController .HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)
<UpdateProjectList>b__10(List<ServerSnapshotChangedEventArgs>)291778204191ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController. <UpdateProjectList>b__10(List<ServerSnapshotChangedEventArgs>)
InitializeComponent()2721 505110011ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .InitializeComponent()
InitializeComponent()3031 752110021ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .InitializeComponent()
.ctor(CheckBox,TextBox,Button,Button,OpenFileDialog,String)1256110601ThoughtWorks.CruiseControl.CCTrayLib.Presentation .SelectAudioFileController..ctor(CheckBox,TextBox,Button,Button ,OpenFileDialog,String)
updateButton_Click(Object,EventArgs)41277122842111ThoughtWorks.CruiseControl.CCTrayLib.Presentation .DisplayChangedProjects.updateButton_Click(Object,EventArgs)
DisplayIntegrationQueueInTreeViewNode()35203101440111ThoughtWorks.CruiseControl.CCTrayLib.Presentation .IntegrationQueueTreeNodeAdaptor.DisplayIntegrationQueueInTreeViewNode ()
.ctor(String,String,Int32,Parity,Int32,StopBits)956221612ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11LowLevelDriver..ctor (String,String,Int32,Parity,Int32,StopBits)
.ctor(Cm11LowLevelDriver+CM11aHouseCode,String,Int32,Parity,Int32 ,StopBits)1347110601ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker..ctor (Cm11LowLevelDriver+CM11aHouseCode,String,Int32,Parity,Int32,StopBits)

Statistics

Stat   # lines of code (LOC)   # IL instructions   Cyclomatic Complexity (CC)   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth   # Parameters   # Variables   # Overloads
Sum:3 66123 8378971 397240285684191
Average:35.202229.28.708713.4332.30772.71436.57691.819
Minimum:00100001
Maximum:3031 7525076713229
Standard deviation:41.405253.667.843912.9021.7382.41315.33982.2794
Variance:1 71464 34161.527166.463.02075.823128.5135.1958
warningCritical    Rule warning: Methods too big
// <Name>Methods too big</Name>
warnif count > 0 from m in JustMyCode.Methods where 
   
m.NbLinesOfCode > 30 ||
   
m.NbILInstructions > 200
   
orderby m.NbLinesOfCode descending,
           
m.NbILInstructions descending
select new { m, m.NbLinesOfCode, m.NbILInstructions }

// Methods where NbLinesOfCode > 30 or NbILInstructions > 200
// are extremely complex and should be split in smaller methods.
// See the definition of the NbLinesOfCode metric here 
// http://www.ndepend.com/Metrics.aspx#NbLinesOfCode

60 methods matched

methods# lines of code (LOC)# IL instructionsFull Name
methods# lines of code (LOC)# IL instructionsFull Name
InitializeComponent()3031 752ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .InitializeComponent()
InitializeComponent()2721 505ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .InitializeComponent()
SetupObjectSourceForRequest(HttpContext)1301 136ThoughtWorks.CruiseControl.WebDashboard.Dashboard .CruiseObjectSourceInitializer.SetupObjectSourceForRequest(HttpContext )
Match(String,String,Boolean)102620ThoughtWorks.CruiseControl.Core.Util.PathUtils.Match(String,String ,Boolean)
OnWatcherUpdate(Object,ServerUpdateArgs)92513ThoughtWorks.CruiseControl.Remote.Monitor.Server.OnWatcherUpdate (Object,ServerUpdateArgs)
MatchPath(String,String,Boolean)83479ThoughtWorks.CruiseControl.Core.Util.PathUtils.MatchPath(String,String ,Boolean)
GetRequestStatus(HttpRequestSettings)72556ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.GetRequestStatus (HttpRequestSettings)
ConvertXmlToDynamicValues(NetReflectorTypeTable,XmlNode,String[])70459ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility .ConvertXmlToDynamicValues(NetReflectorTypeTable,XmlNode,String[])
Execute(IIntegrationResult)64422ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.Execute (IIntegrationResult)
ImportCode(XmlDocument)56323ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.ImportCode (XmlDocument)
Update(QueueSnapshot)55305ThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue.Update (QueueSnapshot)
CheckSecurity(String,String,SecurityPermission,Nullable<SecurityEvent> )52416ThoughtWorks.CruiseControl.Core.CruiseServer.CheckSecurity(String ,String,SecurityPermission,Nullable<SecurityEvent>)
GetModifications(IIntegrationResult,IIntegrationResult)50314ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications (IIntegrationResult,IIntegrationResult)
get_Recipients()50282ThoughtWorks.CruiseControl.Core.Publishers.EmailMessage.get_Recipients ()
Update(ProjectStatus)49316ThoughtWorks.CruiseControl.Remote.Monitor.Project.Update(ProjectStatus )
HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)48406ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController .HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)
Enqueue(IIntegrationQueueItem)46319ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.Enqueue (IIntegrationQueueItem)
Integrate(IntegrationRequest)45301ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate (IntegrationRequest)
SaveServer(IRequest,Hashtable)44250ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .AdministerAction.SaveServer(IRequest,Hashtable)
PublishResults(IIntegrationResult,Dictionary<String,String>)42247ThoughtWorks.CruiseControl.Core.Project.PublishResults (IIntegrationResult,Dictionary<String,String>)
DownloadFolder(String,String,Boolean)42247ThoughtWorks.CruiseControl.Core.Util.FtpLib.DownloadFolder(String ,String,Boolean)
GetTheList(List<Modification>,String,String,Boolean)42231ThoughtWorks.CruiseControl.Core.Util.FtpLib.GetTheList(List <Modification>,String,String,Boolean)
Execute(ICruiseRequest)41315ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ProjectReportProjectPlugin.Execute(ICruiseRequest)
updateButton_Click(Object,EventArgs)41277ThoughtWorks.CruiseControl.CCTrayLib.Presentation .DisplayChangedProjects.updateButton_Click(Object,EventArgs)
Integrate()41274ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Integrate()
Integrate(IntegrationRequest)41226ThoughtWorks.CruiseControl.Core.Project.Integrate(IntegrationRequest)
KillPid(Int32)38193ThoughtWorks.CruiseControl.Core.Util.KillUtil.KillPid(Int32)
GetProcessArguments(IIntegrationResult)37369ThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask .GetProcessArguments(IIntegrationResult)
StartConfigurationLoad()37256Validator.MainForm.StartConfigurationLoad()
UploadFolder(String,String,Boolean)37224ThoughtWorks.CruiseControl.Core.Util.FtpLib.UploadFolder(String,String ,Boolean)
Execute(ICruiseRequest)36306ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .AdministerAction.Execute(ICruiseRequest)
Execute(ICruiseRequest)36249ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder .Execute(ICruiseRequest)
GetFolderVersion(IIntegrationResult,IIntegrationResult)36208ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317 .GetFolderVersion(IIntegrationResult,IIntegrationResult)
Execute(IIntegrationResult)35262ThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.Execute (IIntegrationResult)
Parse(String,String,DateTime)35225ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyParser .Parse(String,String,DateTime)
DisplayIntegrationQueueInTreeViewNode()35203ThoughtWorks.CruiseControl.CCTrayLib.Presentation .IntegrationQueueTreeNodeAdaptor.DisplayIntegrationQueueInTreeViewNode ()
GetProcessArguments(IIntegrationResult)34308ThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask .GetProcessArguments(IIntegrationResult)
Execute(IIntegrationResult)34250ThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask.Execute (IIntegrationResult)
AnalyzeModifications(IList)34215ThoughtWorks.CruiseControl.Core.Sourcecontrol.PvcsHistoryParser .AnalyzeModifications(IList)
Execute(IIntegrationResult)34192ThoughtWorks.CruiseControl.Core.Publishers.PackagePublisher.Execute (IIntegrationResult)
Execute(IIntegrationResult)34190ThoughtWorks.CruiseControl.Core.Tasks.ModificationReaderTask.Execute (IIntegrationResult)
Parse(TextReader,DateTime,DateTime)34149ThoughtWorks.CruiseControl.Core.Sourcecontrol.MksHistoryParser.Parse (TextReader,DateTime,DateTime)
ValidateElement(HtmlElement,XmlNode,Int32,Configuration)33490Validator.MainForm.ValidateElement(HtmlElement,XmlNode,Int32 ,Configuration)
Open()33210ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand .Open()
RetrieveUserInformation(String)32208ThoughtWorks.CruiseControl.Core.Util.LdapHelper .RetrieveUserInformation(String)
BindX10Controls(X10Configuration)32197ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl .BindX10Controls(X10Configuration)
FindProperty(Object,String)32190ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility.FindProperty (Object,String)
Instantiate(Type,String,Object[])31215Objection.ObjectionStore.Instantiate(Type,String,Object[])
Parse(TextReader,DateTime,DateTime)31162ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4HistoryParser .Parse(TextReader,DateTime,DateTime)
ValidateData(XmlDocument)30268Validator.MainForm.ValidateData(XmlDocument)
GenerateFileList(IIntegrationResult)30201ThoughtWorks.CruiseControl.Core.Publishers.PackagePublisher .GenerateFileList(IIntegrationResult)
InternalValidation(Configuration)28230Validator.MainForm.InternalValidation(Configuration)
.ctor(ICCTrayMultiConfiguration,ISynchronizeInvoke,MainForm)28214ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController. .ctor(ICCTrayMultiConfiguration,ISynchronizeInvoke,MainForm)
UpdateConfigurationSetting(XmlDocument,ConfigurationSetting,Boolean)27262ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration.Package .UpdateConfigurationSetting(XmlDocument,ConfigurationSetting,Boolean)
WriteOptionPrototype(TextWriter,Option,Int32&)27231ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.WriteOptionPrototype (TextWriter,Option,Int32&)
Read(XmlNode,NetReflectorTypeTable)26232ThoughtWorks.CruiseControl.Core.Tasks.MergeFileSerialiser.Read(XmlNode ,NetReflectorTypeTable)
GetCommitModifications(Match,DateTime,DateTime)26214ThoughtWorks.CruiseControl.Core.Sourcecontrol.GitHistoryParser .GetCommitModifications(Match,DateTime,DateTime)
Execute(IIntegrationResult)26204ThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTask.Execute (IIntegrationResult)
Generate(IIntegrationResult)24208ThoughtWorks.CruiseControl.Core.Label.AssemblyVersionLabeller.Generate (IIntegrationResult)
ForceBuildIfNecessary(IRequest)23217ThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction.ForceBuildIfNecessary(IRequest)

Statistics

Stat   # lines of code (LOC)   # IL instructions
Sum:3 05820 443
Average:50.967340.72
Minimum:23149
Maximum:3031 752
Standard deviation:48.066281.86
Variance:2 31079 447
warningCritical    Rule warning: Methods too complex
// <Name>Methods too complex</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.CyclomaticComplexity > 20 ||
  
m.ILCyclomaticComplexity > 40 ||
  
m.ILNestingDepth > 5
  
orderby m.CyclomaticComplexity descending,
          
m.ILCyclomaticComplexity descending,
          
m.ILNestingDepth descending
select new { m, m.CyclomaticComplexity, 
                
m.ILCyclomaticComplexity,
                
m.ILNestingDepth  }

// Methods where CyclomaticComplexity > 20 
// or ILCyclomaticComplexity > 40
// or ILNestingDepth > 4
// are hard to understand and maintain
// and should be split in smaller methods.
// See the definition of the complexity metrics here:
// http://www.ndepend.com/Metrics.aspx#CC
// http://www.ndepend.com/Metrics.aspx#ILCC
// http://www.NDepend.com/Metrics.aspx#ILNestingDepth

11 methods matched

methodsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting DepthFull Name
methodsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting DepthFull Name
Match(String,String,Boolean)50765ThoughtWorks.CruiseControl.Core.Util.PathUtils.Match(String,String ,Boolean)
MatchPath(String,String,Boolean)34524ThoughtWorks.CruiseControl.Core.Util.PathUtils.MatchPath(String,String ,Boolean)
SetupObjectSourceForRequest(HttpContext)26453ThoughtWorks.CruiseControl.WebDashboard.Dashboard .CruiseObjectSourceInitializer.SetupObjectSourceForRequest(HttpContext )
GetTypeString(String)24273ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser .GetTypeString(String)
GetRequestStatus(HttpRequestSettings)23415ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.GetRequestStatus (HttpRequestSettings)
CheckSecurity(String,String,SecurityPermission,Nullable<SecurityEvent> )23264ThoughtWorks.CruiseControl.Core.CruiseServer.CheckSecurity(String ,String,SecurityPermission,Nullable<SecurityEvent>)
HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)22436ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController .HandleServerSnapshotChange(Object,ServerSnapshotChangedEventArgs)
get_Recipients()21263ThoughtWorks.CruiseControl.Core.Publishers.EmailMessage.get_Recipients ()
OnWatcherUpdate(Object,ServerUpdateArgs)18483ThoughtWorks.CruiseControl.Remote.Monitor.Server.OnWatcherUpdate (Object,ServerUpdateArgs)
Parse(TextReader,DateTime,DateTime)12137ThoughtWorks.CruiseControl.Core.Sourcecontrol.AccuRevHistoryParser .Parse(TextReader,DateTime,DateTime)
Equals(Object)977ThoughtWorks.CruiseControl.WebDashboard.Plugins.DeleteProject .DeleteProjectModel.Equals(Object)

Statistics

Stat   Cyclomatic Complexity (CC)   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth
Sum:26240450
Average:23.81836.7274.5455
Minimum:973
Maximum:50767
Standard deviation:10.44318.5871.4993
Variance:109.06345.472.2479
warningCritical    Rule warning: Methods potentially poorly commented
// <Name>Methods potentially poorly commented</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.PercentageComment < 20 && 
  
m.NbLinesOfCode > 20  
  
orderby m.PercentageComment ascending
select new { m, m.PercentageComment, m.NbLinesOfCode, m.NbLinesOfComment }

// Methods where %Comment < 20 and that have 
// at least 20 lines of code might need to be more commented.
// See the definition of the Comments metric here 
// http://www.ndepend.com/Metrics.aspx#PercentageComment
// http://www.ndepend.com/Metrics.aspx#NbLinesOfComment 

145 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 145 methods matched. All matched methods could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched methods.
methodsPercentage Comment# lines of code (LOC)# lines of commentFull Name
methodsPercentage Comment# lines of code (LOC)# lines of commentFull Name
IsQueueSetSnapshotChanged(QueueSetSnapshot)0270ThoughtWorks.CruiseControl.Remote.CruiseServerSnapshot .IsQueueSetSnapshotChanged(QueueSetSnapshot)
ParsePrototype()0270ThoughtWorks.CruiseControl.Remote.Mono.Option.ParsePrototype()
Parse(IEnumerable<String>)0210ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Parse(IEnumerable <String>)
ParseBundledValue(String,String,OptionContext)0220ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.ParseBundledValue (String,String,OptionContext)
WriteOptionDescriptions(TextWriter)0210ThoughtWorks.CruiseControl.Remote.Mono.OptionSet .WriteOptionDescriptions(TextWriter)
WriteOptionPrototype(TextWriter,Option,Int32&)0270ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.WriteOptionPrototype (TextWriter,Option,Int32&)
GetDescription(String)0300ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.GetDescription(String )
Instantiate(Type,String,Object[])0310Objection.ObjectionStore.Instantiate(Type,String,Object[])
FilterProjects(String,ProjectStatus[])0210ThoughtWorks.CruiseControl.Core.CruiseServer.FilterProjects(String ,ProjectStatus[])
ValidateParameters(Dictionary<String,String>)0220ThoughtWorks.CruiseControl.Core.Project.ValidateParameters(Dictionary <String,String>)
WriteTo(XmlWriter,Boolean)0280ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask+HttpRequestStatus .WriteTo(XmlWriter,Boolean)
GetFBArgs()0210ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.GetFBArgs()
TryLock(IDisposable&)0290ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.TryLock (IDisposable&)
server_IntegrationStarted(Object,IntegrationStartedEventArgs)0220ThoughtWorks.CruiseControl.Core.Extensions .IntegrationRequestThrottleExtension.server_IntegrationStarted(Object ,IntegrationStartedEventArgs)
RetrieveUserInformation(String)0320ThoughtWorks.CruiseControl.Core.Util.LdapHelper .RetrieveUserInformation(String)
ReflectionToString(Object)0220ThoughtWorks.CruiseControl.Core.Util.ReflectionUtil.ReflectionToString (Object)
SplitPath(String)0280ThoughtWorks.CruiseControl.Core.Util.PathUtils.SplitPath(String)
Parse(TextReader,DateTime,DateTime)0260ThoughtWorks.CruiseControl.Core.Sourcecontrol.VstsHistoryParser.Parse (TextReader,DateTime,DateTime)
ParseChangeSet(StringBuilder)0250ThoughtWorks.CruiseControl.Core.Sourcecontrol.VstsHistoryParser .ParseChangeSet(StringBuilder)
.ctor(IHistoryParser,ProcessExecutor ,VaultVersionChecker+EForcedVaultVersion)0230ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultVersionChecker. .ctor(IHistoryParser,ProcessExecutor ,VaultVersionChecker+EForcedVaultVersion)
GetCommitModifications(Match,DateTime,DateTime)0260ThoughtWorks.CruiseControl.Core.Sourcecontrol.GitHistoryParser .GetCommitModifications(Match,DateTime,DateTime)
GetPermission(SecurityPermission)0210ThoughtWorks.CruiseControl.Core.Security.Permissions.GetPermission (SecurityPermission)
Initialise()0210ThoughtWorks.CruiseControl.Core.Security.InternalSecurityManager .Initialise()
LoadFile(String)0260ThoughtWorks.CruiseControl.Core.Security.ExternalFileSecurityManager .LoadFile(String)
get_Subject()0240ThoughtWorks.CruiseControl.Core.Publishers.EmailMessage.get_Subject()
WriteIntegrationProperties(IIntegrationResult)0250ThoughtWorks.CruiseControl.Core.Publishers.XmlIntegrationResultWriter .WriteIntegrationProperties(IIntegrationResult)
WriteModifications(String,IIntegrationResult)0220ThoughtWorks.CruiseControl.Core.Publishers .ModificationHistoryPublisher.WriteModifications(String ,IIntegrationResult)
Process(XmlDocument,String)0210ThoughtWorks.CruiseControl.Core.Publishers.Statistics .StatisticsChartGenerator.Process(XmlDocument,String)
Execute()0240ThoughtWorks.CruiseControl.WebDashboard.Dashboard .TopControlsViewBuilder.Execute()
GenerateView(ProjectStatusListAndExceptions,String,ICruiseRequest ,IServerSpecifier)0240ThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction.GenerateView(ProjectStatusListAndExceptions ,String,ICruiseRequest,IServerSpecifier)
Execute(ICruiseRequest)0230ThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport .ServerSecurityConfigurationServerPlugin.Execute(ICruiseRequest)
GenerateUserList(ICruiseRequest,String,String)0270ThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport .ServerUserListServerPlugin.GenerateUserList(ICruiseRequest,String ,String)
AppendStatusDetails(ItemStatus,StringBuilder)0220ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ProjectStatusAction.AppendStatusDetails(ItemStatus,StringBuilder)
WriteProjectStatus(XmlWriter,ProjectStatus,IServerSpecifier)0230ThoughtWorks.CruiseControl.WebDashboard.Plugins.FarmReport .XmlReportAction.WriteProjectStatus(XmlWriter,ProjectStatus ,IServerSpecifier)
Execute(IRequest)0240ThoughtWorks.CruiseControl.WebDashboard.Plugins.FarmReport .XmlProjectParametersReportAction.Execute(IRequest)
Read(XmlNode,NetReflectorTypeTable)0260ThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportXslFilenameSerialiser.Read(XmlNode,NetReflectorTypeTable)
Execute(ICruiseRequest)0240ThoughtWorks.CruiseControl.WebDashboard.Plugins.CCTray .CCTrayDownloadAction.Execute(ICruiseRequest)
PlaySound(String,Boolean,Boolean,Boolean,Boolean,Boolean)0280ThoughtWorks.CruiseControl.CCTrayLib.Audio.PlaySound(String,Boolean ,Boolean,Boolean,Boolean,Boolean)
BindX10Controls(X10Configuration)0320ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl .BindX10Controls(X10Configuration)
UpdateEnabledState()0250ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl .UpdateEnabledState()
.ctor(ICCTrayMultiConfiguration,ISynchronizeInvoke,MainForm)0280ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController. .ctor(ICCTrayMultiConfiguration,ISynchronizeInvoke,MainForm)
ConstructBuildServerFromSelectedOptions()0210ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .ConstructBuildServerFromSelectedOptions()
DisplayIntegrationQueueInTreeViewNode()0350ThoughtWorks.CruiseControl.CCTrayLib.Presentation .IntegrationQueueTreeNodeAdaptor.DisplayIntegrationQueueInTreeViewNode ()
Main(String[])0250ThoughtWorks.CruiseControl.CCTray.Bootstrap.Main(String[])
Run(String[],Boolean)0240ThoughtWorks.CruiseControl.Console.AppRunner.Run(String[],Boolean)
ValidateData(XmlDocument)0300Validator.MainForm.ValidateData(XmlDocument)
ValidateElement(HtmlElement,XmlNode,Int32,Configuration)0330Validator.MainForm.ValidateElement(HtmlElement,XmlNode,Int32 ,Configuration)
InternalValidation(Configuration)0280Validator.MainForm.InternalValidation(Configuration)
Main(String[])0250Validator.Program.Main(String[])
Main(String[])0270ThoughtWorks.CruiseControl.CCCmd.Program.Main(String[])
Execute(IIntegrationResult)1641ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.Execute (IIntegrationResult)
GetProcessArguments(IIntegrationResult)2371ThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask .GetProcessArguments(IIntegrationResult)
GetProcessArguments(IIntegrationResult)2341ThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask .GetProcessArguments(IIntegrationResult)
Parse(TextReader,DateTime,DateTime)2341ThoughtWorks.CruiseControl.Core.Sourcecontrol.MksHistoryParser.Parse (TextReader,DateTime,DateTime)
Execute(ICruiseRequest)2361ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder .Execute(ICruiseRequest)
.ctor()3261ThoughtWorks.CruiseControl.Core.Project..ctor()
ParseModificationsFromLogEntry(XmlNode,DateTime,DateTime)3291ThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .ParseModificationsFromLogEntry(XmlNode,DateTime,DateTime)
GetTypeString(String)3251ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser .GetTypeString(String)
eval_constant(String)3271ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_constant(String)
get_Recipients()3502ThoughtWorks.CruiseControl.Core.Publishers.EmailMessage.get_Recipients ()
.ctor(String,String,String,IntegrationRequest,IntegrationSummary)4211ThoughtWorks.CruiseControl.Core.IntegrationResult..ctor(String,String ,String,IntegrationRequest,IntegrationSummary)
RetrieveFileTransfer(FileTransferRequest)4231ThoughtWorks.CruiseControl.Core.CruiseServer.RetrieveFileTransfer (FileTransferRequest)
AddBreakersToMessages(IIntegrationResult)4231ThoughtWorks.CruiseControl.Core.Project.AddBreakersToMessages (IIntegrationResult)
GetRequestStatus(HttpRequestSettings)4723ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.GetRequestStatus (HttpRequestSettings)
StartProcess()4231ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+RunnableProcess .StartProcess()
Initialise()4231ThoughtWorks.CruiseControl.Core.Security.FileBasedSessionCache .Initialise()
Compare(Object,Object)4211ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer.Compare(Object,Object)
FindProperty(Object,String)5322ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility.FindProperty (Object,String)
RetrieveUser(String)6272ThoughtWorks.CruiseControl.Core.Security.InternalSecurityManager .RetrieveUser(String)
SaveSession(String)6272ThoughtWorks.CruiseControl.Core.Security.FileBasedSessionCache .SaveSession(String)
Read(XmlDocument,IConfigurationErrorProcesser)6272ThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader .Read(XmlDocument,IConfigurationErrorProcesser)
.ctor(IIntegrationResult,EmailPublisher)6272ThoughtWorks.CruiseControl.Core.Publishers.EmailMessage..ctor (IIntegrationResult,EmailPublisher)
GetCategoryLinks(IServerSpecifier[],ICruiseRequest)6272ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder .GetCategoryLinks(IServerSpecifier[],ICruiseRequest)
FormatDetailString(ISingleProjectDetail)6272ThoughtWorks.CruiseControl.CCTrayLib.Presentation.DetailStringProvider .FormatDetailString(ISingleProjectDetail)
updateButton_Click(Object,EventArgs)6413ThoughtWorks.CruiseControl.CCTrayLib.Presentation .DisplayChangedProjects.updateButton_Click(Object,EventArgs)
Parse(String,OptionContext)8212ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Parse(String ,OptionContext)
Execute(IIntegrationResult)8343ThoughtWorks.CruiseControl.Core.Tasks.ModificationReaderTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)8212ThoughtWorks.CruiseControl.Core.Tasks.FtpTask.Execute (IIntegrationResult)
DownloadFolder(String,String,Boolean)8424ThoughtWorks.CruiseControl.Core.Util.FtpLib.DownloadFolder(String ,String,Boolean)
GetTheList(List<Modification>,String,String,Boolean)8424ThoughtWorks.CruiseControl.Core.Util.FtpLib.GetTheList(List <Modification>,String,String,Boolean)
Parse(TextReader,DateTime,DateTime)8313ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4HistoryParser .Parse(TextReader,DateTime,DateTime)
ForceBuildIfNecessary(IRequest)8232ThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction.ForceBuildIfNecessary(IRequest)
.ctor(Object)8222Validator.ConfigurationTypeDescriptor..ctor(Object)
OnWatcherUpdate(Object,ServerUpdateArgs)99210ThoughtWorks.CruiseControl.Remote.Monitor.Server.OnWatcherUpdate (Object,ServerUpdateArgs)
Update(ProjectStatus)9495ThoughtWorks.CruiseControl.Remote.Monitor.Project.Update(ProjectStatus )
GetModifications(IIntegrationResult,IIntegrationResult)9505ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications (IIntegrationResult,IIntegrationResult)
PublishResults(IIntegrationResult,Dictionary<String,String>)10425ThoughtWorks.CruiseControl.Core.Project.PublishResults (IIntegrationResult,Dictionary<String,String>)
GetModification(XmlNode)10263ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser .GetModification(XmlNode)
Initialize()10273ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand .Initialize()
SetupObjectSourceForRequest(HttpContext)1013015ThoughtWorks.CruiseControl.WebDashboard.Dashboard .CruiseObjectSourceInitializer.SetupObjectSourceForRequest(HttpContext )
CheckSecurity(String,String,SecurityPermission,Nullable<SecurityEvent> )11527ThoughtWorks.CruiseControl.Core.CruiseServer.CheckSecurity(String ,String,SecurityPermission,Nullable<SecurityEvent>)
KillPid(Int32)11385ThoughtWorks.CruiseControl.Core.Util.KillUtil.KillPid(Int32)
LoadInformation(NetReflectorTypeTable)11233Validator.VersionInformationForm.LoadInformation(NetReflectorTypeTable )
Integrate(IntegrationRequest)12416ThoughtWorks.CruiseControl.Core.Project.Integrate(IntegrationRequest)
Execute(IIntegrationResult)12345ThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask.Execute (IIntegrationResult)
Parse(TextReader,DateTime,DateTime)12284ThoughtWorks.CruiseControl.Core.Sourcecontrol.AccuRevHistoryParser .Parse(TextReader,DateTime,DateTime)
Execute(IIntegrationResult)12213ThoughtWorks.CruiseControl.Core.Publishers.ConditionalPublisher .Execute(IIntegrationResult)
GetCategoryLinks(IServerSpecifier)12213ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder .GetCategoryLinks(IServerSpecifier)
UpdateConfigurationFile(Boolean)12223ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration.Package .UpdateConfigurationFile(Boolean)
GetBuildHistory(Int32)12294ThoughtWorks.CruiseControl.WebDashboard.Plugins.Statistics.BuildGraph .GetBuildHistory(Int32)

Statistics

Stat   Percentage Comment   # lines of code (LOC)   # lines of comment
Sum:1 0674 476428
Average:7.358630.8692.9517
Minimum:0210
Maximum:1913015
Standard deviation:6.857814.4143.1782
Variance:47.03207.7610.101
warningCritical    Rule warning: Methods with too many parameters
// <Name>Methods with too many parameters</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbParameters > 5 
  
orderby m.NbParameters descending
select new { m, m.NbParameters }

// Methods where NbParameters > 5 might be painful to call 
// and might degrade performance. You should prefer using 
// additional properties/fields to the declaring type to 
// handle numerous states. Another alternative is to provide 
// a class or structure dedicated to handle arguments passing 
// (for example see the class System.Diagnostics.ProcessStartInfo 
// and the method System.Diagnostics.Process.Start(ProcessStartInfo))
// See the definition of the NbParameters metric here 
// http://www.ndepend.com/Metrics.aspx#NbParameters

21 methods matched

methods# ParametersFull Name
methods# ParametersFull Name
.ctor(String,String,ProjectActivity,IntegrationStatus ,ProjectIntegratorState,String,DateTime,String,String,DateTime,String ,String,Int32)13ThoughtWorks.CruiseControl.Remote.ProjectStatus..ctor(String,String ,ProjectActivity,IntegrationStatus,ProjectIntegratorState,String ,DateTime,String,String,DateTime,String,String,Int32)
.ctor(ICruiseRequest,IBuildNameRetriever,IRecentBuildsViewBuilder ,IPluginLinkCalculator,IVelocityViewGenerator,ILinkFactory ,ILinkListFactory,IFarmService,IFingerprintFactory)9ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder. .ctor(ICruiseRequest,IBuildNameRetriever,IRecentBuildsViewBuilder ,IPluginLinkCalculator,IVelocityViewGenerator,ILinkFactory ,ILinkListFactory,IFarmService,IFingerprintFactory)
.ctor(IFarmService,IVelocityTransformer,IVelocityViewGenerator ,ILinkFactory,ILinkListFactory,IFingerprintFactory,ICruiseUrlBuilder ,ISessionRetriever)8ThoughtWorks.CruiseControl.WebDashboard.Dashboard.RecentBuildLister. .ctor(IFarmService,IVelocityTransformer,IVelocityViewGenerator ,ILinkFactory,ILinkListFactory,IFingerprintFactory,ICruiseUrlBuilder ,ISessionRetriever)
.ctor(IAction,IVelocityViewGenerator,ObjectSource,IVersionProvider ,IFingerprintFactory,IUrlBuilder,IPluginConfiguration,ICruiseRequest)8ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators .SiteTemplateActionDecorator..ctor(IAction,IVelocityViewGenerator ,ObjectSource,IVersionProvider,IFingerprintFactory,IUrlBuilder ,IPluginConfiguration,ICruiseRequest)
.ctor(IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)7ThoughtWorks.CruiseControl.Core.CruiseServer..ctor (IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)
GetMailMessage(String,String,String,String,String,String,String[])7ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher .GetMailMessage(String,String,String,String,String,String,String[])
GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)7ThoughtWorks.CruiseControl.WebDashboard.Dashboard.IProjectGrid .GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)
GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)7ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectGrid .GenerateProjectGridRows(ProjectStatusOnServer[],String ,ProjectGridSortColumn,Boolean,String,ICruiseUrlBuilder,Translations)
LogErrorOrWarning(String,String,String,String,Int32,Int32,DateTime)7ThoughtWorks.CruiseControl.MSBuild.XmlLogger.LogErrorOrWarning(String ,String,String,String,Int32,Int32,DateTime)
LogonUser(String,String,String,Int32,Int32,IntPtr&)6ThoughtWorks.CruiseControl.Core.Util.Impersonation.LogonUser(String ,String,String,Int32,Int32,IntPtr&)
CreateNewModification(String,String,String,String,String,String)6ThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .CreateNewModification(String,String,String,String,String,String)
.ctor(String,SecurityRight,SecurityRight,SecurityRight,SecurityRight ,UserName[])6ThoughtWorks.CruiseControl.Core.Security.RolePermission..ctor(String ,SecurityRight,SecurityRight,SecurityRight,SecurityRight,UserName[])
SendMessage(String,String,String,String,String,String)6ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.SendMessage (String,String,String,String,String,String)
.ctor(ICruiseRequest,ILinkFactory,IVelocityViewGenerator ,IDashboardConfiguration,ISessionRetriever,ISessionStorer)6ThoughtWorks.CruiseControl.WebDashboard.Dashboard.LoginViewBuilder. .ctor(ICruiseRequest,ILinkFactory,IVelocityViewGenerator ,IDashboardConfiguration,ISessionRetriever,ISessionStorer)
.ctor(ICruiseRequest,ILinkFactory,IVelocityViewGenerator,IFarmService ,IFingerprintFactory,ISessionRetriever)6ThoughtWorks.CruiseControl.WebDashboard.Dashboard .TopControlsViewBuilder..ctor(ICruiseRequest,ILinkFactory ,IVelocityViewGenerator,IFarmService,IFingerprintFactory ,ISessionRetriever)
.ctor(IProjectSpecifier,String,Boolean,Boolean,Boolean,Boolean)6ThoughtWorks.CruiseControl.WebDashboard.Plugins.DeleteProject .DeleteProjectModel..ctor(IProjectSpecifier,String,Boolean,Boolean ,Boolean,Boolean)
PlaySound(Byte[],Boolean,Boolean,Boolean,Boolean,Boolean)6ThoughtWorks.CruiseControl.CCTrayLib.Audio.PlaySound(Byte[],Boolean ,Boolean,Boolean,Boolean,Boolean)
PlaySound(String,Boolean,Boolean,Boolean,Boolean,Boolean)6ThoughtWorks.CruiseControl.CCTrayLib.Audio.PlaySound(String,Boolean ,Boolean,Boolean,Boolean,Boolean)
.ctor(CheckBox,TextBox,Button,Button,OpenFileDialog,String)6ThoughtWorks.CruiseControl.CCTrayLib.Presentation .SelectAudioFileController..ctor(CheckBox,TextBox,Button,Button ,OpenFileDialog,String)
.ctor(String,String,Int32,Parity,Int32,StopBits)6ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11LowLevelDriver..ctor (String,String,Int32,Parity,Int32,StopBits)
.ctor(Cm11LowLevelDriver+CM11aHouseCode,String,Int32,Parity,Int32 ,StopBits)6ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker..ctor (Cm11LowLevelDriver+CM11aHouseCode,String,Int32,Parity,Int32,StopBits)

Statistics

Stat   # Parameters
Sum:145
Average:6.9048
Minimum:6
Maximum:13
Standard deviation:1.6007
Variance:2.5624
warningCritical    Rule warning: Methods with too many local variables
// <Name>Methods with too many local variables</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbVariables > 15 
  
orderby m.NbVariables descending
select new { m, m.NbVariables }

// Methods where NbVariables > 8 are hard to understand and maintain.
// Methods where NbVariables > 15 are extremely complex 
// and should be split in smaller methods.
// See the definition of the Nbvariables metric here 
// http://www.ndepend.com/Metrics.aspx#Nbvariables

7 methods matched

methods# VariablesFull Name
methods# VariablesFull Name
ConvertXmlToDynamicValues(NetReflectorTypeTable,XmlNode,String[])22ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility .ConvertXmlToDynamicValues(NetReflectorTypeTable,XmlNode,String[])
ImportCode(XmlDocument)21ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.ImportCode (XmlDocument)
OnWatcherUpdate(Object,ServerUpdateArgs)20ThoughtWorks.CruiseControl.Remote.Monitor.Server.OnWatcherUpdate (Object,ServerUpdateArgs)
GetRequestStatus(HttpRequestSettings)18ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask.GetRequestStatus (HttpRequestSettings)
MatchPath(String,String,Boolean)16ThoughtWorks.CruiseControl.Core.Util.PathUtils.MatchPath(String,String ,Boolean)
Parse(TextReader,DateTime,DateTime)16ThoughtWorks.CruiseControl.Core.Sourcecontrol.MksHistoryParser.Parse (TextReader,DateTime,DateTime)
SetupObjectSourceForRequest(HttpContext)16ThoughtWorks.CruiseControl.WebDashboard.Dashboard .CruiseObjectSourceInitializer.SetupObjectSourceForRequest(HttpContext )

Statistics

Stat   # Variables
Sum:129
Average:18.429
Minimum:16
Maximum:22
Standard deviation:2.3819
Variance:5.6735
warningCritical    Rule warning: Methods with too many overloads
// <Name>Methods with too many overloads</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbOverloads > 6 && 
  
!m.IsOperator // Don't report operator overload
  orderby m.NbOverloads descending
select new { m, m.NbOverloads }

// Methods where NbOverloads > 6 might 
// be a problem to maintain and provoke higher coupling 
// than necessary. 
// This might also reveal a potential misused of the 
// C# and VB.NET language that since C#3 and VB9 support 
// object initialization. This feature helps reducing the number 
// of constructors of a class.
// See the definition of the NbOverloads metric here 
// http://www.ndepend.com/Metrics.aspx#NbOverloads

9 methods matched

methods# OverloadsFull Name
methods# OverloadsFull Name
Add(Option)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(Option)
Add(String,Action<String>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String,Action <String>)
Add(String,String,Action<String>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String,String ,Action<String>)
Add(String,OptionAction<String,String>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String ,OptionAction<String,String>)
Add(String,String,OptionAction<String,String>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add(String,String ,OptionAction<String,String>)
Add<T>(String,Action<T>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<T>(String,Action <T>)
Add<T>(String,String,Action<T>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<T>(String,String ,Action<T>)
Add<TKey,TValue>(String,OptionAction<TKey,TValue>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<TKey,TValue> (String,OptionAction<TKey,TValue>)
Add<TKey,TValue>(String,String,OptionAction<TKey,TValue>)9ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.Add<TKey,TValue> (String,String,OptionAction<TKey,TValue>)

Statistics

Stat   # Overloads
Sum:81
Average:9
Minimum:9
Maximum:9
Standard deviation:0
Variance:0
warningCritical    Rule warning: Types with too many methods
// <Name>Types with too many methods</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Methods.Count() > 20 
  
orderby t.Methods.Count() descending
select new { t, t.InstanceMethods, t.StaticMethods }

// Types where Methods.Count() > 20 might be hard to 
// understand and maintain 
// but there might be cases where it is relevant 
// to have a high number of methods. 
// For example, the System.Windows.Forms.DataGridView 
// standard class has more than 1000 methods.

65 types matched

typesInstanceMethodsStaticMethodsFull Name
typesInstanceMethodsStaticMethodsFull Name
Project92 methods1 methodThoughtWorks.CruiseControl.Core.Project
NCoverProfileTask73 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask
CruiseServer70 methods1 methodThoughtWorks.CruiseControl.Core.CruiseServer
ICruiseServer70 methods0 methodThoughtWorks.CruiseControl.Remote.ICruiseServer
IntegrationResult69 methods1 methodThoughtWorks.CruiseControl.Core.IntegrationResult
Svn62 methods4 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
CruiseServerClientBase63 methods0 methodThoughtWorks.CruiseControl.Remote.CruiseServerClientBase
RemoteCruiseServer62 methods0 methodThoughtWorks.CruiseControl.Core.RemoteCruiseServer
NCoverReportTask56 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask
IIntegrationResult55 methods0 methodThoughtWorks.CruiseControl.Core.IIntegrationResult
ServerAggregatingCruiseManagerWrapper55 methods0 methodThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper
CruiseServerClient54 methods0 methodThoughtWorks.CruiseControl.Remote.CruiseServerClient
MainFormController51 methods1 methodThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
MainForm52 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
CruiseServerClient49 methods2 methodsThoughtWorks.CruiseControl.Core.CruiseServerClient
ProjectMonitor50 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ProjectMonitor
StubProjectMonitor49 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor
Project45 methods0 methodThoughtWorks.CruiseControl.Remote.Monitor.Project
Server44 methods0 methodThoughtWorks.CruiseControl.Remote.Monitor.Server
MainForm42 methods1 methodValidator.MainForm
EmailPublisher40 methods2 methodsThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher
ICruiseServerClient41 methods0 methodThoughtWorks.CruiseControl.Remote.ICruiseServerClient
IFarmService41 methods0 methodThoughtWorks.CruiseControl.WebDashboard.ServerConnection.IFarmService
Pvcs34 methods4 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs
CCTrayMultiConfiguration37 methods1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .CCTrayMultiConfiguration
Workflow36 methods0 methodThoughtWorks.CruiseControl.Core.Workflow
CruiseServerEventsBase36 methods0 methodThoughtWorks.CruiseControl.Core.CruiseServerEventsBase
DupFinderTask36 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask
OptionSet25 methods10 methodsThoughtWorks.CruiseControl.Remote.Mono.OptionSet
ICCTrayMultiConfiguration35 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .ICCTrayMultiConfiguration
IProject34 methods0 methodThoughtWorks.CruiseControl.Core.IProject
StarTeam34 methods0 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeam
ProjectStatus33 methods0 methodThoughtWorks.CruiseControl.Remote.ProjectStatus
CruiseServerRemotingClient32 methods0 methodThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient
CruiseManager32 methods0 methodThoughtWorks.CruiseControl.Core.CruiseManager
HttpStatusTask+HttpRequestStatus31 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask+HttpRequestStatus
NDependTask31 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.NDependTask
OptionValueCollection30 methods0 methodThoughtWorks.CruiseControl.Remote.Mono.OptionValueCollection
AggregatingProjectMonitor30 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor
ICruiseManager28 methods0 methodThoughtWorks.CruiseControl.Remote.ICruiseManager
ProjectIntegrator28 methods0 methodThoughtWorks.CruiseControl.Core.ProjectIntegrator
HttpRequestSettings28 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.HttpRequestSettings
CodeItRightTask27 methods1 methodThoughtWorks.CruiseControl.Core.Tasks.CodeItRightTask
SecurityManagerBase28 methods0 methodThoughtWorks.CruiseControl.Core.Security.SecurityManagerBase
SynchronizedProjectMonitor28 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Presentation .SynchronizedProjectMonitor
ProjectGridRow27 methods0 methodThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectGridRow
ItemStatus24 methods0 methodThoughtWorks.CruiseControl.Remote.ItemStatus
Vsts24 methods0 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts
SynergyCommandBuilder0 method24 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyCommandBuilder
PackagePublisher24 methods0 methodThoughtWorks.CruiseControl.Core.Publishers.PackagePublisher
SystemIoFileSystem23 methods0 methodThoughtWorks.CruiseControl.Core.Util.SystemIoFileSystem
Git23 methods0 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Git
SynchronizedServerMonitor23 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Presentation .SynchronizedServerMonitor
IProjectMonitor23 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.IProjectMonitor
ServerMonitor23 methods0 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ServerMonitor
CruiseServerClientFactory19 methods3 methodsThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory
IntegrationQueue22 methods0 methodThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue
LdapHelper22 methods0 methodThoughtWorks.CruiseControl.Core.Util.LdapHelper
Vss22 methods0 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss
Mercurial21 methods1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial
ProjectBase21 methods0 methodThoughtWorks.CruiseControl.Core.ProjectBase
DevenvTask21 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.DevenvTask
MultipleTrigger21 methods0 methodThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger
Cvs21 methods0 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs
Program0 method21 methodsThoughtWorks.CruiseControl.CCCmd.Program

Statistics

Stat   InstanceMethods   StaticMethods
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Types with too many fields
// <Name>Types with too many fields</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Fields.Count() > 20 && 
  
!t.IsEnumeration 
  
orderby t.Fields.Count() descending
select new { t, t.InstanceFields, t.StaticFields, t.SizeOfInst }

// Types where Fields.Count() > 20 and not IsEnumeration 
// might be hard to understand and maintain 
// but there might be cases where it is relevant 
// to have a high number of fields. 
// For example, the System.Windows.Forms.Control 
// standard class has more than 200 fields.

19 types matched

typesInstanceFieldsStaticFieldsSize of instanceFull Name
typesInstanceFieldsStaticFieldsSize of instanceFull Name
MainForm61 fields1 field544ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
MainForm49 fields2 fields499Validator.MainForm
NCoverProfileTask35 fields1 field157ThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask
AddBuildServer33 fields0 field438ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer
VaultVersionChecker25 fields6 fields89ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultVersionChecker
Pvcs20 fields7 fields85ThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs
X10SettingsControl27 fields0 field317ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl
Project26 fields0 field141ThoughtWorks.CruiseControl.Core.Project
NCoverReportTask25 fields1 field123ThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask
CCTrayMultiSettingsForm26 fields0 field410ThoughtWorks.CruiseControl.CCTrayLib.Presentation .CCTrayMultiSettingsForm
P420 fields5 fields76ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4
GendarmeTask16 fields8 fields84ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask
Svn22 fields2 fields78ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
Vsts15 fields9 fields65ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts
DevenvTask12 fields11 fields65ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask
IntegrationResult21 fields1 field89ThoughtWorks.CruiseControl.Core.IntegrationResult
IconSettingsControl22 fields0 field297ThoughtWorks.CruiseControl.CCTrayLib.Presentation.IconSettingsControl
AudioSettingsControl22 fields0 field297ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AudioSettingsControl
MainFormController21 fields0 field84ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController

Statistics

Stat   InstanceFields   StaticFields   Size of instance
Sum:003 938
Average:00207.26
Minimum:0065
Maximum:00544
Standard deviation:00159.4
Variance:0025 407
warningCritical    Rule warning: Types with poor cohesion
// <Name>Types with poor cohesion</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
(t.LCOM > 0.8 || t.LCOMHS > 0.95) && 
  
t.NbFields > 10 && 
  
t.NbMethods >10 
  
orderby t.LCOM descending, t.LCOMHS descending
select new { t, t.LCOM, t.LCOMHS, 
                
t.NbMethods, t.NbFields }

// Types where LCOM > 0.8 and NbFields > 10 
// and NbMethods >10 might be problematic. 
// However, it is very hard to avoid such 
// non-cohesive types. The LCOMHS metric
// is often considered as more efficient to 
// detect non-cohesive types.
// See the definition of the LCOM metric here 
// http://www.ndepend.com/Metrics.aspx#LCOM

40 types matched

typesLack of Cohesion Of Methods (LCOM)LCOM Henderson-Sellers (LCOMHS)# Methods# FieldsFull Name
typesLack of Cohesion Of Methods (LCOM)LCOM Henderson-Sellers (LCOMHS)# Methods# FieldsFull Name
NCoverProfileTask0.966670.979737536ThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask
CruiseServer0.956980.971487219ThoughtWorks.CruiseControl.Core.CruiseServer
NCoverReportTask0.95690.973685826ThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask
Svn0.956520.970596924ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
Project0.954790.965059526ThoughtWorks.CruiseControl.Core.Project
MainForm0.954270.978124451Validator.MainForm
MainForm0.95020.968475462ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
DupFinderTask0.947370.972973817ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask
IntegrationResult0.939330.952567222ThoughtWorks.CruiseControl.Core.IntegrationResult
MainFormController0.938620.959965321ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
Git0.9360.9752516ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git
Pvcs0.930.953854027ThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs
EmailPublisher0.927690.949264412ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher
Project0.926830.954613ThoughtWorks.CruiseControl.Remote.Monitor.Project
StarTeam0.920630.946943616ThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeam
Mks0.919050.9652116ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks
CruiseServerEventsBase0.918920.944443712ThoughtWorks.CruiseControl.Core.CruiseServerEventsBase
Mercurial0.912880.952572415ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial
Server0.906670.925175015ThoughtWorks.CruiseControl.Remote.Monitor.Server
DevenvTask0.90580.946972323ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask
SynergyConnectionInfo0.904760.969391514ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyConnectionInfo
NDependTask0.901520.929693316ThoughtWorks.CruiseControl.Core.Tasks.NDependTask
Vss0.898460.93592519ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss
AddBuildServer0.897550.942422133ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer
ProjectStatus0.894440.923616ThoughtWorks.CruiseControl.Remote.ProjectStatus
Cvs0.89130.931822319ThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs
Vsts0.889740.925332624ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts
VaultVersionChecker0.886670.967271231ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultVersionChecker
AddProjects0.878430.941181517ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddProjects
P40.878260.918182325ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4
ProjectBase0.8750.913042412ThoughtWorks.CruiseControl.Core.ProjectBase
MsBuildTask0.867130.939391313ThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask
PowerShellTask0.858020.90851816ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask
Cm11LowLevelDriver+Cm11LowLevelDriverWorker0.849210.899161816ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker
PackagesListForm0.848680.905261619ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm
BuildProjectsControl0.839290.895241614ThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildProjectsControl
ClearCase0.828280.867722211ThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCase
CurrentStatusWindow0.815380.883331315ThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow
GendarmeTask0.81250.893751124ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask
NAntTask0.803570.865381419ThoughtWorks.CruiseControl.Core.Tasks.NAntTask

Statistics

Stat   Lack of Cohesion Of Methods (LCOM)   LCOM Henderson-Sellers (LCOMHS)   # Methods   # Fields
Sum:36.04437.5541 370842
Average:0.901110.9388434.2521.05
Minimum:0.803570.865381111
Maximum:0.966670.979739562
Standard deviation:0.0435550.03060820.59610.109
Variance:0.0018970.00093685424.19102.2

Code Quality Regression  
 4 8 0 

warningCritical    Rule warning: From now, all methods added or refactored should respect basic quality principles
// <Name>From now, all methods added or refactored should respect basic quality principles</Name>
warnif count > 0 from m in JustMyCode.Methods where

// *** Only new or modified methods since Baseline for Comparison ***
 (m.WasAdded() || m.CodeWasChanged()) &&
 
// Low Quality methods// Metrics' definitions
(  m.NbLinesOfCode > 30 ||          // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
   m.NbILInstructions > 200 ||      // http://www.ndepend.com/Metrics.aspx#NbILInstructions
   m.CyclomaticComplexity > 20 ||   // http://www.ndepend.com/Metrics.aspx#CC
   m.ILCyclomaticComplexity > 50 || // http://www.ndepend.com/Metrics.aspx#ILCC
   m.ILNestingDepth > 4 ||          // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
   m.NbParameters > 5 ||            // http://www.ndepend.com/Metrics.aspx#NbParameters
   m.NbVariables > 8 ||             // http://www.ndepend.com/Metrics.aspx#NbVariables
   m.NbOverloads > 6 )
select new { m, m.NbLinesOfCode, m.NbILInstructions, m.CyclomaticComplexity, 
             
m.ILCyclomaticComplexity, m.ILNestingDepth, 
             
m.NbParameters, m.NbVariables, m.NbOverloads }  // http://www.ndepend.com/Metrics.aspx#NbOverloads


// This rule warns if a method with
// low-quality has been added or refactored.
// With NDepend and such rule, you can
// Ensure Quality From Now! as explained here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/01/ensure-the-quality-of-the-code-that-will-be-developed-this-year.aspx

20 methods matched

methods# lines of code (LOC)# IL instructionsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting Depth# Parameters# Variables# OverloadsFull Name
methods# lines of code (LOC)# IL instructionsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting Depth# Parameters# Variables# OverloadsFull Name
Integrate(IntegrationRequest)4530112172171ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate (IntegrationRequest)
.ctor(IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)30158461711ThoughtWorks.CruiseControl.Core.CruiseServer..ctor (IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)
CheckSecurity(String,String,SecurityPermission,Nullable<SecurityEvent> )5241623264481ThoughtWorks.CruiseControl.Core.CruiseServer.CheckSecurity(String ,String,SecurityPermission,Nullable<SecurityEvent>)
PublishResults(IIntegrationResult,Dictionary<String,String>)4224713253282ThoughtWorks.CruiseControl.Core.Project.PublishResults (IIntegrationResult,Dictionary<String,String>)
Validate(IConfiguration,ConfigurationTrace ,IConfigurationErrorProcesser)26141101543111ThoughtWorks.CruiseControl.Core.Tasks.BaseExecutableTask.Validate (IConfiguration,ConfigurationTrace,IConfigurationErrorProcesser)
Execute(IIntegrationResult)262049154181ThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)3425014194181ThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)271847112191ThoughtWorks.CruiseControl.Core.Tasks.SequentialTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)35262101731101ThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.Execute (IIntegrationResult)
ImportCode(XmlDocument)56323102831211ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.ImportCode (XmlDocument)
Enqueue(IIntegrationQueueItem)4631914263151ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.Enqueue (IIntegrationQueueItem)
RetrieveUserInformation(String)32208451161ThoughtWorks.CruiseControl.Core.Util.LdapHelper .RetrieveUserInformation(String)
GetModifications(IIntegrationResult,IIntegrationResult)50314172432121ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications (IIntegrationResult,IIntegrationResult)
GetFolderVersion(IIntegrationResult,IIntegrationResult)36208121432111ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317 .GetFolderVersion(IIntegrationResult,IIntegrationResult)
eval_constant(String)2718971231101ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_constant(String)
.ctor()2114310145032ThoughtWorks.CruiseControl.WebDashboard.Resources.Translations..ctor()
Read(XmlNode,NetReflectorTypeTable)261998205251ThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportXslFilenameSerialiser.Read(XmlNode,NetReflectorTypeTable)
FormatDetailString(ISingleProjectDetail)2719613155141ThoughtWorks.CruiseControl.CCTrayLib.Presentation.DetailStringProvider .FormatDetailString(ISingleProjectDetail)
InitializeComponent()3031 752110021ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .InitializeComponent()
StartConfigurationLoad()37256775091Validator.MainForm.StartConfigurationLoad()

Statistics

Stat   # lines of code (LOC)   # IL instructions   Cyclomatic Complexity (CC)   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth   # Parameters   # Variables   # Overloads
Sum:9786 270205317633215822
Average:48.9313.510.2515.853.151.67.91.1
Minimum:21141110011
Maximum:3031 752232857212
Standard deviation:59.1336.974.79457.39781.38831.5624.25320.3
Variance:3 492113 54622.98754.7271.92752.4418.090.09
warningCritical    Rule warning: From now, all types added or refactored should respect basic quality principles
// <Name>From now, all types added or refactored should respect basic quality principles</Name>
warnif count > 0 from t in JustMyCode.Types where

// *** Only match new or modified types since Baseline for Comparison ***
(t.WasAdded() || t.CodeWasChanged()) &&

// Eliminate interfaces, enumerations or types only with constant fields
// by making sure we are matching type with code.
t.NbLinesOfCode > 10 &&

// Low Quality types     Metrics' definitions are available here:
//     http://www.ndepend.com/Metrics.aspx#MetricsOnTypes
(  // Types with too many methods
   t.NbMethods > 20 ||

   
// Types with too many fields
   t.NbFields > 20 ||

   
// Complex Types that use more than 50 other types
   t.NbTypesUsed > 50
)
select new { t, t.Methods, t.Fields, t.TypesUsed }


// This rule warns if a type with
// low-quality has been added or refactored.
// With NDepend and such rule, you can
// Ensure Quality From Now! as explained here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/01/ensure-the-quality-of-the-code-that-will-be-developed-this-year.aspx

32 types matched

typesMethodsFieldsTypesUsedFull Name
typesMethodsFieldsTypesUsedFull Name
CruiseServerClientBase63 methods5 fields34 typesThoughtWorks.CruiseControl.Remote.CruiseServerClientBase
CruiseServerClient54 methods2 fields68 typesThoughtWorks.CruiseControl.Remote.CruiseServerClient
ItemStatus24 methods10 fields26 typesThoughtWorks.CruiseControl.Remote.ItemStatus
IntegrationResult70 methods22 fields44 typesThoughtWorks.CruiseControl.Core.IntegrationResult
CruiseServerClient51 methods5 fields83 typesThoughtWorks.CruiseControl.Core.CruiseServerClient
CruiseServer71 methods19 fields173 typesThoughtWorks.CruiseControl.Core.CruiseServer
Project93 methods26 fields122 typesThoughtWorks.CruiseControl.Core.Project
RemoteCruiseServer62 methods8 fields63 typesThoughtWorks.CruiseControl.Core.RemoteCruiseServer
DevenvTask21 methods23 fields42 typesThoughtWorks.CruiseControl.Core.Tasks.DevenvTask
DupFinderTask36 methods17 fields47 typesThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask
CodeItRightTask28 methods11 fields32 typesThoughtWorks.CruiseControl.Core.Tasks.CodeItRightTask
IntegrationQueue22 methods7 fields35 typesThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue
LdapHelper22 methods10 fields20 typesThoughtWorks.CruiseControl.Core.Util.LdapHelper
Svn66 methods24 fields60 typesThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
Vsts24 methods24 fields37 typesThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts
Git23 methods16 fields38 typesThoughtWorks.CruiseControl.Core.Sourcecontrol.Git
Cvs21 methods19 fields43 typesThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs
Synergy18 methods6 fields32 typesThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.Synergy
SecurityManagerBase28 methods6 fields29 typesThoughtWorks.CruiseControl.Core.Security.SecurityManagerBase
NullSecurityManager20 methods0 field23 typesThoughtWorks.CruiseControl.Core.Security.NullSecurityManager
ExternalFileSecurityManager14 methods11 fields55 typesThoughtWorks.CruiseControl.Core.Security.ExternalFileSecurityManager
ConfigPreprocessorEnvironment19 methods7 fields45 typesThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment
EmailPublisher42 methods12 fields46 typesThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher
ProjectGridRow27 methods4 fields17 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectGridRow
SynchronizedProjectMonitor28 methods5 fields27 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation .SynchronizedProjectMonitor
MainFormController52 methods21 fields104 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
BuildParameters10 methods7 fields77 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildParameters
MainForm52 methods62 fields116 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
StubProjectMonitor49 methods10 fields31 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor
AggregatingProjectMonitor30 methods4 fields30 typesThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor
ProjectMonitor50 methods9 fields46 typesThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ProjectMonitor
MainForm43 methods51 fields151 typesValidator.MainForm

Statistics

Stat   Methods   Fields   TypesUsed
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: From now, all types added or refactored should be 100% covered by tests
// <Name>From now, all types added or refactored should be 100% covered by tests</Name>
warnif count > 0 from t in JustMyCode.Types where

  
// Match methods new or modified since Baseline for Comparison...
  (t.WasAdded() || t.CodeWasChanged()) &&

  
// ...that are not 100% covered by tests
  t.PercentageCoverage < 100

  
let methodsCulprit = t.Methods.Where(m => m.PercentageCoverage < 100)

select new { t, t.PercentageCoverage, methodsCulprit }

// Having types 100% covered by tests is a good idea because 
// the small portion of code hard to cover, is also the 
// portion of code that is the most likely to contain bugs.

85 types matched

typesPercentage CoveragemethodsCulpritFull Name
typesPercentage CoveragemethodsCulpritFull Name
CruiseServerClientBase1447 methodsThoughtWorks.CruiseControl.Remote.CruiseServerClientBase
CruiseServerClient7019 methodsThoughtWorks.CruiseControl.Remote.CruiseServerClient
QueueSnapshot501 methodThoughtWorks.CruiseControl.Remote.QueueSnapshot
HttpConnection139 methodsThoughtWorks.CruiseControl.Remote.HttpConnection
ItemStatus588 methodsThoughtWorks.CruiseControl.Remote.ItemStatus
NameValuePair961 methodThoughtWorks.CruiseControl.Remote.NameValuePair
ServerRequest961 methodThoughtWorks.CruiseControl.Remote.Messages.ServerRequest
ExternalLinksListResponse871 methodThoughtWorks.CruiseControl.Remote.Messages.ExternalLinksListResponse
PollingServerWatcher06 methodsThoughtWorks.CruiseControl.Remote.Monitor.PollingServerWatcher
DateParameter016 methodsThoughtWorks.CruiseControl.Remote.Parameters.DateParameter
NMockAwareImplementationResolver602 methodsObjection.NMockAwareImplementationResolver
IntegrationRunner881 methodThoughtWorks.CruiseControl.Core.IntegrationRunner
IntegrationResult837 methodsThoughtWorks.CruiseControl.Core.IntegrationResult
CruiseServerClient3442 methodsThoughtWorks.CruiseControl.Core.CruiseServerClient
CruiseServer5339 methodsThoughtWorks.CruiseControl.Core.CruiseServer
CruiseServer+<>c__DisplayClass5f01 methodThoughtWorks.CruiseControl.Core.CruiseServer+<>c__DisplayClass5f
CruiseServer+<>c__DisplayClass6201 methodThoughtWorks.CruiseControl.Core.CruiseServer+<>c__DisplayClass62
Project7228 methodsThoughtWorks.CruiseControl.Core.Project
RemoteCruiseServer6641 methodsThoughtWorks.CruiseControl.Core.RemoteCruiseServer
TaskBase942 methodsThoughtWorks.CruiseControl.Core.Tasks.TaskBase
TaskContainerBase902 methodsThoughtWorks.CruiseControl.Core.Tasks.TaskContainerBase
BaseExecutableTask822 methodsThoughtWorks.CruiseControl.Core.Tasks.BaseExecutableTask
CruiseServerControlTask961 methodThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTask
MergeFilesTask941 methodThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask
FinalBuilderTask874 methodsThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask
DevenvTask943 methodsThoughtWorks.CruiseControl.Core.Tasks.DevenvTask
DupFinderTask010 methodsThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask
CodeItRightTask08 methodsThoughtWorks.CruiseControl.Core.Tasks.CodeItRightTask
ParallelTask04 methodsThoughtWorks.CruiseControl.Core.Tasks.ParallelTask
FileTaskResult654 methodsThoughtWorks.CruiseControl.Core.Tasks.FileTaskResult
ScheduleTrigger883 methodsThoughtWorks.CruiseControl.Core.Triggers.ScheduleTrigger
ProjectTrigger892 methodsThoughtWorks.CruiseControl.Core.Triggers.ProjectTrigger
IntegrationQueue903 methodsThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue
LdapHelper212 methodsThoughtWorks.CruiseControl.Core.Util.LdapHelper
IoService383 methodsThoughtWorks.CruiseControl.Core.Util.IoService
Vault3864 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3
Svn5415 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
Vsts024 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts
Vault317856 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317
GitHistoryParser971 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.GitHistoryParser
Git885 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Git
Cvs1221 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs
Synergy628 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.Synergy
SynergyParser893 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyParser
SynergyCommand206 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand
BitKeeper832 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper.BitKeeper
PermissionBase762 methodsThoughtWorks.CruiseControl.Core.Security.PermissionBase
SecurityManagerBase878 methodsThoughtWorks.CruiseControl.Core.Security.SecurityManagerBase
InternalSecurityManager428 methodsThoughtWorks.CruiseControl.Core.Security.InternalSecurityManager
NullSecurityManager5011 methodsThoughtWorks.CruiseControl.Core.Security.NullSecurityManager
ExternalFileSecurityManager689 methodsThoughtWorks.CruiseControl.Core.Security.ExternalFileSecurityManager
DefaultProjectAuthorisation508 methodsThoughtWorks.CruiseControl.Core.Security.DefaultProjectAuthorisation
ConfigurationTrace852 methodsThoughtWorks.CruiseControl.Core.Config.ConfigurationTrace
NetReflectorConfigurationReader853 methodsThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader
ConfigPreprocessorEnvironment806 methodsThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment
EmailPublisher817 methodsThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher
XmlIntegrationResultWriter905 methodsThoughtWorks.CruiseControl.Core.Publishers.XmlIntegrationResultWriter
DashboardCacheDependency01 methodThoughtWorks.CruiseControl.WebDashboard.IO.DashboardCacheDependency
Translations236 methodsThoughtWorks.CruiseControl.WebDashboard.Resources.Translations
VelocityProjectGridAction012 methodsThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction
ProjectGridRow4415 methodsThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectGridRow
MultipleXslReportBuildAction941 methodThoughtWorks.CruiseControl.WebDashboard.Dashboard.Actions .MultipleXslReportBuildAction
XslMultiReportBuildPlugin911 methodThoughtWorks.CruiseControl.WebDashboard.Dashboard.GenericPlugins .XslMultiReportBuildPlugin
HtmlReportPlugin06 methodsThoughtWorks.CruiseControl.WebDashboard.Dashboard.GenericPlugins .HtmlReportPlugin
SiteTemplateActionDecorator05 methodsThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators .SiteTemplateActionDecorator
ServerReportServerPlugin85 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport .ServerReportServerPlugin
PackageManifest014 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .PackageManifest
AdministerAction015 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .AdministerAction
FarmReportFarmPlugin65 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.FarmReport .FarmReportFarmPlugin
BuildReportXslFilename801 methodThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportXslFilename
BuildFileDownload02 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildFileDownload
BuildReportXslFilenameSerialiser02 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportXslFilenameSerialiser
BuildReportBuildPlugin142 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportBuildPlugin
BuildReportXslFilenameSerialiserFactory01 methodThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportXslFilenameSerialiserFactory
NameAndSelected03 methodsThoughtWorks.CruiseControl.WebDashboard.Plugins.AddProject .NameAndSelected
SynchronizedProjectMonitor4319 methodsThoughtWorks.CruiseControl.CCTrayLib.Presentation .SynchronizedProjectMonitor
MainFormController1840 methodsThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
DetailStringProvider502 methodsThoughtWorks.CruiseControl.CCTrayLib.Presentation.DetailStringProvider
BuildParameters010 methodsThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildParameters
MainForm052 methodsThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
StubProjectMonitor6418 methodsThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor
AggregatingProjectMonitor7816 methodsThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor
RemotingCruiseProjectManager2010 methodsThoughtWorks.CruiseControl.CCTrayLib.Monitoring .RemotingCruiseProjectManager
ProjectMonitor4529 methodsThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ProjectMonitor
HttpCruiseProjectManager644 methodsThoughtWorks.CruiseControl.CCTrayLib.Monitoring .HttpCruiseProjectManager

Statistics

Stat   Percentage Coverage   methodsCulprit
Sum:4 1800
Average:49.1760
Minimum:00
Maximum:970
Standard deviation:36.4750
Variance:1 3300
warningCritical    Rule warning: Avoid making complex methods even more complex (Source CC)
// <Name>Avoid making complex methods even more complex (Source CC)</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from m in JustMyCode.Methods where
 
!m.IsAbstract &&
  
m.IsPresentInBothBuilds() &&
  
m.CodeWasChanged()

let oldCC = m.OlderVersion().CyclomaticComplexity
where oldCC > 6 && m.CyclomaticComplexity > oldCC 

select new { m,
    
oldCC ,
    
newCC = m.CyclomaticComplexity ,
    
oldLoc = m.OlderVersion().NbLinesOfCode,
    
newLoc = m.NbLinesOfCode,
}

5 methods matched

methodsoldCCnewCColdLocnewLocFull Name
methodsoldCCnewCColdLocnewLocFull Name
RunTask(ITask,IIntegrationResult,Boolean)15162529ThoughtWorks.CruiseControl.Core.Project.RunTask(ITask ,IIntegrationResult,Boolean)
ReadDevenvExecutableFromRegistry()11131315ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask .ReadDevenvExecutableFromRegistry()
Enqueue(IIntegrationQueueItem)12143846ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.Enqueue (IIntegrationQueueItem)
GetFolderVersion(IIntegrationResult,IIntegrationResult)7123136ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317 .GetFolderVersion(IIntegrationResult,IIntegrationResult)
.ctor()9101821ThoughtWorks.CruiseControl.WebDashboard.Resources.Translations..ctor()

Statistics

Stat   oldCC   newCC   oldLoc   newLoc
Sum:5465125147
Average:10.8132529.4
Minimum:7101315
Maximum:15163846
Standard deviation:2.712928.921910.929
Variance:7.36479.6119.44
warningCritical    Rule warning: Avoid making complex methods even more complex (IL CC)
// <Name>Avoid making complex methods even more complex (IL CC)</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from m in JustMyCode.Methods where
 
!m.IsAbstract &&
  
m.IsPresentInBothBuilds() &&
  
m.CodeWasChanged()

let oldCC = m.OlderVersion().ILCyclomaticComplexity
where oldCC > 10 && m.ILCyclomaticComplexity > oldCC 

select new { m,
    
oldCC ,
    
newCC = m.ILCyclomaticComplexity ,
    
oldLoc = m.OlderVersion().NbLinesOfCode,
    
newLoc = m.NbLinesOfCode,
}

3 methods matched

methodsoldCCnewCColdLocnewLocFull Name
methodsoldCCnewCColdLocnewLocFull Name
RunTask(ITask,IIntegrationResult,Boolean)18192529ThoughtWorks.CruiseControl.Core.Project.RunTask(ITask ,IIntegrationResult,Boolean)
Enqueue(IIntegrationQueueItem)22263846ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.Enqueue (IIntegrationQueueItem)
.ctor()12141821ThoughtWorks.CruiseControl.WebDashboard.Resources.Translations..ctor()

Statistics

Stat   oldCC   newCC   oldLoc   newLoc
Sum:52598196
Average:17.33319.6672732
Minimum:12141821
Maximum:22263846
Standard deviation:4.10964.92168.286510.424
Variance:16.88924.22268.667108.67
warningCritical    Rule warning: Avoid making large methods even larger
// <Name>Avoid making large methods even larger</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from m in JustMyCode.Methods where
 
!m.IsAbstract &&
  
m.IsPresentInBothBuilds() &&
  
m.CodeWasChanged() &&
 
// Eliminate constructors from match, since they get larger
 // as soons as some fields initialization are added.
 !m.IsConstructor &&
 
!m.IsClassConstructor

let oldLoc = m.OlderVersion().NbLinesOfCode
where oldLoc > 15 && m.NbLinesOfCode > oldLoc

select new { m,
    
oldLoc,
    
newLoc = m.NbLinesOfCode,
}

12 methods matched

methodsoldLocnewLocFull Name
methodsoldLocnewLocFull Name
Integrate(IntegrationRequest)4345ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate (IntegrationRequest)
GenerateTaskStatuses(String,IList)1822ThoughtWorks.CruiseControl.Core.Project.GenerateTaskStatuses(String ,IList)
RunTask(ITask,IIntegrationResult,Boolean)2529ThoughtWorks.CruiseControl.Core.Project.RunTask(ITask ,IIntegrationResult,Boolean)
Execute(IIntegrationResult)2627ThoughtWorks.CruiseControl.Core.Tasks.SequentialTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)3435ThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.Execute (IIntegrationResult)
Execute(IIntegrationResult)2526ThoughtWorks.CruiseControl.Core.Tasks.ParallelTask.Execute (IIntegrationResult)
Enqueue(IIntegrationQueueItem)3846ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.Enqueue (IIntegrationQueueItem)
RetrieveUserInformation(String)3132ThoughtWorks.CruiseControl.Core.Util.LdapHelper .RetrieveUserInformation(String)
GetFolderVersion(IIntegrationResult,IIntegrationResult)3136ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317 .GetFolderVersion(IIntegrationResult,IIntegrationResult)
eval_constant(String)2227ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_constant(String)
GenerateView(ProjectStatusListAndExceptions,String,ICruiseRequest ,IServerSpecifier)2224ThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction.GenerateView(ProjectStatusListAndExceptions ,String,ICruiseRequest,IServerSpecifier)
StartConfigurationLoad()3037Validator.MainForm.StartConfigurationLoad()

Statistics

Stat   oldLoc   newLoc
Sum:345386
Average:28.7532.167
Minimum:1822
Maximum:4346
Standard deviation:6.89357.4926
Variance:47.52156.139
warningCritical    Rule warning: Avoid adding methods to a type that already had many methods
// <Name>Avoid adding methods to a type that already had many methods</Name>
// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from t in JustMyCode.Types where
  
t.IsPresentInBothBuilds() &&
  
t.Methods.Count() > t.OlderVersion().Methods.Count() &&
  
t.OlderVersion().Methods.Count() > 10

let newMethods = t.Methods.Where(m => m.WasAdded())
let removedMethods = t.OlderVersion().Methods.Where(m => m.WasRemoved())

select new { t,
             
oldNbMethods = t.OlderVersion().NbMethods,
             
newNbMethods = t.NbMethods,
             
newMethods,
             
removedMethods  }

12 types matched

typesoldNbMethodsnewNbMethodsnewMethodsremovedMethodsFull Name
typesoldNbMethodsnewNbMethodsnewMethodsremovedMethodsFull Name
CruiseServerClientBase62642 methods0 methodThoughtWorks.CruiseControl.Remote.CruiseServerClientBase
ServerRequest13152 methods0 methodThoughtWorks.CruiseControl.Remote.Messages.ServerRequest
Project94954 methods3 methodsThoughtWorks.CruiseControl.Core.Project
RemoteCruiseServer516412 methods0 methodThoughtWorks.CruiseControl.Core.RemoteCruiseServer
TaskBase15194 methods0 methodThoughtWorks.CruiseControl.Core.Tasks.TaskBase
Svn386932 methods1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
VelocityProjectGridAction13152 methods0 methodThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction
MainFormController52531 method0 methodThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
StubProjectMonitor49502 methods1 methodThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor
ISingleProjectDetail16171 method0 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ISingleProjectDetail
ProjectMonitor51522 methods1 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ProjectMonitor
MainForm41443 methods0 methodValidator.MainForm

Statistics

Stat   oldNbMethods   newNbMethods   newMethods   removedMethods
Sum:49555700
Average:41.2546.41700
Minimum:131500
Maximum:949500
Standard deviation:23.29624.44900
Variance:542.69597.7400
warningCritical    Rule warning: Avoid adding instance fields to a type that already had many instance fields
// <Name>Avoid adding instance fields to a type that already had many instance fields</Name>
// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from t in JustMyCode.Types where
  
t.IsPresentInBothBuilds() &&
 
!t.IsStatic

let oldNbInstanceFields = t.OlderVersion().InstanceFields
let newNbInstanceFields = t.InstanceFields
where
  
newNbInstanceFields.Count() > oldNbInstanceFields .Count() &&
  
oldNbInstanceFields.Count() > 6

let newInstanceFields = t.InstanceFields.Where(f => f.WasAdded())

select new { t,
             
oldCount = oldNbInstanceFields.Count() ,
             
newCount = newNbInstanceFields.Count() ,
             
newInstanceFields }

3 types matched

typesoldCountnewCountnewInstanceFieldsFull Name
typesoldCountnewCountnewInstanceFieldsFull Name
Svn212216 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
VelocityProjectGridAction891 fieldThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction
MainForm46493 fieldsValidator.MainForm

Statistics

Stat   oldCount   newCount   newInstanceFields
Sum:75800
Average:2526.6670
Minimum:890
Maximum:46490
Standard deviation:15.76916.660
Variance:248.67277.560

Object Oriented Design  
 3 10 0 

warningCritical    Rule warning: Base class should not use derivatives
// <Name>Base class should not use derivatives</Name>
warnif count > 0 
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }

2 types matched

typesderivedClassesUsedFull Name
typesderivedClassesUsedFull Name
AuditFilterBase5 typesThoughtWorks.CruiseControl.Remote.Security.AuditFilterBase
ErrorLevel3 typesThoughtWorks.CruiseControl.CCTrayLib.ErrorLevel

Statistics

Stat   derivedClassesUsed
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Class shouldn't be too deep in inheritance tree
// <Name>Class shouldn't be too deep in inheritance tree</Name>
warnif count > 0 from t in JustMyCode.Types 
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()

// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes 
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3

select new { t, baseClasses, 
                
// The metric value DepthOfInheritance takes account
                // of third-party base classes
                t.DepthOfInheritance } 

// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here 
// http://www.ndepend.com/Metrics.aspx#DIT

8 types matched

typesbaseClassesDepth of inheritanceFull Name
typesbaseClassesDepth of inheritanceFull Name
BuildListRequest3 types4ThoughtWorks.CruiseControl.Remote.Messages.BuildListRequest
FileTransferRequest3 types4ThoughtWorks.CruiseControl.Remote.Messages.FileTransferRequest
ProjectItemRequest3 types4ThoughtWorks.CruiseControl.Remote.Messages.ProjectItemRequest
BuildRequest3 types4ThoughtWorks.CruiseControl.Remote.Messages.BuildRequest
ChangeConfigurationRequest3 types4ThoughtWorks.CruiseControl.Remote.Messages.ChangeConfigurationRequest
MessageRequest3 types4ThoughtWorks.CruiseControl.Remote.Messages.MessageRequest
BuildIntegrationRequest3 types4ThoughtWorks.CruiseControl.Remote.Messages.BuildIntegrationRequest
Vault3173 types4ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317

Statistics

Stat   baseClasses   Depth of inheritance
Sum:032
Average:04
Minimum:04
Maximum:04
Standard deviation:00
Variance:00
warningCritical    Rule warning: Class with no descendant should be sealed if possible
// <Name>Class with no descendant should be sealed if possible</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsClass && 
  
t.NbChildren ==0 && 
 
!t.IsSealed && 
 
!t.IsStatic 
  
// && !t.IsPublic <-- You might want to add this condition 
  //                    if you are developping a framework
  //                    with classes that are intended to be 
  //                    sub-classed by your clients.
  orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }

725 types matched

The following list of types is truncated and contains only the first 100 types of the 725 types matched. All matched types could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched types.
types# lines of code (LOC)Full Name
types# lines of code (LOC)Full Name
MainForm638Validator.MainForm
MainForm529ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
Project512ThoughtWorks.CruiseControl.Core.Project
CruiseServer407ThoughtWorks.CruiseControl.Core.CruiseServer
AddBuildServer345ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer
X10SettingsControl313ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl
CCTrayMultiSettingsForm285ThoughtWorks.CruiseControl.CCTrayLib.Presentation .CCTrayMultiSettingsForm
OptionSet281ThoughtWorks.CruiseControl.Remote.Mono.OptionSet
MainFormController263ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
Server237ThoughtWorks.CruiseControl.Remote.Monitor.Server
CruiseServerClient219ThoughtWorks.CruiseControl.Remote.CruiseServerClient
Svn217ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
AddProjects212ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddProjects
CurrentStatusWindow207ThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow
FtpLib199ThoughtWorks.CruiseControl.Core.Util.FtpLib
BuildProjectsControl178ThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildProjectsControl
PackagesListForm175ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm
AdministerAction173ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .AdministerAction
ConfigurationHierarchy171Validator.ConfigurationHierarchy
DisplayChangedProjects170ThoughtWorks.CruiseControl.CCTrayLib.Presentation .DisplayChangedProjects
P4168ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4
Vsts166ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts
PackagePublisher165ThoughtWorks.CruiseControl.Core.Publishers.PackagePublisher
ServerAggregatingCruiseManagerWrapper165ThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper
Git160ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git
ExternalFileSecurityManager160ThoughtWorks.CruiseControl.Core.Security.ExternalFileSecurityManager
HttpStatusTask159ThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask
GeneralSettingsControl159ThoughtWorks.CruiseControl.CCTrayLib.Presentation .GeneralSettingsControl
IntegrationQueue157ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue
CruiseServerClient156ThoughtWorks.CruiseControl.Core.CruiseServerClient
Pvcs149ThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs
AudioSettingsControl149ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AudioSettingsControl
GrowlSettingsControl147ThoughtWorks.CruiseControl.CCTrayLib.Presentation.GrowlSettingsControl
Package146ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration.Package
CruiseObjectSourceInitializer145ThoughtWorks.CruiseControl.WebDashboard.Dashboard .CruiseObjectSourceInitializer
BuildParameters143ThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildParameters
Program141ThoughtWorks.CruiseControl.CCCmd.Program
IconSettingsControl140ThoughtWorks.CruiseControl.CCTrayLib.Presentation.IconSettingsControl
EmailMessage139ThoughtWorks.CruiseControl.Core.Publishers.EmailMessage
Project138ThoughtWorks.CruiseControl.Remote.Monitor.Project
ConfigureServer133ThoughtWorks.CruiseControl.CCTrayLib.Presentation.ConfigureServer
Cm11LowLevelDriver+Cm11LowLevelDriverWorker132ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker
ProjectIntegrator126ThoughtWorks.CruiseControl.Core.ProjectIntegrator
RemoteCruiseServer124ThoughtWorks.CruiseControl.Core.RemoteCruiseServer
DupFinderTask124ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask
NCoverReportTask123ThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask
Mercurial123ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial
StringUtil121ThoughtWorks.CruiseControl.Core.Util.StringUtil
Cvs120ThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs
SynergyCommand120ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand
PackageManager119ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .PackageManager
Vault317118ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault317
ProjectMonitor117ThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ProjectMonitor
RssPublisher112ThoughtWorks.CruiseControl.Core.Publishers.RssPublisher
CruiseManager105ThoughtWorks.CruiseControl.Core.CruiseManager
ProjectReportProjectPlugin105ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ProjectReportProjectPlugin
About104ThoughtWorks.CruiseControl.CCTrayLib.Presentation.About
ExecSettingsControl103ThoughtWorks.CruiseControl.CCTrayLib.Presentation.ExecSettingsControl
InternalSecurityManager102ThoughtWorks.CruiseControl.Core.Security.InternalSecurityManager
ConfigPreprocessorEnvironment102ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment
XmlIntegrationResultWriter102ThoughtWorks.CruiseControl.Core.Publishers.XmlIntegrationResultWriter
PowerShellTask101ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask
Mks100ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks
EmailPublisher100ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher
ProcessExecutor+RunnableProcess98ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+RunnableProcess
ArtifactCleanUpTask96ThoughtWorks.CruiseControl.Core.Tasks.ArtifactCleanUpTask
SideBarViewBuilder96ThoughtWorks.CruiseControl.WebDashboard.Dashboard.SideBarViewBuilder
ConfigureUserPassword96ThoughtWorks.CruiseControl.CCTrayLib.Security.ConfigureUserPassword
XmlLogger95ThoughtWorks.CruiseControl.MSBuild.XmlLogger
AboutForm93Validator.AboutForm
BuildQueue92ThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue
BitKeeperHistoryParser91ThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper .BitKeeperHistoryParser
VelocityProjectGridAction91ThoughtWorks.CruiseControl.WebDashboard.Dashboard .VelocityProjectGridAction
ClearCase89ThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCase
CCTrayMultiConfiguration89ThoughtWorks.CruiseControl.CCTrayLib.Configuration .CCTrayMultiConfiguration
ObjectionStore88Objection.ObjectionStore
IntegrationRunner88ThoughtWorks.CruiseControl.Core.IntegrationRunner
NDependTask86ThoughtWorks.CruiseControl.Core.Tasks.NDependTask
CruiseServerHttpClient85ThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient
MsBuildTask84ThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask
Vss83ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss
SvnHistoryParser81ThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser
SystemIoFileSystem80ThoughtWorks.CruiseControl.Core.Util.SystemIoFileSystem
VersionInformationForm79Validator.VersionInformationForm
BuildPublisher78ThoughtWorks.CruiseControl.Core.Publishers.BuildPublisher
VaultVersionChecker76ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultVersionChecker
AggregatingProjectMonitor76ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor
CruiseServerClientFactory75ThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory
CvsHistoryParser75ThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser
EncryptingConnection74ThoughtWorks.CruiseControl.Remote.EncryptingConnection
DevenvTask74ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask
VaultHistoryParser74ThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser
Synergy74ThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.Synergy
IntegrationQueueManager73ThoughtWorks.CruiseControl.Core.IntegrationQueueManager
FileBasedSessionCache72ThoughtWorks.CruiseControl.Core.Security.FileBasedSessionCache
FinalBuilderTask71ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask
NetReflectorConfigurationReader71ThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader
NCoverProfileTask70ThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask
SelectParameter69ThoughtWorks.CruiseControl.Remote.Parameters.SelectParameter
XmlUtil69ThoughtWorks.CruiseControl.Core.Util.XmlUtil

Statistics

Stat   # lines of code (LOC)
Sum:25 704
Average:35.454
Minimum:0
Maximum:638
Standard deviation:58.446
Variance:3 415
warningCritical    Rule warning: Overrides of Method() should call base.Method()
// <Name>Overrides of Method() should call base.Method()</Name>
// Overrides of Method() should refine the behavior of base.Method().
// If base.Method() is not called, the base behavior is not refined but it is replaced.
// Violations of this rule are a sign of design flaw,
// especially if the design provides valid reasons 
// that advocates that the base behavior must be replaced and not refined.
//
// Discussions on this topic are available here:
//  http://stackoverflow.com/questions/1107022/should-i-call-the-base-class-implementation-when-overriding-a-method-in-c-sharp
//  http://stackoverflow.com/questions/2945147/make-sure-base-method-gets-called-in-c-sharp

warnif count > 0
from t in Types  // Take account of third-party types too

// Bother only classes with descendant
where t.IsClass && t.NbChildren > 0

from mBase in t.InstanceMethods
where  mBase.IsVirtual &&
      
!mBase.IsThirdParty &&
      
!mBase.IsAbstract && 
      
!mBase.IsExplicitInterfaceImpl
from mOverride in mBase.OverridesDirectDerived
where !mOverride.IsUsing(mBase)
select new { mOverride, shouldCall = mBase, definedInBaseClass = mBase.ParentType }

131 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 131 methods matched. All matched methods could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched methods.
methodsshouldCalldefinedInBaseClassFull Name
methodsshouldCalldefinedInBaseClassFull Name
GetProjectStatus()GetProjectStatus()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetProjectStatus()
GetProjectStatus()GetProjectStatus()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetProjectStatus( )
GetProjectStatus()GetProjectStatus()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient .GetProjectStatus()
ForceBuild(String)ForceBuild(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .ForceBuild(String)
ForceBuild(String)ForceBuild(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ForceBuild(String )
ForceBuild(String)ForceBuild(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.ForceBuild (String)
ForceBuild(String,List<NameValuePair>)ForceBuild(String,List<NameValuePair>)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .ForceBuild(String,List<NameValuePair>)
ForceBuild(String,List<NameValuePair>)ForceBuild(String,List<NameValuePair>)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ForceBuild(String ,List<NameValuePair>)
ForceBuild(String,List<NameValuePair>)ForceBuild(String,List<NameValuePair>)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.ForceBuild (String,List<NameValuePair>)
AbortBuild(String)AbortBuild(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .AbortBuild(String)
AbortBuild(String)AbortBuild(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.AbortBuild(String )
AbortBuild(String)AbortBuild(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.AbortBuild (String)
Request(String,IntegrationRequest)Request(String,IntegrationRequest)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.Request (String,IntegrationRequest)
Request(String,IntegrationRequest)Request(String,IntegrationRequest)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.Request(String ,IntegrationRequest)
Request(String,IntegrationRequest)Request(String,IntegrationRequest)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.Request (String,IntegrationRequest)
StartProject(String)StartProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .StartProject(String)
StartProject(String)StartProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.StartProject (String)
StartProject(String)StartProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.StartProject (String)
StopProject(String)StopProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .StopProject(String)
StopProject(String)StopProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.StopProject (String)
StopProject(String)StopProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.StopProject (String)
SendMessage(String,Message)SendMessage(String,Message)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .SendMessage(String,Message)
SendMessage(String,Message)SendMessage(String,Message)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.SendMessage (String,Message)
WaitForExit(String)WaitForExit(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .WaitForExit(String)
WaitForExit(String)WaitForExit(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.WaitForExit (String)
CancelPendingRequest(String)CancelPendingRequest(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .CancelPendingRequest(String)
CancelPendingRequest(String)CancelPendingRequest(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .CancelPendingRequest(String)
GetCruiseServerSnapshot()GetCruiseServerSnapshot()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetCruiseServerSnapshot()
GetCruiseServerSnapshot()GetCruiseServerSnapshot()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .GetCruiseServerSnapshot()
GetCruiseServerSnapshot()GetCruiseServerSnapshot()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient .GetCruiseServerSnapshot()
GetLatestBuildName(String)GetLatestBuildName(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetLatestBuildName(String)
GetLatestBuildName(String)GetLatestBuildName(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .GetLatestBuildName(String)
GetBuildNames(String)GetBuildNames(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetBuildNames(String)
GetBuildNames(String)GetBuildNames(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetBuildNames (String)
GetMostRecentBuildNames(String,Int32)GetMostRecentBuildNames(String,Int32)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetMostRecentBuildNames(String,Int32)
GetMostRecentBuildNames(String,Int32)GetMostRecentBuildNames(String,Int32)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .GetMostRecentBuildNames(String,Int32)
GetLog(String,String,Boolean)GetLog(String,String,Boolean)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.GetLog (String,String,Boolean)
GetLog(String,String,Boolean)GetLog(String,String,Boolean)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetLog(String ,String,Boolean)
GetServerLog()GetServerLog()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetServerLog()
GetServerLog()GetServerLog()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetServerLog()
GetServerLog(String)GetServerLog(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetServerLog(String)
GetServerLog(String)GetServerLog(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetServerLog (String)
GetServerVersion()GetServerVersion()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetServerVersion()
GetServerVersion()GetServerVersion()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetServerVersion( )
GetServerVersion()GetServerVersion()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient .GetServerVersion()
AddProject(String)AddProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .AddProject(String)
AddProject(String)AddProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.AddProject(String )
DeleteProject(String,Boolean,Boolean,Boolean)DeleteProject(String,Boolean,Boolean,Boolean)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .DeleteProject(String,Boolean,Boolean,Boolean)
DeleteProject(String,Boolean,Boolean,Boolean)DeleteProject(String,Boolean,Boolean,Boolean)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.DeleteProject (String,Boolean,Boolean,Boolean)
GetProject(String)GetProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetProject(String)
GetProject(String)GetProject(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetProject(String )
UpdateProject(String,String)UpdateProject(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .UpdateProject(String,String)
UpdateProject(String,String)UpdateProject(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.UpdateProject (String,String)
GetExternalLinks(String)GetExternalLinks(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetExternalLinks(String)
GetExternalLinks(String)GetExternalLinks(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetExternalLinks (String)
GetArtifactDirectory(String)GetArtifactDirectory(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetArtifactDirectory(String)
GetArtifactDirectory(String)GetArtifactDirectory(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .GetArtifactDirectory(String)
GetStatisticsDocument(String)GetStatisticsDocument(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetStatisticsDocument(String)
GetStatisticsDocument(String)GetStatisticsDocument(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .GetStatisticsDocument(String)
GetModificationHistoryDocument(String)GetModificationHistoryDocument(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetModificationHistoryDocument(String)
GetModificationHistoryDocument(String)GetModificationHistoryDocument(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .GetModificationHistoryDocument(String)
GetRSSFeed(String)GetRSSFeed(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetRSSFeed(String)
GetRSSFeed(String)GetRSSFeed(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetRSSFeed(String )
Login(List<NameValuePair>)Login(List<NameValuePair>)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.Login(List <NameValuePair>)
Logout()Logout()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.Logout()
GetSecurityConfiguration()GetSecurityConfiguration()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .GetSecurityConfiguration()
ListUsers()ListUsers()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ListUsers()
DiagnoseSecurityPermissions(String,String[])DiagnoseSecurityPermissions(String,String[])CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .DiagnoseSecurityPermissions(String,String[])
ReadAuditRecords(Int32,Int32)ReadAuditRecords(Int32,Int32)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ReadAuditRecords (Int32,Int32)
ReadAuditRecords(Int32,Int32,AuditFilterBase)ReadAuditRecords(Int32,Int32,AuditFilterBase)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ReadAuditRecords (Int32,Int32,AuditFilterBase)
ListBuildParameters(String)ListBuildParameters(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .ListBuildParameters(String)
ChangePassword(String,String)ChangePassword(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ChangePassword (String,String)
ResetPassword(String,String)ResetPassword(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ResetPassword (String,String)
TakeStatusSnapshot(String)TakeStatusSnapshot(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .TakeStatusSnapshot(String)
RetrievePackageList(String)RetrievePackageList(String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .RetrievePackageList(String)
RetrieveFileTransfer(String,String)RetrieveFileTransfer(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .RetrieveFileTransfer(String,String)
RetrieveFileTransfer(String,String)RetrieveFileTransfer(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient .RetrieveFileTransfer(String,String)
GetFreeDiskSpace()GetFreeDiskSpace()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetFreeDiskSpace( )
GetLinkedSiteId(String,String)GetLinkedSiteId(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetLinkedSiteId (String,String)
ProcessMessage(String,String)ProcessMessage(String,String)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ProcessMessage (String,String)
ProcessMessage(String,ServerRequest)ProcessMessage(String,ServerRequest)CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ProcessMessage (String,ServerRequest)
ListServers()ListServers()CruiseServerClientBaseThoughtWorks.CruiseControl.Remote.CruiseServerClient.ListServers()
get_ClientDefaultValue()get_ClientDefaultValue()ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.SelectParameter .get_ClientDefaultValue()
get_ClientDefaultValue()get_ClientDefaultValue()ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .get_ClientDefaultValue()
set_ClientDefaultValue(String)set_ClientDefaultValue(String)ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.SelectParameter .set_ClientDefaultValue(String)
set_ClientDefaultValue(String)set_ClientDefaultValue(String)ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .set_ClientDefaultValue(String)
Convert(String)Convert(String)ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.BooleanParameter.Convert (String)
Convert(String)Convert(String)ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.SelectParameter.Convert (String)
Convert(String)Convert(String)ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.DateParameter.Convert (String)
GenerateClientDefault()GenerateClientDefault()ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.SelectParameter .GenerateClientDefault()
GenerateClientDefault()GenerateClientDefault()ParameterBaseThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .GenerateClientDefault()
get_Modifications()get_Modifications()IntegrationResultThoughtWorks.CruiseControl.Core.WorkflowResult.get_Modifications()
set_Modifications(Modification[])set_Modifications(Modification[])IntegrationResultThoughtWorks.CruiseControl.Core.WorkflowResult.set_Modifications (Modification[])
GetProcessSuccessCodes()GetProcessSuccessCodes()BaseExecutableTaskThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask .GetProcessSuccessCodes()
GetProcessSuccessCodes()GetProcessSuccessCodes()BaseExecutableTaskThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask .GetProcessSuccessCodes()
get_Data()get_Data()ProcessTaskResultThoughtWorks.CruiseControl.Core.Tasks.DevenvTaskResult.get_Data()
Generate(IIntegrationResult)Generate(IIntegrationResult)DefaultLabellerThoughtWorks.CruiseControl.Core.Label.IterationLabeller.Generate (IIntegrationResult)
PreprocessParameters(NetReflectorTypeTable,XmlNode)PreprocessParameters(NetReflectorTypeTable,XmlNode)SourceControlBaseThoughtWorks.CruiseControl.Core.Sourcecontrol.MultiSourceControl .PreprocessParameters(NetReflectorTypeTable,XmlNode)
GetSource(IIntegrationResult)GetSource(IIntegrationResult)ProcessSourceControlThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3.GetSource (IIntegrationResult)
GetSource(IIntegrationResult)GetSource(IIntegrationResult)ProcessSourceControlThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper.BitKeeper .GetSource(IIntegrationResult)

Statistics

Stat   shouldCall   definedInBaseClass
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: A stateless class or structure might be turned into a static type
// <Name>A stateless class or structure might be turned into a static type</Name>
// This rule indicates stateless types that might 
// eventually be turned into static classes.
warnif count > 0 from t in JustMyCode.Types where
  
!t.IsStatic &&                  
  
!t.IsGeneric &&
   
t.InstanceFields.Count() == 0 &&

   
// Don't match:
   // --> types that implement some interfaces.
   t.NbInterfacesImplemented == 0 &&

   
// --> or classes that have sub-classes children.                            
   t.NbChildren == 0 &&

   
// --> or classes that have a base class
   ((t.IsClass && t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1) ||
     
t.IsStructure) 

   
select t  

33 types matched

typesFull Name
typesFull Name
LogFileUtilThoughtWorks.CruiseControl.Core.LogFileUtil
IntegrationStatusParserThoughtWorks.CruiseControl.Core.IntegrationStatusParser
CruiseXmlWriterThoughtWorks.CruiseControl.Core.CruiseXmlWriter
IntegrationPropertyNamesThoughtWorks.CruiseControl.Core.IntegrationPropertyNames
FileLabeller+FileReaderThoughtWorks.CruiseControl.Core.Label.FileLabeller+FileReader
TempFileUtilThoughtWorks.CruiseControl.Core.Util.TempFileUtil
DateUtilThoughtWorks.CruiseControl.Core.Util.DateUtil
ReflectionUtilThoughtWorks.CruiseControl.Core.Util.ReflectionUtil
KillUtilThoughtWorks.CruiseControl.Core.Util.KillUtil
HttpWrapperThoughtWorks.CruiseControl.Core.Util.HttpWrapper
StringUtilThoughtWorks.CruiseControl.Core.Util.StringUtil
DateTimeProviderThoughtWorks.CruiseControl.Core.Util.DateTimeProvider
XmlUtilThoughtWorks.CruiseControl.Core.Util.XmlUtil
TraceLogManagerThoughtWorks.CruiseControl.Core.Util.Log4NetTrace.TraceLogManager
VSSParserFactoryThoughtWorks.CruiseControl.Core.Sourcecontrol.VSSParserFactory
CommonThoughtWorks.CruiseControl.Core.Sourcecontrol.Common
SynergyCommandBuilderThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyCommandBuilder
UtilsThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils
BuildLogTransformerThoughtWorks.CruiseControl.Core.Publishers.BuildLogTransformer
XmlIntegrationResultWriter+ElementsThoughtWorks.CruiseControl.Core.Publishers .XmlIntegrationResultWriter+Elements
StatisticsCalculatorThoughtWorks.CruiseControl.Core.Publishers.Statistics .StatisticsCalculator
RSSLinkBuilderThoughtWorks.CruiseControl.WebDashboard.Dashboard.RSSLinkBuilder
PackageManagerThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration .PackageManager
AudioThoughtWorks.CruiseControl.CCTrayLib.Audio
DateTimeProviderThoughtWorks.CruiseControl.CCTrayLib.DateTimeProvider
NativeMethodsThoughtWorks.CruiseControl.CCTrayLib.Presentation.NativeMethods
X10DefinitionsThoughtWorks.CruiseControl.CCTrayLib.X10.X10Definitions
SpeechUtilThoughtWorks.CruiseControl.CCTrayLib.Speech.SpeechUtil
BootstrapThoughtWorks.CruiseControl.CCTray.Bootstrap
ConsoleMainThoughtWorks.CruiseControl.Console.ConsoleMain
ProgramThoughtWorks.CruiseControl.CCCmd.Program
XmlLogger+XmlLoggerElementsThoughtWorks.CruiseControl.MSBuild.XmlLogger+XmlLoggerElements
XmlLogger+XmlLoggerAttributesThoughtWorks.CruiseControl.MSBuild.XmlLogger+XmlLoggerAttributes

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Non-static classes should be instantiated or turned to static
// <Name>Non-static classes should be instantiated or turned to static</Name>
// Notice that classes only instantiated through reflection, like plug-in root classes
// are matched by this rules.
warnif count > 0
from t in JustMyCode.Types
where  t.IsClass &&
    
//!t.IsPublic &&   // if you are developping a framework, 
                       // you might not want to match public classes
      !t.IsStatic && 
      
!t.IsAttributeClass && // Attributes class are never seen as instantiated
      !t.DeriveFrom("System.MarshalByRefObject".AllowNoMatch()) // Types instantiated through remoting infrstructure
       
// find the first constructor of t called
let ctorCalled = t.Constructors.FirstOrDefault(ctor => ctor.NbMethodsCallingMe > 0)

// match t if none of its constructors is called.
where ctorCalled == null
select new { t, t.Visibility }

241 types matched

The following list of types is truncated and contains only the first 100 types of the 241 types matched. All matched types could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched types.
typesVisibilityFull Name
typesVisibilityFull Name
NameValuePairSerialiserFactoryPublicThoughtWorks.CruiseControl.Remote.NameValuePairSerialiserFactory
QueueSnapshotListInternalThoughtWorks.CruiseControl.Remote.QueueSnapshotList
QueuedRequestSnapshotListPublicThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshotList
NameValuePairListSerialiserFactoryPublicThoughtWorks.CruiseControl.Remote.NameValuePairListSerialiserFactory
ServerPublicThoughtWorks.CruiseControl.Remote.Monitor.Server
PollingServerWatcherPublicThoughtWorks.CruiseControl.Remote.Monitor.PollingServerWatcher
BooleanParameterPublicThoughtWorks.CruiseControl.Remote.Parameters.BooleanParameter
SelectParameterPublicThoughtWorks.CruiseControl.Remote.Parameters.SelectParameter
DateParameterPublicThoughtWorks.CruiseControl.Remote.Parameters.DateParameter
NumericParameterPublicThoughtWorks.CruiseControl.Remote.Parameters.NumericParameter
WorkflowPublicThoughtWorks.CruiseControl.Core.Workflow
LogFileUtilPublicThoughtWorks.CruiseControl.Core.LogFileUtil
CruiseControlRemotingExceptionPublicThoughtWorks.CruiseControl.Core.CruiseControlRemotingException
ViewCVSUrlBuilderPublicThoughtWorks.CruiseControl.Core.ViewCVSUrlBuilder
IntegrationStatusParserPublicThoughtWorks.CruiseControl.Core.IntegrationStatusParser
IntegrationPropertyNamesPublicThoughtWorks.CruiseControl.Core.IntegrationPropertyNames
MergeFileSerialiserFactoryPublicThoughtWorks.CruiseControl.Core.Tasks.MergeFileSerialiserFactory
HttpStatusTaskPublicThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask
CoverageThresholdPublicThoughtWorks.CruiseControl.Core.Tasks.CoverageThreshold
CruiseServerControlTaskPublicThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTask
CruiseServerControlTaskActionPublicThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTaskAction
MergeFilesTaskPublicThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask
DirectDynamicValuePublicThoughtWorks.CruiseControl.Core.Tasks.DirectDynamicValue
HttpRequestHeaderPublicThoughtWorks.CruiseControl.Core.Tasks.HttpRequestHeader
SequentialTaskPublicThoughtWorks.CruiseControl.Core.Tasks.SequentialTask
HttpRequestSettingsPublicThoughtWorks.CruiseControl.Core.Tasks.HttpRequestSettings
ArtifactCleanUpTaskPublicThoughtWorks.CruiseControl.Core.Tasks.ArtifactCleanUpTask
SynchronisationTaskPublicThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask
ParallelTaskPublicThoughtWorks.CruiseControl.Core.Tasks.ParallelTask
FBVariablePublicThoughtWorks.CruiseControl.Core.Tasks.FBVariable
CoverageFilterPublicThoughtWorks.CruiseControl.Core.Tasks.CoverageFilter
ReplacementDynamicValuePublicThoughtWorks.CruiseControl.Core.Tasks.ReplacementDynamicValue
FtpTaskPublicThoughtWorks.CruiseControl.Core.Tasks.FtpTask
ParameterTriggerPublicThoughtWorks.CruiseControl.Core.Triggers.ParameterTrigger
AssemblyVersionLabellerPublicThoughtWorks.CruiseControl.Core.Label.AssemblyVersionLabeller
LastChangeLabellerPublicThoughtWorks.CruiseControl.Core.Label.LastChangeLabeller
DiskSpaceMonitorExtensionPublicThoughtWorks.CruiseControl.Core.Extensions.DiskSpaceMonitorExtension
IntegrationRequestThrottleExtensionPublicThoughtWorks.CruiseControl.Core.Extensions .IntegrationRequestThrottleExtension
IntegrationPerformanceCountersExtensionPublicThoughtWorks.CruiseControl.Core.Extensions .IntegrationPerformanceCountersExtension
AccurateTimerPublicThoughtWorks.CruiseControl.Core.Util.AccurateTimer
TimeoutSerializerFactoryPublicThoughtWorks.CruiseControl.Core.Util.TimeoutSerializerFactory
TempFileUtilPublicThoughtWorks.CruiseControl.Core.Util.TempFileUtil
DateUtilPublicThoughtWorks.CruiseControl.Core.Util.DateUtil
HtmlAwareMultiTransformerPublicThoughtWorks.CruiseControl.Core.Util.HtmlAwareMultiTransformer
ReflectionUtilPublicThoughtWorks.CruiseControl.Core.Util.ReflectionUtil
KillUtilInternalThoughtWorks.CruiseControl.Core.Util.KillUtil
EnvironmentVariablePublicThoughtWorks.CruiseControl.Core.Util.EnvironmentVariable
AssemblyMatchPublicThoughtWorks.CruiseControl.Core.Util.AssemblyMatch
NotifierListPublicThoughtWorks.CruiseControl.Core.Util.NotifierList
HtmlExceptionFormatterPublicThoughtWorks.CruiseControl.Core.Util.HtmlExceptionFormatter
NetworkCredentialSerializerFactoryPublicThoughtWorks.CruiseControl.Core.Util .NetworkCredentialSerializerFactory
PrivateStringSerialiserFactoryPublicThoughtWorks.CruiseControl.Core.Util.PrivateStringSerialiserFactory
StringUtilPublicThoughtWorks.CruiseControl.Core.Util.StringUtil
UriSerializerFactoryPublicThoughtWorks.CruiseControl.Core.Util.UriSerializerFactory
XmlUtilPublicThoughtWorks.CruiseControl.Core.Util.XmlUtil
TempDirectoryPublicThoughtWorks.CruiseControl.Core.Util.TempDirectory
TraceLogManagerPublicThoughtWorks.CruiseControl.Core.Util.Log4NetTrace.TraceLogManager
CommentFilterPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.CommentFilter
RegExIssueTrackerUrlBuilderPublicThoughtWorks.CruiseControl.Core.Sourcecontrol .RegExIssueTrackerUrlBuilder
PathFilterPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.PathFilter
FilteredSourceControlPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.FilteredSourceControl
VSSParserFactoryInternalThoughtWorks.CruiseControl.Core.Sourcecontrol.VSSParserFactory
ClearCasePublicThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCase
FtpSourceControlPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.FtpSourceControl
ActionFilterPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.ActionFilter
DefaultIssueTrackerUrlBuilderPublicThoughtWorks.CruiseControl.Core.Sourcecontrol .DefaultIssueTrackerUrlBuilder
VaultVersionCheckerPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultVersionChecker
UserFilterPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.UserFilter
SurroundPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Surround
MultiIssueTrackerUrlBuilderPublicThoughtWorks.CruiseControl.Core.Sourcecontrol .MultiIssueTrackerUrlBuilder
WebSVNUrlBuilderPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.WebSVNUrlBuilder
StarTeamPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeam
CommonPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Common
MultiSourceControlPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.MultiSourceControl
ChangeSynergyUrlBuilderPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .ChangeSynergyUrlBuilder
SynergyCommandBuilderPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyCommandBuilder
SynergyProcessExecutorPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyProcessExecutor
HgWebUrlBuilderPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial .HgWebUrlBuilder
MercurialModificationCollectionPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial .MercurialModificationCollection
MercurialModificationPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial .MercurialModification
P4PublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4
BitKeeperPublicThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper.BitKeeper
RolePermissionPublicThoughtWorks.CruiseControl.Core.Security.RolePermission
ImpersonationDetailsPublicThoughtWorks.CruiseControl.Core.Security.ImpersonationDetails
UserNameAuthenticationPublicThoughtWorks.CruiseControl.Core.Security.UserNameAuthentication
UserPermissionPublicThoughtWorks.CruiseControl.Core.Security.UserPermission
InternalSecurityManagerPublicThoughtWorks.CruiseControl.Core.Security.InternalSecurityManager
ActiveDirectoryAuthenticationPublicThoughtWorks.CruiseControl.Core.Security.ActiveDirectoryAuthentication
SecureMessagesChannelPublicThoughtWorks.CruiseControl.Core.Security.SecureMessagesChannel
NullProjectAuthorisationPublicThoughtWorks.CruiseControl.Core.Security.NullProjectAuthorisation
DefaultProjectAuthorisationPublicThoughtWorks.CruiseControl.Core.Security.DefaultProjectAuthorisation
UserPasswordAuthenticationPublicThoughtWorks.CruiseControl.Core.Security.UserPasswordAuthentication
UserNamePublicThoughtWorks.CruiseControl.Core.Security.UserName
XslFilesSectionHandlerPublicThoughtWorks.CruiseControl.Core.Config.XslFilesSectionHandler
ServerConfigurationHandlerPublicThoughtWorks.CruiseControl.Core.Config.ServerConfigurationHandler
CruiseControlConfigSectionHandlerPublicThoughtWorks.CruiseControl.Core.Config .CruiseControlConfigSectionHandler
DefinitionExceptionPublicThoughtWorks.CruiseControl.Core.Config.Preprocessor .DefinitionException
UtilsInternalThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils
DefaultCruiseUrlBuilderPublicThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation .DefaultCruiseUrlBuilder
EmailSubjectPublicThoughtWorks.CruiseControl.Core.Publishers.EmailSubject

Statistics

Stat   Visibility
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Methods should be declared static if possible
// <Name>Methods should be declared static if possible</Name>
warnif count > 0

// When an instance method can be safely declared as static you should declare it as static.
// Since it doesn't use any instance data and method of its type and base-types,
// you should consider if such a method could be moved to a static utility class
// or if it is strongly related enough to its current declaring type to stay in it.
//
// Turning an instance method into a static method is a micro performance optimization
// since a static method is a bit cheaper to invoke than an instance method.

from t in JustMyCode.Types.Where(t =>
   
!t.IsStatic && !t.IsInterface &&
   
!t.IsEnumeration && !t.IsDelegate &&
   
!t.IsGeneratedByCompiler)

let methodsThatCanBeMadeStatic = 
   
from m in t.InstanceMethods

   
// An instance method can be turned to static if it is not virtual, 
   // not using the this reference and also, not using
   // any of its class or base classes instance fields or instance methods.
   where !m.IsAbstract && !m.IsVirtual &&
         
!m.AccessThis && !m.IsExplicitInterfaceImpl &&

          
// Optimization: Using FirstOrDefault() avoid do check all members, 
          //               as soon as one member is found
          //               we know the method m cannot be made static.
          m.MembersUsed.FirstOrDefault(
              
mUsed => !mUsed.IsStatic && 
                       
(mUsed.ParentType == t || 
                        
t.DeriveFrom(mUsed.ParentType))
          
) == null 
   
select m

from m in methodsThatCanBeMadeStatic
let staticFieldsUsed = m.ParentType.StaticFields.UsedBy(m).Where(f => !f.IsGeneratedByCompiler)
select new { m, staticFieldsUsed }

185 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 185 methods matched. All matched methods could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched methods.
methodsstaticFieldsUsedFull Name
methodsstaticFieldsUsedFull Name
ReadValue(XmlElement)0 fieldThoughtWorks.CruiseControl.Remote.NameValuePairSerialiser.ReadValue (XmlElement)
WriteValue(XmlWriter,NameValuePair,String)0 fieldThoughtWorks.CruiseControl.Remote.NameValuePairSerialiser.WriteValue (XmlWriter,NameValuePair,String)
ValidateResponse(Response)0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerClient.ValidateResponse (Response)
RetrieveAttributeValue(XmlElement,String,String)0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient .RetrieveAttributeValue(XmlElement,String,String)
RetrieveAttributeValue(XmlElement,String,DateTime)0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient .RetrieveAttributeValue(XmlElement,String,DateTime)
RetrieveAttributeValue<TEnum>(XmlElement,String,TEnum)0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient .RetrieveAttributeValue<TEnum>(XmlElement,String,TEnum)
CalculateOperation(String,DateTime)0 fieldThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .CalculateOperation(String,DateTime)
FindLastUnderscore(String)0 fieldObjection.NMockAwareImplementationResolver.FindLastUnderscore(String)
set_QueuePriority(Int32)0 fieldThoughtWorks.CruiseControl.Core.Workflow.set_QueuePriority(Int32)
get_MinimumSleepTimeMillis()0 fieldThoughtWorks.CruiseControl.Core.Workflow.get_MinimumSleepTimeMillis()
ValidateFilename(String)0 fieldThoughtWorks.CruiseControl.Core.LogFile.ValidateFilename(String)
ParseLabel(String)1 fieldThoughtWorks.CruiseControl.Core.LogFile.ParseLabel(String)
IsSuccessful(String)0 fieldThoughtWorks.CruiseControl.Core.LogFile.IsSuccessful(String)
ListServers(ServerRequest)0 fieldThoughtWorks.CruiseControl.Core.CruiseServerClient.ListServers (ServerRequest)
InitializeServerThread()0 fieldThoughtWorks.CruiseControl.Core.CruiseServer.InitializeServerThread()
ContainsInvalidChars(String)0 fieldThoughtWorks.CruiseControl.Core.Project.ContainsInvalidChars(String)
GenerateServerRequest()0 fieldThoughtWorks.CruiseControl.Core.CruiseManager.GenerateServerRequest()
GenerateProjectRequest(String)0 fieldThoughtWorks.CruiseControl.Core.CruiseManager.GenerateProjectRequest (String)
ValidateResponse(Response)0 fieldThoughtWorks.CruiseControl.Core.CruiseManager.ValidateResponse (Response)
GetRuntime()0 fieldThoughtWorks.CruiseControl.Core.ConsoleRunner.GetRuntime()
ValidateResponse(Response)0 fieldThoughtWorks.CruiseControl.Core.ConsoleRunner.ValidateResponse (Response)
SetFilesToNormalAttribute(String)0 fieldThoughtWorks.CruiseControl.Core.Tasks.ArtifactCleanUpTask .SetFilesToNormalAttribute(String)
BuildLogFolderSet(IIntegrationResult)0 fieldThoughtWorks.CruiseControl.Core.Tasks.ArtifactCleanUpTask .BuildLogFolderSet(IIntegrationResult)
ListFileDifferences(Dictionary<String,DateTime>,DirectoryInfo)0 fieldThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask .ListFileDifferences(Dictionary<String,DateTime>,DirectoryInfo)
GenerateOriginalFileList(DirectoryInfo)0 fieldThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask .GenerateOriginalFileList(DirectoryInfo)
CompareFileNodes(XmlElement,XmlElement)0 fieldThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.CompareFileNodes (XmlElement,XmlElement)
QuoteSpaces(String)0 fieldThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.QuoteSpaces(String )
EnsurePathIsRooted(IIntegrationResult,String)0 fieldThoughtWorks.CruiseControl.Core.Tasks.CodeItRightTask .EnsurePathIsRooted(IIntegrationResult,String)
ParseTime(String)0 fieldThoughtWorks.CruiseControl.Core.Triggers.FilterTrigger.ParseTime (String)
ParseVersion(DateTime,IntegrationSummary)0 fieldThoughtWorks.CruiseControl.Core.Label.DateLabeller.ParseVersion (DateTime,IntegrationSummary)
IncrementLabel(String)0 fieldThoughtWorks.CruiseControl.Core.Label.LastChangeLabeller .IncrementLabel(String)
LoadState(TextReader)0 fieldThoughtWorks.CruiseControl.Core.State.FileStateManager.LoadState (TextReader)
HasWildCards(String)0 fieldThoughtWorks.CruiseControl.Core.Util.WildCardPath.HasWildCards(String)
CopyFileToFile(String,String)0 fieldThoughtWorks.CruiseControl.Core.Util.SystemIoFileSystem.CopyFileToFile (String,String)
get_PublicValue()0 fieldThoughtWorks.CruiseControl.Core.Util.PrivateString.get_PublicValue()
CleanUpMessageForXMLLogging(String)0 fieldThoughtWorks.CruiseControl.Core.Util.BuildProgressInformationData .CleanUpMessageForXMLLogging(String)
SendNotification(NotifierDelegate,Object)0 fieldThoughtWorks.CruiseControl.Core.Util.NotifierList.SendNotification (NotifierDelegate,Object)
Convert(String,IExecutionEnvironment)0 fieldThoughtWorks.CruiseControl.Core.Util.SystemPath.Convert(String ,IExecutionEnvironment)
FileExistsAtFtp(FTPFile[],String)0 fieldThoughtWorks.CruiseControl.Core.Util.FtpLib.FileExistsAtFtp(FTPFile[] ,String)
FolderExistsAtFtp(FTPFile[],String)0 fieldThoughtWorks.CruiseControl.Core.Util.FtpLib.FolderExistsAtFtp (FTPFile[],String)
FileIsDifferentAtFtp(FTPFile[],String,String)0 fieldThoughtWorks.CruiseControl.Core.Util.FtpLib.FileIsDifferentAtFtp (FTPFile[],String,String)
parseItem(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.VstsHistoryParser .parseItem(String)
GetVaultResponse(ProcessResult,ProcessInfo)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3.GetVaultResponse (ProcessResult,ProcessInfo)
CreateDate(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .CreateDate(String)
GetModificationsDetectedMessage(Modification[])0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod .GetModificationsDetectedMessage(Modification[])
GetMostRecentModificationDateTime(Modification[])0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod .GetMostRecentModificationDateTime(Modification[])
AssignFileInfo(Modification,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .AssignFileInfo(Modification,String)
AssignModificationTime(Modification,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .AssignModificationTime(Modification,String)
AccumulateMultiLineEntry(String,TextReader)1 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .AccumulateMultiLineEntry(String,TextReader)
TokenizeEntry(String)1 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .TokenizeEntry(String)
IsEndOfFile(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.VssHistoryParser .IsEndOfFile(String)
FormatCommandDate(DateTime)1 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.FormatCommandDate (DateTime)
WorkingFolderIsKnownAsSvnWorkingFolder(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn .WorkingFolderIsKnownAsSvnWorkingFolder(String)
CreateModification(FileInfo)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.FileSourceControl .CreateModification(FileInfo)
IsLocalFileChanged(FileInfo,DateTime)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.FileSourceControl .IsLocalFileChanged(FileInfo,DateTime)
CreateTemporaryBaselineName()0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCase .CreateTemporaryBaselineName()
HasFatalError(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCase.HasFatalError (String)
ValidateBaselineName(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCase .ValidateBaselineName(String)
AllModificationParams(String)1 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.AlienbrainHistoryParser .AllModificationParams(String)
ParseModification(String[])0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.AlienbrainHistoryParser .ParseModification(String[])
lookForErrorReturns(ProcessResult)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.lookForErrorReturns (ProcessResult)
FormatCommandDate(DateTime)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.FormatCommandDate (DateTime)
ReadSvnLogIntoXmlNode(TextReader)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .ReadSvnLogIntoXmlNode(TextReader)
ParseAuthor(XmlNode)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .ParseAuthor(XmlNode)
GetFolderFromPath(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .GetFolderFromPath(String)
GetFileFromPath(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .GetFileFromPath(String)
GetAttributeFromNode(XmlNode,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .GetAttributeFromNode(XmlNode,String)
ParseDate(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser .ParseDate(String)
ParseFileName(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .ParseFileName(String)
ParseFolderName(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .ParseFolderName(String)
ParseModifiedTime(String,String,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .ParseModifiedTime(String,String,String)
ParseType(String,String)1 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .ParseType(String,String)
CreateTemporaryLabelName(DateTime)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss .CreateTemporaryLabelName(DateTime)
FilterOnTimeframe(Modification[],DateTime,DateTime)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks.FilterOnTimeframe (Modification[],DateTime,DateTime)
IncreaseUsageCount()2 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks.IncreaseUsageCount()
ExtractXmlFromHistory(TextReader)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser .ExtractXmlFromHistory(TextReader)
GetComment(XmlNode)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser .GetComment(XmlNode)
GetTypeString(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser .GetTypeString(String)
CreatePVCSInstructionFile(String,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs .CreatePVCSInstructionFile(String,String)
CreatePVCSProcessInfo(String,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs .CreatePVCSProcessInfo(String,String)
GetUncPathPrefix(Modification)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs.GetUncPathPrefix (Modification)
GetTextReader(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs.GetTextReader (String)
TempFileNameIfBlank(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs.TempFileNameIfBlank (String)
FormatCommandDate(DateTime)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs.FormatCommandDate (DateTime)
ConvertIllegalCharactersInLabel(IIntegrationResult)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs .ConvertIllegalCharactersInLabel(IIntegrationResult)
ParseTasks(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyParser .ParseTasks(String)
IsSessionAlive(String,String,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand .IsSessionAlive(String,String,String)
IsDatabaseProtected(String,String,String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand .IsDatabaseProtected(String,String,String)
get_Type()0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial .MercurialModification.get_Type()
CreateClientNameIfOneNotSet(P4,String)1 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce .ProcessP4Initializer.CreateClientNameIfOneNotSet(P4,String)
CheckViewIsValid(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce .ProcessP4Initializer.CheckViewIsValid(String)
CheckWorkingDirectoryIsValid(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce .ProcessP4Initializer.CheckWorkingDirectoryIsValid(String)
ParseFileName(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper .BitKeeperHistoryParser.ParseFileName(String)
ParseFolderName(String)0 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper .BitKeeperHistoryParser.ParseFolderName(String)
GetPassword(LoginRequest)0 fieldThoughtWorks.CruiseControl.Core.Security.ActiveDirectoryAuthentication .GetPassword(LoginRequest)
HidePasswords(String)0 fieldThoughtWorks.CruiseControl.Core.Security .ServerSecurityConfigurationInformation.HidePasswords(String)
AddXmlElement(XmlDocument,XmlElement,String,String)0 fieldThoughtWorks.CruiseControl.Core.Security.Auditing.FileXmlLogger .AddXmlElement(XmlDocument,XmlElement,String,String)
ReadDataValue(XmlDocument,String)0 fieldThoughtWorks.CruiseControl.Core.Security.Auditing.FileXmlReader .ReadDataValue(XmlDocument,String)
LoadAndValidateSecurityManager(Configuration,Object)0 fieldThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader .LoadAndValidateSecurityManager(Configuration,Object)
LoadAndValidateQueue(Configuration,Object)0 fieldThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader .LoadAndValidateQueue(Configuration,Object)

Statistics

Stat   staticFieldsUsed
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Constructor should not call a virtual methods
// <Name>Constructor should not call a virtual methods</Name>

// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.

warnif count > 0
from t in Application.Types where 
   
t.IsClass &&
  
!t.IsGeneratedByCompiler &&
  
!t.IsSealed

from ctor in t.Constructors 
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
                           
where mCalled.IsVirtual &&
                                
(mCalled.ParentType == t ||
                                 
t.DeriveFrom(mCalled.ParentType))
                           
select mCalled
where virtualMethodsCalled.Count() > 0

select new { ctor , 
             
virtualMethodsCalled, 
             
// If there is no derived type, it might be 
             // an opportunity to mark t as sealed.
             t.DerivedTypes }

13 methods matched

methodsvirtualMethodsCalledDerivedTypesFull Name
methodsvirtualMethodsCalledDerivedTypesFull Name
.ctor()1 method13 typesThoughtWorks.CruiseControl.Remote.Messages.ServerRequest..ctor()
.ctor(String)1 method13 typesThoughtWorks.CruiseControl.Remote.Messages.ServerRequest..ctor(String)
.ctor(ImplementationResolver,ConstructorSelectionStrategy)1 method0 typeObjection.ObjectionStore..ctor(ImplementationResolver ,ConstructorSelectionStrategy)
.ctor(String,String,String,IntegrationRequest,IntegrationSummary)3 methods1 typeThoughtWorks.CruiseControl.Core.IntegrationResult..ctor(String,String ,String,IntegrationRequest,IntegrationSummary)
.ctor()1 method0 typeThoughtWorks.CruiseControl.Core.Project..ctor()
.ctor(ProcessResult,Boolean)1 method1 typeThoughtWorks.CruiseControl.Core.Tasks.ProcessTaskResult..ctor (ProcessResult,Boolean)
.ctor(String,String,String)1 method0 typeThoughtWorks.CruiseControl.Core.Util.LdapHelper..ctor(String,String ,String)
.ctor(String[])1 method0 typeThoughtWorks.CruiseControl.Core.Util.FileChangedWatcher..ctor(String[] )
.ctor()1 method0 typeThoughtWorks.CruiseControl.Core.Util.TempDirectory..ctor()
.ctor()1 method0 typeThoughtWorks.CruiseControl.Core.Util.DefaultShadowCopier+ShadowStore. .ctor()
.ctor(String,String,Exception)1 method0 typeThoughtWorks.CruiseControl.WebDashboard.ServerConnection .CruiseServerException..ctor(String,String,Exception)
.ctor(CCTrayProject)1 method0 typeThoughtWorks.CruiseControl.CCTrayLib.Presentation .ProjectConfigurationListViewItemAdaptor..ctor(CCTrayProject)
.ctor()1 method0 typeThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration. .ctor()

Statistics

Stat   virtualMethodsCalled   DerivedTypes
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Don't assign static fields from instance methods
// <Name>Don't assign static fields from instance methods</Name>
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where 
  
f.IsStatic &&
 
!f.IsLiteral &&
 
!f.IsInitOnly &&
 
!f.IsGeneratedByCompiler &&
  
// Contract API define such a insideContractEvaluation static field
  f.Name != "insideContractEvaluation"
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }

3 fields matched

fieldsassignedByFull Name
fieldsassignedByFull Name
isRunningOnWindows1 methodThoughtWorks.CruiseControl.Core.Util.ExecutionEnvironment .isRunningOnWindows
usageCount2 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks.usageCount
driver1 methodThoughtWorks.CruiseControl.CCTrayLib.X10.LowLevelDriverFactory.driver

Statistics

Stat   assignedBy
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid empty interfaces
// <Name>Avoid empty interfaces</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsInterface && 
  
t.NbMethods == 0
select new { t, t.TypesThatImplementMe }

// Interfaces define members that provide a behavior 
// or usage contract. The functionality described by 
// the interface can be adopted by any type, 
// regardless of where the type appears in the 
// inheritance hierarchy. A type implements an 
// interface by providing implementations for the 
// interface's members. An empty interface does not 
// define any members, and as such, does not define 
// a contract that can be implemented.

// If your design includes empty interfaces that 
// types are expected to implement, you are probably 
// using an interface as a marker, or a way of 
// identifying a group of types. If this identification 
// will occur at runtime, the correct way to accomplish
// this is to use a custom attribute. Use the presence 
// or absence of the attribute, or the attribute's 
// properties, to identify the target types. If the 
// identification must occurs at compile time, then using 
// an empty interface is acceptable.

2 types matched

typesTypesThatImplementMeFull Name
typesTypesThatImplementMeFull Name
IMergeTask1 typeThoughtWorks.CruiseControl.Core.IMergeTask
INoSiteTemplateAction1 typeThoughtWorks.CruiseControl.WebDashboard.Dashboard .INoSiteTemplateAction

Statistics

Stat   TypesThatImplementMe
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

Design  
 4 10 0 

warningCritical    Rule warning: Avoid custom delegates
// <Name>Avoid custom delegates</Name>

// Prefer using one of the standard generic delegate type in
// Predicate<T> Func<T0,T1,..,TResult> Action<T0,T1,..> 
// instead of creating your own delegate type.
// Not only the code using these custom delegates will become clearer,
// but you'll be relieved from the maintenance of these delegate types.
//
// Notice that delegate that are consumed by DllImport extern methods
// must not be converted, else this could provoke marshalling issues.

warnif count > 0 
from t in Application.Types where t.IsDelegate

let invokeMethod = (from m in t.Methods where m.SimpleName == "Invoke" select m).Single()
let signature1 = invokeMethod.Name.Substring(invokeMethod.SimpleName.Length, invokeMethod.Name.Length - invokeMethod.SimpleName.Length)

// 'ref' and 'out' parameters canot be supported
where !signature1.Contains("&")

let signature2 = signature1.Replace("(","<").Replace(")",">")
let signature3 = signature2 == "<>" ? "" : signature2
let resultTypeName = invokeMethod.ReturnType == null ? "????" :
                     
invokeMethod.ReturnType.FullName == "System.Void" ? "" :
                     
invokeMethod.ReturnType.Name
let replaceWith = resultTypeName == "Boolean" ?
      
"Predicate" + signature3 : resultTypeName == "" ?
      
"Action" + signature3  :
      
"Func" + signature3.Replace(">", "," + resultTypeName + ">")
             

select new { t, replaceWith }

21 types matched

typesreplaceWithFull Name
typesreplaceWithFull Name
CruiseServerClientFactory+ClientInitialiserFunc<String,ClientStartUpSettings,CruiseServerClientBase>ThoughtWorks.CruiseControl.Remote .CruiseServerClientFactory+ClientInitialiser
OptionAction<TKey,TValue>Action<TKey,TValue>ThoughtWorks.CruiseControl.Remote.Mono.OptionAction<TKey,TValue>
CruiseServer+ProjectRequestActionAction<ProjectRequest,Response>ThoughtWorks.CruiseControl.Core.CruiseServer+ProjectRequestAction
ConsoleEventHandler+ControlEventHandlerAction<ConsoleEventHandler+ConsoleEvent>ThoughtWorks.CruiseControl.Core .ConsoleEventHandler+ControlEventHandler
NotifierDelegateAction<Object>ThoughtWorks.CruiseControl.Core.Util.NotifierDelegate
LoadDataHandlerFuncThoughtWorks.CruiseControl.Core.Util.LoadDataHandler
ConfigurationUpdateHandlerActionThoughtWorks.CruiseControl.Core.Config.ConfigurationUpdateHandler
ConfigurationSubfileLoadedHandlerAction<String>ThoughtWorks.CruiseControl.Core.Config .ConfigurationSubfileLoadedHandler
ExceptionFactoryFunc<String,Object[],Exception>ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ExceptionFactory
BuildOccurredEventHandlerAction<Object,BuildOccurredEventArgs>ThoughtWorks.CruiseControl.CCTrayLib.BuildOccurredEventHandler
Func<T,TResult>Func<T,????>ThoughtWorks.CruiseControl.CCTrayLib.Presentation.Func<T,TResult>
Func<TResult>FuncThoughtWorks.CruiseControl.CCTrayLib.Presentation.Func<TResult>
MonitorServerPolledEventHandlerAction<Object,MonitorServerPolledEventArgs>ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .MonitorServerPolledEventHandler
ServerSnapshotChangedEventHandlerAction<Object,ServerSnapshotChangedEventArgs>ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .ServerSnapshotChangedEventHandler
MonitorPolledEventHandlerAction<Object,MonitorPolledEventArgs>ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .MonitorPolledEventHandler
MonitorServerQueueChangedEventHandlerAction<Object,MonitorServerQueueChangedEventArgs>ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .MonitorServerQueueChangedEventHandler
ProjectMonitor+ActionHandlerActionThoughtWorks.CruiseControl.CCTrayLib.Monitoring .ProjectMonitor+ActionHandler
ProjectMonitor+ActionHandler<TResult>FuncThoughtWorks.CruiseControl.CCTrayLib.Monitoring .ProjectMonitor+ActionHandler<TResult>
MessageEventHandlerAction<String,Message>ThoughtWorks.CruiseControl.CCTrayLib.Monitoring.MessageEventHandler
MonitorBuildOccurredEventHandlerAction<Object,MonitorBuildOccurredEventArgs>ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .MonitorBuildOccurredEventHandler
WindowStateEventHandlerAction<Object,WindowStateEventArgs>Validator.WindowStateEventHandler

Statistics

Stat   replaceWith
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Types with disposable instance fields must be disposable
// <Name>Types with disposable instance fields must be disposable</Name>
warnif count > 0

let iDisposable = ThirdParty.Types.WithFullName("System.IDisposable").FirstOrDefault() 
where iDisposable != null // iDisposable can be null if the code base doesn't use at all System.IDisposable

from t in Application.Types where 
   
!t.Implement(iDisposable) && 
   
!t.IsGeneratedByCompiler 

let instanceFieldsDisposable = 
    
t.InstanceFields.Where(f => f.FieldType != null &&
                                
f.FieldType.Implement(iDisposable))

where instanceFieldsDisposable.Count() > 0
select new { t, instanceFieldsDisposable }

39 types matched

typesinstanceFieldsDisposableFull Name
typesinstanceFieldsDisposableFull Name
BuildQueue1 fieldThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue
Project1 fieldThoughtWorks.CruiseControl.Remote.Monitor.Project
CruiseServerClient1 fieldThoughtWorks.CruiseControl.Core.CruiseServerClient
CruiseManager1 fieldThoughtWorks.CruiseControl.Core.CruiseManager
ConsoleRunner1 fieldThoughtWorks.CruiseControl.Core.ConsoleRunner
XmlTaskResult1 fieldThoughtWorks.CruiseControl.Core.Tasks.XmlTaskResult
FileWatcherConfigurationService1 fieldThoughtWorks.CruiseControl.Core.Config.FileWatcherConfigurationService
XmlValidatingLoader1 fieldThoughtWorks.CruiseControl.Core.Config.XmlValidatingLoader
EmailGateway1 fieldThoughtWorks.CruiseControl.Core.Publishers.EmailGateway
GeneralSettingsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation .GeneralSettingsControl
CurrentStatusWindow1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow
IconSettingsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.IconSettingsControl
ExecSettingsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.ExecSettingsControl
X10SettingsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl
GrowlSettingsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.GrowlSettingsControl
CCTrayMultiSettingsForm1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation .CCTrayMultiSettingsForm
MainFormController1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
About1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.About
BuildParameters1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildParameters
AddBuildServer1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer
WindowStateEventArgs1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.WindowStateEventArgs
MainForm2 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
SpeechSettingsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation .SpeechSettingsControl
PackagesListForm2 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm
AddProjects1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddProjects
ProjectStateIconAdaptor2 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation .ProjectStateIconAdaptor
BuildProjectsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildProjectsControl
DisplayChangedProjects1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation .DisplayChangedProjects
ConfigureServer1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.ConfigureServer
AudioSettingsControl1 fieldThoughtWorks.CruiseControl.CCTrayLib.Presentation.AudioSettingsControl
ConfigureUserPassword1 fieldThoughtWorks.CruiseControl.CCTrayLib.Security.ConfigureUserPassword
ConfigureUserName1 fieldThoughtWorks.CruiseControl.CCTrayLib.Security.ConfigureUserName
AppRunner1 fieldThoughtWorks.CruiseControl.Service.AppRunner
ConfigurationHierarchy1 fieldValidator.ConfigurationHierarchy
VersionInformationForm1 fieldValidator.VersionInformationForm
MainForm3 fieldsValidator.MainForm
AboutForm1 fieldValidator.AboutForm
WindowStateEventArgs1 fieldValidator.WindowStateEventArgs
CruiseControlImplementation1 fieldThoughtWorks.CruiseControl.Core.Extensions.CruiseControlImplementation

Statistics

Stat   instanceFieldsDisposable
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Classes that are candidate to be turned into structures
// <Name>Classes that are candidate to be turned into structures</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsClass &&
 
!t.IsGeneratedByCompiler &&
 
!t.IsStatic &&
  
t.SizeOfInst > 0 &&
  
t.SizeOfInst <= 16 &&   // Structure instance must not be too big, 
                          // else it degrades performance.

  
t.NbChildren == 0 &&    // Must not have children

  
// Must have no base class
  t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1

select new { t, t.SizeOfInst, t.InstanceFields } // Must derive directly from System.Object

  
// && t.IsSealed    <-- You might want to add this condition 
  //                      to restreint the set.
  // && t.IsImmutable <-- Structures should be immutable type.
  // && t.!IsPublic   <-- You might want to add this condition if 
  //                      you are developping a framework with classes 
  //                      that are intended to be sub-classed by 
  //                      your clients.

317 types matched

The following list of types is truncated and contains only the first 100 types of the 317 types matched. All matched types could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched types.
typesSize of instanceInstanceFieldsFull Name
typesSize of instanceInstanceFieldsFull Name
SerializableDateTime81 fieldThoughtWorks.CruiseControl.Remote.SerializableDateTime
CruiseServerSnapshot82 fieldsThoughtWorks.CruiseControl.Remote.CruiseServerSnapshot
ProjectActivity41 fieldThoughtWorks.CruiseControl.Remote.ProjectActivity
QueueSetSnapshot82 fieldsThoughtWorks.CruiseControl.Remote.QueueSetSnapshot
ExtensionConfiguration82 fieldsThoughtWorks.CruiseControl.Remote.ExtensionConfiguration
QueueSnapshot123 fieldsThoughtWorks.CruiseControl.Remote.QueueSnapshot
QueueSnapshotList41 fieldThoughtWorks.CruiseControl.Remote.QueueSnapshotList
ExternalLink82 fieldsThoughtWorks.CruiseControl.Remote.ExternalLink
QueuedRequestSnapshotList41 fieldThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshotList
CruiseServerClientFactory93 fieldsThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory
QueuedRequestSnapshot163 fieldsThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot
Message82 fieldsThoughtWorks.CruiseControl.Remote.Message
ClientStartUpSettings33 fieldsThoughtWorks.CruiseControl.Remote.ClientStartUpSettings
NameValuePair82 fieldsThoughtWorks.CruiseControl.Remote.NameValuePair
RemotingFileTransfer82 fieldsThoughtWorks.CruiseControl.Remote.RemotingFileTransfer
SecurityCheckDiagnostics134 fieldsThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics
UserDetails123 fieldsThoughtWorks.CruiseControl.Remote.Security.UserDetails
ErrorMessage82 fieldsThoughtWorks.CruiseControl.Remote.Messages.ErrorMessage
DataBag41 fieldThoughtWorks.CruiseControl.Remote.Monitor.DataBag
ManualServerWatcher82 fieldsThoughtWorks.CruiseControl.Remote.Monitor.ManualServerWatcher
BuildQueueRequest164 fieldsThoughtWorks.CruiseControl.Remote.Monitor.BuildQueueRequest
OptionValueCollection82 fieldsThoughtWorks.CruiseControl.Remote.Mono.OptionValueCollection
ObjectionType82 fieldsObjection.ObjectionType
CachingImplementationResolver82 fieldsObjection.CachingImplementationResolver
LoadedTypeList82 fieldsObjection.LoadedTypeList
NMockAwareImplementationResolver52 fieldsObjection.NMockAwareImplementationResolver
ObjectionObject82 fieldsObjection.ObjectionObject
ObjectionNetReflectorInstantiator41 fieldObjection.NetReflectorPlugin.ObjectionNetReflectorInstantiator
IntegrationResultManager164 fieldsThoughtWorks.CruiseControl.Core.IntegrationResultManager
ProjectList41 fieldThoughtWorks.CruiseControl.Core.ProjectList
IntegrationRunner123 fieldsThoughtWorks.CruiseControl.Core.IntegrationRunner
CruiseServerClient+SecureConnection163 fieldsThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection
ProjectIntegratorList41 fieldThoughtWorks.CruiseControl.Core.ProjectIntegratorList
IntegrationQueueManager164 fieldsThoughtWorks.CruiseControl.Core.IntegrationQueueManager
ViewCVSUrlBuilder41 fieldThoughtWorks.CruiseControl.Core.ViewCVSUrlBuilder
ConsoleRunner123 fieldsThoughtWorks.CruiseControl.Core.ConsoleRunner
ConsoleEventHandler123 fieldsThoughtWorks.CruiseControl.Core.ConsoleEventHandler
ConsoleRunnerArguments148 fieldsThoughtWorks.CruiseControl.Core.ConsoleRunnerArguments
CoverageThreshold164 fieldsThoughtWorks.CruiseControl.Core.Tasks.CoverageThreshold
DataTaskResult41 fieldThoughtWorks.CruiseControl.Core.Tasks.DataTaskResult
CruiseServerControlTaskAction82 fieldsThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTaskAction
DirectDynamicValue123 fieldsThoughtWorks.CruiseControl.Core.Tasks.DirectDynamicValue
HttpRequestHeader82 fieldsThoughtWorks.CruiseControl.Core.Tasks.HttpRequestHeader
DynamicValueUtility+PropertyValue123 fieldsThoughtWorks.CruiseControl.Core.Tasks .DynamicValueUtility+PropertyValue
DynamicValueUtility+PropertyPart164 fieldsThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart
XmlTaskResult134 fieldsThoughtWorks.CruiseControl.Core.Tasks.XmlTaskResult
NUnitArgument164 fieldsThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument
FileTaskResult104 fieldsThoughtWorks.CruiseControl.Core.Tasks.FileTaskResult
FBVariable82 fieldsThoughtWorks.CruiseControl.Core.Tasks.FBVariable
CoverageFilter104 fieldsThoughtWorks.CruiseControl.Core.Tasks.CoverageFilter
ReplacementDynamicValue123 fieldsThoughtWorks.CruiseControl.Core.Tasks.ReplacementDynamicValue
MergeFileInfo93 fieldsThoughtWorks.CruiseControl.Core.Tasks.MergeFileInfo
MultipleTrigger82 fieldsThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger
ParameterTrigger82 fieldsThoughtWorks.CruiseControl.Core.Triggers.ParameterTrigger
IntegrationQueue+LockHolder82 fieldsThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue+LockHolder
IntegrationQueueSet41 fieldThoughtWorks.CruiseControl.Core.Queues.IntegrationQueueSet
IntegrationQueueItem123 fieldsThoughtWorks.CruiseControl.Core.Queues.IntegrationQueueItem
CircularArray93 fieldsThoughtWorks.CruiseControl.Core.Logging.CircularArray
CircularArray+CircularArrayEnumerator123 fieldsThoughtWorks.CruiseControl.Core.Logging .CircularArray+CircularArrayEnumerator
ServerLogFileReader82 fieldsThoughtWorks.CruiseControl.Core.Logging.ServerLogFileReader
DiskSpaceMonitorExtension41 fieldThoughtWorks.CruiseControl.Core.Extensions.DiskSpaceMonitorExtension
IntegrationRequestThrottleExtension123 fieldsThoughtWorks.CruiseControl.Core.Extensions .IntegrationRequestThrottleExtension
FileStateManager123 fieldsThoughtWorks.CruiseControl.Core.State.FileStateManager
WildCardPath41 fieldThoughtWorks.CruiseControl.Core.Util.WildCardPath
PrivateArguments41 fieldThoughtWorks.CruiseControl.Core.Util.PrivateArguments
PrivateArguments+PrivateArgument93 fieldsThoughtWorks.CruiseControl.Core.Util.PrivateArguments+PrivateArgument
Log+TraceBlock82 fieldsThoughtWorks.CruiseControl.Core.Util.Log+TraceBlock
AccurateTimer122 fieldsThoughtWorks.CruiseControl.Core.Util.AccurateTimer
PrivateString41 fieldThoughtWorks.CruiseControl.Core.Util.PrivateString
ProcessExecutor+ProcessMonitor82 fieldsThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+ProcessMonitor
HtmlAwareMultiTransformer41 fieldThoughtWorks.CruiseControl.Core.Util.HtmlAwareMultiTransformer
EnvironmentVariable82 fieldsThoughtWorks.CruiseControl.Core.Util.EnvironmentVariable
AssemblyMatch41 fieldThoughtWorks.CruiseControl.Core.Util.AssemblyMatch
HtmlExceptionFormatter41 fieldThoughtWorks.CruiseControl.Core.Util.HtmlExceptionFormatter
Timeout82 fieldsThoughtWorks.CruiseControl.Core.Util.Timeout
Impersonation82 fieldsThoughtWorks.CruiseControl.Core.Util.Impersonation
FileChangedWatcher164 fieldsThoughtWorks.CruiseControl.Core.Util.FileChangedWatcher
SynchronisedData82 fieldsThoughtWorks.CruiseControl.Core.Util.SynchronisedData
IoService41 fieldThoughtWorks.CruiseControl.Core.Util.IoService
ProcessArgumentBuilder41 fieldThoughtWorks.CruiseControl.Core.Util.ProcessArgumentBuilder
ProcessResult145 fieldsThoughtWorks.CruiseControl.Core.Util.ProcessResult
FtpLib123 fieldsThoughtWorks.CruiseControl.Core.Util.FtpLib
TimeUnits82 fieldsThoughtWorks.CruiseControl.Core.Util.TimeUnits
DefaultShadowCopier+ShadowStore123 fieldsThoughtWorks.CruiseControl.Core.Util.DefaultShadowCopier+ShadowStore
VstsHistoryParser162 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.VstsHistoryParser
StarTeamHistoryParser82 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeamHistoryParser
CommentFilter41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.CommentFilter
RegExIssueTrackerUrlBuilder82 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol .RegExIssueTrackerUrlBuilder
PathFilter52 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.PathFilter
VssHistoryParser41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.VssHistoryParser
ActionFilter41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.ActionFilter
DefaultIssueTrackerUrlBuilder41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol .DefaultIssueTrackerUrlBuilder
SvnHistoryParser11 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.SvnHistoryParser
CvsHistoryParser123 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser
UserFilter41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.UserFilter
VssLocale123 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.VssLocale
NullSourceControl33 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.NullSourceControl
MultiIssueTrackerUrlBuilder41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol .MultiIssueTrackerUrlBuilder
WebSVNUrlBuilder41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.WebSVNUrlBuilder
VaultHistoryParser41 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultHistoryParser

Statistics

Stat   Size of instance   InstanceFields
Sum:2 6950
Average:8.50160
Minimum:10
Maximum:160
Standard deviation:3.95770
Variance:15.6630
warningCritical    Rule warning: Avoid namespaces with few types
// <Name>Avoid namespaces with few types</Name>
warnif count > 0 from n in JustMyCode.Namespaces 
let types = n.ChildTypes.Where(t => !t.IsGeneratedByCompiler)
where 
  
types.Count() < 5 
  
orderby types.Count() ascending
select new { n, types } 

// Make sure that there is a logical organization 
// to each of your namespaces, and that there is a 
// valid reason for putting types in a sparsely 
// populated namespace. Namespaces should contain 
// types that are used together in most scenarios. 
// When their applications are mutually exclusive, 
// types should be located in separate namespaces

28 namespaces matched

namespacestypesFull Name
namespacestypesFull Name
Objection.NetReflectorPlugin1 typeObjection.NetReflectorPlugin
1 type
ThoughtWorks.CruiseControl.Remote1 typeThoughtWorks.CruiseControl.Remote
ThoughtWorks.CruiseControl.WebDashboard.Resources1 typeThoughtWorks.CruiseControl.WebDashboard.Resources
ThoughtWorks.CruiseControl.WebDashboard.Plugins.ViewAllBuilds1 typeThoughtWorks.CruiseControl.WebDashboard.Plugins.ViewAllBuilds
ThoughtWorks.CruiseControl.WebDashboard.Plugins.AddProject1 typeThoughtWorks.CruiseControl.WebDashboard.Plugins.AddProject
ThoughtWorks.CruiseControl.WebDashboard.Plugins.RSS1 typeThoughtWorks.CruiseControl.WebDashboard.Plugins.RSS
ThoughtWorks.CruiseControl.CCTrayLib.Properties1 typeThoughtWorks.CruiseControl.CCTrayLib.Properties
ThoughtWorks.CruiseControl.CCTray1 typeThoughtWorks.CruiseControl.CCTray
ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET2 typesThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators2 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators
ThoughtWorks.CruiseControl.WebDashboard.Plugins.CCTray2 typesThoughtWorks.CruiseControl.WebDashboard.Plugins.CCTray
ThoughtWorks.CruiseControl.CCTrayLib.Speech2 typesThoughtWorks.CruiseControl.CCTrayLib.Speech
ThoughtWorks.CruiseControl.CCTrayLib.Growl2 typesThoughtWorks.CruiseControl.CCTrayLib.Growl
ThoughtWorks.CruiseControl.Console2 typesThoughtWorks.CruiseControl.Console
Validator.Properties2 typesValidator.Properties
ThoughtWorks.CruiseControl.CCCmd2 typesThoughtWorks.CruiseControl.CCCmd
ThoughtWorks.CruiseControl.Core.Extensions3 typesThoughtWorks.CruiseControl.Core.Extensions
ThoughtWorks.CruiseControl.Core.Util.Log4NetTrace3 typesThoughtWorks.CruiseControl.Core.Util.Log4NetTrace
ThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper3 typesThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper
ThoughtWorks.CruiseControl.Service3 typesThoughtWorks.CruiseControl.Service
ThoughtWorks.CruiseControl.Core.Extensions3 typesThoughtWorks.CruiseControl.Core.Extensions
ThoughtWorks.CruiseControl.MSBuild3 typesThoughtWorks.CruiseControl.MSBuild
ThoughtWorks.CruiseControl.Core.Logging4 typesThoughtWorks.CruiseControl.Core.Logging
ThoughtWorks.CruiseControl.Core.State4 typesThoughtWorks.CruiseControl.Core.State
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.Actions4 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard.Actions
ThoughtWorks.CruiseControl.WebDashboard.Plugins.Security4 typesThoughtWorks.CruiseControl.WebDashboard.Plugins.Security
ThoughtWorks.CruiseControl.WebDashboard.Plugins.Statistics4 typesThoughtWorks.CruiseControl.WebDashboard.Plugins.Statistics

Statistics

Stat   types
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Nested types should not be visible
// <Name>Nested types should not be visible</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsNested && 
 
!t.IsGeneratedByCompiler &&
 
!t.IsPrivate 
select new { t, t.NbLinesOfCode, t.Visibility } 


// A nested type is a type declared within the 
// scope of another type. Nested types are useful 
// for encapsulating private implementation details 
// of the containing type. Used for this purpose, 
// nested types should not be externally visible. 
// Do not use externally visible nested types for 
// logical grouping or to avoid name collisions; 
// instead, use namespaces.

38 types matched

types# lines of code (LOC)VisibilityFull Name
types# lines of code (LOC)VisibilityFull Name
Message+MessageKindN/APublicThoughtWorks.CruiseControl.Remote.Message+MessageKind
IntegrationStartedEventArgs+EventResultN/APublicThoughtWorks.CruiseControl.Remote.Events .IntegrationStartedEventArgs+EventResult
HttpStatusTask+HttpRequestStatus28ProtectedThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask+HttpRequestStatus
CoverageThreshold+NCoverMetricN/APublicThoughtWorks.CruiseControl.Core.Tasks.CoverageThreshold+NCoverMetric
CoverageThreshold+NCoverItemTypeN/APublicThoughtWorks.CruiseControl.Core.Tasks.CoverageThreshold+NCoverItemType
DynamicValueUtility+PropertyValue32PublicThoughtWorks.CruiseControl.Core.Tasks .DynamicValueUtility+PropertyValue
DynamicValueUtility+PropertyPart1PublicThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart
ArtifactCleanUpTask+CleanUpMethodN/APublicThoughtWorks.CruiseControl.Core.Tasks .ArtifactCleanUpTask+CleanUpMethod
NCoverProfileTask+NCoverLogLevelN/APublicThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask+NCoverLogLevel
NCoverReportTask+NCoverReportFilterN/APublicThoughtWorks.CruiseControl.Core.Tasks .NCoverReportTask+NCoverReportFilter
NCoverReportTask+NCoverReportTypeN/APublicThoughtWorks.CruiseControl.Core.Tasks .NCoverReportTask+NCoverReportType
NCoverReportTask+NCoverSortByN/APublicThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask+NCoverSortBy
NCoverReportTask+NCoverMergeModeN/APublicThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask+NCoverMergeMode
CodeItRightTask+SeverityN/APublicThoughtWorks.CruiseControl.Core.Tasks.CodeItRightTask+Severity
CoverageFilter+NCoverItemTypeN/APublicThoughtWorks.CruiseControl.Core.Tasks.CoverageFilter+NCoverItemType
MergeFileInfo+MergeActionTypeN/APublicThoughtWorks.CruiseControl.Core.Tasks.MergeFileInfo+MergeActionType
FtpTask+FtpActionN/APublicThoughtWorks.CruiseControl.Core.Tasks.FtpTask+FtpAction
CircularArray+CircularArrayEnumerator23InternalThoughtWorks.CruiseControl.Core.Logging .CircularArray+CircularArrayEnumerator
FileLabeller+FileReader18PublicThoughtWorks.CruiseControl.Core.Label.FileLabeller+FileReader
Log+TraceBlock12PublicThoughtWorks.CruiseControl.Core.Util.Log+TraceBlock
Vault3+VaultException1PublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3+VaultException
Svn+AuthCachingModeN/APublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn+AuthCachingMode
VaultVersionChecker+EForcedVaultVersionN/APublicThoughtWorks.CruiseControl.Core.Sourcecontrol .VaultVersionChecker+EForcedVaultVersion
Common+SourceControlErrorHandlingPolicyN/APublicThoughtWorks.CruiseControl.Core.Sourcecontrol .Common+SourceControlErrorHandlingPolicy
SynergyParser+SynergyTaskInfo5PublicThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyParser+SynergyTaskInfo
SessionCacheBase+SessionDetails4ProtectedThoughtWorks.CruiseControl.Core.Security .SessionCacheBase+SessionDetails
EmailSubject+BuildResultTypeN/APublicThoughtWorks.CruiseControl.Core.Publishers .EmailSubject+BuildResultType
EmailGroup+NotificationTypeN/APublicThoughtWorks.CruiseControl.Core.Publishers.EmailGroup+NotificationType
BuildPublisher+CleanupPolicyN/APublicThoughtWorks.CruiseControl.Core.Publishers .BuildPublisher+CleanupPolicy
LazilyInitialisingVelocityTransformer+TemplateLocationN/APublicThoughtWorks.CruiseControl.WebDashboard.MVC.View .LazilyInitialisingVelocityTransformer+TemplateLocation
PackageListAction+PackageDisplay0PublicThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .PackageListAction+PackageDisplay
BuildGraph+GraphBuildInfo8PublicThoughtWorks.CruiseControl.WebDashboard.Plugins.Statistics .BuildGraph+GraphBuildInfo
BuildGraph+GraphBuildDayInfo15PublicThoughtWorks.CruiseControl.WebDashboard.Plugins.Statistics .BuildGraph+GraphBuildDayInfo
ConfigurationTypeDescriptor+PropertyDescriptorBase11PublicValidator.ConfigurationTypeDescriptor+PropertyDescriptorBase
ConfigurationTypeDescriptor+FieldPropertyDescriptor5PublicValidator.ConfigurationTypeDescriptor+FieldPropertyDescriptor
ConfigurationTypeDescriptor+PropertyPropertyDescriptor5PublicValidator.ConfigurationTypeDescriptor+PropertyPropertyDescriptor
XmlLogger+XmlLoggerElements1InternalThoughtWorks.CruiseControl.MSBuild.XmlLogger+XmlLoggerElements
XmlLogger+XmlLoggerAttributes1InternalThoughtWorks.CruiseControl.MSBuild.XmlLogger+XmlLoggerAttributes

Statistics

Stat   # lines of code (LOC)   Visibility
Sum:1700
Average:100
Minimum:00
Maximum:320
Standard deviation:9.73170
Variance:94.7060
warningCritical    Rule warning: Declare types in namespaces
// <Name>Declare types in namespaces</Name>
warnif count > 0 from n in Application.Namespaces where 
  
n.Name == ""
select new { n, n.ChildTypes, n.NbLinesOfCode } 

// Types are declared within namespaces to 
// prevent name collisions, and as a way of 
// organizing related types in an object hierarchy. 
// Types outside any named namespace are in a 
// global namespace that cannot be referenced 
// in code. If an anonymous namespace can be found, 
// it means that it contains types outside of namespaces.

1 namespaces matched

namespaceChildTypes# lines of code (LOC)Full Name
namespaceChildTypes# lines of code (LOC)Full Name
1 type0

Statistics

Stat   ChildTypes   # lines of code (LOC)
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Instances size shouldn't be too big
// <Name>Instances size shouldn't be too big</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.SizeOfInst > 64 
  
orderby t.SizeOfInst descending
select new { t, t.SizeOfInst, t.InstanceFields }

// Types where SizeOfInst > 64 might degrade performance 
// (depending on the number of instances created at runtime) 
// and might be hard to maintain. However it is not a rule 
// since sometime there is no alternative (the size of 
// instances of the System.Net.NetworkInformation.SystemIcmpV6Statistics 
// standard class is 2064 bytes).
// Notice that a class with a large SizeOfInst value
// doesn't necessarily have a lot of instance fields.
// It might derive from a class with a large SizeOfInst value.
// See the definition of the SizeOfInst metric here 
// http://www.ndepend.com/Metrics.aspx#SizeOfInst

52 types matched

typesSize of instanceInstanceFieldsFull Name
typesSize of instanceInstanceFieldsFull Name
MainForm54461 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
MainForm49949 fieldsValidator.MainForm
AddBuildServer43833 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer
CCTrayMultiSettingsForm41026 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation .CCTrayMultiSettingsForm
PackagesListForm38219 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm
AddProjects37417 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddProjects
CurrentStatusWindow36615 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow
ConfigureServer35011 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.ConfigureServer
ConfigureUserPassword34610 fieldsThoughtWorks.CruiseControl.CCTrayLib.Security.ConfigureUserPassword
DisplayChangedProjects3429 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation .DisplayChangedProjects
AboutForm3388 fieldsValidator.AboutForm
About3347 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.About
BuildParameters3347 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildParameters
ConfigureUserName3306 fieldsThoughtWorks.CruiseControl.CCTrayLib.Security.ConfigureUserName
VersionInformationForm3224 fieldsValidator.VersionInformationForm
X10SettingsControl31727 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl
IconSettingsControl29722 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.IconSettingsControl
AudioSettingsControl29722 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.AudioSettingsControl
QueueTreeView2732 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.QueueTreeView
GeneralSettingsControl26915 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation .GeneralSettingsControl
BuildProjectsControl26514 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildProjectsControl
ExecSettingsControl26113 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.ExecSettingsControl
GrowlSettingsControl26113 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.GrowlSettingsControl
SpeechSettingsControl2336 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation .SpeechSettingsControl
ConfigurationHierarchy2336 fieldsValidator.ConfigurationHierarchy
NCoverProfileTask15735 fieldsThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask
Project14126 fieldsThoughtWorks.CruiseControl.Core.Project
NCoverReportTask12325 fieldsThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask
CruiseServer12118 fieldsThoughtWorks.CruiseControl.Core.CruiseServer
XmlFragmentWriter1150 fieldThoughtWorks.CruiseControl.Core.Util.XmlFragmentWriter
WorkflowResult931 fieldThoughtWorks.CruiseControl.Core.WorkflowResult
IntegrationResult8921 fieldsThoughtWorks.CruiseControl.Core.IntegrationResult
VaultVersionChecker8925 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultVersionChecker
NAntTask8612 fieldsThoughtWorks.CruiseControl.Core.Tasks.NAntTask
MsBuildTask8511 fieldsThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask
Pvcs8520 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs
GendarmeTask8416 fieldsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask
MainFormController8421 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainFormController
DupFinderTask8015 fieldsThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask
Svn7822 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn
CCService785 fieldsThoughtWorks.CruiseControl.Service.CCService
NDependTask7614 fieldsThoughtWorks.CruiseControl.Core.Tasks.NDependTask
P47620 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4
StarTeam7314 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeam
CodeItRightTask6910 fieldsThoughtWorks.CruiseControl.Core.Tasks.CodeItRightTask
Cvs6916 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs
Git6815 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Git
ConfigurationTypeDescriptor+FieldPropertyDescriptor661 fieldValidator.ConfigurationTypeDescriptor+FieldPropertyDescriptor
ConfigurationTypeDescriptor+PropertyPropertyDescriptor661 fieldValidator.ConfigurationTypeDescriptor+PropertyPropertyDescriptor
DevenvTask6512 fieldsThoughtWorks.CruiseControl.Core.Tasks.DevenvTask
Vsts6515 fieldsThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts
EmailPublisher6512 fieldsThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher

Statistics

Stat   Size of instance   InstanceFields
Sum:10 7610
Average:206.940
Minimum:650
Maximum:5440
Standard deviation:136.20
Variance:18 5500
warningCritical    Rule warning: Attribute classes should be sealed
// <Name>Attribute classes should be sealed</Name>
warnif count > 0 from t in Application.Types where 
  
t.IsAttributeClass && 
 
!t.IsSealed && 
 
!t.IsAbstract && 
  
t.IsPublic
select new { t, t.NbLinesOfCode } 

// The .NET Framework class library provides methods 
// for retrieving custom attributes. By default, 
// these methods search the attribute inheritance 
// hierarchy; for example System.Attribute.GetCustomAttribute 
// searches for the specified attribute type, or any 
// attribute type that extends the specified attribute 
// type. Sealing the attribute eliminates the search 
// through the inheritance hierarchy, and can improve 
// performance.

1 types matched

type# lines of code (LOC)Full Name
type# lines of code (LOC)Full Name
ExtensionAttribute2ThoughtWorks.CruiseControl.CCTrayLib.Configuration.ExtensionAttribute

Statistics

Stat   # lines of code (LOC)
Sum:2
Average:2
Minimum:2
Maximum:2
Standard deviation:0
Variance:0
warningCritical    Rule warning: Don't use obsolete types, methods or fields
// <Name>Don't use obsolete types, methods or fields</Name>   
warnif count > 0
let obsoleteTypes = Types.Where(t => t.IsObsolete)
let obsoleteMethods = Methods.Where(m => m.IsObsolete).ToHashSet()
let obsoleteFields = Fields.Where(f => f.IsObsolete)

from m in JustMyCode.Methods.UsingAny(obsoleteTypes).Union(
          
JustMyCode.Methods.UsingAny(obsoleteMethods)).Union(
          
JustMyCode.Methods.UsingAny(obsoleteFields))
let obsoleteTypesUsed = obsoleteTypes.UsedBy(m)

// Optimization: MethodsCalled + Intersect() is faster than using obsoleteMethods.UsedBy()
let obsoleteMethodsUsed = m.MethodsCalled.Intersect(obsoleteMethods)
let obsoleteFieldsUsed = obsoleteFields.UsedBy(m)
select new { m, obsoleteTypesUsed, obsoleteMethodsUsed, obsoleteFieldsUsed }

32 methods matched

methodsobsoleteTypesUsedobsoleteMethodsUsedobsoleteFieldsUsedFull Name
methodsobsoleteTypesUsedobsoleteMethodsUsedobsoleteFieldsUsedFull Name
GetProjectStatus()1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetProjectStatus()
ForceBuild(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .ForceBuild(String)
AbortBuild(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .AbortBuild(String)
Request(String,IntegrationRequest)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.Request (String,IntegrationRequest)
StartProject(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .StartProject(String)
StopProject(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .StopProject(String)
SendMessage(String,Message)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .SendMessage(String,Message)
WaitForExit(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .WaitForExit(String)
CancelPendingRequest(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .CancelPendingRequest(String)
GetCruiseServerSnapshot()1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetCruiseServerSnapshot()
GetLatestBuildName(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetLatestBuildName(String)
GetBuildNames(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetBuildNames(String)
GetMostRecentBuildNames(String,Int32)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetMostRecentBuildNames(String,Int32)
GetLog(String,String,Boolean)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.GetLog (String,String,Boolean)
GetServerLog()1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetServerLog()
GetServerLog(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetServerLog(String)
GetServerVersion()1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetServerVersion()
AddProject(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .AddProject(String)
DeleteProject(String,Boolean,Boolean,Boolean)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .DeleteProject(String,Boolean,Boolean,Boolean)
GetProject(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetProject(String)
UpdateProject(String,String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .UpdateProject(String,String)
GetExternalLinks(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetExternalLinks(String)
GetArtifactDirectory(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetArtifactDirectory(String)
GetStatisticsDocument(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetStatisticsDocument(String)
GetModificationHistoryDocument(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetModificationHistoryDocument(String)
GetRSSFeed(String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .GetRSSFeed(String)
RetrieveFileTransfer(String,String)1 type0 method0 fieldThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .RetrieveFileTransfer(String,String)
.ctor(IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)1 type0 method1 fieldThoughtWorks.CruiseControl.Core.CruiseServer..ctor (IConfigurationService,IProjectIntegratorListFactory ,IProjectSerializer,IProjectStateManager,IFileSystem ,IExecutionEnvironment,List<ExtensionConfiguration>)
GetCurrentProjectStatus()1 type1 method0 fieldThoughtWorks.CruiseControl.Core.Triggers.ProjectTrigger .GetCurrentProjectStatus()
Generate(IIntegrationResult)1 type0 method0 fieldThoughtWorks.CruiseControl.Core.Label.RemoteProjectLabeller.Generate (IIntegrationResult)
Initialise(ICruiseServer,ExtensionConfiguration)0 type1 method0 fieldThoughtWorks.CruiseControl.Core.Extensions .IntegrationPerformanceCountersExtension.Initialise(ICruiseServer ,ExtensionConfiguration)
get_CruiseManager()0 type0 method1 fieldThoughtWorks.CruiseControl.Core.CruiseServer.get_CruiseManager()

Statistics

Stat   obsoleteTypesUsed   obsoleteMethodsUsed   obsoleteFieldsUsed
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Don't forget to implement methods that throw NotImplementedException
// <Name>Don't forget to implement methods that throw NotImplementedException</Name>
warnif count > 0
from m in Application.Methods
where m.CreateA("System.NotImplementedException".AllowNoMatch())
select m

103 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 103 methods matched. All matched methods could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched methods.
methodsFull Name
methodsFull Name
GetProjectStatus()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetProjectStatus()
ForceBuild(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.ForceBuild (String)
ForceBuild(String,List<NameValuePair>)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.ForceBuild (String,List<NameValuePair>)
AbortBuild(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.AbortBuild (String)
Request(String,IntegrationRequest)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.Request (String,IntegrationRequest)
StartProject(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.StartProject (String)
StopProject(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.StopProject (String)
SendMessage(String,Message)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.SendMessage (String,Message)
WaitForExit(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.WaitForExit (String)
CancelPendingRequest(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .CancelPendingRequest(String)
GetCruiseServerSnapshot()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetCruiseServerSnapshot()
GetLatestBuildName(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetLatestBuildName(String)
GetBuildNames(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.GetBuildNames (String)
GetMostRecentBuildNames(String,Int32)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetMostRecentBuildNames(String,Int32)
GetLog(String,String,Boolean)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.GetLog(String ,String,Boolean)
GetServerLog()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.GetServerLog( )
GetServerLog(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.GetServerLog (String)
GetServerVersion()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetServerVersion()
AddProject(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.AddProject (String)
DeleteProject(String,Boolean,Boolean,Boolean)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.DeleteProject (String,Boolean,Boolean,Boolean)
GetProject(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.GetProject (String)
UpdateProject(String,String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.UpdateProject (String,String)
GetExternalLinks(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetExternalLinks(String)
GetArtifactDirectory(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetArtifactDirectory(String)
GetStatisticsDocument(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetStatisticsDocument(String)
GetModificationHistoryDocument(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetModificationHistoryDocument(String)
GetRSSFeed(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.GetRSSFeed (String)
Login(List<NameValuePair>)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.Login(List <NameValuePair>)
Logout()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.Logout()
GetSecurityConfiguration()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetSecurityConfiguration()
ListUsers()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.ListUsers()
DiagnoseSecurityPermissions(String,String[])ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .DiagnoseSecurityPermissions(String,String[])
ReadAuditRecords(Int32,Int32)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .ReadAuditRecords(Int32,Int32)
ReadAuditRecords(Int32,Int32,AuditFilterBase)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .ReadAuditRecords(Int32,Int32,AuditFilterBase)
ListBuildParameters(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .ListBuildParameters(String)
ChangePassword(String,String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .ChangePassword(String,String)
ResetPassword(String,String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.ResetPassword (String,String)
TakeStatusSnapshot(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .TakeStatusSnapshot(String)
RetrievePackageList(String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .RetrievePackageList(String)
RetrievePackageList(String,String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .RetrievePackageList(String,String)
RetrieveFileTransfer(String,String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .RetrieveFileTransfer(String,String)
GetFreeDiskSpace()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetFreeDiskSpace()
GetLinkedSiteId(String,String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .GetLinkedSiteId(String,String)
ProcessMessage(String,String)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .ProcessMessage(String,String)
ProcessMessage(String,ServerRequest)ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase .ProcessMessage(String,ServerRequest)
ListServers()ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.ListServers()
NotifyPendingState()ThoughtWorks.CruiseControl.Core.Workflow.NotifyPendingState()
NotifySleepingState()ThoughtWorks.CruiseControl.Core.Workflow.NotifySleepingState()
AbortRunningBuild()ThoughtWorks.CruiseControl.Core.Workflow.AbortRunningBuild()
get_Statistics()ThoughtWorks.CruiseControl.Core.Workflow.get_Statistics()
get_ModificationHistory()ThoughtWorks.CruiseControl.Core.Workflow.get_ModificationHistory()
get_RSSFeed()ThoughtWorks.CruiseControl.Core.Workflow.get_RSSFeed()
get_IntegrationRepository()ThoughtWorks.CruiseControl.Core.Workflow.get_IntegrationRepository()
get_QueueName()ThoughtWorks.CruiseControl.Core.Workflow.get_QueueName()
set_QueueName(String)ThoughtWorks.CruiseControl.Core.Workflow.set_QueueName(String)
get_QueuePriority()ThoughtWorks.CruiseControl.Core.Workflow.get_QueuePriority()
set_QueuePriority(Int32)ThoughtWorks.CruiseControl.Core.Workflow.set_QueuePriority(Int32)
Initialize()ThoughtWorks.CruiseControl.Core.Workflow.Initialize()
CreateProjectStatus(IProjectIntegrator)ThoughtWorks.CruiseControl.Core.Workflow.CreateProjectStatus (IProjectIntegrator)
get_CurrentActivity()ThoughtWorks.CruiseControl.Core.Workflow.get_CurrentActivity()
AddMessage(Message)ThoughtWorks.CruiseControl.Core.Workflow.AddMessage(Message)
get_MaxSourceControlRetries()ThoughtWorks.CruiseControl.Core.Workflow.get_MaxSourceControlRetries()
get_stopProjectOnReachingMaxSourceControlRetries()ThoughtWorks.CruiseControl.Core.Workflow .get_stopProjectOnReachingMaxSourceControlRetries()
get_SourceControlErrorHandling()ThoughtWorks.CruiseControl.Core.Workflow .get_SourceControlErrorHandling()
Execute(IIntegrationResult)ThoughtWorks.CruiseControl.Core.Tasks.ArtifactCleanUpTask.Execute (IIntegrationResult)
CopyTo(Array,Int32)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.CopyTo(Array ,Int32)
get_Count()ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.get_Count()
get_SyncRoot()ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.get_SyncRoot( )
Contains(Object)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.Contains (Object)
Clear()ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.Clear()
IndexOf(Object)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.IndexOf (Object)
Insert(Int32,Object)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.Insert(Int32 ,Object)
Remove(Object)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.Remove(Object )
RemoveAt(Int32)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.RemoveAt (Int32)
get_IsReadOnly()ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger .get_IsReadOnly()
get_IsFixedSize()ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger .get_IsFixedSize()
get_Item(Int32)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.get_Item (Int32)
set_Item(Int32,Object)ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.set_Item (Int32,Object)
get_IsSynchronized()ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger .get_IsSynchronized()
Reset()ThoughtWorks.CruiseControl.Core.Logging .CircularArray+CircularArrayEnumerator.Reset()
ChangePassword(String,String,String)ThoughtWorks.CruiseControl.Core.Security.SecurityManagerBase .ChangePassword(String,String,String)
ResetPassword(String,String,String)ThoughtWorks.CruiseControl.Core.Security.SecurityManagerBase .ResetPassword(String,String,String)
ChangePassword(String,String,String)ThoughtWorks.CruiseControl.Core.Security.NullSecurityManager .ChangePassword(String,String,String)
ResetPassword(String,String,String)ThoughtWorks.CruiseControl.Core.Security.NullSecurityManager .ResetPassword(String,String,String)
AbortBuild()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .AbortBuild()
ForceBuild(Dictionary<String,String>,String)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .ForceBuild(Dictionary<String,String>,String)
FixBuild(String)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .FixBuild(String)
StopProject()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .StopProject()
StartProject()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .StartProject()
CancelPending()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .CancelPending()
get_SummaryStatusString()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .get_SummaryStatusString()
ForceBuild(Dictionary<String,String>,String)ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.ForceBuild(Dictionary<String,String>,String )
AbortBuild()ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.AbortBuild()
FixBuild(String)ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.FixBuild(String)
StopProject()ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.StopProject()
StartProject()ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.StartProject()
CancelPending()ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.CancelPending()
get_ProjectIntegratorState()ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.get_ProjectIntegratorState()
get_IsConnected()ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.get_IsConnected()
ListBuildParameters()ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.ListBuildParameters()

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:

Architecture and Layering  
 6 3 0 

warningCritical    Rule warning: Avoid namespaces mutually dependent
// <Name>Avoid namespaces mutually dependent</Name>
warnif count > 0
// Foreach pair of namespace mutually dependent, this rule lists pairs.
// The pair { first, second } is formatted to show that first namespace shouldn't use the second namespace.
// The first/second order is inferred from the number of types used by each other.
// The first namespace is using less types of the second.
// It means that the first namespace is certainly at a lower level in the architecture, than the second.
//
// To explore the coupling between two namespaces mutually dependent:
//  1) export the first namespace to the vertical header of the dependency matrix
//  2) export the second namespace to the horizontal header of the dependency matrix
//  3) double-click the black cell
//  4) in the matrix command bar, click the button: Remove empty Row(s) en Column(s)
// At this point, the dependency matrix shows types involved into the coupling.
//
// Following this rule is useful to avoid namespaces dependency cycles.
// More on this in our white books relative to partitionning code.
// http://www.ndepend.com/WhiteBooks.aspx


// Optimization: restreint application assemblies set
// If some namespaces are mutually dependent
//  - They must be declared in the same assembly
//  - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies.Where(a => a.ContainsNamespaceDependencyCycle != null && a.ContainsNamespaceDependencyCycle.Value)

// hashset is used to avoid reporting both A <-> B and B <-> A
let hashset = new HashSet<INamespace>()

// Optimization: restreint namespaces set
// If a namespace doesn't have a Level value, it must be in a dependency cycle
// or it must be using directly or indirectly a dependency cycle.
let namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)

from nA in namespacesSuspect

// Select namespaces mutually dependent with nA
let unused = hashset.Add(nA) // Populate hashset
let namespacesMutuallyDependentWith_nA = nA.NamespacesUsed.Using(nA)
          
.Except(hashset) // <-- avoid reporting both A <-> B and B <-> A 
where namespacesMutuallyDependentWith_nA.Count() > 0

from nB in namespacesMutuallyDependentWith_nA

// nA and nB are mutually dependent
// Select first the one that shouldn't use the other.
// The first namespace is inferred from the fact that it is using less types of the second.
let typesOfBUsedByA = nB.ChildTypes.UsedBy(nA)
let typesOfAUsedByB = nA.ChildTypes.UsedBy(nB)
let first = (typesOfBUsedByA.Count() > typesOfAUsedByB.Count()) ? nB : nA
let second = (first == nA) ? nB : nA
let typesOfFirstUsedBySecond = (first == nA) ? typesOfAUsedByB : typesOfBUsedByA
let typesOfSecondUsedByFirst = (first == nA) ? typesOfBUsedByA : typesOfAUsedByB
select new { first, shouldntUse = second, typesOfFirstUsedBySecond, typesOfSecondUsedByFirst }

36 namespaces matched

namespacesshouldntUsetypesOfFirstUsedBySecondtypesOfSecondUsedByFirstFull Name
namespacesshouldntUsetypesOfFirstUsedBySecondtypesOfSecondUsedByFirstFull Name
ThoughtWorks.CruiseControl.RemoteThoughtWorks.CruiseControl.Remote.Parameters1 type1 typeThoughtWorks.CruiseControl.Remote
ThoughtWorks.CruiseControl.Remote.MessagesThoughtWorks.CruiseControl.Remote32 types9 typesThoughtWorks.CruiseControl.Remote.Messages
ThoughtWorks.CruiseControl.Remote.EventsThoughtWorks.CruiseControl.Remote6 types2 typesThoughtWorks.CruiseControl.Remote.Events
ThoughtWorks.CruiseControl.Core.UtilThoughtWorks.CruiseControl.Core22 types2 typesThoughtWorks.CruiseControl.Core.Util
ThoughtWorks.CruiseControl.CoreThoughtWorks.CruiseControl.Core.Triggers3 types1 typeThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.Core.SecurityThoughtWorks.CruiseControl.Core9 types4 typesThoughtWorks.CruiseControl.Core.Security
ThoughtWorks.CruiseControl.CoreThoughtWorks.CruiseControl.Core.Sourcecontrol6 types4 typesThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.Core.StateThoughtWorks.CruiseControl.Core4 types2 typesThoughtWorks.CruiseControl.Core.State
ThoughtWorks.CruiseControl.Core.ConfigThoughtWorks.CruiseControl.Core15 types9 typesThoughtWorks.CruiseControl.Core.Config
ThoughtWorks.CruiseControl.CoreThoughtWorks.CruiseControl.Core.Tasks10 types3 typesThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.Core.QueuesThoughtWorks.CruiseControl.Core7 types5 typesThoughtWorks.CruiseControl.Core.Queues
ThoughtWorks.CruiseControl.CoreThoughtWorks.CruiseControl.Core.Label5 types1 typeThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.CoreThoughtWorks.CruiseControl.Core.Publishers11 types3 typesThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.CoreThoughtWorks.CruiseControl.Core.Publishers.Statistics5 types1 typeThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.Core.UtilThoughtWorks.CruiseControl.Core.Tasks30 types2 typesThoughtWorks.CruiseControl.Core.Util
ThoughtWorks.CruiseControl.Core.TasksThoughtWorks.CruiseControl.Core.Publishers3 types1 typeThoughtWorks.CruiseControl.Core.Tasks
ThoughtWorks.CruiseControl.Core.ConfigThoughtWorks.CruiseControl.Core.Security3 types2 typesThoughtWorks.CruiseControl.Core.Config
ThoughtWorks.CruiseControl.Core.Config.PreprocessorThoughtWorks.CruiseControl.Core.Config3 types1 typeThoughtWorks.CruiseControl.Core.Config.Preprocessor
ThoughtWorks.CruiseControl.WebDashboard.IOThoughtWorks.CruiseControl.WebDashboard.MVC2 types2 typesThoughtWorks.CruiseControl.WebDashboard.IO
ThoughtWorks.CruiseControl.WebDashboard.IOThoughtWorks.CruiseControl.WebDashboard.Dashboard4 types2 typesThoughtWorks.CruiseControl.WebDashboard.IO
ThoughtWorks.CruiseControl.WebDashboard.IOThoughtWorks.CruiseControl.WebDashboard.Configuration1 type1 typeThoughtWorks.CruiseControl.WebDashboard.IO
ThoughtWorks.CruiseControl.WebDashboard.IOThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport3 types2 typesThoughtWorks.CruiseControl.WebDashboard.IO
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Configuration5 types4 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.MVC.CruiseThoughtWorks.CruiseControl.WebDashboard.Dashboard.Actions1 type1 typeThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise
ThoughtWorks.CruiseControl.WebDashboard.MVC.CruiseThoughtWorks.CruiseControl.WebDashboard.Dashboard8 types2 typesThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport10 types4 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Plugins.FarmReport9 types6 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport11 types4 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport10 types2 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Plugins.ViewAllBuilds4 types1 typeThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators4 types2 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.DashboardThoughtWorks.CruiseControl.WebDashboard.Plugins.Security4 types2 typesThoughtWorks.CruiseControl.WebDashboard.Dashboard
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionsThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport1 type1 typeThoughtWorks.CruiseControl.WebDashboard.Dashboard.Actions
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.GenericPluginsThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport1 type1 typeThoughtWorks.CruiseControl.WebDashboard.Dashboard.GenericPlugins
ThoughtWorks.CruiseControl.CCTrayLib.PresentationThoughtWorks.CruiseControl.CCTrayLib.Speech1 type1 typeThoughtWorks.CruiseControl.CCTrayLib.Presentation
ThoughtWorks.CruiseControl.CCTrayLib.MonitoringThoughtWorks.CruiseControl.CCTrayLib.Configuration8 types4 typesThoughtWorks.CruiseControl.CCTrayLib.Monitoring

Statistics

Stat   shouldntUse   typesOfFirstUsedBySecond   typesOfSecondUsedByFirst
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Avoid namespaces dependency cycles
// <Name>Avoid namespaces dependency cycles</Name>
warnif count > 0
// This query lists all application namespaces dependency cyles.
// Each row shows a different cycle, prefixed with a namespace entangled in the cycle.
//
// To browse a cycle on the dependency graph or the dependency matrix, just right click
// a cycle cell and export namespaces matched to the dependency graph or matrix!
//
// In the matrix, dependency cycles are represented with red squares and black cells.
// To browse easily dependency cycles, the Matrix comes with the option:
//   --> Display Direct and Indirect Dependencies
//
// Read our white books relative to partitionning code, 
// to know more about namespaces dependency cycles, and why avoiding them 
// is a simple but efficient solution to architecture well your code base.
// http://www.ndepend.com/WhiteBooks.aspx


// Optimization: restreint application assemblies set
// If some namespaces are mutually dependent
//  - They must be declared in the same assembly
//  - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies
                 
.Where(a => a.ContainsNamespaceDependencyCycle != null && 
                             
a.ContainsNamespaceDependencyCycle.Value)

// Optimization: restreint namespaces set
// A namespace involved in a cycle necessarily have a null Level.
let namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)

// hashset is used to avoid iterating again on namespaces already caught in a cycle.
let hashset = new HashSet<INamespace>()


from suspect in namespacesSuspect
   
// By commenting this line, the query matches all namespaces involved in a cycle.
   where !hashset.Contains(suspect)

   
// Define 2 code metrics
   // - Namespaces depth of is using indirectly the suspect namespace.
   // - Namespaces depth of is used by the suspect namespace indirectly.
   // Note: for direct usage the depth is equal to 1.
   let namespacesUserDepth = namespacesSuspect.DepthOfIsUsing(suspect)
   
let namespacesUsedDepth = namespacesSuspect.DepthOfIsUsedBy(suspect)

   
// Select namespaces that are both using and used by namespaceSuspect
   let usersAndUsed = from n in namespacesSuspect where 
                         
namespacesUserDepth[n] > 0 && 
                         
namespacesUsedDepth[n] > 0 
                      
select n

   
where usersAndUsed.Count() > 0

   
// Here we've found namespace(s) both using and used by the suspect namespace.
   // A cycle involving the suspect namespace is found!
   let cycle = usersAndUsed.Append(suspect)

   
// Fill hashset with namespaces in the cycle.
   // .ToArray() is needed to force the iterating process.
   let unused1 = (from n in cycle let unused2 = hashset.Add(n) select n).ToArray()

select new { suspect, cycle }

5 namespaces matched

namespacescycleFull Name
namespacescycleFull Name
ThoughtWorks.CruiseControl.Remote4 namespacesThoughtWorks.CruiseControl.Remote
ThoughtWorks.CruiseControl.Core14 namespacesThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.WebDashboard.ServerConnection18 namespacesThoughtWorks.CruiseControl.WebDashboard.ServerConnection
ThoughtWorks.CruiseControl.CCTrayLib.Presentation2 namespacesThoughtWorks.CruiseControl.CCTrayLib.Presentation
ThoughtWorks.CruiseControl.CCTrayLib.Monitoring2 namespacesThoughtWorks.CruiseControl.CCTrayLib.Monitoring

Statistics

Stat   cycle
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Assemblies with poor cohesion (RelationalCohesion)
// <Name>Assemblies with poor cohesion (RelationalCohesion)</Name>
warnif count > 0 from a in Application.Assemblies where 
  
a.NbTypes > 20 && // Relational Cohesion metrics is relevant only if there are several types 
  (a.RelationalCohesion < 1.5 || 
   
a.RelationalCohesion > 4.0)
select new { a, a.NbTypes, a.RelationalCohesion }

// As classes inside an assembly should be strongly related, 
// the cohesion should be high. On the other hand, a value 
// which is too high may indicate over-coupling. A good range 
// for RelationalCohesion is 1.5 to 4.0.
// See the definition of the RelationalCohesion metric here 
// http://www.ndepend.com/Metrics.aspx#RelationalCohesion

3 assemblies matched

assemblies# TypesRelational cohesionFull Name
assemblies# TypesRelational cohesionFull Name
ThoughtWorks.CruiseControl.Core5284.125ThoughtWorks.CruiseControl.Core
ThoughtWorks.CruiseControl.WebDashboard2094.5981ThoughtWorks.CruiseControl.WebDashboard
CCValidator211.3333CCValidator

Statistics

Stat   # Types   Relational cohesion
Sum:75810.056
Average:252.673.3521
Minimum:211.3333
Maximum:5284.5981
Standard deviation:209.271.4405
Variance:43 7942.0751

API Breaking Changes  
 6 3 0 

warningCritical    Critical Rule warning: API Breaking Changes: Methods
// <Name>API Breaking Changes: Methods</Name>
// This rule warns if a publicly visible method is 
// not publicly visible anymore or if it has been removed.
// Such method can break the code of your clients.

warnif count > 0 from m in codeBase.OlderVersion().Application.Methods
where m.IsPubliclyVisible && 

     
// The method has been removed and its parent type hasn't been removed ...
     ( (m.WasRemoved() && !m.ParentType.WasRemoved()) ||

     
// ... or the method is not publicly visible anymore
       !m.WasRemoved() && !m.NewerVersion().IsPubliclyVisible)

select new { m,
             
NewVisibility = (m.WasRemoved() ? " " : m.NewerVersion().Visibility.ToString()) }

35 methods matched

methodsNewVisibilityFull Name
methodsNewVisibilityFull Name
AddTaskResultFromFile(String) ThoughtWorks.CruiseControl.Core.IIntegrationResult .AddTaskResultFromFile(String)
AddTaskResultFromFile(String,Boolean) ThoughtWorks.CruiseControl.Core.IIntegrationResult .AddTaskResultFromFile(String,Boolean)
AddTaskResultFromFile(String) ThoughtWorks.CruiseControl.Core.IntegrationResult .AddTaskResultFromFile(String)
AddTaskResultFromFile(String,Boolean) ThoughtWorks.CruiseControl.Core.IntegrationResult .AddTaskResultFromFile(String,Boolean)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Project.Validate(IConfiguration,Object ,IConfigurationErrorProcesser)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Tasks.TaskContainerBase.Validate (IConfiguration,Object,IConfigurationErrorProcesser)
InitialiseStatus() ThoughtWorks.CruiseControl.Core.Tasks.TaskContainerBase .InitialiseStatus()
Run(IIntegrationResult) ThoughtWorks.CruiseControl.Core.Tasks.NullTask.Run(IIntegrationResult)
get_ioSystem() ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.get_ioSystem()
set_ioSystem(IFileSystem) ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.set_ioSystem (IFileSystem)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Tasks.ParallelTask.Validate (IConfiguration,Object,IConfigurationErrorProcesser)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.Validate (IConfiguration,Object,IConfigurationErrorProcesser)
EmptyDirectoryIncludingReadOnlyObjects(String) ThoughtWorks.CruiseControl.Core.Util.IoService .EmptyDirectoryIncludingReadOnlyObjects(String)
DeleteFileEvenIfReadOnly(String) ThoughtWorks.CruiseControl.Core.Util.IoService .DeleteFileEvenIfReadOnly(String)
GetDisplayName(String) ThoughtWorks.CruiseControl.Core.Security.ISecurityManager .GetDisplayName(String)
GetDisplayName(String) ThoughtWorks.CruiseControl.Core.Security.SecurityManagerBase .GetDisplayName(String)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Security.PermissionBase.Validate (IConfiguration,Object,IConfigurationErrorProcesser)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Security.InternalSecurityManager .Validate(IConfiguration,Object,IConfigurationErrorProcesser)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Security.ExternalFileSecurityManager .Validate(IConfiguration,Object,IConfigurationErrorProcesser)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Security.DefaultProjectAuthorisation .Validate(IConfiguration,Object,IConfigurationErrorProcesser)
GetDisplayName(String) ThoughtWorks.CruiseControl.Core.Security.NullSecurityManager .GetDisplayName(String)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.Validate (IConfiguration,Object,IConfigurationErrorProcesser)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Config.IConfigurationValidation .Validate(IConfiguration,Object,IConfigurationErrorProcesser)
Validate(IConfiguration,Object,IConfigurationErrorProcesser) ThoughtWorks.CruiseControl.Core.Config.DefaultQueueConfiguration .Validate(IConfiguration,Object,IConfigurationErrorProcesser)
set_XslFileNames(String[]) ThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportBuildPlugin.set_XslFileNames(String[])
set_XslFileNames(String[]) ThoughtWorks.CruiseControl.WebDashboard.Dashboard.GenericPlugins .XslMultiReportBuildPlugin.set_XslFileNames(String[])
set_XslFileNames(String[]) ThoughtWorks.CruiseControl.WebDashboard.Dashboard.Actions .MultipleXslReportBuildAction.set_XslFileNames(String[])
ForceBuild(String,Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ICruiseProjectManager .ForceBuild(String,Dictionary<String,String>)
ForceBuild(Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Monitoring.IProjectMonitor .ForceBuild(Dictionary<String,String>)
ForceBuild(Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ProjectMonitor .ForceBuild(Dictionary<String,String>)
ForceBuild(Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .AggregatingProjectMonitor.ForceBuild(Dictionary<String,String>)
ForceBuild(String,Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .RemotingCruiseProjectManager.ForceBuild(String,Dictionary<String ,String>)
ForceBuild(String,Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Monitoring .HttpCruiseProjectManager.ForceBuild(String,Dictionary<String,String>)
ForceBuild(Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Presentation .SynchronizedProjectMonitor.ForceBuild(Dictionary<String,String>)
ForceBuild(Dictionary<String,String>) ThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .ForceBuild(Dictionary<String,String>)

Statistics

Stat   NewVisibility
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Critical Rule warning: API Breaking Changes: Fields
// <Name>API Breaking Changes: Fields</Name>
// This rule warns if a publicly visible field is 
// not publicly visible anymore or if it has been removed.
// Such field can break the code of your clients.

warnif count > 0 from f in codeBase.OlderVersion().Application.Fields
where f.IsPubliclyVisible &&

     
// The field has been removed and its parent type hasn't been removed ...
     ( (f.WasRemoved() && !f.ParentType.WasRemoved()) ||

     
// ... or the field is not publicly visible anymore
       !f.WasRemoved() && !f.NewerVersion().IsPubliclyVisible)

select new { f,
             
NewVisibility = (f.WasRemoved() ? " " : f.NewerVersion().Visibility.ToString()) }

21 fields matched

fieldsNewVisibilityFull Name
fieldsNewVisibilityFull Name
SolutionFile ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.SolutionFile
Configuration ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.Configuration
BuildTimeoutSeconds ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.BuildTimeoutSeconds
BuildType ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.BuildType
Project ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.Project
Priority ThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.Priority
UrlBuilder ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.UrlBuilder
Executable ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.Executable
TrunkUrl ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.TrunkUrl
WorkingDirectory ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.WorkingDirectory
TagOnSuccess ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.TagOnSuccess
DeleteObstructions ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.DeleteObstructions
TagBaseUrl ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.TagBaseUrl
Username ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.Username
Password ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.Password
AutoGetSource ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.AutoGetSource
CheckExternals ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.CheckExternals
CheckExternalsRecursive ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn .CheckExternalsRecursive
CleanCopy ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.CleanCopy
Revert ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.Revert
CleanUp ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.CleanUp

Statistics

Stat   NewVisibility
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Critical Rule warning: API Breaking Changes: Interfaces and Abstract Classes
// <Name>API Breaking Changes: Interfaces and Abstract Classes</Name>
// This rule warns if a publicly visible interface or abstract class 
// has been changed and contains new abstract methods or 
// if some abstract methods have been removed.
// This can break the code of clients 
// that implement such interface or derive from such abstract class.

warnif count > 0 from tNewer in Application.Types where 
 
(tNewer.IsInterface || tNewer.IsClass && tNewer.IsAbstract) && 
  
tNewer.IsPubliclyVisible && 
  
tNewer.IsPresentInBothBuilds()

let tOlder = tNewer.OlderVersion() where tOlder.IsPubliclyVisible

let methodsRemoved = tOlder.Methods.Where(m => m.IsAbstract && m.WasRemoved())
let methodsAdded = tNewer.Methods.Where(m => m.IsAbstract && m.WasAdded())

where methodsAdded.Count() > 0 || methodsRemoved.Count() > 0
select new { tNewer, methodsAdded, methodsRemoved }

8 types matched

typesmethodsAddedmethodsRemovedFull Name
typesmethodsAddedmethodsRemovedFull Name
IIntegrationResult0 method2 methodsThoughtWorks.CruiseControl.Core.IIntegrationResult
IIntegrationRunnerTarget1 method0 methodThoughtWorks.CruiseControl.Core.IIntegrationRunnerTarget
ISecurityManager1 method1 methodThoughtWorks.CruiseControl.Core.Security.ISecurityManager
IConfigurationValidation1 method1 methodThoughtWorks.CruiseControl.Core.Config.IConfigurationValidation
IProjectGridAction2 methods0 methodThoughtWorks.CruiseControl.WebDashboard.Dashboard.IProjectGridAction
IProjectMonitor1 method1 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.IProjectMonitor
ISingleProjectDetail1 method0 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ISingleProjectDetail
ICruiseProjectManager1 method1 methodThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ICruiseProjectManager

Statistics

Stat   methodsAdded   methodsRemoved
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00

Dead Code  
 2 2 0 

warningCritical    Rule warning: Potentially dead Types
// <Name>Potentially dead Types</Name>
warnif count > 0
// Filter procedure for types that should'nt be considered as dead
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
   
t => !t.IsPublic && //   Public types might be used by client applications of your assemblies.
         t.Name != "Program" && 
        
!t.IsGeneratedByCompiler &&
        
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()))
         
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.

// Select types unused
let typesUnused = 
   
from t in JustMyCode.Types where
   
t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
   
select t

// Dead types = types used only by unused types (recursive)
let deadTypesMetric = typesUnused.FillIterative(
types => from t in codeBase.Application.Types.UsedByAny(types).Except(types)
         
where canTypeBeConsideredAsDeadProc(t) &&
               
t.TypesUsingMe.Intersect(types).Count() == t.NbTypesUsingMe
         
select t)

from t in deadTypesMetric.DefinitionDomain
select new { t, t.TypesUsingMe, depth = deadTypesMetric[t] }

1 types matched

typeTypesUsingMedepthFull Name
typeTypesUsingMedepthFull Name
ModificationHistoryProjectPlugin0 type0ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ModificationHistoryProjectPlugin

Statistics

Stat   TypesUsingMe   depth
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Potentially dead Methods
// <Name>Potentially dead Methods</Name>
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
    
m => !m.IsPubliclyVisible &&       // Public methods might be used by client applications of your assemblies.
         !m.IsEntryPoint &&            // Main() method is not used by-design.
         !m.IsExplicitInterfaceImpl && // The IL code never explicitely calls explicit interface methods implementation.
         !m.IsClassConstructor &&      // The IL code never explicitely calls class constructors.
         !m.IsFinalizer &&             // The IL code never explicitely calls finalizers.
         !m.IsVirtual &&               // Only check for non virtual method that are not seen as used in IL.
         !(m.IsConstructor &&          // Don't take account of protected ctor that might be call by a derived ctors.
           m.IsProtected) &&
         
!m.IsEventAdder &&            // The IL code never explicitely calls events adder/remover.
         !m.IsEventRemover &&
         
!m.IsGeneratedByCompiler &&
         
!m.ParentType.IsDelegate &&

         
// Methods tagged with these two attributes are called by the serialization infrastructure.
         !m.HasAttribute("System.Runtime.Serialization.OnSerializingAttribute".AllowNoMatch()) &&
         
!m.HasAttribute("System.Runtime.Serialization.OnDeserializedAttribute".AllowNoMatch()) &&

         
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
         !m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()))

// Get methods unused
let methodsUnused = 
   
from m in JustMyCode.Methods where 
   
m.NbMethodsCallingMe == 0 && 
   
canMethodBeConsideredAsDeadProc(m)
   
select m

// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
   
methods => // Unique loop, just to let a chance to build the hashset.
              from o in (new object()).ToEnumerable()
              
// Use a hashet to make Intersect calls much faster!
              let hashset = methods.ToHashSet()
              
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
              
where canMethodBeConsideredAsDeadProc(m) &&
                    
// Select methods called only by methods already considered as dead
                    hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
              
select m)

from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }

44 methods matched

methodsMethodsCallingMedepthFull Name
methodsMethodsCallingMedepthFull Name
.ctor()0 method0ThoughtWorks.CruiseControl.Remote.QueueSnapshotList..ctor()
.ctor()0 method0ThoughtWorks.CruiseControl.Core.LogFileUtil..ctor()
get_Expiry()0 method0ThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection .get_Expiry()
.ctor()0 method0ThoughtWorks.CruiseControl.Core.Util.ReflectionUtil..ctor()
.ctor()0 method0ThoughtWorks.CruiseControl.Core.Util.KillUtil..ctor()
.ctor()0 method0ThoughtWorks.CruiseControl.Core.Util.Log4NetTrace.TraceLogManager. .ctor()
.ctor()0 method0ThoughtWorks.CruiseControl.Core.Sourcecontrol.VSSParserFactory..ctor()
GetModificationsFlowGetFullLog(String)0 method0ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial .GetModificationsFlowGetFullLog(String)
AddToFileset(Uri)1 method1ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.AddToFileset(Uri)
define_text_constant(String,String)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.define_text_constant(String,String)
define_nodeset_constant(String,XPathNodeIterator)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.define_nodeset_constant(String ,XPathNodeIterator)
eval_text_constants(String)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_text_constants(String)
eval_constant(String)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_constant(String)
unwind_eval_stack()0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.unwind_eval_stack()
push_stack()0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.push_stack()
pop_stack()0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.pop_stack()
push_include(String)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.push_include(String)
pop_include()0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.pop_include()
_SetConstant(Constant)2 methods1ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._SetConstant(Constant)
_IsDefinedInCurrentFrame(String)1 method2ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._IsDefinedInCurrentFrame(String)
_CheckAlreadyDefined(String)2 methods1ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._CheckAlreadyDefined(String)
CreateException(String,Object[])0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor .DefinitionException.CreateException(String,Object[])
CreateWriter(String)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils.CreateWriter (String)
TransformToDocument(XmlReader,XslCompiledTransform,XsltArgumentList ,XmlResolver)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils .TransformToDocument(XmlReader,XslCompiledTransform,XsltArgumentList ,XmlResolver)
GetAssemblyResourceStream(Type,String)0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils .GetAssemblyResourceStream(Type,String)
.ctor()0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils..ctor()
get_Uri()0 method0ThoughtWorks.CruiseControl.Core.Config.Preprocessor.UrlResolvedArgs .get_Uri()
.ctor()0 method0ThoughtWorks.CruiseControl.Core.Publishers .XmlIntegrationResultWriter+Elements..ctor()
ChartGenerator(List<StatisticBase>)0 method0ThoughtWorks.CruiseControl.Core.Publishers.Statistics .StatisticsPublisher.ChartGenerator(List<StatisticBase>)
Save(TextWriter)0 method0ThoughtWorks.CruiseControl.Core.Publishers.Statistics .StatisticsResults.Save(TextWriter)
HasExtension(String)0 method0ThoughtWorks.CruiseControl.WebDashboard.MVC.MimeType.HasExtension (String)
.ctor()0 method0ThoughtWorks.CruiseControl.WebDashboard.Dashboard.RSSLinkBuilder..ctor ()
set_OnlyShowBuildsWithModifications(Boolean)0 method0ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ModificationHistoryProjectPlugin.set_OnlyShowBuildsWithModifications (Boolean)
.ctor(IFarmService,IPhysicalApplicationPathProvider)0 method0ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ModificationHistoryProjectPlugin..ctor(IFarmService ,IPhysicalApplicationPathProvider)
.ctor()0 method0ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer..ctor()
.ctor(Int32)0 method0ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer..ctor(Int32)
.ctor()0 method0ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11Message..ctor()
set_TransmissionRetries(Int32)0 method0ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.set_TransmissionRetries (Int32)
get_Filename()0 method0Validator.ConfigurationHierarchy+ConfigurationDetails.get_Filename()
get_Size()0 method0Validator.ConfigurationHierarchy+ConfigurationDetails.get_Size()
get_LastModified()0 method0Validator.ConfigurationHierarchy+ConfigurationDetails.get_LastModified ()
.ctor()0 method0ThoughtWorks.CruiseControl.CCCmd.Program..ctor()
.ctor()0 method0ThoughtWorks.CruiseControl.MSBuild.XmlLogger+XmlLoggerElements..ctor()
.ctor()0 method0ThoughtWorks.CruiseControl.MSBuild.XmlLogger+XmlLoggerAttributes..ctor ()

Statistics

Stat   MethodsCallingMe   depth
Sum:05
Average:00.11364
Minimum:00
Maximum:02
Standard deviation:00.38233
Variance:00.14618

Visibility  
 2 6 0 

warningCritical    Rule warning: Methods that could have a lower visibility
// <Name>Methods that could have a lower visibility</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.Visibility != m.OptimalVisibility &&
  
!m.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
  
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
  
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
  
  
// Eliminate default constructor from the result.
  // Whatever the visibility of the declaring class,
  // default constructors are public and introduce noise
  // in the current rule.
  !( m.IsConstructor && m.IsPublic && m.NbParameters == 0) &&

  
// Don't decrease the visibility of Main() methods.
  !m.IsEntryPoint

select new { m, 
             
m.Visibility , 
             
CouldBeDeclared = m.OptimalVisibility,
             
m.MethodsCallingMe }

2,368 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 2368 methods matched. All matched methods could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched methods.
methodsVisibilityCouldBeDeclaredMethodsCallingMeFull Name
methodsVisibilityCouldBeDeclaredMethodsCallingMeFull Name
.ctor(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Core.SessionInvalidException..ctor(String)
.ctor(String,Exception)PublicPrivate0 methodThoughtWorks.CruiseControl.Core.SessionInvalidException..ctor(String ,Exception)
.ctor(SerializationInfo,StreamingContext)PublicPrivate0 methodThoughtWorks.CruiseControl.Core.SessionInvalidException..ctor (SerializationInfo,StreamingContext)
.ctor(String,String)PublicPrivate0 methodThoughtWorks.CruiseControl.Core.PermissionDeniedException..ctor(String ,String)
.ctor(String,String,Exception)PublicPrivate2 methodsThoughtWorks.CruiseControl.Core.PermissionDeniedException..ctor(String ,String,Exception)
.ctor(SerializationInfo,StreamingContext)PublicPrivate0 methodThoughtWorks.CruiseControl.Core.PermissionDeniedException..ctor (SerializationInfo,StreamingContext)
get_Permission()PublicPrivate0 methodThoughtWorks.CruiseControl.Core.PermissionDeniedException .get_Permission()
.ctor(String,String)PublicPrivate0 methodThoughtWorks.CruiseControl.Core.BadReferenceException..ctor(String ,String)
.ctor(String,String,Exception)PublicPrivate2 methodsThoughtWorks.CruiseControl.Core.BadReferenceException..ctor(String ,String,Exception)
.ctor(SerializationInfo,StreamingContext)PublicPrivate0 methodThoughtWorks.CruiseControl.Core.BadReferenceException..ctor (SerializationInfo,StreamingContext)
get_Reference()PublicPrivate0 methodThoughtWorks.CruiseControl.Core.BadReferenceException.get_Reference()
.ctor(DateTime)PublicInternal5 methodsThoughtWorks.CruiseControl.Remote.SerializableDateTime..ctor(DateTime)
get_DateTime()PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.SerializableDateTime.get_DateTime()
.ctor(String,IntegrationStatus,DateTime)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectStatus..ctor(String ,IntegrationStatus,DateTime)
set_BuildStage(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_BuildStage(String)
set_Status(ProjectIntegratorState)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_Status (ProjectIntegratorState)
set_BuildStatus(IntegrationStatus)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_BuildStatus (IntegrationStatus)
set_Activity(ProjectActivity)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_Activity (ProjectActivity)
set_Name(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_Name(String)
get_Description()PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.ProjectStatus.get_Description()
set_Category(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_Category(String)
set_Queue(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_Queue(String)
set_QueuePriority(Int32)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_QueuePriority (Int32)
set_WebURL(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_WebURL(String)
set_LastBuildDate(DateTime)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_LastBuildDate (DateTime)
set_LastBuildLabel(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_LastBuildLabel (String)
set_LastSuccessfulBuildLabel(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectStatus .set_LastSuccessfulBuildLabel(String)
set_NextBuildTime(DateTime)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ProjectStatus.set_NextBuildTime (DateTime)
set_QueueSetSnapshot(QueueSetSnapshot)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.CruiseServerSnapshot .set_QueueSetSnapshot(QueueSetSnapshot)
GetProjectStatus(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.CruiseServerSnapshot .GetProjectStatus(String)
.ctor(String)PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient..ctor (String)
get_Type()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectActivity.get_Type()
set_Type(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectActivity.set_Type(String)
IsCheckingModifications()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectActivity .IsCheckingModifications()
.ctor(ReflectorMember,ReflectorPropertyAttribute,Boolean)PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.NameValuePairSerialiser..ctor (ReflectorMember,ReflectorPropertyAttribute,Boolean)
get_Connection()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.CruiseServerClient.get_Connection()
FindByName(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.QueueSetSnapshot.FindByName(String)
ProcessResponse(String)PublicInternal3 methodsThoughtWorks.CruiseControl.Remote.XmlConversionUtil.ProcessResponse (String)
FindMessageType(String)PublicInternal3 methodsThoughtWorks.CruiseControl.Remote.XmlConversionUtil.FindMessageType (String)
ConvertXmlToObject(Type,String)PublicInternal3 methodsThoughtWorks.CruiseControl.Remote.XmlConversionUtil.ConvertXmlToObject (Type,String)
ConvertXmlToRequest(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.XmlConversionUtil .ConvertXmlToRequest(String)
set_QueueName(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.QueueSnapshot.set_QueueName(String)
.ctor(String)PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.RemotingConnection..ctor(String)
.ctor(Uri)PublicPrivate1 methodThoughtWorks.CruiseControl.Remote.RemotingConnection..ctor(Uri)
.ctor(String,String)PublicPrivate1 methodThoughtWorks.CruiseControl.Remote.ExternalLink..ctor(String,String)
get_Name()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ExternalLink.get_Name()
set_Name(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ExternalLink.set_Name(String)
get_Url()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ExternalLink.get_Url()
set_Url(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ExternalLink.set_Url(String)
.ctor(String,Exception)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.NoSuchProjectException..ctor(String ,Exception)
.ctor(SerializationInfo,StreamingContext)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.NoSuchProjectException..ctor (SerializationInfo,StreamingContext)
get_RequestedProject()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.NoSuchProjectException .get_RequestedProject()
get_UseClientCaching()PublicPrivate3 methodsThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory .get_UseClientCaching()
set_UseClientCaching(Boolean)PublicPrivate1 methodThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory .set_UseClientCaching(Boolean)
InitialiseDefaultHttpClient()PublicPrivate1 methodThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory .InitialiseDefaultHttpClient()
InitialiseDefaultTcpClient()PublicPrivate1 methodThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory .InitialiseDefaultTcpClient()
BuildUpConnection(IServerConnection,ClientStartUpSettings)PublicPrivate4 methodsThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory .BuildUpConnection(IServerConnection,ClientStartUpSettings)
set_ProjectName(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot .set_ProjectName(String)
set_Activity(ProjectActivity)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot.set_Activity (ProjectActivity)
get_RequestTime()PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot .get_RequestTime()
set_RequestTime(DateTime)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot .set_RequestTime(DateTime)
.ctor(String,CommunicationsMessage)PublicInternal4 methodsThoughtWorks.CruiseControl.Remote.CommunicationsEventArgs..ctor(String ,CommunicationsMessage)
get_Message()PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.CommunicationsEventArgs.get_Message( )
get_Action()PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.CommunicationsEventArgs.get_Action()
.ctor(String)PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.HttpConnection..ctor(String)
.ctor(Uri)PublicPrivate1 methodThoughtWorks.CruiseControl.Remote.HttpConnection..ctor(Uri)
.ctor(IServerConnection)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.EncryptingConnection..ctor (IServerConnection)
set_Text(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Message.set_Text(String)
set_Kind(Message+MessageKind)PublicPrivate2 methodsThoughtWorks.CruiseControl.Remote.Message.set_Kind(Message+MessageKind )
get_Response()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.MessageReceivedEventArgs .get_Response()
get_BackwardsCompatable()PublicInternal4 methodsThoughtWorks.CruiseControl.Remote.ClientStartUpSettings .get_BackwardsCompatable()
get_UseEncryption()PublicInternal1 methodThoughtWorks.CruiseControl.Remote.ClientStartUpSettings .get_UseEncryption()
get_FetchVersionOnStartUp()PublicInternal3 methodsThoughtWorks.CruiseControl.Remote.ClientStartUpSettings .get_FetchVersionOnStartUp()
set_FetchVersionOnStartUp(Boolean)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ClientStartUpSettings .set_FetchVersionOnStartUp(Boolean)
.ctor(String)PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient..ctor(String)
.ctor(String,WebClient)PublicPrivate1 methodThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient..ctor(String ,WebClient)
.ctor(String)PublicInternal6 methodsThoughtWorks.CruiseControl.Remote.CommunicationsException..ctor(String )
.ctor(String,Exception)PublicInternal4 methodsThoughtWorks.CruiseControl.Remote.CommunicationsException..ctor(String ,Exception)
.ctor(String,String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.CommunicationsException..ctor(String ,String)
.ctor(String,Exception,String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.CommunicationsException..ctor(String ,Exception,String)
.ctor(SerializationInfo,StreamingContext)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.CommunicationsException..ctor (SerializationInfo,StreamingContext)
set_FileName(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.PackageDetails.set_FileName(String)
set_TimeOfSnapshot(DateTime)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.ProjectStatusSnapshot .set_TimeOfSnapshot(DateTime)
set_Name(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.NameValuePair.set_Name(String)
set_Value(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.NameValuePair.set_Value(String)
get_Permission()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .get_Permission()
get_Project()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .get_Project()
get_User()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .get_User()
get_IsAllowed()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .get_IsAllowed()
.ctor(String)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.Security.ProjectAuditFilter..ctor (String)
get_ProjectName()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.ProjectAuditFilter .get_ProjectName()
set_ProjectName(String)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.ProjectAuditFilter .set_ProjectName(String)
.ctor(String,AuditFilterBase)PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.Security.ProjectAuditFilter..ctor (String,AuditFilterBase)
.ctor(DateTime,DateTime)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter..ctor (DateTime,DateTime)
.ctor(DateTime,DateTime,AuditFilterBase)PublicInternal2 methodsThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter..ctor (DateTime,DateTime,AuditFilterBase)
get_StartDate()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter .get_StartDate()
set_StartDate(DateTime)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter .set_StartDate(DateTime)
get_EndDate()PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter .get_EndDate()
set_EndDate(DateTime)PublicPrivate0 methodThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter .set_EndDate(DateTime)
.ctor(SecurityEvent)PublicInternal1 methodThoughtWorks.CruiseControl.Remote.Security.EventTypeAuditFilter..ctor (SecurityEvent)

Statistics

Stat   Visibility   CouldBeDeclared   MethodsCallingMe
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Types that could have a lower visibility
// <Name>Types that could have a lower visibility</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Visibility != t.OptimalVisibility &&
  
!t.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
  
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch())
  
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
  
select new { t, t.Visibility , 
                
CouldBeDeclared = t.OptimalVisibility, 
                
t.TypesUsingMe }

736 types matched

The following list of types is truncated and contains only the first 100 types of the 736 types matched. All matched types could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched types.
typesVisibilityCouldBeDeclaredTypesUsingMeFull Name
typesVisibilityCouldBeDeclaredTypesUsingMeFull Name
SerializableDateTimePublicInternal1 typeThoughtWorks.CruiseControl.Remote.SerializableDateTime
NameValuePairSerialiserFactoryPublicInternal0 typeThoughtWorks.CruiseControl.Remote.NameValuePairSerialiserFactory
CruiseServerRemotingClientPublicInternal1 typeThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient
NameValuePairSerialiserPublicInternal2 typesThoughtWorks.CruiseControl.Remote.NameValuePairSerialiser
XmlConversionUtilPublicInternal4 typesThoughtWorks.CruiseControl.Remote.XmlConversionUtil
ProjectConfigurationPublicInternal0 typeThoughtWorks.CruiseControl.Remote.ProjectConfiguration
RemotingConnectionPublicInternal1 typeThoughtWorks.CruiseControl.Remote.RemotingConnection
QueuedRequestSnapshotListPublicInternal1 typeThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshotList
CommunicationsEventArgsPublicInternal4 typesThoughtWorks.CruiseControl.Remote.CommunicationsEventArgs
HttpConnectionPublicInternal2 typesThoughtWorks.CruiseControl.Remote.HttpConnection
EncryptingConnectionPublicInternal1 typeThoughtWorks.CruiseControl.Remote.EncryptingConnection
CruiseServerHttpClientPublicInternal1 typeThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient
NameValuePairListSerialiserFactoryPublicInternal0 typeThoughtWorks.CruiseControl.Remote.NameValuePairListSerialiserFactory
ISecurityCredentialsPublicInternal0 typeThoughtWorks.CruiseControl.Remote.Security.ISecurityCredentials
ProjectAuditFilterPublicInternal2 typesThoughtWorks.CruiseControl.Remote.Security.ProjectAuditFilter
DateRangeAuditFilterPublicInternal2 typesThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter
EventTypeAuditFilterPublicInternal2 typesThoughtWorks.CruiseControl.Remote.Security.EventTypeAuditFilter
UserAuditFilterPublicInternal2 typesThoughtWorks.CruiseControl.Remote.Security.UserAuditFilter
SecurityRightAuditFilterPublicInternal2 typesThoughtWorks.CruiseControl.Remote.Security.SecurityRightAuditFilter
CombinationAuditFilterPublicInternal1 typeThoughtWorks.CruiseControl.Remote.Security.CombinationAuditFilter
ProjectBuildPublicInternal1 typeThoughtWorks.CruiseControl.Remote.Monitor.ProjectBuild
DataBagPublicInternal3 typesThoughtWorks.CruiseControl.Remote.Monitor.DataBag
BuildQueueChangedArgsPublicInternal1 typeThoughtWorks.CruiseControl.Remote.Monitor.BuildQueueChangedArgs
ServerUpdateArgsPublicInternal4 typesThoughtWorks.CruiseControl.Remote.Monitor.ServerUpdateArgs
IServerWatcherPublicInternal3 typesThoughtWorks.CruiseControl.Remote.Monitor.IServerWatcher
ManualServerWatcherPublicInternal1 typeThoughtWorks.CruiseControl.Remote.Monitor.ManualServerWatcher
BuildQueueRequestPublicInternal2 typesThoughtWorks.CruiseControl.Remote.Monitor.BuildQueueRequest
BuildQueuePublicInternal4 typesThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue
BuildQueueRequestChangedArgsPublicInternal1 typeThoughtWorks.CruiseControl.Remote.Monitor.BuildQueueRequestChangedArgs
ServerPublicInternal4 typesThoughtWorks.CruiseControl.Remote.Monitor.Server
ProjectChangedArgsPublicInternal1 typeThoughtWorks.CruiseControl.Remote.Monitor.ProjectChangedArgs
ProjectPublicInternal7 typesThoughtWorks.CruiseControl.Remote.Monitor.Project
PollingServerWatcherPublicInternal1 typeThoughtWorks.CruiseControl.Remote.Monitor.PollingServerWatcher
BooleanParameterPublicInternal0 typeThoughtWorks.CruiseControl.Remote.Parameters.BooleanParameter
SelectParameterPublicInternal0 typeThoughtWorks.CruiseControl.Remote.Parameters.SelectParameter
DateParameterPublicInternal0 typeThoughtWorks.CruiseControl.Remote.Parameters.DateParameter
NumericParameterPublicInternal0 typeThoughtWorks.CruiseControl.Remote.Parameters.NumericParameter
OptionValueCollectionPublicInternal8 typesThoughtWorks.CruiseControl.Remote.Mono.OptionValueCollection
OptionContextPublicInternal6 typesThoughtWorks.CruiseControl.Remote.Mono.OptionContext
OptionPublicInternal6 typesThoughtWorks.CruiseControl.Remote.Mono.Option
ObjectionTypePublicInternal2 typesObjection.ObjectionType
LoadedTypeListPublicInternal1 typeObjection.LoadedTypeList
ObjectionObjectPublicInternal1 typeObjection.ObjectionObject
IModificationUrlBuilderPublicInternal14 typesThoughtWorks.CruiseControl.Core.IModificationUrlBuilder
IParamatisedItemPublicInternal75 typesThoughtWorks.CruiseControl.Core.IParamatisedItem
IStatusSnapshotGeneratorPublicInternal40 typesThoughtWorks.CruiseControl.Core.IStatusSnapshotGenerator
IStatusItemPublicInternal38 typesThoughtWorks.CruiseControl.Core.IStatusItem
MultipleIntegrationFailureExceptionPublicInternal1 typeThoughtWorks.CruiseControl.Core.MultipleIntegrationFailureException
IIntegratablePublicInternal5 typesThoughtWorks.CruiseControl.Core.IIntegratable
WorkflowPublicInternal0 typeThoughtWorks.CruiseControl.Core.Workflow
LogFileUtilPublicInternal1 typeThoughtWorks.CruiseControl.Core.LogFileUtil
ILabellerPublicInternal10 typesThoughtWorks.CruiseControl.Core.ILabeller
ITaskResultPublicInternal26 typesThoughtWorks.CruiseControl.Core.ITaskResult
IIntegrationResultManagerPublicInternal3 typesThoughtWorks.CruiseControl.Core.IIntegrationResultManager
IntegrationResultManagerPublicInternal1 typeThoughtWorks.CruiseControl.Core.IntegrationResultManager
ProjectListPublicInternal1 typeThoughtWorks.CruiseControl.Core.ProjectList
IntegrationRunnerPublicInternal1 typeThoughtWorks.CruiseControl.Core.IntegrationRunner
IIntegrationResultPublicInternal107 typesThoughtWorks.CruiseControl.Core.IIntegrationResult
WorkflowResultPublicInternal1 typeThoughtWorks.CruiseControl.Core.WorkflowResult
IProjectIntegratorListFactoryPublicInternal6 typesThoughtWorks.CruiseControl.Core.IProjectIntegratorListFactory
IIntegrationRepositoryPublicInternal9 typesThoughtWorks.CruiseControl.Core.IIntegrationRepository
ProjectIntegratorListFactoryPublicInternal1 typeThoughtWorks.CruiseControl.Core.ProjectIntegratorListFactory
ITemporaryResultPublicInternal2 typesThoughtWorks.CruiseControl.Core.ITemporaryResult
CruiseServerClientPublicInternal1 typeThoughtWorks.CruiseControl.Core.CruiseServerClient
CruiseControlRemotingExceptionPublicInternal0 typeThoughtWorks.CruiseControl.Core.CruiseControlRemotingException
ModificationPublicInternal87 typesThoughtWorks.CruiseControl.Core.Modification
IProjectIntegratorPublicInternal24 typesThoughtWorks.CruiseControl.Core.IProjectIntegrator
ProjectIntegratorPublicInternal1 typeThoughtWorks.CruiseControl.Core.ProjectIntegrator
IIntegrationRunnerTargetPublicInternal2 typesThoughtWorks.CruiseControl.Core.IIntegrationRunnerTarget
IProjectIntegratorListPublicInternal4 typesThoughtWorks.CruiseControl.Core.IProjectIntegratorList
ProjectIntegratorListPublicInternal1 typeThoughtWorks.CruiseControl.Core.ProjectIntegratorList
IntegrationQueueManagerPublicInternal1 typeThoughtWorks.CruiseControl.Core.IntegrationQueueManager
CruiseServerPublicInternal33 typesThoughtWorks.CruiseControl.Core.CruiseServer
ViewCVSUrlBuilderPublicInternal0 typeThoughtWorks.CruiseControl.Core.ViewCVSUrlBuilder
IMergeTaskPublicInternal1 typeThoughtWorks.CruiseControl.Core.IMergeTask
IParamatisedProjectPublicInternal2 typesThoughtWorks.CruiseControl.Core.IParamatisedProject
IntegrationStatusParserPublicInternal0 typeThoughtWorks.CruiseControl.Core.IntegrationStatusParser
IClockPublicInternal4 typesThoughtWorks.CruiseControl.Core.IClock
SystemClockPublicInternal2 typesThoughtWorks.CruiseControl.Core.SystemClock
IntegrationPropertyNamesPublicInternal0 typeThoughtWorks.CruiseControl.Core.IntegrationPropertyNames
CruiseManagerPublicInternal1 typeThoughtWorks.CruiseControl.Core.CruiseManager
IntegrationSummaryPublicInternal12 typesThoughtWorks.CruiseControl.Core.IntegrationSummary
ConsoleEventHandlerPublicInternal1 typeThoughtWorks.CruiseControl.Core.ConsoleEventHandler
RemoteCruiseServerPublicInternal1 typeThoughtWorks.CruiseControl.Core.RemoteCruiseServer
IProjectSerializerPublicInternal6 typesThoughtWorks.CruiseControl.Core.IProjectSerializer
NetReflectorProjectSerializerPublicInternal2 typesThoughtWorks.CruiseControl.Core.NetReflectorProjectSerializer
MergeFileSerialiserFactoryPublicInternal0 typeThoughtWorks.CruiseControl.Core.Tasks.MergeFileSerialiserFactory
HttpStatusTaskPublicInternal0 typeThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask
HttpStatusTask+HttpRequestStatusProtectedPrivate1 typeThoughtWorks.CruiseControl.Core.Tasks.HttpStatusTask+HttpRequestStatus
CoverageThresholdPublicInternal1 typeThoughtWorks.CruiseControl.Core.Tasks.CoverageThreshold
GendarmeTaskPublicInternal0 typeThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask
CruiseServerControlTaskPublicInternal0 typeThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTask
BuilderExceptionPublicInternal10 typesThoughtWorks.CruiseControl.Core.Tasks.BuilderException
NUnitTaskPublicInternal0 typeThoughtWorks.CruiseControl.Core.Tasks.NUnitTask
DataTaskResultPublicInternal1 typeThoughtWorks.CruiseControl.Core.Tasks.DataTaskResult
CruiseServerControlTaskActionPublicInternal1 typeThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTaskAction
MergeFilesTaskPublicInternal1 typeThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask
ExecutableTaskPublicInternal0 typeThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask
IDynamicValuePublicInternal5 typesThoughtWorks.CruiseControl.Core.Tasks.IDynamicValue
DirectDynamicValuePublicInternal0 typeThoughtWorks.CruiseControl.Core.Tasks.DirectDynamicValue

Statistics

Stat   Visibility   CouldBeDeclared   TypesUsingMe
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Fields that could have a lower visibility
// <Name>Fields that could have a lower visibility</Name>
warnif count > 0 from f in JustMyCode.Fields where 
  
f.Visibility != f.OptimalVisibility &&
 
!f.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
 
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch())
  
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
  
select new { f, 
             
f.Visibility , 
             
CouldBeDeclared = f.OptimalVisibility,
             
f.MethodsUsingMe }

582 fields matched

The following list of fields is truncated and contains only the first 100 fields of the 582 fields matched. All matched fields could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched fields.
fieldsVisibilityCouldBeDeclaredMethodsUsingMeFull Name
fieldsVisibilityCouldBeDeclaredMethodsUsingMeFull Name
DefaultPublicInternal4 methodsThoughtWorks.CruiseControl.Remote.SerializableDateTime.Default
BuildNumberPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.LogFile.BuildNumber
targetPublicPrivate5 methodsThoughtWorks.CruiseControl.Core.IntegrationRunner.target
TypePublicInternal31 methodsThoughtWorks.CruiseControl.Core.Modification.Type
FileNamePublicInternal36 methodsThoughtWorks.CruiseControl.Core.Modification.FileName
FolderNamePublicInternal37 methodsThoughtWorks.CruiseControl.Core.Modification.FolderName
ModifiedTimePublicInternal32 methodsThoughtWorks.CruiseControl.Core.Modification.ModifiedTime
UserNamePublicInternal28 methodsThoughtWorks.CruiseControl.Core.Modification.UserName
ChangeNumberPublicInternal21 methodsThoughtWorks.CruiseControl.Core.Modification.ChangeNumber
VersionPublicInternal15 methodsThoughtWorks.CruiseControl.Core.Modification.Version
CommentPublicInternal26 methodsThoughtWorks.CruiseControl.Core.Modification.Comment
UrlPublicInternal8 methodsThoughtWorks.CruiseControl.Core.Modification.Url
IssueUrlPublicInternal4 methodsThoughtWorks.CruiseControl.Core.Modification.IssueUrl
EmailAddressPublicInternal8 methodsThoughtWorks.CruiseControl.Core.Modification.EmailAddress
InitialPublicInternal4 methodsThoughtWorks.CruiseControl.Core.IntegrationSummary.Initial
ExecutablePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Executable
ConfiguredBaseDirectoryPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask .ConfiguredBaseDirectory
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Priority
ConfigFilePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.ConfigFile
RuleSetPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.RuleSet
IgnoreFilePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.IgnoreFile
LimitPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Limit
SeverityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Severity
ConfidencePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Confidence
QuietPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Quiet
VerbosePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Verbose
FailBuildOnFoundDefectsPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask .FailBuildOnFoundDefects
AssembliesPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Assemblies
AssemblyListFilePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.AssemblyListFile
VerifyTimeoutSecondsPublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask .VerifyTimeoutSeconds
AssembliesPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.Assemblies
NUnitPathPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.NUnitPath
OutputFilePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.OutputFile
TimeoutPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.Timeout
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.Priority
ExcludedCategoriesPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.ExcludedCategories
IncludedCategoriesPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.IncludedCategories
MergeFilesPublicInternal3 methodsThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask.MergeFiles
ExecutablePublicPrivate4 methodsThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask.Executable
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask.Priority
ConfiguredBaseDirectoryPublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask .ConfiguredBaseDirectory
BuildArgsPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask.BuildArgs
EnvironmentVariablesPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask .EnvironmentVariables
BuildTimeoutSecondsPublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask .BuildTimeoutSeconds
DefaultScriptsDirectoryPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .DefaultScriptsDirectory
ScriptPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.Script
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.Priority
ConfiguredScriptsDirectoryPublicPrivate4 methodsThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .ConfiguredScriptsDirectory
BuildArgsPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.BuildArgs
EnvironmentVariablesPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .EnvironmentVariables
BuildTimeoutSecondsPublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .BuildTimeoutSeconds
ProjectFilePublicPrivate5 methodsThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.ProjectFile
ShowBannerPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.ShowBanner
FBVariablesPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.FBVariables
DontWriteToLogPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.DontWriteToLog
UseTemporaryLogFilePublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask .UseTemporaryLogFile
TimeoutPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.Timeout
BuildArgsPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.RakeTask.BuildArgs
BaseDirectoryPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.RakeTask.BaseDirectory
BuildTimeoutSecondsPublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.RakeTask.BuildTimeoutSeconds
QuietPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Quiet
ExecutablePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Executable
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Priority
RakefilePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Rakefile
SilentPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Silent
TargetsPublicPrivate4 methodsThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Targets
TracePublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Trace
NamePublicInternal2 methodsThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .Name
KeyNamePublicInternal2 methodsThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .KeyName
KeyValuePublicInternal2 methodsThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .KeyValue
IndexPublicInternal3 methodsThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .Index
LogFileIdPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.LogFileId
TargetsPublicPrivate6 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Targets
ExecutablePublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Executable
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Priority
BuildFilePublicPrivate4 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.BuildFile
ConfiguredBaseDirectoryPublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.ConfiguredBaseDirectory
BuildArgsPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.BuildArgs
LoggerPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Logger
ListenerPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Listener
NoLogoPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.NoLogo
BuildTimeoutSecondsPublicPrivate3 methodsThoughtWorks.CruiseControl.Core.Tasks.NAntTask.BuildTimeoutSeconds
FilenamePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.ModificationReaderTask.Filename
OutputPathPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.ModificationReaderTask .OutputPath
assembliesPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.assemblies
IncludedCategoriesPublicInternal2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.IncludedCategories
ExcludedCategoriesPublicInternal2 methodsThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.ExcludedCategories
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask.Priority
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask.Priority
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.Priority
SimulateFailurePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NullTask.SimulateFailure
SimulateFailureMessagePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NullTask.SimulateFailureMessage
PriorityPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.NDependTask.Priority
LogFileIdPublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.LogFileId
ExecutablePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.Executable
WorkingDirectoryPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.WorkingDirectory
ProjectFilePublicPrivate2 methodsThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.ProjectFile
BuildArgsPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.BuildArgs
TargetsPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.Targets
LoggerPublicPrivate1 methodThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.Logger

Statistics

Stat   Visibility   CouldBeDeclared   MethodsUsingMe
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Fields should be declared as private
// <Name>Fields should be declared as private</Name>
warnif count > 0 from f in Application.Fields where 
 
!f.IsPrivate && 

 
// These conditions filter cases where fields 
 // doesn't represent state that should be encapsulated. 
 !f.IsGeneratedByCompiler && 
 
!f.IsSpecialName && 
 
!f.IsInitOnly && 
 
!f.IsLiteral && 
 
!f.IsEnumValue
select new { f, f.SizeOfInst }

510 fields matched

The following list of fields is truncated and contains only the first 100 fields of the 510 fields matched. All matched fields could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched fields.
fieldsSize of instanceFull Name
fieldsSize of instanceFull Name
CheckingModificationsN/AThoughtWorks.CruiseControl.Remote.ProjectActivity .CheckingModifications
BuildingN/AThoughtWorks.CruiseControl.Remote.ProjectActivity.Building
SleepingN/AThoughtWorks.CruiseControl.Remote.ProjectActivity.Sleeping
PendingN/AThoughtWorks.CruiseControl.Remote.ProjectActivity.Pending
target4ThoughtWorks.CruiseControl.Core.IntegrationRunner.target
Type4ThoughtWorks.CruiseControl.Core.Modification.Type
FileName4ThoughtWorks.CruiseControl.Core.Modification.FileName
FolderName4ThoughtWorks.CruiseControl.Core.Modification.FolderName
ModifiedTime8ThoughtWorks.CruiseControl.Core.Modification.ModifiedTime
UserName4ThoughtWorks.CruiseControl.Core.Modification.UserName
ChangeNumber4ThoughtWorks.CruiseControl.Core.Modification.ChangeNumber
Version4ThoughtWorks.CruiseControl.Core.Modification.Version
Comment4ThoughtWorks.CruiseControl.Core.Modification.Comment
Url4ThoughtWorks.CruiseControl.Core.Modification.Url
IssueUrl4ThoughtWorks.CruiseControl.Core.Modification.IssueUrl
EmailAddress4ThoughtWorks.CruiseControl.Core.Modification.EmailAddress
PrebuildTasks4ThoughtWorks.CruiseControl.Core.Project.PrebuildTasks
executor4ThoughtWorks.CruiseControl.Core.Tasks.BaseExecutableTask.executor
buildProgressInformation4ThoughtWorks.CruiseControl.Core.Tasks.BaseExecutableTask .buildProgressInformation
Executable4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Executable
ConfiguredBaseDirectory4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask .ConfiguredBaseDirectory
Priority4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Priority
ConfigFile4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.ConfigFile
RuleSet4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.RuleSet
IgnoreFile4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.IgnoreFile
Limit4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Limit
Severity4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Severity
Confidence4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Confidence
Quiet1ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Quiet
Verbose1ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Verbose
FailBuildOnFoundDefects1ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask .FailBuildOnFoundDefects
Assemblies4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.Assemblies
AssemblyListFile4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask.AssemblyListFile
VerifyTimeoutSeconds4ThoughtWorks.CruiseControl.Core.Tasks.GendarmeTask .VerifyTimeoutSeconds
Assemblies4ThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.Assemblies
NUnitPath4ThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.NUnitPath
OutputFile4ThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.OutputFile
Timeout4ThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.Timeout
Priority4ThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.Priority
ExcludedCategories4ThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.ExcludedCategories
IncludedCategories4ThoughtWorks.CruiseControl.Core.Tasks.NUnitTask.IncludedCategories
MergeFiles4ThoughtWorks.CruiseControl.Core.Tasks.MergeFilesTask.MergeFiles
Executable4ThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask.Executable
Priority4ThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask.Priority
ConfiguredBaseDirectory4ThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask .ConfiguredBaseDirectory
BuildArgs4ThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask.BuildArgs
EnvironmentVariables4ThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask .EnvironmentVariables
BuildTimeoutSeconds4ThoughtWorks.CruiseControl.Core.Tasks.ExecutableTask .BuildTimeoutSeconds
DefaultScriptsDirectoryN/AThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .DefaultScriptsDirectory
Script4ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.Script
Priority4ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.Priority
ConfiguredScriptsDirectory4ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .ConfiguredScriptsDirectory
BuildArgs4ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.BuildArgs
EnvironmentVariables4ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .EnvironmentVariables
BuildTimeoutSeconds4ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .BuildTimeoutSeconds
ProjectFile4ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.ProjectFile
ShowBanner1ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.ShowBanner
FBVariables4ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.FBVariables
DontWriteToLog1ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.DontWriteToLog
UseTemporaryLogFile1ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask .UseTemporaryLogFile
Timeout4ThoughtWorks.CruiseControl.Core.Tasks.FinalBuilderTask.Timeout
BuildArgs4ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.BuildArgs
BaseDirectory4ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.BaseDirectory
BuildTimeoutSeconds4ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.BuildTimeoutSeconds
Quiet1ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Quiet
Executable4ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Executable
Priority4ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Priority
Rakefile4ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Rakefile
Silent1ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Silent
Targets4ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Targets
Trace1ThoughtWorks.CruiseControl.Core.Tasks.RakeTask.Trace
Name4ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .Name
KeyName4ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .KeyName
KeyValue4ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .KeyValue
Index4ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .Index
Targets4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Targets
Executable4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Executable
Priority4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Priority
BuildFile4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.BuildFile
ConfiguredBaseDirectory4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.ConfiguredBaseDirectory
BuildArgs4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.BuildArgs
Logger4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Logger
Listener4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Listener
NoLogo1ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.NoLogo
BuildTimeoutSeconds4ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.BuildTimeoutSeconds
Filename4ThoughtWorks.CruiseControl.Core.Tasks.ModificationReaderTask.Filename
OutputPath4ThoughtWorks.CruiseControl.Core.Tasks.ModificationReaderTask .OutputPath
assemblies4ThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.assemblies
IncludedCategories4ThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.IncludedCategories
ExcludedCategories4ThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.ExcludedCategories
ignoreStandardOutputOnSuccess1ThoughtWorks.CruiseControl.Core.Tasks.ProcessTaskResult .ignoreStandardOutputOnSuccess
Priority4ThoughtWorks.CruiseControl.Core.Tasks.NCoverProfileTask.Priority
Priority4ThoughtWorks.CruiseControl.Core.Tasks.NCoverReportTask.Priority
Priority4ThoughtWorks.CruiseControl.Core.Tasks.DupFinderTask.Priority
SimulateFailure1ThoughtWorks.CruiseControl.Core.Tasks.NullTask.SimulateFailure
SimulateFailureMessage4ThoughtWorks.CruiseControl.Core.Tasks.NullTask.SimulateFailureMessage
Priority4ThoughtWorks.CruiseControl.Core.Tasks.NDependTask.Priority
Executable4ThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.Executable
WorkingDirectory4ThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.WorkingDirectory
ProjectFile4ThoughtWorks.CruiseControl.Core.Tasks.MsBuildTask.ProjectFile

Statistics

Stat   Size of instance
Sum:1 737
Average:3.481
Minimum:1
Maximum:8
Standard deviation:1.3582
Variance:1.8448
warningCritical    Rule warning: Constructors of abstract classes should be declared as protected or private
// <Name>Constructors of abstract classes should be declared as protected or private</Name>
// Constructors of an abstract class can only be accessed from this class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.

warnif count > 0
from t in Application.Types where 
  
t.IsClass && 
  
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }

// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.

6 types matched

typesctorsFull Name
typesctorsFull Name
AuditFilterBase2 methodsThoughtWorks.CruiseControl.Remote.Security.AuditFilterBase
ParameterBase2 methodsThoughtWorks.CruiseControl.Remote.Parameters.ParameterBase
ProcessSourceControl2 methodsThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl
VSSParser1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.VSSParser
StatisticBase2 methodsThoughtWorks.CruiseControl.Core.Publishers.Statistics.StatisticBase
ConfigurationTypeDescriptor+PropertyDescriptorBase1 methodValidator.ConfigurationTypeDescriptor+PropertyDescriptorBase

Statistics

Stat   ctors
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid public methods not publicly visible
//<Name>Avoid public methods not publicly visible</Name>
// Matched methods are declared public but are not publicly visible by assemblies consumers.
// Their visibility level must be decreased.

warnif count > 0
from m in JustMyCode.Methods where 
   
!m.IsPubliclyVisible && m.IsPublic &&

   
// Eliminate virtual methods
   !m.IsVirtual &&
   
// Eliminate interface and delegate types
   !m.ParentType.IsInterface &&
   
!m.ParentType.IsDelegate &&
   
// Eliminate default constructors
   !(m.IsConstructor && m.NbParameters == 0) &&
   
// Eliminate operators that must be declared public
   !m.IsOperator &&
   
// Eliminate methods generated by compiler
   !m.IsGeneratedByCompiler 
select m

97 methods matched

methodsFull Name
methodsFull Name
.ctor(String,String,Int32,Action<OptionValueCollection>)ThoughtWorks.CruiseControl.Remote.Mono.OptionSet+ActionOption..ctor (String,String,Int32,Action<OptionValueCollection>)
.ctor(String,String,Action<T>)ThoughtWorks.CruiseControl.Remote.Mono.OptionSet+ActionOption<T>..ctor (String,String,Action<T>)
.ctor(String,String,OptionAction<TKey,TValue>)ThoughtWorks.CruiseControl.Remote.Mono.OptionSet+ActionOption<TKey ,TValue>..ctor(String,String,OptionAction<TKey,TValue>)
get_Key()ThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection .get_Key()
set_Key(Byte[])ThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection .set_Key(Byte[])
get_IV()ThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection .get_IV()
set_IV(Byte[])ThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection .set_IV(Byte[])
get_Expiry()ThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection .get_Expiry()
set_Expiry(DateTime)ThoughtWorks.CruiseControl.Core.CruiseServerClient+SecureConnection .set_Expiry(DateTime)
.ctor(IntegrationQueue,IList<IIntegrationQueue>)ThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue+LockHolder. .ctor(IntegrationQueue,IList<IIntegrationQueue>)
.ctor(CircularArray,EnumeratorDirection)ThoughtWorks.CruiseControl.Core.Logging .CircularArray+CircularArrayEnumerator..ctor(CircularArray ,EnumeratorDirection)
.ctor(String,Object,Boolean)ThoughtWorks.CruiseControl.Core.Util.PrivateArguments+PrivateArgument. .ctor(String,Object,Boolean)
ToString(SecureDataMode)ThoughtWorks.CruiseControl.Core.Util.PrivateArguments+PrivateArgument .ToString(SecureDataMode)
add_ProcessOutput(EventHandler<ProcessOutputEventArgs>)ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+RunnableProcess .add_ProcessOutput(EventHandler<ProcessOutputEventArgs>)
remove_ProcessOutput(EventHandler<ProcessOutputEventArgs>)ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+RunnableProcess .remove_ProcessOutput(EventHandler<ProcessOutputEventArgs>)
.ctor(ProcessInfo,String,String)ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+RunnableProcess. .ctor(ProcessInfo,String,String)
Run()ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+RunnableProcess .Run()
get_Process()ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+RunnableProcess .get_Process()
ForProject(String)ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+ProcessMonitor .ForProject(String)
MonitorProcessForProject(Process,String)ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+ProcessMonitor .MonitorProcessForProject(Process,String)
RemoveMonitorForProject(String)ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+ProcessMonitor .RemoveMonitorForProject(String)
KillProcess()ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+ProcessMonitor .KillProcess()
get_At()ThoughtWorks.CruiseControl.Core.Util.BuildProgressInformationData .get_At()
get_Information()ThoughtWorks.CruiseControl.Core.Util.BuildProgressInformationData .get_Information()
.ctor(String)ThoughtWorks.CruiseControl.Core.Util.BuildProgressInformationData. .ctor(String)
KillPid(Int32)ThoughtWorks.CruiseControl.Core.Util.KillUtil.KillPid(Int32)
CopyFile(String)ThoughtWorks.CruiseControl.Core.Util.DefaultShadowCopier+ShadowStore .CopyFile(String)
CreateParser(String,IVssLocale)ThoughtWorks.CruiseControl.Core.Sourcecontrol.VSSParserFactory .CreateParser(String,IVssLocale)
.ctor(Uri,PreprocessorUrlResolver)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment..ctor(Uri,PreprocessorUrlResolver)
AddToFileset(Uri)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.AddToFileset(Uri)
get_Fileset()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.get_Fileset()
define_text_constant(String,String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.define_text_constant(String,String)
define_nodeset_constant(String,XPathNodeIterator)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.define_nodeset_constant(String ,XPathNodeIterator)
eval_text_constants(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_text_constants(String)
eval_constant(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_constant(String)
eval_text_constant(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_text_constant(String)
unwind_eval_stack()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.unwind_eval_stack()
push_stack()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.push_stack()
pop_stack()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.pop_stack()
push_include(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.push_include(String)
pop_include()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.pop_include()
GetAssemblyResourceStream(Type,String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils .GetAssemblyResourceStream(Type,String)
GetAssemblyResourceStream(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils .GetAssemblyResourceStream(String)
PreProcess(XmlReader,XmlWriter,PreprocessorUrlResolver,Uri)ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ConfigPreprocessor .PreProcess(XmlReader,XmlWriter,PreprocessorUrlResolver,Uri)
add_SubfileLoaded(ConfigurationSubfileLoadedHandler)ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ConfigPreprocessor .add_SubfileLoaded(ConfigurationSubfileLoadedHandler)
remove_SubfileLoaded(ConfigurationSubfileLoadedHandler)ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ConfigPreprocessor .remove_SubfileLoaded(ConfigurationSubfileLoadedHandler)
add_UrlResolved(EventHandler<UrlResolvedArgs>)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .PreprocessorUrlResolver.add_UrlResolved(EventHandler<UrlResolvedArgs> )
remove_UrlResolved(EventHandler<UrlResolvedArgs>)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .PreprocessorUrlResolver.remove_UrlResolved(EventHandler <UrlResolvedArgs>)
.ctor(Uri)ThoughtWorks.CruiseControl.Core.Config.Preprocessor.UrlResolvedArgs. .ctor(Uri)
get_Uri()ThoughtWorks.CruiseControl.Core.Config.Preprocessor.UrlResolvedArgs .get_Uri()
.ctor(ObjectSource,HttpContext)ThoughtWorks.CruiseControl.WebDashboard.Configuration .CachingDashboardConfigurationLoader..ctor(ObjectSource,HttpContext)
ClearCache()ThoughtWorks.CruiseControl.WebDashboard.Configuration .CachingDashboardConfigurationLoader.ClearCache()
.ctor(String,String[])ThoughtWorks.CruiseControl.WebDashboard.MVC.MimeType..ctor(String ,String[])
HasExtension(String)ThoughtWorks.CruiseControl.WebDashboard.MVC.MimeType.HasExtension (String)
get_ContentType()ThoughtWorks.CruiseControl.WebDashboard.MVC.MimeType.get_ContentType()
.ctor(ProjectGridSortColumn,Boolean)ThoughtWorks.CruiseControl.WebDashboard.Dashboard .ProjectGrid+ProjectGridRowComparer..ctor(ProjectGridSortColumn ,Boolean)
CreateRSSLink(ILinkFactory,IProjectSpecifier)ThoughtWorks.CruiseControl.WebDashboard.Dashboard.RSSLinkBuilder .CreateRSSLink(ILinkFactory,IProjectSpecifier)
get_OnlyShowBuildsWithModifications()ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ModificationHistoryProjectPlugin.get_OnlyShowBuildsWithModifications( )
set_OnlyShowBuildsWithModifications(Boolean)ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ModificationHistoryProjectPlugin.set_OnlyShowBuildsWithModifications (Boolean)
.ctor(IFarmService,IPhysicalApplicationPathProvider)ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ModificationHistoryProjectPlugin..ctor(IFarmService ,IPhysicalApplicationPathProvider)
.ctor(IRequest,ICruiseUrlBuilder)ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ProjectReportProjectPlugin+ModifiedCruiseRequest..ctor(IRequest ,ICruiseUrlBuilder)
ReplaceBuildSpecifier(IBuildSpecifier)ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ProjectReportProjectPlugin+ModifiedCruiseRequest .ReplaceBuildSpecifier(IBuildSpecifier)
get_AssemblyTitle()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.About .get_AssemblyTitle()
get_AssemblyVersion()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.About .get_AssemblyVersion()
get_AssemblyCopyright()ThoughtWorks.CruiseControl.CCTrayLib.Presentation.About .get_AssemblyCopyright()
get_SortColumn()ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer.get_SortColumn()
set_SortColumn(Int32)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer.set_SortColumn(Int32)
get_SortAscending()ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer.get_SortAscending()
set_SortAscending(Boolean)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer.set_SortAscending(Boolean)
.ctor(Int32)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer..ctor(Int32)
.ctor(Int32,Boolean)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .MainForm+ListViewItemComparer..ctor(Int32,Boolean)
.ctor(String,String)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .ConfigureServer+ExtensionDetails..ctor(String,String)
.ctor(Byte[],Int32)ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11Message..ctor(Byte[] ,Int32)
get_Buffer()ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11Message.get_Buffer()
set_Buffer(Byte[])ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11Message.set_Buffer(Byte[] )
get_Count()ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11Message.get_Count()
set_Count(Int32)ThoughtWorks.CruiseControl.CCTrayLib.X10.Cm11Message.set_Count(Int32)
add_Error(EventHandler<Cm11LowLevelDriverError>)ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.add_Error(EventHandler <Cm11LowLevelDriverError>)
remove_Error(EventHandler<Cm11LowLevelDriverError>)ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.remove_Error(EventHandler <Cm11LowLevelDriverError>)
.ctor(Cm11LowLevelDriver+CM11aHouseCode,String,Int32,Parity,Int32 ,StopBits)ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker..ctor (Cm11LowLevelDriver+CM11aHouseCode,String,Int32,Parity,Int32,StopBits)
StartProcessing()ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.StartProcessing()
CloseDriver()ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.CloseDriver()
AddMessage(Cm11Message)ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.AddMessage(Cm11Message)
StopProcessing()ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.StopProcessing()
get_TransmissionRetries()ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.get_TransmissionRetries()
set_TransmissionRetries(Int32)ThoughtWorks.CruiseControl.CCTrayLib.X10 .Cm11LowLevelDriver+Cm11LowLevelDriverWorker.set_TransmissionRetries (Int32)
.ctor(String,Int32,IX10LowLevelDriver)ThoughtWorks.CruiseControl.CCTrayLib.X10.LampController+Lamp..ctor (String,Int32,IX10LowLevelDriver)
SetState(LampController+LampState)ThoughtWorks.CruiseControl.CCTrayLib.X10.LampController+Lamp.SetState (LampController+LampState)
.ctor(String)Validator.ConfigurationHierarchy+ConfigurationDetails..ctor(String)
get_Filename()Validator.ConfigurationHierarchy+ConfigurationDetails.get_Filename()
set_Filename(String)Validator.ConfigurationHierarchy+ConfigurationDetails.set_Filename (String)
get_Size()Validator.ConfigurationHierarchy+ConfigurationDetails.get_Size()
set_Size(Int64)Validator.ConfigurationHierarchy+ConfigurationDetails.set_Size(Int64)
get_LastModified()Validator.ConfigurationHierarchy+ConfigurationDetails.get_LastModified ()
set_LastModified(DateTime)Validator.ConfigurationHierarchy+ConfigurationDetails.set_LastModified (DateTime)
LoadSynchronously(WebBrowser,Stream)Validator.MainForm+CompletionClosure.LoadSynchronously(WebBrowser ,Stream)
.ctor(String,Object)Validator.MainForm+ConfigurationItem..ctor(String,Object)

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:

Purity - Immutability - Side-Effects  
 4 5 0 

warningCritical    Rule warning: Fields should be marked as ReadOnly when possible
// <Name>Fields should be marked as ReadOnly when possible</Name>
warnif count > 0 
from f in JustMyCode.Fields where 
   
f.IsImmutable && 
  
!f.IsInitOnly &&
  
!f.IsGeneratedByCompiler &&
  
!f.IsEventDelegateObject
select new { f, f.SizeOfInst } 

// A field that matches the condition IsImmutable 
// is a field that is assigned only by constructors 
// of its class.
// For an instance field, this means its value 
// will remain constant throught the lifetime 
// of the object.
// For a static field, this means its value will 
// remain constant throught the lifetime of the 
// program.
// In both cases, such field can safely be marked 
// with the C# readonly keyword 
// (ReadOnly in VB.NET).

// The condition IsInitOnly matches fields that 
// are marked with the C# readonly keyword 
// (ReadOnly in VB.NET).



311 fields matched

The following list of fields is truncated and contains only the first 100 fields of the 311 fields matched. All matched fields could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched fields.
fieldsSize of instanceFull Name
fieldsSize of instanceFull Name
permission4ThoughtWorks.CruiseControl.Core.PermissionDeniedException.permission
reference4ThoughtWorks.CruiseControl.Core.BadReferenceException.reference
lockObject4ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.lockObject
ticks8ThoughtWorks.CruiseControl.Remote.SerializableDateTime.ticks
manager4ThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.manager
userName4ThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.userName
isList1ThoughtWorks.CruiseControl.Remote.NameValuePairSerialiser.isList
queueSnapshots4ThoughtWorks.CruiseControl.Remote.QueueSetSnapshot.queueSnapshots
messageSerialisersN/AThoughtWorks.CruiseControl.Remote.XmlConversionUtil.messageSerialisers
_requests4ThoughtWorks.CruiseControl.Remote.QueueSnapshot._requests
queueSnapshots4ThoughtWorks.CruiseControl.Remote.QueueSnapshotList.queueSnapshots
queuedRequests4ThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshotList .queuedRequests
initialisers4ThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory .initialisers
clients4ThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory.clients
asyncOperations4ThoughtWorks.CruiseControl.Remote.HttpConnection.asyncOperations
lockObject4ThoughtWorks.CruiseControl.Remote.HttpConnection.lockObject
innerConnection4ThoughtWorks.CruiseControl.Remote.EncryptingConnection.innerConnection
childItems4ThoughtWorks.CruiseControl.Remote.ItemStatus.childItems
client4ThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.client
fileData4ThoughtWorks.CruiseControl.Remote.RemotingFileTransfer.fileData
fileLength4ThoughtWorks.CruiseControl.Remote.RemotingFileTransfer.fileLength
innerFilter4ThoughtWorks.CruiseControl.Remote.Security.AuditFilterBase.innerFilter
errorMessages4ThoughtWorks.CruiseControl.Remote.Messages.Response.errorMessages
dataStore4ThoughtWorks.CruiseControl.Remote.Monitor.DataBag.dataStore
requests4ThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue.requests
syncLock4ThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue.syncLock
data4ThoughtWorks.CruiseControl.Remote.Monitor.BuildQueue.data
projects4ThoughtWorks.CruiseControl.Remote.Monitor.Server.projects
buildQueues4ThoughtWorks.CruiseControl.Remote.Monitor.Server.buildQueues
syncLock4ThoughtWorks.CruiseControl.Remote.Monitor.Server.syncLock
data4ThoughtWorks.CruiseControl.Remote.Monitor.Server.data
builds4ThoughtWorks.CruiseControl.Remote.Monitor.Project.builds
lockObject4ThoughtWorks.CruiseControl.Remote.Monitor.Project.lockObject
snapshotLock4ThoughtWorks.CruiseControl.Remote.Monitor.Project.snapshotLock
data4ThoughtWorks.CruiseControl.Remote.Monitor.Project.data
pollingThread4ThoughtWorks.CruiseControl.Remote.Monitor.PollingServerWatcher .pollingThread
dayOfWeekRegexN/AThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .dayOfWeekRegex
dayOfMonthRegexN/AThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .dayOfMonthRegex
values4ThoughtWorks.CruiseControl.Remote.Mono.OptionValueCollection.values
c4ThoughtWorks.CruiseControl.Remote.Mono.OptionValueCollection.c
set4ThoughtWorks.CruiseControl.Remote.Mono.OptionContext.set
c4ThoughtWorks.CruiseControl.Remote.Mono.OptionContext.c
prototype4ThoughtWorks.CruiseControl.Remote.Mono.Option.prototype
description4ThoughtWorks.CruiseControl.Remote.Mono.Option.description
names4ThoughtWorks.CruiseControl.Remote.Mono.Option.names
type4ThoughtWorks.CruiseControl.Remote.Mono.Option.type
count4ThoughtWorks.CruiseControl.Remote.Mono.Option.count
option4ThoughtWorks.CruiseControl.Remote.Mono.OptionException.option
localizer4ThoughtWorks.CruiseControl.Remote.Mono.OptionSet.localizer
action4ThoughtWorks.CruiseControl.Remote.Mono.OptionSet+ActionOption.action
action4ThoughtWorks.CruiseControl.Remote.Mono.OptionSet+ActionOption<T> .action
action4ThoughtWorks.CruiseControl.Remote.Mono.OptionSet+ActionOption<TKey ,TValue>.action
implementationResolver4Objection.ObjectionStore.implementationResolver
constructorSelectionStrategy4Objection.ObjectionStore.constructorSelectionStrategy
typedInstances4Objection.ObjectionStore.typedInstances
implementationTypes4Objection.ObjectionStore.implementationTypes
dependencyImplementations4Objection.ObjectionStore.dependencyImplementations
namedTypes4Objection.ObjectionStore.namedTypes
dependencyImplementationsForNames4Objection.ObjectionStore.dependencyImplementationsForNames
namedInstances4Objection.ObjectionStore.namedInstances
failures4ThoughtWorks.CruiseControl.Core.MultipleIntegrationFailureException .failures
projects4ThoughtWorks.CruiseControl.Core.ProjectList.projects
sourceControlData4ThoughtWorks.CruiseControl.Core.IntegrationResult.sourceControlData
modifications4ThoughtWorks.CruiseControl.Core.WorkflowResult.modifications
messageSerialisers4ThoughtWorks.CruiseControl.Core.CruiseServerClient.messageSerialisers
connections4ThoughtWorks.CruiseControl.Core.CruiseServerClient.connections
integrators4ThoughtWorks.CruiseControl.Core.ProjectIntegratorList.integrators
receivedRequests4ThoughtWorks.CruiseControl.Core.CruiseServer.receivedRequests
integrationQueueManager4ThoughtWorks.CruiseControl.Core.CruiseServer.integrationQueueManager
services4ThoughtWorks.CruiseControl.Core.CruiseServer.services
logCacheLock4ThoughtWorks.CruiseControl.Core.CruiseServer.logCacheLock
cacheTime8ThoughtWorks.CruiseControl.Core.CruiseServer.cacheTime
integrationResultManager4ThoughtWorks.CruiseControl.Core.Project.integrationResultManager
integratable4ThoughtWorks.CruiseControl.Core.Project.integratable
quietPeriod4ThoughtWorks.CruiseControl.Core.Project.quietPeriod
messages4ThoughtWorks.CruiseControl.Core.Project.messages
currentProjectStatus4ThoughtWorks.CruiseControl.Core.Project.currentProjectStatus
currentProjectItems4ThoughtWorks.CruiseControl.Core.Project.currentProjectItems
sourceControlOperations4ThoughtWorks.CruiseControl.Core.Project.sourceControlOperations
status4ThoughtWorks.CruiseControl.Core.IntegrationSummary.status
label4ThoughtWorks.CruiseControl.Core.IntegrationSummary.label
lastSuccessfulIntegrationLabel4ThoughtWorks.CruiseControl.Core.IntegrationSummary .lastSuccessfulIntegrationLabel
startTime8ThoughtWorks.CruiseControl.Core.IntegrationSummary.startTime
environment4ThoughtWorks.CruiseControl.Core.ConsoleEventHandler.environment
server4ThoughtWorks.CruiseControl.Core.RemoteCruiseServer.server
environment4ThoughtWorks.CruiseControl.Core.RemoteCruiseServer.environment
elapsedTimes4ThoughtWorks.CruiseControl.Core.Tasks.TaskBase.elapsedTimes
taskStatuses4ThoughtWorks.CruiseControl.Core.Tasks.TaskContainerBase.taskStatuses
cachedProjects4ThoughtWorks.CruiseControl.Core.Tasks.CruiseServerControlTask .cachedProjects
executor4ThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.executor
parameterRegexN/AThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility .parameterRegex
paramPartRegexN/AThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility .paramPartRegex
mySource4ThoughtWorks.CruiseControl.Core.Tasks .DynamicValueUtility+PropertyValue.mySource
myProperty4ThoughtWorks.CruiseControl.Core.Tasks .DynamicValueUtility+PropertyValue.myProperty
myArrayIndex4ThoughtWorks.CruiseControl.Core.Tasks .DynamicValueUtility+PropertyValue.myArrayIndex
contextsN/AThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.contexts
lockObjectN/AThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.lockObject
deleteAfterMerge1ThoughtWorks.CruiseControl.Core.Tasks.FileTaskResult.deleteAfterMerge
fileSystem4ThoughtWorks.CruiseControl.Core.Tasks.NDependTask.fileSystem
logger4ThoughtWorks.CruiseControl.Core.Tasks.NDependTask.logger

Statistics

Stat   Size of instance
Sum:1 130
Average:4.0071
Minimum:1
Maximum:8
Standard deviation:0.6893
Variance:0.47513
warningCritical    Rule warning: Structures should be immutable
// <Name>Structures should be immutable</Name>
warnif count > 0 from t in Application.Types where 
   
t.IsStructure && 
  
!t.IsImmutable

let mutableFields = t.Fields.Where(f => !f.IsImmutable)

select new { t, t.NbLinesOfCode, mutableFields }

// It is deemed as a good practice to make 
// your structure immutable.
// An object is immutable if its state doesn’t 
// change once the object has been created. 
// Consequently, a structure is immutable if 
// its instances are immutable.
// Immutable types naturally simplify code by 
// limiting side-effects.
// See some explanations on immutability and 
// how NDepend supports it here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx

2 types matched

types# lines of code (LOC)mutableFieldsFull Name
types# lines of code (LOC)mutableFieldsFull Name
ConfigureServer+ExtensionDetails32 fieldsThoughtWorks.CruiseControl.CCTrayLib.Presentation .ConfigureServer+ExtensionDetails
MainForm+ConfigurationItem22 fieldsValidator.MainForm+ConfigurationItem

Statistics

Stat   # lines of code (LOC)   mutableFields
Sum:50
Average:2.50
Minimum:20
Maximum:30
Standard deviation:0.50
Variance:0.250
warningCritical    Rule warning: Property Getters should be immutable
// <Name>Property Getters should be immutable</Name>
warnif count > 0 from m in Application.Methods where
  
m.IsPropertyGetter &&
  
( ( !m.IsStatic && m.ChangesObjectState) ||
    
(  m.IsStatic && m.ChangesTypeState) )

let fieldsAssigned = m.FieldsAssigned

select new { m, m.NbLinesOfCode, fieldsAssigned  }

// This rule might be violated in the case of object lazy initialized
// when the property getter is accessed the first time.
// But in general, the callers of a property 
// doesn't expect to change any state through the call.
    

28 methods matched

methods# lines of code (LOC)fieldsAssignedFull Name
methods# lines of code (LOC)fieldsAssignedFull Name
get_LastIntegrationResult()31 fieldThoughtWorks.CruiseControl.Core.IntegrationResultManager .get_LastIntegrationResult()
get_LastIntegration()31 fieldThoughtWorks.CruiseControl.Core.IntegrationResultManager .get_LastIntegration()
get_CurrentIntegration()51 fieldThoughtWorks.CruiseControl.Core.IntegrationResultManager .get_CurrentIntegration()
get_Executable()31 fieldThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask.get_Executable()
get_Executable()31 fieldThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.get_Executable()
get_Name()31 fieldThoughtWorks.CruiseControl.Core.Triggers.IntervalTrigger.get_Name()
get_Name()31 fieldThoughtWorks.CruiseControl.Core.Triggers.ScheduleTrigger.get_Name()
get_Executable()31 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.get_Executable()
get_Workspace()31 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.get_Workspace()
get_Executable()31 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss.get_Executable()
get_Executable()31 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Alienbrain .get_Executable()
get_IssueTrackers()31 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol .MultiIssueTrackerUrlBuilder.get_IssueTrackers()
get_ErrorFile()11 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs.get_ErrorFile()
get_LogFile()11 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs.get_LogFile()
get_TempFile()11 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs.get_TempFile()
get_SourceControls()31 fieldThoughtWorks.CruiseControl.Core.Sourcecontrol.MultiSourceControl .get_SourceControls()
get_HtmlEmailCss()31 fieldThoughtWorks.CruiseControl.Core.Publishers.HtmlDetailsMessageBuilder .get_HtmlEmailCss()
get_Location()51 fieldThoughtWorks.CruiseControl.WebDashboard.IO.ProgramDataFolder .get_Location()
get_VelocityEngine()81 fieldThoughtWorks.CruiseControl.WebDashboard.MVC.View .LazilyInitialisingVelocityTransformer.get_VelocityEngine()
get_VelocityEngineCustom()81 fieldThoughtWorks.CruiseControl.WebDashboard.MVC.View .LazilyInitialisingVelocityTransformer.get_VelocityEngineCustom()
get_CustomTemplateLocation()71 fieldThoughtWorks.CruiseControl.WebDashboard.MVC.View .LazilyInitialisingVelocityTransformer.get_CustomTemplateLocation()
get_TopControlsViewBuilder()31 fieldThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators .SiteTemplateActionDecorator.get_TopControlsViewBuilder()
get_SideBarViewBuilder()31 fieldThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators .SiteTemplateActionDecorator.get_SideBarViewBuilder()
get_LoginViewBuilder()31 fieldThoughtWorks.CruiseControl.WebDashboard.Dashboard.ActionDecorators .SiteTemplateActionDecorator.get_LoginViewBuilder()
get_ResourceManager()41 fieldThoughtWorks.CruiseControl.CCTrayLib.DefaultProjectIcons .get_ResourceManager()
get_ResourceManager()41 fieldThoughtWorks.CruiseControl.CCTrayLib.DefaultQueueIcons .get_ResourceManager()
get_ResourceManager()41 fieldThoughtWorks.CruiseControl.CCTrayLib.Properties.Resources .get_ResourceManager()
get_ResourceManager()41 fieldValidator.Properties.Resources.get_ResourceManager()

Statistics

Stat   # lines of code (LOC)   fieldsAssigned
Sum:1000
Average:3.57140
Minimum:10
Maximum:80
Standard deviation:1.69930
Variance:2.88780
warningCritical    Rule warning: Avoid static fields with a mutable field type
// <Name>Avoid static fields with a mutable field type</Name>
warnif count > 0
from f in Application.Fields
where f.IsStatic && !f.IsEnumValue && !f.IsGeneratedByCompiler && !f.IsLiteral
let fieldType = f.FieldType
where fieldType != null && 
     
!fieldType.IsThirdParty && 
     
!fieldType.IsInterface && 
     
!fieldType.IsImmutable
select new { f, 
             
mutableFieldType = fieldType , 
             
isFieldImmutable = f.IsImmutable, 
             
isFieldIsReadOnly = f.IsInitOnly }

// As explained in this blog post
// http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members
// static fields should be used to hold only constant and immutable states.

22 fields matched

fieldsmutableFieldTypeisFieldImmutableisFieldIsReadOnlyFull Name
fieldsmutableFieldTypeisFieldImmutableisFieldIsReadOnlyFull Name
CheckingModificationsProjectActivityFalseFalseThoughtWorks.CruiseControl.Remote.ProjectActivity .CheckingModifications
BuildingProjectActivityFalseFalseThoughtWorks.CruiseControl.Remote.ProjectActivity.Building
SleepingProjectActivityFalseFalseThoughtWorks.CruiseControl.Remote.ProjectActivity.Sleeping
PendingProjectActivityFalseFalseThoughtWorks.CruiseControl.Remote.ProjectActivity.Pending
NullRequestIntegrationRequestTrueTrueThoughtWorks.CruiseControl.Remote.IntegrationRequest.NullRequest
InitialIntegrationSummaryTrueTrueThoughtWorks.CruiseControl.Core.IntegrationSummary.Initial
DefaultDirectionEnumeratorDirectionTrueTrueThoughtWorks.CruiseControl.Core.Logging.CircularArray.DefaultDirection
DefaultTimeoutTimeoutFalseFalseThoughtWorks.CruiseControl.Core.Util.Timeout.DefaultTimeout
REMOTING_SERVERStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider.REMOTING_SERVER
HTTP_SERVERStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider.HTTP_SERVER
QUEUE_EMPTYStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider.QUEUE_EMPTY
QUEUE_POPULATEDStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider.QUEUE_POPULATED
CHECKING_MODIFICATIONSStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider.CHECKING_MODIFICATIONS
BUILDINGStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider.BUILDING
PENDINGStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider.PENDING
YELLOWStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceProjectStateIconProvider.YELLOW
GRAYStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceProjectStateIconProvider.GRAY
GREENStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceProjectStateIconProvider.GREEN
REDStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceProjectStateIconProvider.RED
ORANGEStatusIconTrueTrueThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceProjectStateIconProvider.ORANGE
defaultInstanceSettingsTrueFalseValidator.Properties.Settings.defaultInstance
commandCommandTypeFalseFalseThoughtWorks.CruiseControl.CCCmd.Program.command

Statistics

Stat   mutableFieldType   isFieldImmutable   isFieldIsReadOnly
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: A field must not be assigned from outside its parent hierarchy types
// <Name>A field must not be assigned from outside its parent hierarchy types</Name>
warnif count > 0
from f in JustMyCode.Fields.Where(f => 
      
!f.IsPrivate && !f.IsGeneratedByCompiler && 
      
!f.IsImmutable && !f.IsEnumValue)

let methodsAssignerOutsideOfMyType = f.MethodsAssigningMe.Where(
        
m =>!m.IsGeneratedByCompiler &&
             
m.ParentType != f.ParentType && 
            
!m.ParentType.DeriveFrom(f.ParentType) )

where methodsAssignerOutsideOfMyType.Count() > 0
select new { f, methodsAssignerOutsideOfMyType }

75 fields matched

fieldsmethodsAssignerOutsideOfMyTypeFull Name
fieldsmethodsAssignerOutsideOfMyTypeFull Name
Type23 methodsThoughtWorks.CruiseControl.Core.Modification.Type
FileName24 methodsThoughtWorks.CruiseControl.Core.Modification.FileName
FolderName25 methodsThoughtWorks.CruiseControl.Core.Modification.FolderName
ModifiedTime23 methodsThoughtWorks.CruiseControl.Core.Modification.ModifiedTime
UserName19 methodsThoughtWorks.CruiseControl.Core.Modification.UserName
ChangeNumber12 methodsThoughtWorks.CruiseControl.Core.Modification.ChangeNumber
Version9 methodsThoughtWorks.CruiseControl.Core.Modification.Version
Comment18 methodsThoughtWorks.CruiseControl.Core.Modification.Comment
Url7 methodsThoughtWorks.CruiseControl.Core.Modification.Url
IssueUrl2 methodsThoughtWorks.CruiseControl.Core.Modification.IssueUrl
EmailAddress7 methodsThoughtWorks.CruiseControl.Core.Modification.EmailAddress
Name1 methodThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .Name
KeyName1 methodThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .KeyName
KeyValue1 methodThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .KeyValue
Index1 methodThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility+PropertyPart .Index
IncludedCategories1 methodThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.IncludedCategories
ExcludedCategories1 methodThoughtWorks.CruiseControl.Core.Tasks.NUnitArgument.ExcludedCategories
BuildCondition1 methodThoughtWorks.CruiseControl.Core.Triggers.IntervalTrigger .BuildCondition
WorkingDirectory1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.VaultVersionChecker .WorkingDirectory
SessionId1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyConnectionInfo.SessionId
Delimiter1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyConnectionInfo.Delimiter
Timeout1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyConnectionInfo.Timeout
ObjectName1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyProjectInfo.ObjectName
WorkAreaPath1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyProjectInfo.WorkAreaPath
LastReconfigureTime1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyProjectInfo.LastReconfigureTime
DisplayName1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyParser+SynergyTaskInfo.DisplayName
TaskNumber1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyParser+SynergyTaskInfo.TaskNumber
TaskSynopsis1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyParser+SynergyTaskInfo.TaskSynopsis
CompletionDate1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyParser+SynergyTaskInfo.CompletionDate
Resolver1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic .SynergyParser+SynergyTaskInfo.Resolver
Client1 methodThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4.Client
ExpiryTime1 methodThoughtWorks.CruiseControl.Core.Security .SessionCacheBase+SessionDetails.ExpiryTime
Name3 methodsThoughtWorks.CruiseControl.Core.Config.Preprocessor.Constant.Name
Value3 methodsThoughtWorks.CruiseControl.Core.Config.Preprocessor.Constant.Value
Enabled1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.SpeechConfiguration .Enabled
SpeakBuildStarted1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.SpeechConfiguration .SpeakBuildStarted
SpeakBuildSucceded1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.SpeechConfiguration .SpeakBuildSucceded
SpeakBuildFailed1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.SpeechConfiguration .SpeakBuildFailed
Enabled1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.GrowlConfiguration .Enabled
Hostname1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.GrowlConfiguration .Hostname
Port1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.GrowlConfiguration .Port
Password1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.GrowlConfiguration .Password
MinimumNotificationLevel1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.GrowlConfiguration .MinimumNotificationLevel
ShowBalloon1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .BuildTransitionNotification.ShowBalloon
MinimumNotificationLevel1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .BuildTransitionNotification.MinimumNotificationLevel
BrokenCommand1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.ExecCommands .BrokenCommand
BuildingCommand1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.ExecCommands .BuildingCommand
SuccessCommand1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.ExecCommands .SuccessCommand
NotConnectedCommand1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.ExecCommands .NotConnectedCommand
BrokenAndBuildingCommand1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.ExecCommands .BrokenAndBuildingCommand
Projects1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .PersistentConfiguration.Projects
PollPeriodSeconds1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .PersistentConfiguration.PollPeriodSeconds
TrayIconDoubleClickAction1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .PersistentConfiguration.TrayIconDoubleClickAction
AlwaysOnTop1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .PersistentConfiguration.AlwaysOnTop
ShowInTaskbar1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .PersistentConfiguration.ShowInTaskbar
ReportProjectChanges1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .PersistentConfiguration.ReportProjectChanges
FixUserName1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration .PersistentConfiguration.FixUserName
BrokenBuildSound1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.AudioFiles .BrokenBuildSound
FixedBuildSound1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.AudioFiles .FixedBuildSound
StillFailingBuildSound1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.AudioFiles .StillFailingBuildSound
StillSuccessfulBuildSound1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.AudioFiles .StillSuccessfulBuildSound
BrokenIcon1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.Icons.BrokenIcon
BuildingIcon1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.Icons.BuildingIcon
SuccessIcon1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.Icons.SuccessIcon
NotConnectedIcon1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.Icons .NotConnectedIcon
BrokenAndBuildingIcon1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.Icons .BrokenAndBuildingIcon
Enabled1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .Enabled
ComPort1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .ComPort
DeviceType1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .DeviceType
HouseCode1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .HouseCode
SuccessUnitCode1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .SuccessUnitCode
FailureUnitCode1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .FailureUnitCode
BuildingUnitCode1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .BuildingUnitCode
StartTime1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .StartTime
EndTime1 methodThoughtWorks.CruiseControl.CCTrayLib.Configuration.X10Configuration .EndTime

Statistics

Stat   methodsAssignerOutsideOfMyType
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

Naming Conventions  
 6 11 0 

warningCritical    Rule warning: Instance fields should be prefixed with a 'm_'
// <Name>Instance fields should be prefixed with a 'm_'</Name>
warnif count > 0 from f in Application.Fields where 
  
!f.NameLike (@"^m_") && 
  
!f.IsStatic && 
  
!f.IsLiteral && 
  
!f.IsGeneratedByCompiler  && 
  
!f.IsSpecialName && 
  
!f.IsEventDelegateObject
select new { f, f.SizeOfInst } 

// This naming convention provokes debate.
// Don't hesitate to customize the regex of 
// NameLike to your preference.

2,388 fields matched

The following list of fields is truncated and contains only the first 100 fields of the 2388 fields matched. All matched fields could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched fields.
fieldsSize of instanceFull Name
fieldsSize of instanceFull Name
permission4ThoughtWorks.CruiseControl.Core.PermissionDeniedException.permission
reference4ThoughtWorks.CruiseControl.Core.BadReferenceException.reference
sessionToken4ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.sessionToken
lockObject4ThoughtWorks.CruiseControl.Remote.CruiseServerClientBase.lockObject
ticks8ThoughtWorks.CruiseControl.Remote.SerializableDateTime.ticks
status4ThoughtWorks.CruiseControl.Remote.ProjectStatus.status
buildStatus4ThoughtWorks.CruiseControl.Remote.ProjectStatus.buildStatus
activity4ThoughtWorks.CruiseControl.Remote.ProjectStatus.activity
name4ThoughtWorks.CruiseControl.Remote.ProjectStatus.name
category4ThoughtWorks.CruiseControl.Remote.ProjectStatus.category
webURL4ThoughtWorks.CruiseControl.Remote.ProjectStatus.webURL
lastBuildDate4ThoughtWorks.CruiseControl.Remote.ProjectStatus.lastBuildDate
lastBuildLabel4ThoughtWorks.CruiseControl.Remote.ProjectStatus.lastBuildLabel
lastSuccessfulBuildLabel4ThoughtWorks.CruiseControl.Remote.ProjectStatus .lastSuccessfulBuildLabel
nextBuildTime4ThoughtWorks.CruiseControl.Remote.ProjectStatus.nextBuildTime
currentBuildStage4ThoughtWorks.CruiseControl.Remote.ProjectStatus.currentBuildStage
_serverName4ThoughtWorks.CruiseControl.Remote.ProjectStatus._serverName
messages4ThoughtWorks.CruiseControl.Remote.ProjectStatus.messages
queue4ThoughtWorks.CruiseControl.Remote.ProjectStatus.queue
queuePriority4ThoughtWorks.CruiseControl.Remote.ProjectStatus.queuePriority
projectStatuses4ThoughtWorks.CruiseControl.Remote.CruiseServerSnapshot.projectStatuses
queueSetSnapshot4ThoughtWorks.CruiseControl.Remote.CruiseServerSnapshot .queueSetSnapshot
serverUri4ThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.serverUri
targetServer4ThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient .targetServer
manager4ThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.manager
userName4ThoughtWorks.CruiseControl.Remote.CruiseServerRemotingClient.userName
type4ThoughtWorks.CruiseControl.Remote.ProjectActivity.type
isList1ThoughtWorks.CruiseControl.Remote.NameValuePairSerialiser.isList
connection4ThoughtWorks.CruiseControl.Remote.CruiseServerClient.connection
targetServer4ThoughtWorks.CruiseControl.Remote.CruiseServerClient.targetServer
snapshots4ThoughtWorks.CruiseControl.Remote.QueueSetSnapshot.snapshots
queueSnapshots4ThoughtWorks.CruiseControl.Remote.QueueSetSnapshot.queueSnapshots
type4ThoughtWorks.CruiseControl.Remote.ExtensionConfiguration.type
configurationItems4ThoughtWorks.CruiseControl.Remote.ExtensionConfiguration .configurationItems
queueName4ThoughtWorks.CruiseControl.Remote.QueueSnapshot.queueName
queueRequests4ThoughtWorks.CruiseControl.Remote.QueueSnapshot.queueRequests
_requests4ThoughtWorks.CruiseControl.Remote.QueueSnapshot._requests
buildCondition4ThoughtWorks.CruiseControl.Remote.IntegrationRequest.buildCondition
source4ThoughtWorks.CruiseControl.Remote.IntegrationRequest.source
requestTime8ThoughtWorks.CruiseControl.Remote.IntegrationRequest.requestTime
parameterValues4ThoughtWorks.CruiseControl.Remote.IntegrationRequest.parameterValues
serverAddress4ThoughtWorks.CruiseControl.Remote.RemotingConnection.serverAddress
client4ThoughtWorks.CruiseControl.Remote.RemotingConnection.client
isBusy1ThoughtWorks.CruiseControl.Remote.RemotingConnection.isBusy
queueSnapshots4ThoughtWorks.CruiseControl.Remote.QueueSnapshotList.queueSnapshots
name4ThoughtWorks.CruiseControl.Remote.ExternalLink.name
url4ThoughtWorks.CruiseControl.Remote.ExternalLink.url
queuedRequests4ThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshotList .queuedRequests
requestedProject4ThoughtWorks.CruiseControl.Remote.NoSuchProjectException .requestedProject
initialisers4ThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory .initialisers
clients4ThoughtWorks.CruiseControl.Remote.CruiseServerClientFactory.clients
projectName4ThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot.projectName
activity4ThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot.activity
requestTime8ThoughtWorks.CruiseControl.Remote.QueuedRequestSnapshot.requestTime
serverAddress4ThoughtWorks.CruiseControl.Remote.HttpConnection.serverAddress
isBusy1ThoughtWorks.CruiseControl.Remote.HttpConnection.isBusy
asyncOperations4ThoughtWorks.CruiseControl.Remote.HttpConnection.asyncOperations
lockObject4ThoughtWorks.CruiseControl.Remote.HttpConnection.lockObject
innerConnection4ThoughtWorks.CruiseControl.Remote.EncryptingConnection.innerConnection
cryptoKey4ThoughtWorks.CruiseControl.Remote.EncryptingConnection.cryptoKey
cryptoIv4ThoughtWorks.CruiseControl.Remote.EncryptingConnection.cryptoIv
message4ThoughtWorks.CruiseControl.Remote.Message.message
messageKind4ThoughtWorks.CruiseControl.Remote.Message.messageKind
identifier16ThoughtWorks.CruiseControl.Remote.ItemStatus.identifier
name4ThoughtWorks.CruiseControl.Remote.ItemStatus.name
status4ThoughtWorks.CruiseControl.Remote.ItemStatus.status
timeStarted5ThoughtWorks.CruiseControl.Remote.ItemStatus.timeStarted
timeCompleted5ThoughtWorks.CruiseControl.Remote.ItemStatus.timeCompleted
timeOfEstimatedCompletion5ThoughtWorks.CruiseControl.Remote.ItemStatus.timeOfEstimatedCompletion
description4ThoughtWorks.CruiseControl.Remote.ItemStatus.description
childItems4ThoughtWorks.CruiseControl.Remote.ItemStatus.childItems
parent4ThoughtWorks.CruiseControl.Remote.ItemStatus.parent
response4ThoughtWorks.CruiseControl.Remote.MessageReceivedEventArgs.response
serverUri4ThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.serverUri
targetServer4ThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.targetServer
client4ThoughtWorks.CruiseControl.Remote.CruiseServerHttpClient.client
name4ThoughtWorks.CruiseControl.Remote.PackageDetails.name
buildLabel4ThoughtWorks.CruiseControl.Remote.PackageDetails.buildLabel
dateTime8ThoughtWorks.CruiseControl.Remote.PackageDetails.dateTime
numberOfFiles4ThoughtWorks.CruiseControl.Remote.PackageDetails.numberOfFiles
size8ThoughtWorks.CruiseControl.Remote.PackageDetails.size
fileName4ThoughtWorks.CruiseControl.Remote.PackageDetails.fileName
timeOfSnapshot8ThoughtWorks.CruiseControl.Remote.ProjectStatusSnapshot.timeOfSnapshot
name4ThoughtWorks.CruiseControl.Remote.NameValuePair.name
namedValue4ThoughtWorks.CruiseControl.Remote.NameValuePair.namedValue
fileData4ThoughtWorks.CruiseControl.Remote.RemotingFileTransfer.fileData
fileLength4ThoughtWorks.CruiseControl.Remote.RemotingFileTransfer.fileLength
permissionName4ThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .permissionName
projectName4ThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .projectName
userName4ThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .userName
isAllowed1ThoughtWorks.CruiseControl.Remote.Security.SecurityCheckDiagnostics .isAllowed
innerFilter4ThoughtWorks.CruiseControl.Remote.Security.AuditFilterBase.innerFilter
project4ThoughtWorks.CruiseControl.Remote.Security.ProjectAuditFilter.project
filterStartDate8ThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter .filterStartDate
filterEndDate8ThoughtWorks.CruiseControl.Remote.Security.DateRangeAuditFilter .filterEndDate
type4ThoughtWorks.CruiseControl.Remote.Security.EventTypeAuditFilter.type
user4ThoughtWorks.CruiseControl.Remote.Security.UserAuditFilter.user
right4ThoughtWorks.CruiseControl.Remote.Security.SecurityRightAuditFilter .right
userName4ThoughtWorks.CruiseControl.Remote.Security.UserDetails.userName
displayName4ThoughtWorks.CruiseControl.Remote.Security.UserDetails.displayName

Statistics

Stat   Size of instance
Sum:9 263
Average:3.879
Minimum:1
Maximum:16
Standard deviation:1.1331
Variance:1.2839
warningCritical    Rule warning: Static fields should be prefixed with a 's_'
// <Name>Static fields should be prefixed with a 's_'</Name>
warnif count > 0 from f in Application.Fields where 
  
!f.NameLike (@"^s_") && 
   
f.IsStatic && 
  
!f.IsLiteral && 
  
!f.IsGeneratedByCompiler && 
  
!f.IsSpecialName && 
  
!f.IsEventDelegateObject
select new { f, f.SizeOfInst }  

// This naming convention provokes debate.
// Don't hesitate to customize the regex of 
// NameLike to your preference.

179 fields matched

The following list of fields is truncated and contains only the first 100 fields of the 179 fields matched. All matched fields could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched fields.
fieldsSize of instanceFull Name
fieldsSize of instanceFull Name
DefaultN/AThoughtWorks.CruiseControl.Remote.SerializableDateTime.Default
CheckingModificationsN/AThoughtWorks.CruiseControl.Remote.ProjectActivity .CheckingModifications
BuildingN/AThoughtWorks.CruiseControl.Remote.ProjectActivity.Building
SleepingN/AThoughtWorks.CruiseControl.Remote.ProjectActivity.Sleeping
PendingN/AThoughtWorks.CruiseControl.Remote.ProjectActivity.Pending
messageTypesN/AThoughtWorks.CruiseControl.Remote.XmlConversionUtil.messageTypes
messageSerialisersN/AThoughtWorks.CruiseControl.Remote.XmlConversionUtil.messageSerialisers
NullRequestN/AThoughtWorks.CruiseControl.Remote.IntegrationRequest.NullRequest
dayOfWeekRegexN/AThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .dayOfWeekRegex
dayOfMonthRegexN/AThoughtWorks.CruiseControl.Remote.Parameters.DateParameter .dayOfMonthRegex
NameTerminatorN/AThoughtWorks.CruiseControl.Remote.Mono.Option.NameTerminator
DefaultWorkingSubDirectoryN/AThoughtWorks.CruiseControl.Core.ProjectBase.DefaultWorkingSubDirectory
DefaultArtifactSubDirectoryN/AThoughtWorks.CruiseControl.Core.ProjectBase .DefaultArtifactSubDirectory
BuildNumberN/AThoughtWorks.CruiseControl.Core.LogFile.BuildNumber
RemotingConfigurationFileN/AThoughtWorks.CruiseControl.Core.CruiseServerFactory .RemotingConfigurationFile
InitialN/AThoughtWorks.CruiseControl.Core.IntegrationSummary.Initial
DefaultScriptsDirectoryN/AThoughtWorks.CruiseControl.Core.Tasks.PowerShellTask .DefaultScriptsDirectory
parameterRegexN/AThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility .parameterRegex
paramPartRegexN/AThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility .paramPartRegex
contextsN/AThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.contexts
lockObjectN/AThoughtWorks.CruiseControl.Core.Tasks.SynchronisationTask.lockObject
managerFactoryN/AThoughtWorks.CruiseControl.Core.Queues.IntegrationQueueManagerFactory .managerFactory
blockingLockObjectN/AThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue .blockingLockObject
queueLockSyncN/AThoughtWorks.CruiseControl.Core.Queues.IntegrationQueue.queueLockSync
DefaultDirectionN/AThoughtWorks.CruiseControl.Core.Logging.CircularArray.DefaultDirection
loggerN/AThoughtWorks.CruiseControl.Core.Util.Log.logger
loggingEnabledN/AThoughtWorks.CruiseControl.Core.Util.Log.loggingEnabled
frequencyN/AThoughtWorks.CruiseControl.Core.Util.AccurateTimer.frequency
processMonitorsN/AThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+ProcessMonitor .processMonitors
lockObjectN/AThoughtWorks.CruiseControl.Core.Util.ProcessExecutor+ProcessMonitor .lockObject
defaultProgramDataFolderN/AThoughtWorks.CruiseControl.Core.Util.PathUtils .defaultProgramDataFolder
DefaultTimeoutN/AThoughtWorks.CruiseControl.Core.Util.Timeout.DefaultTimeout
isRunningOnWindowsN/AThoughtWorks.CruiseControl.Core.Util.ExecutionEnvironment .isRunningOnWindows
NullStringRegexN/AThoughtWorks.CruiseControl.Core.Util.StringUtil.NullStringRegex
urlEncodeRegexN/AThoughtWorks.CruiseControl.Core.Util.StringUtil.urlEncodeRegex
hiddenTextRegexN/AThoughtWorks.CruiseControl.Core.Util.ProcessArgumentBuilder .hiddenTextRegex
TempN/AThoughtWorks.CruiseControl.Core.Util.SystemPath.Temp
valuesN/AThoughtWorks.CruiseControl.Core.Util.TimeUnits.values
MILLISN/AThoughtWorks.CruiseControl.Core.Util.TimeUnits.MILLIS
SECONDSN/AThoughtWorks.CruiseControl.Core.Util.TimeUnits.SECONDS
MINUTESN/AThoughtWorks.CruiseControl.Core.Util.TimeUnits.MINUTES
HOURSN/AThoughtWorks.CruiseControl.Core.Util.TimeUnits.HOURS
storeN/AThoughtWorks.CruiseControl.Core.Util.DefaultShadowCopier.store
ThisDeclaringTypeN/AThoughtWorks.CruiseControl.Core.Util.Log4NetTrace.TraceLogImpl .ThisDeclaringType
FolderInfoSeparatorN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeamHistoryParser .FolderInfoSeparator
FileHistorySeparatorN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeamHistoryParser .FileHistorySeparator
MatchVaultElementsN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3 .MatchVaultElements
DELETED_DIR_TAGN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .DELETED_DIR_TAG
DELETED_FILE_TAGN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .DELETED_FILE_TAG
ADDED_FILE_TAGN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .ADDED_FILE_TAG
UPDATED_FILE_TAGN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .UPDATED_FILE_TAG
ParseDeletedDirectoryRegexN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .ParseDeletedDirectoryRegex
ParseDeletedFileRegexN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .ParseDeletedFileRegex
ParseAddedFileRegexN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .ParseAddedFileRegex
ParseUpdatedFileRegexN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopyHistoryParser .ParseUpdatedFileRegex
DELIMITERN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .DELIMITER
END_OF_LINE_DELIMITERN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.ClearCaseHistoryParser .END_OF_LINE_DELIMITER
REGEX_FILE_NAMEN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.VSSParser .REGEX_FILE_NAME
UtcXmlDateFormatN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.UtcXmlDateFormat
FILE_REGEXN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.AlienbrainHistoryParser .FILE_REGEX
DELIMITERN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.AlienbrainHistoryParser .DELIMITER
successExitCodesN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopySourceControl .successExitCodes
standardArgumentsN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.RobocopySourceControl .standardArguments
CVS_FILE_DELIMN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .CVS_FILE_DELIM
CvsModificationDelimiterN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .CvsModificationDelimiter
CVS_RCSFILE_LINEN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .CVS_RCSFILE_LINE
CVS_REVISION_DATEN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .CVS_REVISION_DATE
CVS_REVISION_DEADN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.CvsHistoryParser .CVS_REVISION_DEAD
NO_CHANGEN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Alienbrain.NO_CHANGE
FORMATN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.PlasticSCM.FORMAT
usageCountN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks.usageCount
usageCountLockN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks.usageCountLock
modificationListN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.GitHistoryParser .modificationList
changeListN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.GitHistoryParser .changeList
HISTORY_COMMAND_FORMATN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeam .HISTORY_COMMAND_FORMAT
GET_SOURCE_COMMAND_FORMATN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.StarTeam .GET_SOURCE_COMMAND_FORMAT
_searchRegExN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.PvcsHistoryParser ._searchRegEx
_archiveRegExN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.PvcsHistoryParser ._archiveRegEx
_revisionRegExN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.PvcsHistoryParser ._revisionRegEx
PadLockN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Telelogic.SynergyCommand .PadLock
modRegexN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4HistoryParser .modRegex
changeRegexN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4HistoryParser .changeRegex
COMMAND_DATE_FORMATN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4 .COMMAND_DATE_FORMAT
EXIT_CODE_PATTERNN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4 .EXIT_CODE_PATTERN
DEFAULT_ERROR_PATTERNN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4 .DEFAULT_ERROR_PATTERN
FILES_UP_TO_DATE_PATTERNN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4 .FILES_UP_TO_DATE_PATTERN
DEFAULT_REGEX_OPTIONSN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4 .DEFAULT_REGEX_OPTIONS
ClientPrefixN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce .ProcessP4Initializer.ClientPrefix
BK_CHANGESET_LINEN/AThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper .BitKeeperHistoryParser.BK_CHANGESET_LINE
_const_ref_matcherN/AThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._const_ref_matcher
DEFAULT_EXTENSIONN/AThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation .DefaultUrlBuilder.DEFAULT_EXTENSION
BuildRESTSpecifierN/AThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation .DefaultCruiseUrlBuilder.BuildRESTSpecifier
ProjectRESTSpecifierN/AThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation .DefaultCruiseUrlBuilder.ProjectRESTSpecifier
ServerRESTSpecifierN/AThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation .DefaultCruiseUrlBuilder.ServerRESTSpecifier
DEFAULT_LOG_SUBDIRECTORYN/AThoughtWorks.CruiseControl.Core.Publishers.XmlLogPublisher .DEFAULT_LOG_SUBDIRECTORY
HtmlCSSFileN/AThoughtWorks.CruiseControl.Core.Publishers.HtmlDetailsMessageBuilder .HtmlCSSFile
fileSystemN/AThoughtWorks.CruiseControl.WebDashboard.IO.ProgramDataFolder .fileSystem
executionEnvironmentN/AThoughtWorks.CruiseControl.WebDashboard.IO.ProgramDataFolder .executionEnvironment
locationN/AThoughtWorks.CruiseControl.WebDashboard.IO.ProgramDataFolder.location
NOT_AVAILABLEN/AThoughtWorks.CruiseControl.WebDashboard.IO.ConditionalGetFingerprint .NOT_AVAILABLE

Statistics

Stat   Size of instance
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Interface name should begin with a 'I'
// <Name>Interface name should begin with a 'I'</Name>
warnif count > 0 from t in Application.Types where 
t.IsInterface  

// Discard outter type(s) name prefix for nested types
let name = !t.IsNested  ? t.Name : t.Name.Substring(t.Name.LastIndexOf('+') + 1, t.Name.Length - t.Name.LastIndexOf('+') - 1) 

where name[0] != 'I'
select t

5 types matched

typesFull Name
typesFull Name
DecoratableByTypeObjection.DecoratableByType
ObjectSourceObjection.ObjectSource
ObjectionManagerObjection.ObjectionManager
ConstructorSelectionStrategyObjection.ConstructorSelectionStrategy
TypeToTypeMapObjection.TypeToTypeMap

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Abstract base class should be suffixed with 'Base'
// <Name>Abstract base class should be suffixed with 'Base'</Name>
warnif count > 0 from t in Application.Types where 
  
t.IsAbstract && 
  
t.IsClass &&

  
// equivalent to:   DepthOfDeriveFrom "System.Object" == 1
  t.DepthOfInheritance == 1 && 

  
((!t.IsGeneric && !t.NameLike (@"Base$")) ||
   
( t.IsGeneric && !t.NameLike (@"Base<")))
select new { t, t.DepthOfInheritance }

6 types matched

typesDepth of inheritanceFull Name
typesDepth of inheritanceFull Name
CommunicationsMessage1ThoughtWorks.CruiseControl.Remote.Messages.CommunicationsMessage
Option1ThoughtWorks.CruiseControl.Remote.Mono.Option
VSSParser1ThoughtWorks.CruiseControl.Core.Sourcecontrol.VSSParser
ChannelSecurityInformation1ThoughtWorks.CruiseControl.Core.Security.ChannelSecurityInformation
ProjectConfigurableBuildPlugin1ThoughtWorks.CruiseControl.WebDashboard.Dashboard.GenericPlugins .ProjectConfigurableBuildPlugin
ErrorLevel1ThoughtWorks.CruiseControl.CCTrayLib.ErrorLevel

Statistics

Stat   Depth of inheritance
Sum:6
Average:1
Minimum:1
Maximum:1
Standard deviation:0
Variance:0
warningCritical    Rule warning: Methods name should begin with an Upper character
// <Name>Methods name should begin with an Upper character</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
!m.NameLike (@"^[A-Z]") && 
  
!m.IsSpecialName && 
  
!m.IsGeneratedByCompiler
select m

// The name of a regular method should 
// begin with an Upper letter.

157 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 157 methods matched. All matched methods could be listed in the report by unchecking the option:
NDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a Rule violated
It is recommended to use the NDepend interactive UI capabilities to browse a large list of matched methods.
methodsFull Name
methodsFull Name
server_IntegrationCompleted(Object,IntegrationCompletedEventArgs)ThoughtWorks.CruiseControl.Core.Extensions .IntegrationRequestThrottleExtension.server_IntegrationCompleted (Object,IntegrationCompletedEventArgs)
server_IntegrationStarted(Object,IntegrationStartedEventArgs)ThoughtWorks.CruiseControl.Core.Extensions .IntegrationRequestThrottleExtension.server_IntegrationStarted(Object ,IntegrationStartedEventArgs)
makeString(ICollection)ThoughtWorks.CruiseControl.Core.Util.TimeUnits.makeString(ICollection)
parseItem(String)ThoughtWorks.CruiseControl.Core.Sourcecontrol.VstsHistoryParser .parseItem(String)
projectExists(IIntegrationResult)ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.projectExists (IIntegrationResult)
workspaceIsMappedCorrectly(IIntegrationResult)ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts .workspaceIsMappedCorrectly(IIntegrationResult)
lookForErrorReturns(ProcessResult)ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.lookForErrorReturns (ProcessResult)
deleteDirectory(String)ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.deleteDirectory (String)
workspaceExists(IIntegrationResult)ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vsts.workspaceExists (IIntegrationResult)
define_text_constant(String,String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.define_text_constant(String,String)
define_nodeset_constant(String,XPathNodeIterator)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.define_nodeset_constant(String ,XPathNodeIterator)
eval_text_constants(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_text_constants(String)
eval_constant(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_constant(String)
eval_text_constant(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.eval_text_constant(String)
_CheckForCycle(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._CheckForCycle(String)
unwind_eval_stack()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.unwind_eval_stack()
push_stack()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.push_stack()
pop_stack()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.pop_stack()
push_include(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.push_include(String)
pop_include()ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment.pop_include()
_IsDefined(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._IsDefined(String)
_SetConstant(Constant)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._SetConstant(Constant)
_GetConstantDef(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._GetConstantDef(String)
_InternalGetSymbolDef(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._InternalGetSymbolDef(String)
_IsDefinedInCurrentFrame(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._IsDefinedInCurrentFrame(String)
_CheckAlreadyDefined(String)ThoughtWorks.CruiseControl.Core.Config.Preprocessor .ConfigPreprocessorEnvironment._CheckAlreadyDefined(String)
sndPlaySoundA(String,Int32)ThoughtWorks.CruiseControl.CCTrayLib.Audio.sndPlaySoundA(String,Int32)
chkShowBalloons_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .GeneralSettingsControl.chkShowBalloons_CheckedChanged(Object ,EventArgs)
refreshTimer_Tick(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow .refreshTimer_Tick(Object,EventArgs)
refreshCommand_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow .refreshCommand_Click(Object,EventArgs)
displayWorker_DoWork(Object,DoWorkEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow .displayWorker_DoWork(Object,DoWorkEventArgs)
displayWorker_RunWorkerCompleted(Object,RunWorkerCompletedEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow .displayWorker_RunWorkerCompleted(Object,RunWorkerCompletedEventArgs)
statusExplorer_AfterSelect(Object,TreeViewEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.CurrentStatusWindow .statusExplorer_AfterSelect(Object,TreeViewEventArgs)
checkBoxX10Enabled_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl .checkBoxX10Enabled_CheckedChanged(Object,EventArgs)
timeWithGoodDate(DateTime)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.X10SettingsControl .timeWithGoodDate(DateTime)
checkBoxRemoteGrowl_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.GrowlSettingsControl .checkBoxRemoteGrowl_CheckedChanged(Object,EventArgs)
textBoxPort_Leave(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.GrowlSettingsControl .textBoxPort_Leave(Object,EventArgs)
checkBoxEnabled_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.GrowlSettingsControl .checkBoxEnabled_CheckedChanged(Object,EventArgs)
btnOK_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .CCTrayMultiSettingsForm.btnOK_Click(Object,EventArgs)
saveSettingsButton_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .CCTrayMultiSettingsForm.saveSettingsButton_Click(Object,EventArgs)
loadSettingsButton_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation .CCTrayMultiSettingsForm.loadSettingsButton_Click(Object,EventArgs)
linkLabel1_LinkClicked(Object,LinkLabelLinkClickedEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.About .linkLabel1_LinkClicked(Object,LinkLabelLinkClickedEventArgs)
famfamfamLink_LinkClicked(Object,LinkLabelLinkClickedEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.About .famfamfamLink_LinkClicked(Object,LinkLabelLinkClickedEventArgs)
buildButton_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildParameters .buildButton_Click(Object,EventArgs)
parameters_PropertyValueChanged(Object,PropertyValueChangedEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.BuildParameters .parameters_PropertyValueChanged(Object,PropertyValueChangedEventArgs)
rdoDashboard_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .rdoDashboard_CheckedChanged(Object,EventArgs)
rdoRemoting_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .rdoRemoting_CheckedChanged(Object,EventArgs)
rdoHttp_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .rdoHttp_CheckedChanged(Object,EventArgs)
rdoExtension_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .rdoExtension_CheckedChanged(Object,EventArgs)
btnOK_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .btnOK_Click(Object,EventArgs)
panel4_Paint(Object,PaintEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .panel4_Paint(Object,PaintEventArgs)
panel3_Paint(Object,PaintEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .panel3_Paint(Object,PaintEventArgs)
panel2_Paint(Object,PaintEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .panel2_Paint(Object,PaintEventArgs)
panel1_Paint(Object,PaintEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .panel1_Paint(Object,PaintEventArgs)
connectToOldServer_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .connectToOldServer_CheckedChanged(Object,EventArgs)
remotingEncryption_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .remotingEncryption_CheckedChanged(Object,EventArgs)
connectToOldDashboard_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .connectToOldDashboard_CheckedChanged(Object,EventArgs)
httpEncryption_CheckedChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .httpEncryption_CheckedChanged(Object,EventArgs)
menuFileExit_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .menuFileExit_Click(Object,EventArgs)
lvProjects_SelectedIndexChanged(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .lvProjects_SelectedIndexChanged(Object,EventArgs)
mnuForce_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuForce_Click(Object,EventArgs)
mnuAbort_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuAbort_Click(Object,EventArgs)
mnuCopyBuildLabel_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuCopyBuildLabel_Click(Object,EventArgs)
mnuCancelPending_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuCancelPending_Click(Object,EventArgs)
btnForceBuild_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .btnForceBuild_Click(Object,EventArgs)
mnuWebPage_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuWebPage_Click(Object,EventArgs)
lvProjects_DoubleClick(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .lvProjects_DoubleClick(Object,EventArgs)
mnuViewIcons_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuViewIcons_Click(Object,EventArgs)
mnuViewList_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuViewList_Click(Object,EventArgs)
mnuViewDetails_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuViewDetails_Click(Object,EventArgs)
mnuAbout_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuAbout_Click(Object,EventArgs)
projectContextMenu_Popup(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .projectContextMenu_Popup(Object,EventArgs)
mnuFilePreferences_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuFilePreferences_Click(Object,EventArgs)
mnuView_Popup(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuView_Popup(Object,EventArgs)
mnuShow_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuShow_Click(Object,EventArgs)
trayIcon_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .trayIcon_Click(Object,EventArgs)
trayIcon_DoubleClick(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .trayIcon_DoubleClick(Object,EventArgs)
lvProjects_ColumnClick(Object,ColumnClickEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .lvProjects_ColumnClick(Object,ColumnClickEventArgs)
mnuFixBuild_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuFixBuild_Click(Object,EventArgs)
btnToggleQueueView_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .btnToggleQueueView_Click(Object,EventArgs)
queueTreeView_MouseUp(Object,MouseEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .queueTreeView_MouseUp(Object,MouseEventArgs)
mnuQueueCancelPending_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuQueueCancelPending_Click(Object,EventArgs)
mon_Polled(Object,MonitorPolledEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm.mon_Polled (Object,MonitorPolledEventArgs)
btnStartStopProject_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .btnStartStopProject_Click(Object,EventArgs)
mnuStart_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuStart_Click(Object,EventArgs)
mnuStop_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .mnuStop_Click(Object,EventArgs)
currentStatusMenu_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .currentStatusMenu_Click(Object,EventArgs)
packagesMenu_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .packagesMenu_Click(Object,EventArgs)
closeUpdateButton_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .closeUpdateButton_Click(Object,EventArgs)
updateProjectsButton_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm .updateProjectsButton_Click(Object,EventArgs)
listLoader_DoWork(Object,DoWorkEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .listLoader_DoWork(Object,DoWorkEventArgs)
listLoader_RunWorkerCompleted(Object,RunWorkerCompletedEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .listLoader_RunWorkerCompleted(Object,RunWorkerCompletedEventArgs)
refreshButton_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .refreshButton_Click(Object,EventArgs)
downloadButton_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .downloadButton_Click(Object,EventArgs)
packageList_DoubleClick(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .packageList_DoubleClick(Object,EventArgs)
downloader_DoWork(Object,DoWorkEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .downloader_DoWork(Object,DoWorkEventArgs)
downloader_RunWorkerCompleted(Object,RunWorkerCompletedEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .downloader_RunWorkerCompleted(Object,RunWorkerCompletedEventArgs)
downloader_ProgressChanged(Object,ProgressChangedEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.PackagesListForm .downloader_ProgressChanged(Object,ProgressChangedEventArgs)
btnAddServer_Click(Object,EventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddProjects .btnAddServer_Click(Object,EventArgs)
lbProject_KeyDown(Object,KeyEventArgs)ThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddProjects .lbProject_KeyDown(Object,KeyEventArgs)

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Avoid types with name too long
// <Name>Avoid types with name too long</Name>
warnif count > 0 from t in Application.Types 
where !t.IsGeneratedByCompiler

where t.SimpleName.Length > 35 
select new { t, t.SimpleName }

      

18 types matched

typesSimpleNameFull Name
typesSimpleNameFull Name
MaxLengthConstructorSelectionStrategyMaxLengthConstructorSelectionStrategyObjection.MaxLengthConstructorSelectionStrategy
IntegrationPerformanceCountersExtensionIntegrationPerformanceCountersExtensionThoughtWorks.CruiseControl.Core.Extensions .IntegrationPerformanceCountersExtension
ServerSecurityConfigurationInformationServerSecurityConfigurationInformationThoughtWorks.CruiseControl.Core.Security .ServerSecurityConfigurationInformation
ProjectSecurityConfigurationInformationProjectSecurityConfigurationInformationThoughtWorks.CruiseControl.Core.Security .ProjectSecurityConfigurationInformation
CruiseServerSnapshotListAndExceptionsCruiseServerSnapshotListAndExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection .CruiseServerSnapshotListAndExceptions
ServerAggregatingCruiseManagerWrapperServerAggregatingCruiseManagerWrapperThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper
NetReflectorRemoteServicesConfigurationNetReflectorRemoteServicesConfigurationThoughtWorks.CruiseControl.WebDashboard.Configuration .NetReflectorRemoteServicesConfiguration
LazilyInitialisingVelocityTransformerLazilyInitialisingVelocityTransformerThoughtWorks.CruiseControl.WebDashboard.MVC.View .LazilyInitialisingVelocityTransformer
VelocityViewGeneratorWithTransformerVelocityViewGeneratorWithTransformerThoughtWorks.CruiseControl.WebDashboard.MVC.View .VelocityViewGeneratorWithTransformer
ImmutableNamedActionWithoutSiteTemplateImmutableNamedActionWithoutSiteTemplateThoughtWorks.CruiseControl.WebDashboard.Dashboard .ImmutableNamedActionWithoutSiteTemplate
ServerSecurityConfigurationServerPluginServerSecurityConfigurationServerPluginThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport .ServerSecurityConfigurationServerPlugin
ServerSecurityConfigurationProjectPluginServerSecurityConfigurationProjectPluginThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport .ServerSecurityConfigurationProjectPlugin
BuildReportXslFilenameSerialiserFactoryBuildReportXslFilenameSerialiserFactoryThoughtWorks.CruiseControl.WebDashboard.Plugins.BuildReport .BuildReportXslFilenameSerialiserFactory
ProjectConfigurationListViewItemAdaptorProjectConfigurationListViewItemAdaptorThoughtWorks.CruiseControl.CCTrayLib.Presentation .ProjectConfigurationListViewItemAdaptor
ResourceIntegrationQueueIconProviderResourceIntegrationQueueIconProviderThoughtWorks.CruiseControl.CCTrayLib.Presentation .ResourceIntegrationQueueIconProvider
ConfigurableProjectStateIconProviderConfigurableProjectStateIconProviderThoughtWorks.CruiseControl.CCTrayLib.Presentation .ConfigurableProjectStateIconProvider
MonitorServerQueueChangedEventHandlerMonitorServerQueueChangedEventHandlerThoughtWorks.CruiseControl.CCTrayLib.Monitoring .MonitorServerQueueChangedEventHandler
ExtensionTransportProjectListRetrieverExtensionTransportProjectListRetrieverThoughtWorks.CruiseControl.CCTrayLib.Monitoring .ExtensionTransportProjectListRetriever

Statistics

Stat   SimpleName
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid methods with name too long
// <Name>Avoid methods with name too long</Name>
warnif count > 0 from m in Application.Methods where 
 
!m.IsExplicitInterfaceImpl &&
 
!m.IsGeneratedByCompiler &&
 
((!m.IsSpecialName && m.SimpleName.Length > 35) ||
   
// Property getter/setter are prefixed with "get_" "set_" of length 4.
  ( m.IsSpecialName && m.SimpleName.Length - 4 > 35))

select new { m, m.SimpleName }

// The regex matches methods with name longer 
// than 35 characters.
// Method Name doesn't contain the type and namespace 
// prefix, FullName does.
// The regex computes the method name length from 
// the beginning until the first open parenthesis 
// or first lower than (for generic methods).
// Explicit Interface Implementation methods are 
// discarded because their names are prefixed 
// with the interface name.
      

47 methods matched

methodsSimpleNameFull Name
methodsSimpleNameFull Name
AllowOneThreadPerAppDomainToDoResolution(Type)AllowOneThreadPerAppDomainToDoResolutionObjection.CachingImplementationResolver .AllowOneThreadPerAppDomainToDoResolution(Type)
ThrowExceptionForUnfoundImplementation(Type)ThrowExceptionForUnfoundImplementationObjection.NMockAwareImplementationResolver .ThrowExceptionForUnfoundImplementation(Type)
OverrideWithSpecifiedDependencyImplementationIfNecessary(Type,Type ,String)OverrideWithSpecifiedDependencyImplementationIfNecessaryObjection.ObjectionStore .OverrideWithSpecifiedDependencyImplementationIfNecessary(Type,Type ,String)
get_stopProjectOnReachingMaxSourceControlRetries()get_stopProjectOnReachingMaxSourceControlRetriesThoughtWorks.CruiseControl.Core.IProject .get_stopProjectOnReachingMaxSourceControlRetries()
get_stopProjectOnReachingMaxSourceControlRetries()get_stopProjectOnReachingMaxSourceControlRetriesThoughtWorks.CruiseControl.Core.Workflow .get_stopProjectOnReachingMaxSourceControlRetries()
get_stopProjectOnReachingMaxSourceControlRetries()get_stopProjectOnReachingMaxSourceControlRetriesThoughtWorks.CruiseControl.Core.Project .get_stopProjectOnReachingMaxSourceControlRetries()
set_stopProjectOnReachingMaxSourceControlRetries(Boolean)set_stopProjectOnReachingMaxSourceControlRetriesThoughtWorks.CruiseControl.Core.Project .set_stopProjectOnReachingMaxSourceControlRetries(Boolean)
KillProcessCurrentlyRunningForProject(String)KillProcessCurrentlyRunningForProjectThoughtWorks.CruiseControl.Core.Util.ProcessExecutor .KillProcessCurrentlyRunningForProject(String)
RepathExecutableIfItIsInWorkingDirectory()RepathExecutableIfItIsInWorkingDirectoryThoughtWorks.CruiseControl.Core.Util.ProcessInfo .RepathExecutableIfItIsInWorkingDirectory()
WorkingFolderIsKnownAsSvnWorkingFolder(String)WorkingFolderIsKnownAsSvnWorkingFolderThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn .WorkingFolderIsKnownAsSvnWorkingFolder(String)
AddMemberInfoToModifiedOrAddedModifications(Modification[])AddMemberInfoToModifiedOrAddedModificationsThoughtWorks.CruiseControl.Core.Sourcecontrol.Mks .AddMemberInfoToModifiedOrAddedModifications(Modification[])
CreatePcliContentsForCreatingVlogByLabel(String)CreatePcliContentsForCreatingVlogByLabelThoughtWorks.CruiseControl.Core.Sourcecontrol.Pvcs .CreatePcliContentsForCreatingVlogByLabel(String)
StripRepositoryRootFromModificationFolderNames(Modification[])StripRepositoryRootFromModificationFolderNamesThoughtWorks.CruiseControl.Core.Sourcecontrol.Cvs .StripRepositoryRootFromModificationFolderNames(Modification[])
GetModificationsFlowFindTipRevisionNumber(String)GetModificationsFlowFindTipRevisionNumberThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial .GetModificationsFlowFindTipRevisionNumber(String)
GetModificationsFlowFindRevisionNumber(String)GetModificationsFlowFindRevisionNumberThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial .GetModificationsFlowFindRevisionNumber(String)
GetModificationsFlowCreateInitProcessInfo(String)GetModificationsFlowCreateInitProcessInfoThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial .GetModificationsFlowCreateInitProcessInfo(String)
GetModificationsFlowCreatePullProcessInfo(String)GetModificationsFlowCreatePullProcessInfoThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial .GetModificationsFlowCreatePullProcessInfo(String)
GetSourceFlowPerformUpdateProcessInfo(String)GetSourceFlowPerformUpdateProcessInfoThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial .GetSourceFlowPerformUpdateProcessInfo(String)
get_ViewForSpecificationsAsNewlineSeparatedString()get_ViewForSpecificationsAsNewlineSeparatedStringThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4 .get_ViewForSpecificationsAsNewlineSeparatedString()
AddConfigurationSubfileLoadedHandler(ConfigurationSubfileLoadedHandler )AddConfigurationSubfileLoadedHandlerThoughtWorks.CruiseControl.Core.Config.IConfigurationService .AddConfigurationSubfileLoadedHandler (ConfigurationSubfileLoadedHandler)
AddConfigurationSubfileLoadedHandler(ConfigurationSubfileLoadedHandler )AddConfigurationSubfileLoadedHandlerThoughtWorks.CruiseControl.Core.Config.FileWatcherConfigurationService .AddConfigurationSubfileLoadedHandler (ConfigurationSubfileLoadedHandler)
AddConfigurationSubfileLoadedHandler(ConfigurationSubfileLoadedHandler )AddConfigurationSubfileLoadedHandlerThoughtWorks.CruiseControl.Core.Config.FileConfigurationService .AddConfigurationSubfileLoadedHandler (ConfigurationSubfileLoadedHandler)
AddConfigurationSubfileLoadedHandler(ConfigurationSubfileLoadedHandler )AddConfigurationSubfileLoadedHandlerThoughtWorks.CruiseControl.Core.Config.CachingConfigurationService .AddConfigurationSubfileLoadedHandler (ConfigurationSubfileLoadedHandler)
GetProjectStatusListAndCaptureExceptions(String)GetProjectStatusListAndCaptureExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection.IFarmService .GetProjectStatusListAndCaptureExceptions(String)
GetProjectStatusListAndCaptureExceptions(IServerSpecifier,String)GetProjectStatusListAndCaptureExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection.IFarmService .GetProjectStatusListAndCaptureExceptions(IServerSpecifier,String)
GetCruiseServerSnapshotListAndExceptions(String)GetCruiseServerSnapshotListAndExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection.IFarmService .GetCruiseServerSnapshotListAndExceptions(String)
GetCruiseServerSnapshotListAndExceptions(IServerSpecifier,String)GetCruiseServerSnapshotListAndExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection.IFarmService .GetCruiseServerSnapshotListAndExceptions(IServerSpecifier,String)
GetProjectStatusListAndCaptureExceptions(String)GetProjectStatusListAndCaptureExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper .GetProjectStatusListAndCaptureExceptions(String)
GetProjectStatusListAndCaptureExceptions(IServerSpecifier,String)GetProjectStatusListAndCaptureExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper .GetProjectStatusListAndCaptureExceptions(IServerSpecifier,String)
GetProjectStatusListAndCaptureExceptions(IServerSpecifier[],String)GetProjectStatusListAndCaptureExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper .GetProjectStatusListAndCaptureExceptions(IServerSpecifier[],String)
GetCruiseServerSnapshotListAndExceptions(String)GetCruiseServerSnapshotListAndExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper .GetCruiseServerSnapshotListAndExceptions(String)
GetCruiseServerSnapshotListAndExceptions(IServerSpecifier,String)GetCruiseServerSnapshotListAndExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper .GetCruiseServerSnapshotListAndExceptions(IServerSpecifier,String)
GetCruiseServerSnapshotListAndExceptions(IServerSpecifier[],String)GetCruiseServerSnapshotListAndExceptionsThoughtWorks.CruiseControl.WebDashboard.ServerConnection .ServerAggregatingCruiseManagerWrapper .GetCruiseServerSnapshotListAndExceptions(IServerSpecifier[],String)
CompareProjectStatusByQueueAndQueuePriority(ProjectStatus ,ProjectStatus)CompareProjectStatusByQueueAndQueuePriorityThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport .ProjectConfigurationServerPlugin .CompareProjectStatusByQueueAndQueuePriority(ProjectStatus ,ProjectStatus)
ConstructBuildServerFromSelectedOptions()ConstructBuildServerFromSelectedOptionsThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .ConstructBuildServerFromSelectedOptions()
connectToOldDashboard_CheckedChanged(Object,EventArgs)connectToOldDashboard_CheckedChangedThoughtWorks.CruiseControl.CCTrayLib.Presentation.AddBuildServer .connectToOldDashboard_CheckedChanged(Object,EventArgs)
GetCaptionAndMessageForBuildTransition(BuildTransition)GetCaptionAndMessageForBuildTransitionThoughtWorks.CruiseControl.CCTrayLib.Presentation .IBalloonMessageProvider.GetCaptionAndMessageForBuildTransition (BuildTransition)
DisplayIntegrationQueueInTreeViewNode()DisplayIntegrationQueueInTreeViewNodeThoughtWorks.CruiseControl.CCTrayLib.Presentation .IntegrationQueueTreeNodeAdaptor.DisplayIntegrationQueueInTreeViewNode ()
get_EstimatedTimeRemainingOnCurrentBuild()get_EstimatedTimeRemainingOnCurrentBuildThoughtWorks.CruiseControl.CCTrayLib.Presentation.StubProjectMonitor .get_EstimatedTimeRemainingOnCurrentBuild()
GetCaptionAndMessageForBuildTransition(BuildTransition)GetCaptionAndMessageForBuildTransitionThoughtWorks.CruiseControl.CCTrayLib.Presentation .ConfigurableBalloonMessageProvider .GetCaptionAndMessageForBuildTransition(BuildTransition)
get_EstimatedTimeRemainingOnCurrentBuild()get_EstimatedTimeRemainingOnCurrentBuildThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ISingleProjectDetail .get_EstimatedTimeRemainingOnCurrentBuild()
get_EstimatedTimeRemainingOnCurrentBuild()get_EstimatedTimeRemainingOnCurrentBuildThoughtWorks.CruiseControl.CCTrayLib.Monitoring.BuildDurationTracker .get_EstimatedTimeRemainingOnCurrentBuild()
get_EstimatedTimeRemainingOnCurrentBuild()get_EstimatedTimeRemainingOnCurrentBuildThoughtWorks.CruiseControl.CCTrayLib.Monitoring.ProjectMonitor .get_EstimatedTimeRemainingOnCurrentBuild()
BuildCruiseServerSnapshotFromProjectsAndQueues(String)BuildCruiseServerSnapshotFromProjectsAndQueuesThoughtWorks.CruiseControl.CCTrayLib.Monitoring.DashboardXmlParser .BuildCruiseServerSnapshotFromProjectsAndQueues(String)
BuildCruiseServerSnapshotFromProjectsOnly(String)BuildCruiseServerSnapshotFromProjectsOnlyThoughtWorks.CruiseControl.CCTrayLib.Monitoring.DashboardXmlParser .BuildCruiseServerSnapshotFromProjectsOnly(String)
GetCaptionAndMessageForBuildTransition(BuildTransition)GetCaptionAndMessageForBuildTransitionThoughtWorks.CruiseControl.CCTrayLib.Growl.GrowlController .GetCaptionAndMessageForBuildTransition(BuildTransition)
versionInformationToolStripMenuItem_Click(Object,EventArgs)versionInformationToolStripMenuItem_ClickValidator.MainForm.versionInformationToolStripMenuItem_Click(Object ,EventArgs)

Statistics

Stat   SimpleName
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid fields with name too long
// <Name>Avoid fields with name too long</Name>
warnif count > 0 from f in Application.Fields where
 
!f.IsGeneratedByCompiler &&
  
f.Name.Length > 35
select f

// The regex matches fields with name longer 
// than 35 characters.
// Field Name doesn't contain the type and 
// namespace prefix, FullName does.
      

6 fields matched

fieldsFull Name
fieldsFull Name
StopProjectOnReachingMaxSourceControlRetriesThoughtWorks.CruiseControl.Core.Project .StopProjectOnReachingMaxSourceControlRetries
SymbolCCModuleClassFailedCoverageTopThoughtWorks.CruiseControl.Core.Tasks .NCoverReportTask+NCoverReportType .SymbolCCModuleClassFailedCoverageTop
MethodCCModuleClassFailedCoverageTopThoughtWorks.CruiseControl.Core.Tasks .NCoverReportTask+NCoverReportType .MethodCCModuleClassFailedCoverageTop
GracePeriodInWhichItIsNotWorthApplyingTheQuietPeriodThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod .GracePeriodInWhichItIsNotWorthApplyingTheQuietPeriod
AmountOfTimeInTheFutureToWarnAboutFutureModificationsThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod .AmountOfTimeInTheFutureToWarnAboutFutureModifications
AmountOfTimeInTheFutureToSkipQuietPeriodThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod .AmountOfTimeInTheFutureToSkipQuietPeriod

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Avoid having different types with same name
 // <Name>Avoid having different types with same name</Name>
// Such practice typically creates confusion, 
// and type naming collision inside a source file.

warnif count > 0

// This rule matches also collisions between 
// application and third-party types sharing a same name.
let groups = JustMyCode.Types.Union(ThirdParty.Types)
                 
// Discard nested types, whose name is 
                 // prefixed with the parent type name.
                 .Where(t => !t.IsNested)
                 
                 
// Group types by name.
                 .GroupBy(t => t.Name)

from @group in groups 
   
where @group.Count() > 1

   
// Let's see if types with the same name are declared
   // in different namespaces.
   // (t.FullName is {namespaceName}.{typeName} )
   let groupsFullName = @group.GroupBy(t => t.FullName)
   
where groupsFullName.Count() > 1

   
// If several types with same name are declared in different namespaces
   // eliminate the case where all types are declared in third-party assemblies.
   let types= groupsFullName.SelectMany(g => g)
   
where types.Any(t => !t.IsThirdParty)
        
// Uncomment this line, to only gets naming collision involving
        // both application adn third-party types.
        //         && types.Any(t => t.IsThirdParty)

orderby types.Count() descending 

select new { t = types.First(),
             
// In the 'types' column, make sure to group matched types 
             // by parent assemblies and parent namespaces.
             types
            
}

14 types matched

typestypesFull Name
typestypesFull Name
CruiseServerClient2 typesThoughtWorks.CruiseControl.Remote.CruiseServerClient
Message2 typesThoughtWorks.CruiseControl.Remote.Message
FileTransferResponse2 typesThoughtWorks.CruiseControl.Remote.Messages.FileTransferResponse
Project2 typesThoughtWorks.CruiseControl.Remote.Monitor.Project
ILogger2 typesThoughtWorks.CruiseControl.Core.Util.ILogger
Registry2 typesThoughtWorks.CruiseControl.Core.Util.Registry
DateTimeProvider2 typesThoughtWorks.CruiseControl.Core.Util.DateTimeProvider
UserNameAuthentication2 typesThoughtWorks.CruiseControl.Core.Security.UserNameAuthentication
UserPasswordAuthentication2 typesThoughtWorks.CruiseControl.Core.Security.UserPasswordAuthentication
WindowStateEventArgs2 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation.WindowStateEventArgs
MainForm2 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation.MainForm
PersistWindowState2 typesThoughtWorks.CruiseControl.CCTrayLib.Presentation.PersistWindowState
AppRunner2 typesThoughtWorks.CruiseControl.Console.AppRunner
Program2 typesValidator.Program

Statistics

Stat   types
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid naming types and namespaces with the same identifier
// <Name>Avoid naming types and namespaces with the same identifier</Name>

// Not only this can provoke compiler resolution collision,
// but also, this makes code less maintainable because
// concepts are not concisely identified.

warnif count > 0
let hashsetShortNames = Namespaces.Where(n => n.Name.Length > 0).Select(n => n.SimpleName).ToHashSet()

from t in JustMyCode.Types
where hashsetShortNames.Contains(t.Name)
select new { t, namespaces = Namespaces.Where(n => n.SimpleName == t.Name) }

3 types matched

typesnamespacesFull Name
typesnamespacesFull Name
Mercurial1 namespaceThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial
BitKeeper1 namespaceThoughtWorks.CruiseControl.Core.Sourcecontrol.BitKeeper.BitKeeper
Configuration6 namespacesThoughtWorks.CruiseControl.Core.Config.Configuration

Statistics

Stat   namespaces
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Methods prefixed with 'Try' should return a boolean
// <Name>Methods prefixed with 'Try' should return a boolean</Name>
// and such TryXXX method can eventually have out parameters to return results.
// Get inspired from the API design of:
// System.Int32.TryParse(int,out string):bool
warnif count > 0
from m in Application.Methods where
  
m.SimpleNameLike("^Try") &&
  
m.ReturnType != null &&
  
m.ReturnType.FullName != "System.Boolean"
select new { m, m.ReturnType }

2 methods matched

methodsReturnTypeFull Name
methodsReturnTypeFull Name
TryToRun(ProcessInfo,IIntegrationResult)ProcessResultThoughtWorks.CruiseControl.Core.Tasks.BaseExecutableTask.TryToRun (ProcessInfo,IIntegrationResult)
TryToRun(IIntegrationResult)ProcessResultThoughtWorks.CruiseControl.Core.Tasks.DevenvTask.TryToRun (IIntegrationResult)

Statistics

Stat   ReturnType
Sum:0
Average: