NDepend Report

Application name: RanchBuddy (Quick Project)
This report has been built on: 05/26/2009 14:01:49 in 00:07 by NDepend v2.12.0.3027 (Pro Edition)
To get explanations concerning these metrics, go to the NDepend home page.

Application Metrics
Assemblies Metrics
Visual NDepend View
Assemblies Abstractness vs. Instability
Assemblies Dependencies
Assemblies Dependencies Diagram
Assemblies build order
NDepend information and warnings
CQL Queries and Constraints
Types Metrics




Application Metrics

Number of IL instructions: 15385
Number of lines of code: 0
Number of lines of comment: 0
Percentage comment: 0
Number of assemblies: 2
Number of classes: 75
Number of types: 83
Number of abstract classes: 1
Number of interfaces: 2
Number of value types: 2
Number of exception classes: 1
Number of attribute classes: 0
Number of delegate classes: 0
Number of enumerations classes: 4
Number of generic type definitions: 5
Number of generic method definitions: 5
Percentage of public types: 73.49%
Percentage of public methods: 90.06%
Percentage of classes with at least one public field: 0%

Stat# OccurrencesAvgStdDevMax
Properties on Interfaces 2 Interfaces 161531 properties on RanchBuddy.Core.Services.IWebContext
Methods on Interfaces 2 Interfaces 21.518.540 methods on RanchBuddy.Core.Services.IWebContext
Arguments on Methods on Interfaces 43 Methods 0.160.371 arguments on RanchBuddy.Core.Services.IWebContext.set_SelectedRatings(Dictionary<Int32,Int32>)
Public Properties on Classes 75 Classes 2.255.632 public properties on RanchBuddy.Core.Services.Impl.WebContext
Public Methods on Classes 75 Classes 8.0110.5750 public methods on RanchBuddy.Core.Domain.Account
Arguments on Public Methods on Classes 601 Methods 0.71.218 arguments on RanchBuddy.Web.Controllers.AccountController.Register(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)
IL Instructions in non-abstract Methods 681 Methods 22.5933.63377 IL instructions in RanchBuddy.Web.Controllers.AccountController.Register(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)
Cyclomatic complexity on non abstract Methods 681 Methods 2.042.81 CC = 35 for RanchBuddy.Core.Providers.Impl.MvcSitemapProvider.GetMvcSiteMapNodeFromXMLElement(XElement)




Assemblies Metrics

Assembly# Types# Abstract Types# IL instruction# lines of code# lines of comment% commentAfferent CouplingEfferent CouplingRelational CohesionInstabilityAbstractnessDistance
RanchBuddy.Core v1.0.0.065211692000101852.090.950.030.02
RanchBuddy.Web v1.0.0.018136930000940.8910.060.06




Visual NDepend View




Assemblies Abstractness vs. Instability




Assemblies Dependencies

AssemblyDepends on...Is referenced by...
RanchBuddy.Core v1.0.0.0mscorlib v2.0.0.0 ; System v2.0.0.0 ; System.Web v2.0.0.0 ; System.Data.Linq v3.5.0.0 ; System.Drawing v2.0.0.0 ; System.Web.Abstractions v3.5.0.0 ; System.Xml.Linq v3.5.0.0 ; System.Data v2.0.0.0 ; System.Configuration v2.0.0.0 ; System.Core v3.5.0.0 ; System.Web.Routing v3.5.0.0 ; RanchBuddy.Web v1.0.0.0 ;
RanchBuddy.Web v1.0.0.0mscorlib v2.0.0.0 ; System.Web v2.0.0.0 ; System.Core v3.5.0.0 ; System.Web.Routing v3.5.0.0 ; System.Data.Linq v3.5.0.0 ; RanchBuddy.Core v1.0.0.0 ; System.Drawing v2.0.0.0 ; System.Web.Abstractions v3.5.0.0 ; -




Assemblies Dependencies Diagram

Blue : Assemblies of your application.
Yellow : Tiers assemblies referenced by assemblies of your application.




Assemblies build order

RanchBuddy.Core
RanchBuddy.Web




NDepend information and warnings

05/26/2009 14:01:41 Begin analysis with NDepend v2.12.0.3027
05/26/2009 14:01:41 Retrieve dependencies of your application.
Don't load a previous analysis to compare with.
Assemblies loaded from {C:\Windows\Microsoft.NET\Framework\v2.0.50727} System.dll v2.0.0.0 mscorlib.dll v2.0.0.0 System.Drawing.dll v2.0.0.0 System.Data.dll v2.0.0.0 System.Configuration.dll v2.0.0.0 System.Web.dll v2.0.0.0
Assemblies loaded from {C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5} System.Data.Linq.dll v3.5.0.0 System.Web.Abstractions.dll v3.5.0.0 System.Xml.Linq.dll v3.5.0.0 System.Core.dll v3.5.0.0 System.Web.Routing.dll v3.5.0.0
Assemblies loaded from {P:\Projects\RanchBuddy.com\trunk\ndepend\20090526_baseline} RanchBuddy.Web.dll v1.0.0.0 RanchBuddy.Core.dll v1.0.0.0
0 CQL constraint has been extracted from code.
No dependency cycle detected in assemblies referencement graph.
05/26/2009 14:01:45 Analyse dependencies of your application.
05/26/2009 14:01:45 Building the report (standard).
WARNING: Cant' load the assembly {System.Web.Mvc}: Can't find the .NET assembly {System.Web.Mvc} in specified dirs
WARNING: Cant' load the assembly {StructureMap}: Can't find the .NET assembly {StructureMap} in specified dirs
WARNING: Source code info won't be available for the assembly {RanchBuddy.Web}: Corresponding PDB file not found in any of the folder specified. PDB file production can be enabled in Visual Studio 2005\2008 with: Project -> Properties -> Build -> Advanced... -> Debug Info = 'full' or 'pdb-only'
WARNING: Source code info won't be available for the assembly {RanchBuddy.Core}: Corresponding PDB file not found in any of the folder specified.
WARNING: No application or tier assembly found in directory {C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0}
WARNING: Assembly {System.Web.Mvc} is referenced by {RanchBuddy.Web} but is not found.
WARNING: Assembly {System.Web.Mvc} is referenced by {RanchBuddy.Core} but is not found.
WARNING: Assembly {StructureMap} is referenced by {RanchBuddy.Core} but is not found.




CQL Queries and Constraints

{Code Quality} Some CQL constraints are not satisfied.
{Code Quality \ Type Metrics} Some CQL constraints are not satisfied.
{Design} Some CQL constraints are not satisfied.
{Design \ Performance} Some CQL constraints are not satisfied.
{Unused Code / Dead Code} Some CQL constraints are not satisfied.
{Encapsulation} Some CQL constraints are not satisfied.
{Encapsulation \ Methods Optimal Encapsulation} Some CQL constraints are not satisfied.
{Encapsulation \ Types Optimal Encapsulation} Some CQL constraints are not satisfied.
{Encapsulation \ Fields Optimal Encapsulation} Some CQL constraints are not satisfied.
{Diff / Changes / Evolution} All CQL queries compile and all CQL contraints are satisfied.
{Test Coverage} All CQL queries compile and all CQL contraints are satisfied.
{Purity / Immutability / Side-Effects} Some CQL constraints are not satisfied.
{Naming Conventions} Some CQL constraints are not satisfied.
{Naming Conventions \ Name too long} Some CQL constraints are not satisfied.
{.NET Framework Usage} Some CQL constraints are not satisfied.
{.NET Framework Usage \ System} Some CQL constraints are not satisfied.
{.NET Framework Usage \ System.Collection} Some CQL constraints are not satisfied.
{.NET Framework Usage \ System.Runtime.InteropServices} All CQL queries compile and all CQL contraints are satisfied.
{.NET Framework Usage \ System.Threading} All CQL queries compile and all CQL contraints are satisfied.
{.NET Framework Usage \ System.Xml} All CQL queries compile and all CQL contraints are satisfied.
{Constraints extracted from Source Code} No active CQL query compiled.


WARNING: The following CQL constraint is not satisfied. 10 methods on 1071 tested match the condition. --> Group {Code Quality}
// <Name>Quick summary of methods to refactor</Name>

WARN IF Count > 0 IN SELECT TOP 10 METHODS /*OUT OF "YourGeneratedCode" */ WHERE 

                                           
// Metrics' definitions
     (  NbLinesOfCode > 30 OR              // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
        NbILInstructions > 200 OR          // http://www.ndepend.com/Metrics.aspx#NbILInstructions
        CyclomaticComplexity > 20 OR       // http://www.ndepend.com/Metrics.aspx#CC
        ILCyclomaticComplexity > 50 OR     // http://www.ndepend.com/Metrics.aspx#ILCC
        ILNestingDepth > 4 OR              // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
        NbParameters > 5 OR                // http://www.ndepend.com/Metrics.aspx#NbParameters
        NbVariables > 8 OR                 // http://www.ndepend.com/Metrics.aspx#NbVariables
        NbOverloads > 6 )                  // http://www.ndepend.com/Metrics.aspx#NbOverloads
     AND 

     
// Here are some ways to avoid taking account of generated methods.
     !( NameIs "InitializeComponent()" OR
        
// NDepend.CQL.GeneratedAttribute is defined in the redistributable assembly $NDependInstallDir$\Lib\NDepend.CQL.dll
        // You can define your own attribute to mark "Generated".
        HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute") 
methods# lines of code (LOC)# IL instructionsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting Depth# Parameters# Variables# OverloadsFull Name
MoveNext()N/A244N/A351051RanchBuddy.Core.Domain.Account+<GetRuleViolations>d__2.MoveNext()
GenerateImage()N/A233N/A210151RanchBuddy.Core.Services.Impl.Captcha.GenerateImage()
Resize(HttpPostedFileBase,String,String,String,List<ImageService+FileSizeAndIdentifier>)N/A190N/A1435101RanchBuddy.Core.Services.Impl.ImageService.Resize(HttpPostedFileBase,String,String,String,List<ImageService+FileSizeAndIdentifier>)
Encrypt(String,String,String)N/A73N/A21394RanchBuddy.Core.Services.Impl.Cryptography.Encrypt(String,String,String)
Decrypt(String,String,String)N/A73N/A21394RanchBuddy.Core.Services.Impl.Cryptography.Decrypt(String,String,String)
SendContactUsEmail(String,String,String,String,String,String)N/A88N/A10631RanchBuddy.Core.Services.Impl.EmailService.SendContactUsEmail(String,String,String,String,String,String)
SaveAccount(Account)N/A159N/A621101RanchBuddy.Core.DataAccess.Impl.AccountRepository.SaveAccount(Account)
GetCompanyAccountTypes(Int32)N/A114N/A42191RanchBuddy.Core.DataAccess.Impl.CompanyAccountTypeRepository.GetCompanyAccountTypes(Int32)
GetCompanies(Int32,Int32,Int32,Int32)N/A175N/A524121RanchBuddy.Core.DataAccess.Impl.CompanyRepository.GetCompanies(Int32,Int32,Int32,Int32)
GetCompanyByID(Int32)N/A91N/A42191RanchBuddy.Core.DataAccess.Impl.CompanyRepository.GetCompanyByID(Int32)
Sum:0144007515249116
Average:014407.51.52.49.11.6
Minimum:073010031
Maximum:024403536154
Standard deviation:061.76609.82090.80622582.013.14481.2
Variance:03815096.450.654.049.891.44


WARNING: The following CQL constraint is not satisfied. 5 methods on 1071 tested match the condition. --> Group {Code Quality}
// <Name>Methods too big (NbILInstructions)</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE NbILInstructions > 200 ORDER BY NbILInstructions DESC
// METHODS WHERE NbILInstructions > 200 are extremely complex and 
// should be split in smaller methods 
// (except if they are automatically generated by a tool).
// See the definition of the NbILInstructions metric here http://www.ndepend.com/Metrics.aspx#NbILInstructions
methods# IL instructionsFull Name
Register(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)377RanchBuddy.Web.Controllers.AccountController.Register(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)
GetMvcSiteMapNodeFromXMLElement(XElement)339RanchBuddy.Core.Providers.Impl.MvcSitemapProvider.GetMvcSiteMapNodeFromXMLElement(XElement)
MoveNext()244RanchBuddy.Core.Domain.Account+<GetRuleViolations>d__2.MoveNext()
GenerateImage()233RanchBuddy.Core.Services.Impl.Captcha.GenerateImage()
GetSecondaryNavNodesForCurrentNode()207RanchBuddy.Web.Services.Navigation.GetSecondaryNavNodesForCurrentNode()
Sum:1400
Average:280
Minimum:207
Maximum:377
Standard deviation:65.915
Variance:4344.8


WARNING: The following CQL constraint is not satisfied. 1 methods on 1071 tested match the condition. --> Group {Code Quality}
// <Name>Methods too complex (ILNestingDepth)</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE ILNestingDepth > 4 ORDER BY ILNestingDepth DESC
// METHODS WHERE ILNestingDepth > 4 are hard to understand and maintain. 
// METHODS WHERE ILNestingDepth > 8 is higher than 8 are extremely complex and should be split in smaller methods 
// (except if they are automatically generated by a tool). 
// See the definition of the NbILInstructions metric here http://www.NDepend.com/Metrics.aspx#ILNestingDepth
methodsIL Nesting DepthFull Name
GetMvcSiteMapNodeFromXMLElement(XElement)5RanchBuddy.Core.Providers.Impl.MvcSitemapProvider.GetMvcSiteMapNodeFromXMLElement(XElement)
Sum:5
Average:5
Minimum:5
Maximum:5
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 4 methods on 1071 tested match the condition. --> Group {Code Quality}
// <Name>Methods with too many parameters (NbParameters)</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE NbParameters > 5 ORDER BY NbParameters DESC
// 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
methods# ParametersFull Name
Register(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)18RanchBuddy.Web.Controllers.AccountController.Register(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)
ContactUs(String,String,String,String,String,String)6RanchBuddy.Web.Controllers.HomeController.ContactUs(String,String,String,String,String,String)
SendContactUsEmail(String,String,String,String,String,String)6RanchBuddy.Core.Services.Impl.EmailService.SendContactUsEmail(String,String,String,String,String,String)
TextBoxExWithHelp(HtmlHelper,String,String,Page,Int32,Int32)6RanchBuddy.Web.Services.Extensions.TextBoxExWithHelp(HtmlHelper,String,String,Page,Int32,Int32)
Sum:36
Average:9
Minimum:6
Maximum:18
Standard deviation:5.1962
Variance:27


WARNING: The following CQL constraint is not satisfied. 9 types on 299 tested match the condition. --> Group {Code Quality \ Type Metrics}
// <Name>Types with too many methods</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE NbMethods > 20 ORDER BY NbMethods DESC
// TYPES WHERE NbMethods > 20 might be hard to understand and maintain 
// but there might be cases where it is relevant to have a high value for NbMethods. 
// For example, the System.Windows.Forms.DataGridView standard class has more than 1000 methods.
// See the definition of the NbMethods metric here http://www.ndepend.com/Metrics.aspx#NbMethods
types# MethodsFull Name
Account55RanchBuddy.Core.Domain.Account
Company50RanchBuddy.Core.Domain.Company
WebContext47RanchBuddy.Core.Services.Impl.WebContext
IWebContext40RanchBuddy.Core.Services.IWebContext
PostalCode39RanchBuddy.Core.Domain.PostalCode
CompanyAccount30RanchBuddy.Core.Domain.CompanyAccount
ConfigurationService27RanchBuddy.Core.Services.Impl.ConfigurationService
HelpMessage22RanchBuddy.Core.Domain.HelpMessage
CompanyAccountType22RanchBuddy.Core.Domain.CompanyAccountType
Sum:332
Average:36.889
Minimum:22
Maximum:55
Standard deviation:11.571
Variance:133.88


WARNING: The following CQL constraint is not satisfied. 2 types on 299 tested match the condition. --> Group {Code Quality \ Type Metrics}
// <Name>Types with too many fields</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE NbFields > 20 AND !IsEnumeration ORDER BY NbFields DESC
// TYPES WHERE NbFields > 20 AND !IsEnumeration might be hard to understand and maintain 
// but there might be cases where it is relevant to have a high value for NbFields. 
// For example, the System.Windows.Forms.Control standard class has more than 200 fields. 
// The value of the metric NbFields might be a better indicator of complex type.
// See the definition of the NbFields metric here http://www.ndepend.com/Metrics.aspx#NbFields
types# FieldsFull Name
Account24RanchBuddy.Core.Domain.Account
Company23RanchBuddy.Core.Domain.Company
Sum:47
Average:23.5
Minimum:23
Maximum:24
Standard deviation:0.5
Variance:0.25


WARNING: The following CQL constraint is not satisfied. 4 types on 299 tested match the condition. --> Group {Code Quality \ Type Metrics}
// <Name>Types with poor cohesion (LCOM)</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE LCOM > 0.8 AND NbFields > 10 AND NbMethods >10 ORDER BY LCOM DESC
// 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
typesLack of Cohesion Of Methods (LCOM)# Fields# MethodsFull Name
Account0.96126482455RanchBuddy.Core.Domain.Account
Company0.95727272350RanchBuddy.Core.Domain.Company
PostalCode0.9487181939RanchBuddy.Core.Domain.PostalCode
CompanyAccount0.90512821430RanchBuddy.Core.Domain.CompanyAccount
Sum:3.772480174
Average:0.9430962043.5
Minimum:0.90512821430
Maximum:0.96126482455
Standard deviation:0.022381513.9379.7082
Variance:0.000500932115.594.25


WARNING: The following CQL constraint is not satisfied. 3 types on 299 tested match the condition. --> Group {Code Quality \ Type Metrics}
// <Name>Types with poor cohesion (LCOMHS)</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE LCOMHS > 0.95 AND NbFields > 10 AND NbMethods >10 ORDER BY LCOMHS DESC
// TYPES WHERE LCOMHS > 1.0 AND NbFields > 10 AND NbMethods >10 should be avoided. 
// Note that this constraint is stronger than the constraint 
// TYPES WHERE LCOM > 0.8 AND NbFields > 10 AND NbMethods >10. 
// See the definition of the LCOMHS metric here http://www.ndepend.com/Metrics.aspx#LCOMHS
typesLCOM Henderson-Sellers (LCOMHS)# Fields# MethodsFull Name
Account0.9790662455RanchBuddy.Core.Domain.Account
Company0.97680892350RanchBuddy.Core.Domain.Company
PostalCode0.97368421939RanchBuddy.Core.Domain.PostalCode
Sum:2.929666144
Average:0.97651982248
Minimum:0.97368421939
Maximum:0.9790662455
Standard deviation:0.0021885682.16026.6833
Variance:4.789828E-064.666744.667


WARNING: The following CQL constraint is not satisfied. 1 assemblies on 13 tested match the condition. --> Group {Design}
// <Name>Assembly should not contain namespaces dependency cycles</Name>
WARN IF Count > 0 IN SELECT TOP 10 ASSEMBLIES WHERE ContainsNamespaceDependencyCycle
// Dependency cycles between namespaces must be avoided 
// in order to have a levelized and comprehensive design.
// More info available on the screencast 'Reduce the complexity' http://s3.amazonaws.com/NDependOnlineDemos/NDependReducingComplexity_viewlet_swf.html
// You can also read this article http://www.theserverside.net/tt/articles/showarticle.tss?id=ControllingDependencies
assemblies# IL instructionsFull Name
RanchBuddy.Core11692RanchBuddy.Core
Sum:11692
Average:11692
Minimum:11692
Maximum:11692
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 10 types on 299 tested match the condition. --> Group {Design}
// <Name>A stateless type might be turned into a static type</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE 
  
SizeOfInst ==0 AND 
  
NbInterfacesImplemented == 0 AND // To be accurate, this constraint doesn't take 
                                   // account of types that implement some interfaces.
  !IsStatic AND 
  
!IsGeneric AND 
  
!IsInterface 
// It indicates stateless types that might eventually be turned into static classes.
// See the definition of the SizeOfInst metric here http://www.ndepend.com/Metrics.aspx#SizeOfInst
typesSize of instance# interfaces implementedFull Name
ConfigurationService00RanchBuddy.Core.Services.Impl.ConfigurationService
CompanyTypeService00RanchBuddy.Core.Services.Impl.CompanyTypeService
ImageService00RanchBuddy.Core.Services.Impl.ImageService
ValidationService00RanchBuddy.Core.Services.Impl.ValidationService
CompanyService00RanchBuddy.Core.Services.Impl.CompanyService
CompanyAccountTypeService00RanchBuddy.Core.Services.Impl.CompanyAccountTypeService
Cryptography00RanchBuddy.Core.Services.Impl.Cryptography
WebCookie00RanchBuddy.Core.Services.Impl.WebCookie
LoggingService00RanchBuddy.Core.Services.Impl.LoggingService
HelpMessageService00RanchBuddy.Core.Services.Impl.HelpMessageService
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00


WARNING: The following CQL constraint is not satisfied. 10 types on 299 tested match the condition. --> Group {Design}
// <Name>Class with no descendant should be sealed if possible</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE 
  
IsClass AND 
  
NbChildren ==0 AND 
  
!IsSealed AND 
  
!IsStatic 
  
// AND !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.
  ORDER BY NbLinesOfCode
types# Children# lines of code (LOC)Full Name
RepositoryStatus0N/ARanchBuddy.Core.DataAccess.Impl.RepositoryStatus
TermsRepository0N/ARanchBuddy.Core.DataAccess.Impl.TermsRepository
CompanyTypeRepository0N/ARanchBuddy.Core.DataAccess.Impl.CompanyTypeRepository
CompanyRepository0N/ARanchBuddy.Core.DataAccess.Impl.CompanyRepository
CompanyAccountTypeRepository0N/ARanchBuddy.Core.DataAccess.Impl.CompanyAccountTypeRepository
Connection0N/ARanchBuddy.Core.DataAccess.Impl.Connection
EmailService0N/ARanchBuddy.Core.Services.Impl.EmailService
HelpMessageService0N/ARanchBuddy.Core.Services.Impl.HelpMessageService
LoggingService0N/ARanchBuddy.Core.Services.Impl.LoggingService
HelpMessageRepository0N/ARanchBuddy.Core.DataAccess.Impl.HelpMessageRepository
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00


WARNING: The following CQL constraint is not satisfied. 10 types on 299 tested match the condition. --> Group {Design}
// <Name>Classes that are candidate to be turned into Structures</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE 
  
IsClass AND
  
SizeOfInst <= 16 AND    // Structure instance must not be too big, else it degrades performance.
  NbChildren == 0 AND     // Must not have children
  DepthOfInheritance == 1 // Must derive directly from System.Object
  // AND IsSealed    : You might want to add this condition to restreint the set.
  // AND IsImmutable : Structures should be immutable type.
  // AND !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.
typesSize of instance# ChildrenDepth of inheritanceFull Name
ZipCodesByRadiusResult401RanchBuddy.Core.Domain.ZipCodesByRadiusResult
RuleViolation801RanchBuddy.Core.Domain.RuleViolation
ConfigurationService001RanchBuddy.Core.Services.Impl.ConfigurationService
CompanyTypeService001RanchBuddy.Core.Services.Impl.CompanyTypeService
Cache1201RanchBuddy.Core.Services.Impl.Cache
WebContext001RanchBuddy.Core.Services.Impl.WebContext
ImageService001RanchBuddy.Core.Services.Impl.ImageService
ValidationService001RanchBuddy.Core.Services.Impl.ValidationService
CompanyService001RanchBuddy.Core.Services.Impl.CompanyService
CompanyAccountTypeService001RanchBuddy.Core.Services.Impl.CompanyAccountTypeService
Sum:24010
Average:2.401
Minimum:001
Maximum:1201
Standard deviation:4.079200
Variance:16.6400


WARNING: The following CQL constraint is not satisfied. 6 namespaces on 47 tested match the condition. --> Group {Design}
// <Name>Avoid namespaces with few types</Name>
WARN IF Count > 0 IN SELECT TOP 10 NAMESPACES WHERE NbTypes < 5 ORDER BY NbTypes ASC 

// 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
namespaces# TypesFull Name
RanchBuddy.Core.Services1RanchBuddy.Core.Services
RanchBuddy.Core.Attributes1RanchBuddy.Core.Attributes
RanchBuddy.Core.Properties1RanchBuddy.Core.Properties
RanchBuddy.Core.Providers.Impl2RanchBuddy.Core.Providers.Impl
RanchBuddy.Web3RanchBuddy.Web
4
Sum:12
Average:2
Minimum:1
Maximum:4
Standard deviation:1.1547
Variance:1.3333


WARNING: The following CQL constraint is not satisfied. 5 types on 299 tested match the condition. --> Group {Design}
// <Name>Nested types should not be visible</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE IsNested AND !IsPrivate AND !IsInFrameworkAssembly 

// 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.
types# IL instructionsFull Name
ConfigurationService+MasterTemplateTypes0RanchBuddy.Core.Services.Impl.ConfigurationService+MasterTemplateTypes
ConfigurationService+ThemeTypes0RanchBuddy.Core.Services.Impl.ConfigurationService+ThemeTypes
ImageService+FileSizeAndIdentifier20RanchBuddy.Core.Services.Impl.ImageService+FileSizeAndIdentifier
Status+StatusTypes0RanchBuddy.Core.Services.Impl.Status+StatusTypes
MvcSitemapProvider+MvcSiteMapNode92RanchBuddy.Core.Providers.Impl.MvcSitemapProvider+MvcSiteMapNode
Sum:112
Average:22.4
Minimum:0
Maximum:92
Standard deviation:35.652
Variance:1271


WARNING: The following CQL constraint is not satisfied. 1 namespaces on 47 tested match the condition. --> Group {Design}
// <Name>Declare types in namespaces</Name>
WARN IF Count > 0 IN SELECT NAMESPACES WHERE NameIs "" AND !IsInFrameworkAssembly 

// 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.
namespaces# IL instructionsFull Name
408
Sum:408
Average:408
Minimum:408
Maximum:408
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 10 methods on 1071 tested match the condition. --> Group {Design}
// <Name>Empty static constructor can be discarded</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE IsClassConstructor AND NbLinesOfCode == 0
methods# lines of code (LOC)Full Name
.cctor()N/ARanchBuddy.Core.Domain.Account..cctor()
.cctor()N/ARanchBuddy.Core.Domain.RanchBuddyDataContext..cctor()
.cctor()N/ARanchBuddy.Core.Domain.Company..cctor()
.cctor()N/ARanchBuddy.Core.Domain.CompanyType..cctor()
.cctor()N/ARanchBuddy.Core.Domain.Term..cctor()
.cctor()N/ARanchBuddy.Core.Domain.CompanyAccountType..cctor()
.cctor()N/ARanchBuddy.Core.Domain.CompanyAccount..cctor()
.cctor()N/ARanchBuddy.Core.Domain.HelpMessage..cctor()
.cctor()N/ARanchBuddy.Core.Domain.HelpMessageType..cctor()
.cctor()N/ARanchBuddy.Core.Properties.Settings..cctor()
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 1 assemblies on 13 tested match the condition. --> Group {Design}
// <Name>Assemblies with poor cohesion (RelationalCohesion)</Name>
WARN IF Count > 0 IN SELECT TOP 10 ASSEMBLIES WHERE RelationalCohesion < 1.5 OR RelationalCohesion > 4.0

// 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
assembliesRelational cohesionFull Name
RanchBuddy.Web0.8888889RanchBuddy.Web
Sum:0.8888889
Average:0.8888889
Minimum:0.8888889
Maximum:0.8888889
Standard deviation:NaN
Variance:-5.886879E-09


WARNING: The following CQL constraint is not satisfied. 8 types on 299 tested match the condition. --> Group {Design \ Performance}
// <Name>Instances size shouldn't be too big (SizeOfInst)</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE SizeOfInst > 64 ORDER BY SizeOfInst DESC
// 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).
// See the definition of the SizeOfInst metric here http://www.ndepend.com/Metrics.aspx#SizeOfInst
typesSize of instanceFull Name
Captcha366RanchBuddy.Web.Captcha
_Default358RanchBuddy.Web._Default
MvcApplication105RanchBuddy.Web.MvcApplication
Account104RanchBuddy.Core.Domain.Account
Company99RanchBuddy.Core.Domain.Company
MvcSitemapProvider76RanchBuddy.Core.Providers.Impl.MvcSitemapProvider
PostalCode71RanchBuddy.Core.Domain.PostalCode
MvcSitemapProvider+MvcSiteMapNode68RanchBuddy.Core.Providers.Impl.MvcSitemapProvider+MvcSiteMapNode
Sum:1247
Average:155.88
Minimum:68
Maximum:366
Standard deviation:119.81
Variance:14353.4


WARNING: The following CQL constraint is not satisfied. 18 types on 299 tested match the condition. --> Group {Design \ Performance}
// <Name>Boxing/unboxing should be avoided (Type)</Name>
WARN IF Percentage > 5 IN SELECT TYPES WHERE IsUsingBoxing OR IsUsingUnboxing 
// Thanks to generics, boxing and unboxing should be rare.
types# IL instructionsFull Name
Sum:4833
Average:268.5
Minimum:19
Maximum:959
Standard deviation:290.79
Variance:84561.6


WARNING: The following CQL constraint is not satisfied. 10 methods on 724 tested match the condition. --> Group {Unused Code / Dead Code}
// <Name>Potentially unused methods</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE 
 
MethodCa == 0 AND            // Ca=0 -> No Afferent Coupling -> The method is not used in the context of this application.
 !IsPublic AND                // Public methods might be used by client applications of your assemblies.
 !IsEntryPoint AND            // Main() method is not used by-design.
 !IsExplicitInterfaceImpl AND // The IL code never explicitely calls explicit interface methods implementation.
 !IsClassConstructor AND      // The IL code never explicitely calls class constructors.
 !IsFinalizer                 // The IL code never explicitely calls finalizers.
methodsAfferent coupling at method level (MethodCa)Full Name
MoveNext()0RanchBuddy.Core.Domain.Account+<GetRuleViolations>d__2.MoveNext()
SetDimensions(Int32,Int32)0RanchBuddy.Core.Services.Impl.Captcha.SetDimensions(Int32,Int32)
SetFamilyName(String)0RanchBuddy.Core.Services.Impl.Captcha.SetFamilyName(String)
UpdateInSession(String,Object)0RanchBuddy.Core.Services.Impl.WebContext.UpdateInSession(String,Object)
VerifyMD5Hash(String,String)0RanchBuddy.Core.Services.Impl.Cryptography.VerifyMD5Hash(String,String)
SetCookie(String,Int32)0RanchBuddy.Core.Services.Impl.WebCookie.SetCookie(String,Int32)
GetRootNodeCore()0RanchBuddy.Core.Providers.Impl.MvcSitemapProvider.GetRootNodeCore()
Clear()0RanchBuddy.Core.Providers.Impl.MvcSitemapProvider.Clear()
Page_Load(Object,EventArgs)0RanchBuddy.Web.Captcha.Page_Load(Object,EventArgs)
Application_Start()0RanchBuddy.Web.MvcApplication.Application_Start()
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 1 fields on 210 tested match the condition. --> Group {Unused Code / Dead Code}
// <Name>Potentially unused fields</Name>
WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE 
 
FieldCa == 0 AND  // Ca=0 -> No Afferent Coupling -> The field is not used in the context of this application.
 !IsPublic AND     // Although not recommended, public fields might be used by client applications of your assemblies.
 !IsLiteral AND    // The IL code never explicitely uses literal fields.
 !IsEnumValue AND  // The IL code never explicitely uses enumeration value.
 !NameIs "value__" // Field named 'value__' are relative to enumerations and the IL code never explicitely uses them.
fieldsAfferent coupling at field level (FieldCa)Full Name
form10RanchBuddy.Web.Captcha.form1
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 1 fields on 222 tested match the condition. --> Group {Encapsulation}
// <Name>Fields should be declared as private</Name>
WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE 
 
!IsPrivate AND 
 
// These conditions filter cases where fields doesn't represent state that should be encapsulated. 
 !IsInFrameworkAssembly AND 
 
!IsGeneratedByCompiler AND 
 
!IsSpecialName AND 
 
!IsInitOnly AND 
 
!IsLiteral AND 
 
!IsEnumValue
fieldsSize of instanceFull Name
form14RanchBuddy.Web.Captcha.form1
Sum:4
Average:4
Minimum:4
Maximum:4
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 10 methods on 1071 tested match the condition. --> Group {Encapsulation \ Methods Optimal Encapsulation}
// <Name>Methods that could be declared as 'internal' in C#,  'Friend' in VB.NET</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE CouldBeInternal
methods# IL instructionsFull Name
.ctor(String)7RanchBuddy.Core.Domain.ValidationException..ctor(String)
get_Username()7RanchBuddy.Core.Domain.Account.get_Username()
get_Password()7RanchBuddy.Core.Domain.Account.get_Password()
get_TermID()7RanchBuddy.Core.Domain.Account.get_TermID()
get_Birthdate()7RanchBuddy.Core.Domain.Account.get_Birthdate()
get_CompanyAccounts()7RanchBuddy.Core.Domain.Account.get_CompanyAccounts()
get_Accounts()7RanchBuddy.Core.Domain.RanchBuddyDataContext.get_Accounts()
get_Companies()7RanchBuddy.Core.Domain.RanchBuddyDataContext.get_Companies()
get_CompanyTypes()7RanchBuddy.Core.Domain.RanchBuddyDataContext.get_CompanyTypes()
get_Terms()7RanchBuddy.Core.Domain.RanchBuddyDataContext.get_Terms()
Sum:70
Average:7
Minimum:7
Maximum:7
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 10 methods on 1071 tested match the condition. --> Group {Encapsulation \ Methods Optimal Encapsulation}
// <Name>Methods that could be declared as 'private' in C#,  'Private' in VB.NET</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE CouldBePrivate
methods# IL instructionsFull Name
set_AccountID(Int32)21RanchBuddy.Core.Domain.Account.set_AccountID(Int32)
get_Timestamp()7RanchBuddy.Core.Domain.Account.get_Timestamp()
set_Timestamp(Binary)23RanchBuddy.Core.Domain.Account.set_Timestamp(Binary)
get_CreateDate()7RanchBuddy.Core.Domain.Account.get_CreateDate()
get_UpdateDate()7RanchBuddy.Core.Domain.Account.get_UpdateDate()
get_SecretQuestion()7RanchBuddy.Core.Domain.Account.get_SecretQuestion()
get_SecretAnswer()7RanchBuddy.Core.Domain.Account.get_SecretAnswer()
get_FirstName()7RanchBuddy.Core.Domain.Account.get_FirstName()
get_LastName()7RanchBuddy.Core.Domain.Account.get_LastName()
get_HomePhone()7RanchBuddy.Core.Domain.Account.get_HomePhone()
Sum:100
Average:10
Minimum:7
Maximum:23
Standard deviation:6.0166
Variance:36.2


WARNING: The following CQL constraint is not satisfied. 10 types on 299 tested match the condition. --> Group {Encapsulation \ Types Optimal Encapsulation}
// <Name>Types that could be declared as internal</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE CouldBeInternal
types# IL instructionsFull Name
IValidate0RanchBuddy.Core.Domain.IValidate
ValidationException7RanchBuddy.Core.Domain.ValidationException
RanchBuddyDataContext134RanchBuddy.Core.Domain.RanchBuddyDataContext
CompanyAccount587RanchBuddy.Core.Domain.CompanyAccount
HelpMessageType254RanchBuddy.Core.Domain.HelpMessageType
PostalCode451RanchBuddy.Core.Domain.PostalCode
ZipCodesByRadiusResult29RanchBuddy.Core.Domain.ZipCodesByRadiusResult
IWebContext0RanchBuddy.Core.Services.IWebContext
CompanyTypeService43RanchBuddy.Core.Services.Impl.CompanyTypeService
Cache167RanchBuddy.Core.Services.Impl.Cache
Sum:1672
Average:167.2
Minimum:0
Maximum:587
Standard deviation:195.32
Variance:38151.2


WARNING: The following CQL constraint is not satisfied. 1 types on 299 tested match the condition. --> Group {Encapsulation \ Types Optimal Encapsulation}
// <Name>Types that could be declared as 'private' in C#,  'Private' in VB.NET</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE CouldBePrivate
types# IL instructionsFull Name
ImageService+FileSizeAndIdentifier20RanchBuddy.Core.Services.Impl.ImageService+FileSizeAndIdentifier
Sum:20
Average:20
Minimum:20
Maximum:20
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 1 fields on 222 tested match the condition. --> Group {Encapsulation \ Fields Optimal Encapsulation}
// <Name>Fields that could be declared as 'private' in C#,  'Private' in VB.NET</Name>
WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE CouldBePrivate
fieldsSize of instanceFull Name
form14RanchBuddy.Web.Captcha.form1
Sum:4
Average:4
Minimum:4
Maximum:4
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 30 fields on 222 tested match the condition. --> Group {Purity / Immutability / Side-Effects}
// <Name>Fields should be marked as ReadOnly when possible</Name>
WARN IF Count > 0 IN SELECT FIELDS WHERE IsImmutable AND !IsInitOnly

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



fieldsSize of instanceFull Name
Sum:100
Average:3.3333
Minimum:0
Maximum:8
Standard deviation:2.7487
Variance:7.5556


WARNING: The following CQL constraint is not satisfied. 2 types on 299 tested match the condition. --> Group {Purity / Immutability / Side-Effects}
// <Name>Structures should be immutable</Name>
WARN IF Count > 0 IN SELECT TYPES WHERE IsStructure AND !IsImmutable AND !IsInFrameworkAssembly

// 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
types# IL instructionsFull Name
Sum:40
Average:20
Minimum:20
Maximum:20
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 10 fields on 222 tested match the condition. --> Group {Naming Conventions}
// <Name>Instance fields should be prefixed with a 'm_'</Name>
WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE 
  
!NameLike "^m_" AND 
  
!IsStatic AND 
  
!IsLiteral AND 
  
!IsGeneratedByCompiler  AND 
  
!IsSpecialName AND 
  
!IsEventDelegateObject 

// This naming convention provokes debate.
// Don't hesitate to customize the regex of NameLike to your preference.
fieldsSize of instanceFull Name
_AccountID4RanchBuddy.Core.Domain.Account._AccountID
_Timestamp4RanchBuddy.Core.Domain.Account._Timestamp
_CreateDate8RanchBuddy.Core.Domain.Account._CreateDate
_UpdateDate8RanchBuddy.Core.Domain.Account._UpdateDate
_Username4RanchBuddy.Core.Domain.Account._Username
_Password4RanchBuddy.Core.Domain.Account._Password
_SecretQuestion4RanchBuddy.Core.Domain.Account._SecretQuestion
_SecretAnswer4RanchBuddy.Core.Domain.Account._SecretAnswer
_FirstName4RanchBuddy.Core.Domain.Account._FirstName
_LastName4RanchBuddy.Core.Domain.Account._LastName
Sum:48
Average:4.8
Minimum:4
Maximum:8
Standard deviation:1.6
Variance:2.56


WARNING: The following CQL constraint is not satisfied. 10 fields on 222 tested match the condition. --> Group {Naming Conventions}
// <Name>Static fields should be prefixed with a 's_'</Name>
WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE 
  
!NameLike "^s_" AND 
  
IsStatic AND 
  
!IsLiteral AND 
  
!IsGeneratedByCompiler AND 
  
!IsSpecialName AND 
  
!IsEventDelegateObject  

// This naming convention provokes debate.
// Don't hesitate to customize the regex of NameLike to your preference.
fieldsSize of instanceFull Name
emptyChangingEventArgs0RanchBuddy.Core.Domain.Account.emptyChangingEventArgs
mappingSource0RanchBuddy.Core.Domain.RanchBuddyDataContext.mappingSource
emptyChangingEventArgs0RanchBuddy.Core.Domain.Company.emptyChangingEventArgs
emptyChangingEventArgs0RanchBuddy.Core.Domain.CompanyType.emptyChangingEventArgs
emptyChangingEventArgs0RanchBuddy.Core.Domain.Term.emptyChangingEventArgs
emptyChangingEventArgs0RanchBuddy.Core.Domain.CompanyAccountType.emptyChangingEventArgs
emptyChangingEventArgs0RanchBuddy.Core.Domain.CompanyAccount.emptyChangingEventArgs
emptyChangingEventArgs0RanchBuddy.Core.Domain.HelpMessage.emptyChangingEventArgs
emptyChangingEventArgs0RanchBuddy.Core.Domain.HelpMessageType.emptyChangingEventArgs
defaultInstance0RanchBuddy.Core.Properties.Settings.defaultInstance
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 1 types on 299 tested match the condition. --> Group {Naming Conventions}
// <Name>Types name should begin with an Upper character</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE 
 
!NameLike "^[A-Z]" AND     // The name of a type should begin with an Upper letter.
 !IsGeneratedByCompiler AND // Except if it is generated by compiler or ...
 !IsInFrameworkAssembly     // ... if it is declared in a framework assembly.
types# IL instructionsFull Name
_Default18RanchBuddy.Web._Default
Sum:18
Average:18
Minimum:18
Maximum:18
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 8 methods on 1071 tested match the condition. --> Group {Naming Conventions}
// <Name>Methods name should begin with an Upper character</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE 
 
!NameLike "^[A-Z]" AND 
 
!(IsClassConstructor OR IsConstructor OR 
 
IsPropertyGetter  OR IsPropertySetter OR
 
IsIndexerGetter OR IsIndexerSetter OR
 
IsEventAdder OR IsEventRemover OR
 
IsOperator) AND !IsGeneratedByCompiler AND !IsInFrameworkAssembly
// The name of a regular method should begin with an Upper letter.
methods# IL instructionsFull Name
attach_CompanyAccounts(CompanyAccount)9RanchBuddy.Core.Domain.Account.attach_CompanyAccounts(CompanyAccount)
detach_CompanyAccounts(CompanyAccount)9RanchBuddy.Core.Domain.Account.detach_CompanyAccounts(CompanyAccount)
attach_CompanyAccounts(CompanyAccount)9RanchBuddy.Core.Domain.Company.attach_CompanyAccounts(CompanyAccount)
detach_CompanyAccounts(CompanyAccount)9RanchBuddy.Core.Domain.Company.detach_CompanyAccounts(CompanyAccount)
attach_CompanyAccounts(CompanyAccount)9RanchBuddy.Core.Domain.CompanyAccountType.attach_CompanyAccounts(CompanyAccount)
detach_CompanyAccounts(CompanyAccount)9RanchBuddy.Core.Domain.CompanyAccountType.detach_CompanyAccounts(CompanyAccount)
attach_HelpMessages(HelpMessage)9RanchBuddy.Core.Domain.HelpMessageType.attach_HelpMessages(HelpMessage)
detach_HelpMessages(HelpMessage)9RanchBuddy.Core.Domain.HelpMessageType.detach_HelpMessages(HelpMessage)
Sum:72
Average:9
Minimum:9
Maximum:9
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 2 methods on 1071 tested match the condition. --> Group {Naming Conventions \ Name too long}
// <Name>Avoid methods with name too long</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS 
  
WHERE NameLike "^[^\<\(]{35,}.*$" AND 
        
!IsExplicitInterfaceImpl AND !IsInFrameworkAssembly 
// 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.
methods# IL instructionsFull Name
GetRegExUsernameComplexityValidation()23RanchBuddy.Core.Services.Impl.ConfigurationService.GetRegExUsernameComplexityValidation()
GetRegExPasswordComplexityValidation()23RanchBuddy.Core.Services.Impl.ConfigurationService.GetRegExPasswordComplexityValidation()
Sum:46
Average:23
Minimum:23
Maximum:23
Standard deviation:0
Variance:0


WARNING: The following CQL constraint is not satisfied. 2 assemblies on 13 tested match the condition. --> Group {.NET Framework Usage \ System}
// <Name>Mark assemblies with CLSCompliant</Name>
WARN IF Count > 0 IN SELECT ASSEMBLIES WHERE 
  
!HasAttribute "OPTIONAL:System.CLSCompliantAttribute" AND
  
!IsFrameworkAssembly 

// The Common Language Specification (CLS) defines naming restrictions, data types, 
// and rules to which assemblies must conform if they are to be used across programming languages.
// Good design dictates that all assemblies explicitly indicate CLS compliance with 
// CLSCompliantAttribute. If the attribute is not present on an assembly, the assembly is not compliant.
assemblies# IL instructionsFull Name
Sum:15385
Average:7692.5
Minimum:3693
Maximum:11692
Standard deviation:3999.5
Variance:1.5996E+07


WARNING: The following CQL constraint is not satisfied. 3 methods on 1071 tested match the condition. --> Group {.NET Framework Usage \ System}
// <Name>Do not raise too general exception types</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE 
  
// The following exception types are too general to provide sufficient information to the user:
  ( ( DepthOfCreateA "OPTIONAL:System.Exception" == 1 OR 
      
DepthOfCreateA "OPTIONAL:System.ApplicationException" == 1 OR 
      
DepthOfCreateA "OPTIONAL:System.SystemException" == 1 )
    
// Test for non-constructor, else this constraint would warn 
    // on ctor of classes that derive from these exception types.
    AND !IsConstructor )
methodsDepthOfCreateA "OPTIONAL:System.Exception"DepthOfCreateA "OPTIONAL:System.ApplicationException"DepthOfCreateA "OPTIONAL:System.SystemException"Full Name
Sum:300
Average:100
Minimum:100
Maximum:100
Standard deviation:000
Variance:000


WARNING: The following CQL constraint is not satisfied. 3 methods on 1071 tested match the condition. --> Group {.NET Framework Usage \ System.Collection}
// <Name>Don't use .NET 1.x HashTable and ArrayList</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE

 
// Prefer using the class System.Collections.Generic.Dictionary<K,V> over System.Collections.HashTable.
 CreateA "OPTIONAL:System.Collections.HashTable" OR

 
// Prefer using the class System.Collections.Generic.List<T> over System.Collections.ArrayList.
 CreateA "OPTIONAL:System.Collections.ArrayList"

// You can be forced to use HashTable or ArrayList 
// because if you are using tier code that requires working with these classes
// or because you are coding with .NET 1.x.
methodsDepthOfCreateA "OPTIONAL:System.Collections.HashTable"DepthOfCreateA "OPTIONAL:System.Collections.ArrayList"Full Name
Sum:01
Average:00.3333333
Minimum:00
Maximum:01
Standard deviation:00.4714045
Variance:00.2222222




Types Metrics

rank: TypeRank (based on Google PageRank algo)
lcom/lcom HS: Lack of Cohesion Of Methods of a class (HS means Henderson-Sellers formula)
CC: Cyclomatic Complexity computed on source code
ILCC: Cyclomatic Complexity computed on IL code
Ca: Afferent Coupling
Ce: Efferent Coupling
ABC: Association Between Classes
NOC: Number Of Children
DIT: Depth in Inheritance Tree

A pink cell means that its value belongs to the 15% highest values for its metric

Typerank# ILInst# lines of code# lines of comment% commentlcomlcom(HS)CCILCCCaCeABC# Instance Methods# Static Methods# Prop# FldNOCDITNamespace
Account4.13813---0.960.98-90143022541222401RanchBuddy.Core.Domain
ConfigurationService3.6575---00-551313121261001RanchBuddy.Core.Services.Impl
Status2.3578---0.730.8-119851101411RanchBuddy.Core.Services.Impl
RuleViolation2.0744---0.670.8-6741602201RanchBuddy.Core.Domain
Status+StatusTypes1.74--------940------RanchBuddy.Core.Services.Impl
Company1.46733---0.960.98-7762417491202301RanchBuddy.Core.Domain
ConfigurationService+ThemeTypes1.26--------340------RanchBuddy.Core.Services.Impl
RanchBuddyDataContext1.21134---00-1683081519102RanchBuddy.Core.Domain
HelpMessage1.19365---0.880.93-415222121171001RanchBuddy.Core.Domain
RepositoryStatus1.163---00-1831100002RanchBuddy.Core.DataAccess.Impl
ConfigurationService+MasterTemplateTypes1.13--------240------RanchBuddy.Core.Services.Impl
HelpMessageService1.0588---00-8689120001RanchBuddy.Core.Services.Impl
WebContext1.03904---00-1166183047032001RanchBuddy.Core.Services.Impl
Cache0.92167---0.590.65-19218241100201RanchBuddy.Core.Services.Impl
LoggingType0.84--------340------RanchBuddy.Core.Services.Impl
MyViewPageHelper0.8322---00-4263110001RanchBuddy.Web.Services
CompanyAccountType0.82299---0.890.93-35523172116901RanchBuddy.Core.Domain
HelpMessageRepository0.8147---00-823021120001RanchBuddy.Core.DataAccess.Impl
CompanyAccount0.77587---0.910.94-6142322291111401RanchBuddy.Core.Domain
CompanyType0.76213---0.850.91-26417131514701RanchBuddy.Core.Domain
IWebContext0.75--------280400310--RanchBuddy.Core.Services
Connection0.7518---00-2774200001RanchBuddy.Core.DataAccess.Impl
Extensions0.63648---00-24327240140001RanchBuddy.Web.Services
Cryptography0.59485---00-20328361110001RanchBuddy.Core.Services.Impl
CompanyTypeRepository0.54112---00-723322300001RanchBuddy.Core.DataAccess.Impl
AccountRepository0.52627---00-3035052800101RanchBuddy.Core.DataAccess.Impl
MvcSitemapProvider+MvcSiteMapNode0.4992---0.880.94-173711708802RanchBuddy.Core.Providers.Impl
EmailService0.47208---00-821426150001RanchBuddy.Core.Services.Impl
CompanyRepository0.46467---00-2124954510101RanchBuddy.Core.DataAccess.Impl
Term0.45195---0.850.91-22316111514701RanchBuddy.Core.Domain
HelpMessageType0.43254---0.880.92-30223171915801RanchBuddy.Core.Domain
CompanyAccountTypeRepository0.42117---00-513929200001RanchBuddy.Core.DataAccess.Impl
ValidationException0.417---00-1241100002RanchBuddy.Core.Domain
<>f__AnonymousType2<<controller>j__TPar,<action>j__TPar,<id>j__TPar>0.4137---0.290.33-91118703301
<>f__AnonymousType3<<controller>j__TPar,<action>j__TPar,<companyName>j__TPar>0.4137---0.290.33-91118703301
PostalCode0.36451---0.950.97-622116390191901RanchBuddy.Core.Domain
IValidate0.35--------1403010--RanchBuddy.Core.Domain
Account+<GetRuleViolations>d__20.35310---0.750.86-4612226800601RanchBuddy.Core.Domain
ValidationService0.3541---00-5268140001RanchBuddy.Core.Services.Impl
ZipCodesByRadiusResult0.3329---0.330.5-4252301101RanchBuddy.Core.Domain
MustBeLoggedInAttribute0.3354---0.330.5-6373210100RanchBuddy.Core.Attributes
WebCookie0.32199---00-17114191102001RanchBuddy.Core.Services.Impl
Captcha0.31410---0.760.81-25133441605601RanchBuddy.Core.Services.Impl
MapPoint0.2920---0.50.67-42504022--RanchBuddy.Core.DataAccess.Impl
ImageService+FileSizeAndIdentifier0.2820---0.50.67-41604022--RanchBuddy.Core.Services.Impl
HomeController0.27190---00-19211111100000RanchBuddy.Web.Controllers
SmartController0.2755---00-42115400020RanchBuddy.Web.Controllers
Settings0.2723---00-41122222103RanchBuddy.Core.Properties
HelpMessageRepository+<>c__DisplayClass00.263---10-1141100101RanchBuddy.Core.DataAccess.Impl
HelpMessageRepository+<>c__DisplayClass20.263---10-1141100101RanchBuddy.Core.DataAccess.Impl
CompanyTypeRepository+<>c__DisplayClass00.243---10-1141100101RanchBuddy.Core.DataAccess.Impl
PostalCodeRepository+<>c__DisplayClass00.243---10-1141100101RanchBuddy.Core.DataAccess.Impl
CompanyAccountTypeRepository+<>c__DisplayClass00.233---10-1141100101RanchBuddy.Core.DataAccess.Impl
TermsRepository0.2252---00-412413110001RanchBuddy.Core.DataAccess.Impl
AccountService0.22450---0.670.73-27116341100301RanchBuddy.Core.Services.Impl
CompanyRepository+<>c__DisplayClass60.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
CompanyRepository+<>c__DisplayClass20.213---10-1151100101RanchBuddy.Core.DataAccess.Impl
CompanyRepository+<>c__DisplayClass40.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
AccountRepository+<>c__DisplayClassa0.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
AccountRepository+<>c__DisplayClass00.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
AccountRepository+<>c__DisplayClass20.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
AccountRepository+<>c__DisplayClass80.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
LoggingService0.21173---00-711419130001RanchBuddy.Core.Services.Impl
AccountRepository+<>c__DisplayClass40.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
AccountRepository+<>c__DisplayClass60.213---10-1141100101RanchBuddy.Core.DataAccess.Impl
CompanyService0.2184---00-911110400001RanchBuddy.Core.Services.Impl
CompanyController+<>c__DisplayClass20.213---10-1141100101RanchBuddy.Web.Controllers
PostalCodeRepository0.2183---00-413223200001RanchBuddy.Core.DataAccess.Impl
CompanyAccountTypeService0.2129---00-31107200001RanchBuddy.Core.Services.Impl
<>f__AnonymousType0<<url>j__TPar>0.2167---00-71118501101
<>f__AnonymousType1<<id>j__TPar>0.2167---00-71118501101
CompanyController+<>c__DisplayClass00.213---10-1141100101RanchBuddy.Web.Controllers
Captcha0.1586---0.671-501721300204RanchBuddy.Web
MyViewPage0.1519---00-2086200000RanchBuddy.Web.Services
MyViewPage<T>0.1519---00-2086200000RanchBuddy.Web.Services
CompanyController0.15552---00-28048601100001RanchBuddy.Web.Controllers
Navigation0.15679---00-96016281110001RanchBuddy.Web.Services
CompanyTypeService0.1543---00-4088200001RanchBuddy.Core.Services.Impl
ImageService0.15330---00-2302133140001RanchBuddy.Core.Services.Impl
_Default0.1518---00-2096200004RanchBuddy.Web
AccountController0.15959---00-53041721900001RanchBuddy.Web.Controllers
MvcApplication0.1532---00-30114210002RanchBuddy.Web
MvcSitemapProvider0.151117---0.80.86-1070509214001004RanchBuddy.Core.Providers.Impl