microsoft / Windows-AppConsult-Samples-DesktopBridge
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 65% duplication:
    • 10,120 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 6,641 duplicated lines
  • 244 duplicates
system65% (6,641 lines)
Duplication per Extension
aspx92% (2,822 lines)
cs51% (1,755 lines)
xaml83% (1,389 lines)
vcxproj48% (282 lines)
html92% (254 lines)
ps155% (75 lines)
cpp5% (38 lines)
filters50% (26 lines)
Duplication per Component (primary)
UWPAPIsUsedFromUnityEXEApp89% (2,822 lines)
Blog-WpfNetCore98% (1,726 lines)
Blog-OptionalPackages90% (787 lines)
Blog-AppTransition56% (459 lines)
Blog-AdvancedInstaller76% (182 lines)
Blog-PSF38% (158 lines)
Blog-Scripting72% (155 lines)
Blog-WinRTComponent41% (123 lines)
Docs-ContextMenuSample10% (106 lines)
Blog-FIPs39% (75 lines)
MSIX-Shared-Storage-Folder26% (21 lines)
Blog-MSIXModificationPackages20% (10 lines)
Blog-Sqlite5% (10 lines)
Blog-ModernizationStory1% (7 lines)
Blog-AppInstallerWithActivation0% (0 lines)
Blog-SourceGenerator0% (0 lines)

Duplication Between Components (50+ lines)

G Blog-AppTransition Blog-AppTransition Blog-WpfNetCore Blog-WpfNetCore Blog-AppTransition--Blog-WpfNetCore 1297 Blog-AdvancedInstaller Blog-AdvancedInstaller Blog-OptionalPackages Blog-OptionalPackages Blog-AdvancedInstaller--Blog-OptionalPackages 545 Blog-Scripting Blog-Scripting Blog-AdvancedInstaller--Blog-Scripting 310 Blog-OptionalPackages--Blog-Scripting 465 Blog-PSF Blog-PSF Blog-WinRTComponent Blog-WinRTComponent Blog-PSF--Blog-WinRTComponent 57

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 244 duplicates...
Size#FoldersFilesLinesCode
628 x 2 UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/1.0
UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/2.0
aspx
DefaultWsdlHelpGenerator.aspx
DefaultWsdlHelpGenerator.aspx
400:1154 (42%)
378:1132 (40%)
view
317 x 2 UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/1.0
UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/2.0
aspx
DefaultWsdlHelpGenerator.aspx
DefaultWsdlHelpGenerator.aspx
1167:1538 (21%)
1156:1527 (20%)
view
175 x 2 UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/1.0
UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/2.0
aspx
DefaultWsdlHelpGenerator.aspx
DefaultWsdlHelpGenerator.aspx
122:316 (11%)
142:336 (11%)
view
172 x 2 Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
xaml
CreateExpenseReportDialogBox.xaml
CreateExpenseReportDialogBox.xaml
1:288 (100%)
1:288 (100%)
view
167 x 2 Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
xaml
App.xaml
App.xaml
1:240 (100%)
1:240 (100%)
view
136 x 2 Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
xaml
MainWindow.xaml
MainWindow.xaml
1:222 (100%)
1:222 (100%)
view
127 x 2 Blog-OptionalPackages/My...up/6a8a1fba/MyEmployees
Blog-OptionalPackages/My...0abcc/ExportDataLibrary
NuGetUpgradeLog.html
NuGetUpgradeLog.html
1:150 (92%)
1:150 (93%)
view
125 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditBox.cs
EditBox.cs
31:342 (100%)
31:342 (100%)
view
112 x 2 Blog-AppTransition/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
xaml
Resources.xaml
App.xaml
46:210 (47%)
76:240 (67%)
view
112 x 2 Blog-AppTransition/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
xaml
Resources.xaml
App.xaml
46:210 (47%)
76:240 (67%)
view
100 x 2 Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Form1.Designer.cs
Form1.Designer.cs
1:155 (100%)
1:155 (100%)
view
67 x 2 UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/1.0
UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/2.0
aspx
DefaultWsdlHelpGenerator.aspx
DefaultWsdlHelpGenerator.aspx
1722:1815 (4%)
1798:1891 (4%)
view
59 x 2 UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/1.0
UWPAPIsUsedFromUnityEXEA..._Data/Mono/etc/mono/2.0
aspx
DefaultWsdlHelpGenerator.aspx
DefaultWsdlHelpGenerator.aspx
1633:1719 (3%)
1705:1791 (3%)
view
53 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditboxAdorner.cs
EditboxAdorner.cs
28:168 (100%)
28:168 (100%)
view
52 x 2 Blog-AppTransition/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
xaml
Resources.xaml
CreateExpenseReportDialogBox.xaml
275:350 (22%)
21:96 (30%)
view
52 x 2 Blog-AppTransition/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
xaml
Resources.xaml
CreateExpenseReportDialogBox.xaml
275:350 (22%)
21:96 (30%)
view
49 x 2 Blog-AdvancedInstaller/MyEmployees
Blog-Scripting/MyEmployees/MyEmployees
AboutForm.Designer.cs
AboutForm.Designer.cs
1:86 (100%)
1:86 (100%)
view
49 x 2 Blog-AdvancedInstaller/MyEmployees
Blog-OptionalPackages/My...ionPackages/MyEmployees
AboutForm.Designer.cs
AboutForm.Designer.cs
1:86 (100%)
1:86 (100%)
view
49 x 2 Blog-AdvancedInstaller/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
AboutForm.Designer.cs
AboutForm.Designer.cs
1:86 (100%)
1:86 (100%)
view
49 x 2 Blog-OptionalPackages/My...nalPackages/MyEmployees
Blog-Scripting/MyEmployees/MyEmployees
AboutForm.Designer.cs
AboutForm.Designer.cs
1:86 (100%)
1:86 (100%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 28 unit duplicates...
Size#FoldersFilesLinesCode
75 x 2 Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Form1.Designer.cs
Form1.Designer.cs
29:135 
29:135 
view
38 x 4 Blog-AdvancedInstaller/MyEmployees
Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Blog-Scripting/MyEmployees/MyEmployees
AboutForm.Designer.cs
AboutForm.Designer.cs
AboutForm.Designer.cs
AboutForm.Designer.cs
29:80 
29:80 
29:80 
29:80 
view
26 x 3 Blog-AdvancedInstaller/MyEmployees
Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Form1.cs
Form1.cs
Form1.cs
21:50 
42:71 
31:60 
view
20 x 2 Blog-WinRTComponent/WinR.../WinRTComponent.UWPHead
MSIX-Shared-Storage-Folder/App03-UWP
App.xaml.cs
App.xaml.cs
40:74 
40:74 
view
17 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditBox.cs
EditBox.cs
51:77 
51:77 
view
16 x 2 Blog-OptionalPackages/My...kages/ExportDataLibrary
Blog-OptionalPackages/My...kages/ExportDataLibrary
ExportData.cs
ExportData.cs
22:39 
15:32 
view
15 x 2 Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Form1.cs
Form1.cs
73:89 
62:78 
view
15 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditBox.cs
EditBox.cs
121:142 
121:142 
view
14 x 3 Blog-AppTransition/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
MainWindow.cs
MainWindow.cs
MainWindow.cs
37:59 
32:54 
32:54 
view
14 x 3 Blog-AppTransition/Expen...xpenseItDemo/Validation
Blog-WpfNetCore/ExpenseIt/ExpenseItDemo/Validation
Blog-WpfNetCore/ExpenseItNetCore/Validation
NumberValidationrule.cs
NumberValidationrule.cs
NumberValidationrule.cs
26:45 
26:45 
26:45 
view
13 x 2 Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Form1.cs
Form1.cs
91:104 
80:93 
view
13 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditBox.cs
EditBox.cs
257:272 
257:272 
view
13 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditboxAdorner.cs
EditboxAdorner.cs
118:136 
118:136 
view
12 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditboxAdorner.cs
EditboxAdorner.cs
86:98 
86:98 
view
12 x 2 Docs-ContextMenuSample/ExplorerCommandVerb
Docs-ContextMenuSample/ExplorerCommandVerb
RegisterExtension.cpp
RegisterExtension.cpp
302:316 
318:332 
view
11 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditboxAdorner.cs
EditboxAdorner.cs
64:81 
64:81 
view
8 x 2 Blog-WpfNetCore/ExpenseIt/EditBoxControlLibrary
Blog-WpfNetCore/ExpenseItNetCore
EditBox.cs
EditBox.cs
312:320 
312:320 
view
8 x 2 Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
CreateExpenseReportDialogBox.cs
CreateExpenseReportDialogBox.cs
31:40 
31:40 
view
8 x 2 Blog-WpfNetCore/ExpenseIt/ExpenseItDemo
Blog-WpfNetCore/ExpenseItNetCore
MainWindow.cs
MainWindow.cs
92:106 
92:106 
view
7 x 9 Blog-AdvancedInstaller/MyEmployees
Blog-AdvancedInstaller/MyEmployees
Blog-ModernizationStory/DynamicWindowsForms
Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...ionPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Blog-OptionalPackages/My...nalPackages/MyEmployees
Blog-Scripting/MyEmployees/MyEmployees
Blog-Scripting/MyEmployees/MyEmployees
AboutForm.Designer.cs
Form1.Designer.cs
FormDynamic.Designer.cs
AboutForm.Designer.cs
Form1.Designer.cs
AboutForm.Designer.cs
Form1.Designer.cs
AboutForm.Designer.cs
Form1.Designer.cs
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
view