microsoft / Windows-AppConsult-samples-PWA
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
  • 42% duplication:
    • 33,377 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 14,146 duplicated lines
  • 608 duplicates
system42% (14,146 lines)
Duplication per Extension
css79% (11,476 lines)
js8% (1,293 lines)
cshtml78% (690 lines)
jsproj74% (423 lines)
cs17% (142 lines)
html32% (74 lines)
yml41% (48 lines)
Duplication per Component (primary)
Canvas41% (12,770 lines)
ToastActivation86% (314 lines)
ToastActivationWithPushNotifications50% (309 lines)
Docker44% (207 lines)
PWADotNetCore74% (195 lines)
WindowsAPIs26% (119 lines)
MyFullTrustPWA28% (94 lines)
DevCenterNotifications-PWA64% (92 lines)
AlexaSkill27% (26 lines)
OneDriveAlexaSkill20% (20 lines)
PWAFromScratch0% (0 lines)

Duplication Between Components (50+ lines)

G ToastActivation ToastActivation ToastActivationWithPushNotifications ToastActivationWithPushNotifications ToastActivation--ToastActivationWithPushNotifications 614 WindowsAPIs WindowsAPIs ToastActivation--WindowsAPIs 50 ToastActivationWithPushNotifications--WindowsAPIs 50 PWADotNetCore PWADotNetCore PWADotNetCore--ToastActivation 328 PWADotNetCore--ToastActivationWithPushNotifications 328 Docker Docker Docker--PWADotNetCore 278 Docker--ToastActivation 216 Docker--ToastActivationWithPushNotifications 216 Canvas Canvas Canvas--WindowsAPIs 257 MyFullTrustPWA MyFullTrustPWA Canvas--MyFullTrustPWA 122 DevCenterNotifications-PWA DevCenterNotifications-PWA Canvas--DevCenterNotifications-PWA 116 Canvas--ToastActivation 57 Canvas--ToastActivationWithPushNotifications 57 DevCenterNotifications-PWA--MyFullTrustPWA 182 DevCenterNotifications-PWA--WindowsAPIs 78 DevCenterNotifications-PWA--ToastActivationWithPushNotifications 56 MyFullTrustPWA--WindowsAPIs 76 MyFullTrustPWA--ToastActivationWithPushNotifications 56

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 608 duplicates...
Size#FoldersFilesLinesCode
5114 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/css
Canvas/CanvasSimple/lib/winjs-4.0.1/css
ui-dark.css
ui-light.css
1:5284 (71%)
1:5284 (71%)
view
118 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/css
Canvas/CanvasSimple/lib/winjs-4.0.1/css
ui-dark.css
ui-light.css
7065:7184 (1%)
7065:7184 (1%)
view
116 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/css
Canvas/CanvasSimple/lib/winjs-4.0.1/css
ui-dark.css
ui-light.css
7186:7304 (1%)
7186:7304 (1%)
view
50 x 2 ToastActivation/ToastWebsite/Pages
ToastActivationWithPushN...ions/ToastWebsite/Pages
cshtml
_Layout.cshtml
_Layout.cshtml
2:69 (98%)
2:69 (98%)
view
45 x 2 ToastActivation/ToastWebsite/Pages
ToastActivationWithPushN...ions/ToastWebsite/Pages
cshtml
Index.cshtml
Index.cshtml
39:107 (56%)
64:132 (44%)
view
44 x 2 PWADotNetCore/PWADotNetCore/Pages
ToastActivation/ToastWebsite/Pages
cshtml
Index.cshtml
Index.cshtml
5:71 (57%)
39:106 (55%)
view
44 x 2 PWADotNetCore/PWADotNetCore/Pages
ToastActivationWithPushN...ions/ToastWebsite/Pages
cshtml
Index.cshtml
Index.cshtml
5:71 (57%)
64:131 (43%)
view
40 x 2 ToastActivation/source
ToastActivationWithPushNotifications/source
jsproj
App.jsproj
App.jsproj
1:51 (80%)
1:51 (42%)
view
40 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/css
Canvas/CanvasSimple/lib/winjs-4.0.1/css
ui-dark.css
ui-light.css
7024:7063 (<1%)
7024:7063 (<1%)
view
39 x 2 DevCenterNotifications-PWA/MyNgHWA
WindowsAPIs/MyNgHWA
jsproj
MyNgHWA.jsproj
MyNgHWA.jsproj
1:50 (35%)
1:50 (66%)
view
31 x 2 Canvas/PWACanvas
MyFullTrustPWA/MyUWP1.Package
jsproj
PWACanvas.jsproj
MyPWA.jsproj
1:40 (51%)
1:40 (24%)
view
31 x 2 MyFullTrustPWA/MyUWP1.Package
WindowsAPIs/MyNgHWA
jsproj
MyPWA.jsproj
MyNgHWA.jsproj
1:40 (24%)
1:40 (52%)
view
31 x 2 Canvas/CanvasSimple
WindowsAPIs/MyNgHWA
jsproj
CanvasSimple.jsproj
MyNgHWA.jsproj
1:40 (48%)
1:40 (52%)
view
31 x 2 DevCenterNotifications-PWA/MyNgHWA
MyFullTrustPWA/MyUWP1.Package
jsproj
MyNgHWA.jsproj
MyPWA.jsproj
1:40 (28%)
1:40 (24%)
view
31 x 2 Canvas/CanvasSimple
DevCenterNotifications-PWA/MyNgHWA
jsproj
CanvasSimple.jsproj
MyNgHWA.jsproj
1:40 (48%)
1:40 (28%)
view
31 x 2 Canvas/CanvasSimple
MyFullTrustPWA/MyUWP1.Package
jsproj
CanvasSimple.jsproj
MyPWA.jsproj
1:40 (48%)
1:40 (24%)
view
31 x 2 Canvas/PWACanvas
DevCenterNotifications-PWA/MyNgHWA
jsproj
PWACanvas.jsproj
MyNgHWA.jsproj
1:40 (51%)
1:40 (28%)
view
31 x 2 Canvas/CanvasSimple
Canvas/PWACanvas
jsproj
CanvasSimple.jsproj
PWACanvas.jsproj
1:40 (48%)
1:40 (51%)
view
31 x 2 Canvas/PWACanvas
WindowsAPIs/MyNgHWA
jsproj
PWACanvas.jsproj
MyNgHWA.jsproj
1:40 (51%)
1:40 (52%)
view
29 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
22354:22382 (<1%)
22410:22438 (<1%)
view
Duplicated Units
The list of top 15 duplicated units.
See data for all 15 unit duplicates...
Size#FoldersFilesLinesCode
25 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
17167:17215 
17469:17517 
view
21 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
18181:18214 
18251:18284 
view
21 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
18216:18249 
18286:18319 
view
13 x 2 ToastActivation/ToastWebsite
ToastActivationWithPushNotifications/ToastWebsite
Startup.cs
Startup.cs
28:43 
24:39 
view
12 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
16904:16932 
16934:16962 
view
9 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
3604:3613 
3652:3661 
view
9 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
24463:24472 
24757:24766 
view
8 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
15153:15161 
15769:15777 
view
7 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
3729:3736 
3772:3779 
view
7 x 2 Canvas/PWACanvas
WindowsAPIs/MyNgHWA
msapp-error.js
msapp-error.js
4:11 
4:11 
view
6 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
17648:17654 
17724:17730 
view
6 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
17686:17692 
17762:17768 
view
6 x 2 Canvas/PWACanvas
WindowsAPIs/MyNgHWA
msapp-error.js
msapp-error.js
13:19 
13:19 
view
24 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
17627:17663 
17703:17739 
view
24 x 2 Canvas/CanvasSimple/lib/winjs-4.0.1/js
Canvas/CanvasSimple/lib/winjs-4.0.1/js
base.js
base.js
17665:17701 
17741:17777 
view