Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 5d3d6c7166
Fetching contributors…

Cannot retrieve contributors at this time

213 lines (206 sloc) 12.445 kB
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NDepend AppName="MemBus" Platform="DotNet">
<OutputDir KeepHistoric="True" KeepXmlFiles="True">C:\dotnet\dev\github\MemBus\NDependOut1</OutputDir>
<Assemblies>
<Name>MemBus</Name>
<Name>MemBus.Tests</Name>
</Assemblies>
<FrameworkAssemblies>
<Name>mscorlib</Name>
<Name>System.Core</Name>
<Name>Microsoft.CSharp</Name>
<Name>Moq</Name>
<Name>nunit.framework</Name>
<Name>System.Reactive</Name>
<Name>WindowsBase</Name>
<Name>MemBus.Addons</Name>
</FrameworkAssemblies>
<Dirs>
<Dir>C:\Windows\Microsoft.NET\Framework\v4.0.30319</Dir>
<Dir>C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF</Dir>
<Dir>C:\dotnet\dev\github\MemBus\MemBus\bin\Debug</Dir>
<Dir>C:\dotnet\dev\github\MemBus\MemBus.Tests\bin\Debug</Dir>
<Dir>C:\dotnet\dev\github\MemBus\Membus.Reactive.Tests\bin\Debug</Dir>
<Dir>C:\dotnet\dev\github\MemBus\MemBus.Tests.Performance\bin\Debug</Dir>
<Dir>C:\dotnet\dev\github\MemBus\Membus.WpfTwitterClient\bin\Debug</Dir>
</Dirs>
<Report Kind="0" SectionsEnabled="12287" XslPath="" Flags="64512">
<Section Enabled="True">Application Metrics</Section>
<Section Enabled="True">.NET Assemblies Metrics</Section>
<Section Enabled="True">Treemap Metric View</Section>
<Section Enabled="True">.NET Assemblies Abstractness vs. Instability</Section>
<Section Enabled="True">.NET Assemblies Dependencies</Section>
<Section Enabled="True">.NET Assemblies Dependency Graph</Section>
<Section Enabled="True">.NET Assemblies Build Order</Section>
<Section Enabled="True">Analysis Log</Section>
<Section Enabled="True">CQL Rules Violated</Section>
<Section Enabled="True">Types Metrics</Section>
<Section Enabled="False">Types Dependencies</Section>
</Report>
<BuildComparisonSetting ProjectMode="DontCompare" BuildMode="MostRecentBuildAvailable" ProjectFileToCompareWith="" BuildFileToCompareWith="" NDaysAgo="1" />
<BaselineInUISetting ProjectMode="DontCompare" BuildMode="MostRecentBuildAvailable" ProjectFileToCompareWith="" BuildFileToCompareWith="" NDaysAgo="1" />
<CoverageFiles UncoverableAttribute="" />
<SourceFileRebasing FromPath="" ToPath="" />
<Queries>
<Group Name="Bare" Active="True" ShownInReport="False">
<Group Name="Types" Active="True" ShownInReport="False">
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="True"><![CDATA[// <Name>Types too big</Name>
WARN IF Count > 0 IN SELECT TYPES WHERE
NbLinesOfCode > 400 OR
NbILInstructions > 2500
ORDER BY NbLinesOfCode DESC]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Types with poor cohesion</Name>
// m - members
// a - instance fields
// LCOM HS = 1 - sum(mA)/(m*a)
WARN IF Count > 0 IN SELECT TYPES WHERE
LCOMHS > 0.95 AND
NbFields > 10 AND
NbMethods >10
ORDER BY LCOMHS DESC]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Efferent (outgoing) Coupling</Name>
WARN IF Count > 0 IN SELECT TYPES OUT OF NAMESPACES "MemBus.Tests.*" WHERE
TypeCe > 50
ORDER BY TypeCe DESC]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Non-Abstract Afferent (incoming) coupling</Name>
WARN IF Count > 0 IN SELECT TYPES OUT OF NAMESPACES "MemBus.Tests","MemBus.Tests.Help" WHERE TypeCa > 20
AND !(IsAbstract OR IsInterface OR IsGeneratedByCompiler)]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>A stateless class or structure might be turned into a static type</Name>
WARN IF Count > 5 IN SELECT TYPES OUT OF NAMESPACES "MemBus.Tests","MemBus.Tests.Help" WHERE
SizeOfInst ==0 AND
NbInterfacesImplemented == 0 AND
((IsClass AND DepthOfInheritance == 1
AND NbChildren == 0)
OR IsStructure) AND
!IsStatic AND
!IsGeneric]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Types that could be declared as 'private'</Name>
WARN IF Count > 0 IN SELECT TYPES WHERE
CouldBePrivate AND
!HasAttribute "MemBus.Support.MustBePublicAttribute"]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Structures should be immutable</Name>
WARN IF Count > 0 IN SELECT TYPES WHERE
IsStructure AND
!IsImmutable AND
!IsInFrameworkAssembly]]></Query>
</Group>
<Group Name="Methods" Active="True" ShownInReport="False">
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Methods too big</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE
NbLinesOfCode > 30 OR NbILInstructions > 200
ORDER BY NbLinesOfCode DESC]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Methods too complex</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE
CyclomaticComplexity > 20 OR ILNestingDepth > 4
ORDER BY CyclomaticComplexity DESC]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Methods with too many parameters (NbParameters)</Name>
WARN IF Count > 0 IN SELECT 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]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Methods with too many overloads (NbOverloads)</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE
NbOverloads > 6
ORDER BY NbOverloads DESC
// 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]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Potentially unused methods</Name>
// Caution: Methods used only by reflection might be matched.
WARN IF Count > 0 IN SELECT METHODS OUT OF NAMESPACES "MemBus.Tests","MemBus.Tests.Help" WHERE
MethodCa == 0 AND
!IsPublic AND
!IsProtected AND
!IsEntryPoint AND
!IsExplicitInterfaceImpl AND
!IsClassConstructor AND
!IsGeneratedByCompiler AND
!IsPropertyGetter AND
!IsFinalizer
]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Methods that could be declared as 'private'</Name>
WARN IF Count > 0 IN SELECT METHODS
OUT OF NAMESPACES
"MemBus.Tests.*"
WHERE CouldBePrivate AND !IsGeneratedByCompiler AND !IsSpecialName AND !HasAttribute "MemBus.Support.ApiAttribute"]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Afferent (incoming) coupling method level</Name>
WARN IF Count > 0 IN SELECT METHODS
OUT OF NAMESPACES "MemBus.Tests.*"
WHERE MethodCa > 30]]></Query>
</Group>
<Group Name="Fields" Active="True" ShownInReport="False">
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Fields should be marked as ReadOnly when possible</Name>
WARN IF Count > 0 IN SELECT FIELDS OUT OF NAMESPACES "MemBus.Tests","MemBus.Tests.Help" WHERE
IsImmutable AND
!IsInitOnly AND
!IsGeneratedByCompiler AND
!IsEventDelegateObject ]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Fields should be declared as private</Name>
WARN IF Count > 0 IN SELECT FIELDS OUT OF NAMESPACES "MemBus.Tests.*" 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]]></Query>
</Group>
</Group>
<Group Name="Stats" Active="False" ShownInReport="False">
<Query Active="True" DisplayList="False" DisplayStat="False" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Most used types (TypeRank)</Name>
SELECT TOP 50 TYPES ORDER BY TypeRank DESC
// TypeRank values are computed by applying
// the Google PageRank algorithm on the
// graph of types' dependencies. Types with
// high Rank are the most used ones.
// See the definition of the TypeRank metric here:
// http://www.ndepend.com/Metrics.aspx#TypeRank]]></Query>
<Query Active="True" DisplayList="False" DisplayStat="False" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Most used namespaces (NamespaceCa)</Name>
SELECT TOP 50 NAMESPACES ORDER BY NamespaceCa DESC
// The Afferent Coupling for a particular namespace
// is the number of namespaces that depends directly
// on it. Namespaces with high Ca are the most
// used ones.
// See the definition of the NamespaceCa metric here:
// http://www.ndepend.com/Metrics.aspx#NamespaceCa]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Afferent (incoming) Coupling</Name>
SELECT TOP 30 TYPES ORDER BY TypeCa DESC
]]></Query>
<Query Active="True" DisplayList="False" DisplayStat="False" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Most used methods (MethodRank)</Name>
SELECT TOP 50 METHODS ORDER BY MethodRank DESC
// MethodRank values are computed by applying
// the Google PageRank algorithm on the graph of
// methods' dependencies. Methods with high Rank
// are the most used ones. See the definition of
// the MethodRank metric here:
// http://www.ndepend.com/Metrics.aspx#MethodRank]]></Query>
<Query Active="True" DisplayList="False" DisplayStat="False" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Methods that use many other methods (MethodCe)</Name>
SELECT TOP 50 METHODS ORDER BY MethodCe DESC
// The Efferent Coupling for a particular method
// is the number of methods it directly depends on.
// Methods declared in Framework assemblies are
// taken account.
// See the definition of the MethodCe metric here http://www.ndepend.com/Metrics.aspx#MethodCe]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Methods not generated by compiler and without properties</Name>
SELECT METHODS WHERE ! IsGeneratedByCompiler AND !IsPropertySetter AND !IsPropertyGetter]]></Query>
<Query Active="True" DisplayList="True" DisplayStat="True" DisplaySelectionView="False" IsCriticalRule="False"><![CDATA[// <Name>Types not generated by compiler</Name>
SELECT TYPES WHERE !IsGeneratedByCompiler]]></Query>
</Group>
</Queries>
</NDepend>
Jump to Line
Something went wrong with that request. Please try again.