microsoft / AppConsult-WinAppsModernizationWorkshop
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 1,382 units with 11,574 lines of code in units (35.2% of code).
    • 0 very long units (0 lines of code)
    • 1 long units (51 lines of code)
    • 98 medium size units (2,777 lines of code)
    • 194 small units (2,784 lines of code)
    • 1,089 very small units (5,962 lines of code)
0% | <1% | 23% | 24% | 51%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs0% | <1% | 23% | 24% | 51%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
Samples-NetCore/DotNetPad0% | 2% | 28% | 19% | 50%
Samples-NetCore/MusicManager0% | 0% | 28% | 24% | 46%
Samples-NetCore/InformationManager0% | 0% | 12% | 20% | 66%
Samples-NetCore/BookLibrary0% | 0% | 18% | 30% | 51%
Samples-NetCore/PhotoStore0% | 0% | 23% | 37% | 38%
Exercise4/02-End0% | 0% | 27% | 25% | 47%
Exercise5/01-Start0% | 0% | 27% | 25% | 47%
Exercise5/02-End0% | 0% | 27% | 25% | 47%
Exercise3/02-End0% | 0% | 13% | 27% | 58%
Exercise4/01-Start0% | 0% | 13% | 27% | 58%
Exercise2/02-End0% | 0% | 15% | 22% | 61%
Exercise3/01-Start0% | 0% | 15% | 22% | 61%
Exercise1/01-Start0% | 0% | 15% | 22% | 61%
Exercise1/02-End0% | 0% | 15% | 22% | 61%
Exercise2/01-Start0% | 0% | 15% | 22% | 61%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public static string GetClassificationTypeName()
in Samples-NetCore/DotNetPad/DotNetPad.Applications/CodeAnalysis/ClassificationTags.cs
51 29 1
private string BuildAdaptiveCard()
in Exercise4/02-End/ContosoExpenses/TimelineService.cs
47 1 1
private string BuildAdaptiveCard()
in Exercise5/01-Start/ContosoExpenses/TimelineService.cs
47 1 1
private string BuildAdaptiveCard()
in Exercise5/02-End/ContosoExpenses/TimelineService.cs
47 1 1
private async Task ShowCompletionAsync()
in Samples-NetCore/DotNetPad/DotNetPad.Presentation/Controls/CodeEditor.cs
46 12 1
private async Task SaveChangesAsync()
in Samples-NetCore/MusicManager/MusicManager.Applications/Controllers/MusicPropertiesController.cs
44 7 1
private async void UpdateMusicFiles()
in Samples-NetCore/MusicManager/MusicManager.Applications/Controllers/ManagerController.cs
41 6 1
protected override void OnOpened()
in Samples-NetCore/DotNetPad/DotNetPad.Presentation/Controls/Flyout.cs
40 6 1
protected override void OnOpened()
in Samples-NetCore/MusicManager/MusicManager.Presentation/Controls/Flyout.cs
40 6 1
private ImageSource GetImage()
in Samples-NetCore/DotNetPad/DotNetPad.Presentation/Controls/CodeCompletionData.cs
39 17 0
private static void ListCollectionChanged()
in Samples-NetCore/MusicManager/MusicManager.Presentation/Controls/SelectionBehavior.cs
39 8 2
private async void StartScript()
in Samples-NetCore/DotNetPad/DotNetPad.Applications/Controllers/WorkspaceController.cs
38 6 0
private async void UpdateHighlightLineAsync()
in Samples-NetCore/DotNetPad/DotNetPad.Presentation/Controls/CodeHighlighter.cs
38 8 1
public INavigationNode AddNavigationNode()
in Samples-NetCore/InformationManager/Infrastructure.Modules.Applications/Services/NavigationService.cs
38 6 5
public static Task WhenAllFast()
in Samples-NetCore/MusicManager/MusicManager.Domain/TaskUtility.cs
37 7 1
private DocumentFile OpenCore()
in Samples-NetCore/DotNetPad/DotNetPad.Applications/Controllers/FileController.cs
35 8 2
private async void TranscodeAsync()
in Samples-NetCore/MusicManager/MusicManager.Applications/Controllers/TranscodingController.cs
35 5 1
internal static ReadMetadata GetReadMetadata()
in Samples-NetCore/MusicManager/MusicManager.Applications/Data/SupportedFileTypes.cs
35 10 1
internal static SaveMetadata GetSaveMetadata()
in Samples-NetCore/MusicManager/MusicManager.Applications/Data/SupportedFileTypes.cs
35 10 1
public void NextItem()
in Samples-NetCore/MusicManager/MusicManager.Domain/Playlists/PlaylistManager.cs
35 9 0