aws / porting-assistant-dotnet-client
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 201 units with 3,037 lines of code in units (59.2% of code).
    • 2 very long units (208 lines of code)
    • 11 long units (811 lines of code)
    • 26 medium size units (762 lines of code)
    • 37 small units (554 lines of code)
    • 125 very small units (702 lines of code)
6% | 26% | 25% | 18% | 23%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs6% | 26% | 25% | 18% | 23%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/PortingAssistant.Client.Analysis34% | 0% | 51% | 11% | 2%
src/PortingAssistant.Client49% | 0% | 40% | 8% | 1%
src/PortingAssistant.Client.NuGet/Checkers0% | 48% | 13% | 18% | 19%
src/PortingAssistant.Client.Analysis/Utils0% | 22% | 49% | 17% | 10%
src/PortingAssistant.Client.NuGet0% | 85% | 0% | 0% | 14%
src/PortingAssistant.Client.Telemetry0% | 27% | 16% | 25% | 30%
src/PortingAssistant.Client.NuGet/InternalNuget0% | 94% | 0% | 0% | 5%
src/PortingAssistant.Client.Client/Reports0% | 70% | 0% | 25% | 3%
src/PortingAssistant.Client.Porting/PortingProjectFile0% | 87% | 0% | 0% | 12%
src/PortingAssistant.Client.Client0% | 33% | 24% | 9% | 31%
src/PortingAssistant.Client.Client/FileParser0% | 0% | 29% | 49% | 21%
src/PortingAssistant.Client.Common/Utils0% | 0% | 0% | 74% | 25%
src/PortingAssistant.Client.Common/Model0% | 0% | 0% | 16% | 83%
src/PortingAssistant.Client.Client/Utils0% | 0% | 0% | 100% | 0%
src/PortingAssistant.Client.Common/Exception0% | 0% | 0% | 0% | 100%
src/PortingAssistant.Client.NuGet/Utils0% | 0% | 0% | 0% | 100%
src/PortingAssistant.Client.Porting0% | 0% | 0% | 0% | 100%
src/PortingAssistant.Client.Client/Model0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
private ProjectAnalysisResult AnalyzeProject()
in src/PortingAssistant.Client.Analysis/AnalysisHandler.cs
104 9 6
static void Main()
in src/PortingAssistant.Client/Program.cs
104 12 1
private async void ProcessCompatibility()
in src/PortingAssistant.Client.NuGet/Checkers/ExternalCompatibilityChecker.cs
94 18 5
public static bool Upload()
in src/PortingAssistant.Client.Telemetry/Uploader.cs
86 16 3
public async Task CheckCompatibilityAsync()
in src/PortingAssistant.Client.NuGet/InternalNuget/PortingAssistantInternalNuGetCompatibilityHandler.cs
83 12 4
public static async Task IsCompatibleAsync()
in src/PortingAssistant.Client.Analysis/Utils/PackageCompatibility.cs
82 13 4
public bool GenerateJsonReport()
in src/PortingAssistant.Client.Client/Reports/ReportExporter.cs
76 8 2
public static List AnalyzeResults()
in src/PortingAssistant.Client.Analysis/Utils/CodeEntityModelToCodeEntities.cs
71 4 6
public List ApplyProjectChanges()
in src/PortingAssistant.Client.Porting/PortingProjectFile/PortingProjectFileHandler.cs
68 4 5
private async void ProcessCompatibility()
in src/PortingAssistant.Client.NuGet/PortingAssistantRecommendationHandler.cs
66 14 3
private async void ProcessCompatibility()
in src/PortingAssistant.Client.NuGet/Checkers/PortabilityAnalyzerCompatibilityChecker.cs
63 12 3
public async Task AnalyzeSolutionAsync()
in src/PortingAssistant.Client.Client/PortingAssistantClient.cs
62 5 2
private async void Process()
in src/PortingAssistant.Client.NuGet/PortingAssistantNuGetHandler.cs
60 9 4
public void HandleCommand()
in src/PortingAssistant.Client/PortingAssistantCLI.cs
46 10 1
public static CompatibilityResult GetCompatibilityResult()
in src/PortingAssistant.Client.Analysis/Utils/ApiCompatiblity.cs
44 10 5
private ProjectCompatibilityResult GenerateCompatibilityResults()
in src/PortingAssistant.Client.Analysis/AnalysisHandler.cs
39 6 3
private static async Task AnalyzeSolutionGenerator()
in src/PortingAssistant.Client/Program.cs
38 3 3
public List GetPackageReferences()
in src/PortingAssistant.Client.Client/FileParser/ProjectFileParser.cs
37 6 0
public static CompatibilityResult GetCompatibilityResult()
in src/PortingAssistant.Client.Analysis/Utils/ApiCompatiblity.cs
33 6 4
public static CompatibilityResult GetCompatibilityResult()
in src/PortingAssistant.Client.Analysis/Utils/CodeEntityModelToCodeEntities.cs
33 11 2