microsoft / BotBuilder-Samples
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
  • 72% duplication:
    • 42,252 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 30,662 duplicated lines
  • 14,516 duplicates
system72% (30,662 lines)
Duplication per Extension
js87% (20,682 lines)
cs63% (4,589 lines)
yml95% (2,029 lines)
ts24% (1,531 lines)
ps195% (1,409 lines)
vstemplate73% (171 lines)
py25% (155 lines)
htm84% (42 lines)
java8% (38 lines)
cmd8% (16 lines)
Duplication per Component (primary)
composer-samples/csharp_dotnetcore99% (10,662 lines)
composer-samples/javascript_nodejs99% (7,282 lines)
experimental/composer-samples97% (3,245 lines)
build/yaml95% (2,029 lines)
Migration/MigrationV3V442% (1,682 lines)
experimental/adaptive-dialog60% (1,657 lines)
generators/generator-botbuilder46% (1,095 lines)
generators/vsix-vs-win90% (1,024 lines)
experimental/adaptive-tool26% (835 lines)
generators/dotnet-templates95% (480 lines)
experimental/sso-with-skills40% (235 lines)
generators/python25% (155 lines)
experimental/adaptive-runtime-packages100% (66 lines)
Migration/Dispatch25% (62 lines)
experimental/generation2% (58 lines)
experimental/immediate-accept-adapter17% (51 lines)
generators/java6% (44 lines)
build0% (0 lines)
experimental/handoff-library0% (0 lines)

Duplication Between Components (50+ lines)

G composer-samples/csharp_dotnetcore composer-samples/csharp_dotnetcore composer-samples/javascript_nodejs composer-samples/javascript_nodejs composer-samples/csharp_dotnetcore--composer-samples/javascript_nodejs 16034 experimental/composer-samples experimental/composer-samples composer-samples/csharp_dotnetcore--experimental/composer-samples 13821 experimental/adaptive-dialog experimental/adaptive-dialog composer-samples/csharp_dotnetcore--experimental/adaptive-dialog 5277 experimental/immediate-accept-adapter experimental/immediate-accept-adapter composer-samples/csharp_dotnetcore--experimental/immediate-accept-adapter 84 composer-samples/javascript_nodejs--experimental/composer-samples 9726 composer-samples/javascript_nodejs--experimental/adaptive-dialog 4211 experimental/adaptive-runtime-packages experimental/adaptive-runtime-packages composer-samples/javascript_nodejs--experimental/adaptive-runtime-packages 198 experimental/adaptive-dialog--experimental/composer-samples 1733 generators/generator-botbuilder generators/generator-botbuilder experimental/adaptive-dialog--generators/generator-botbuilder 274 generators/dotnet-templates generators/dotnet-templates generators/vsix-vs-win generators/vsix-vs-win generators/dotnet-templates--generators/vsix-vs-win 1305 Migration/Dispatch Migration/Dispatch Migration/Dispatch--experimental/adaptive-dialog 198 experimental/sso-with-skills experimental/sso-with-skills Migration/Dispatch--experimental/sso-with-skills 81 Migration/Dispatch--generators/vsix-vs-win 74 Migration/Dispatch--generators/generator-botbuilder 69 Migration/Dispatch--generators/dotnet-templates 65 Migration/MigrationV3V4 Migration/MigrationV3V4 Migration/MigrationV3V4--experimental/sso-with-skills 196 Migration/MigrationV3V4--experimental/adaptive-dialog 124 Migration/MigrationV3V4--generators/vsix-vs-win 88 Migration/MigrationV3V4--generators/dotnet-templates 74 Migration/MigrationV3V4--generators/generator-botbuilder 56 experimental/sso-with-skills--generators/vsix-vs-win 66 experimental/sso-with-skills--generators/dotnet-templates 64 experimental/immediate-accept-adapter--generators/vsix-vs-win 132 experimental/immediate-accept-adapter--generators/dotnet-templates 107

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 14,516 duplicates...
Size#FoldersFilesLinesCode
620 x 2 composer-samples/csharp_...EchoBot/EchoBot/scripts
composer-samples/csharp_...ample/QnASample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...on/CustomAction/scripts
composer-samples/csharp_...gWithTextSample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...QuestionsSample/scripts
composer-samples/csharp_...r/CustomTrigger/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...gWithTextSample/scripts
composer-samples/csharp_...mple/TodoSample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/javascr...gwithtextsample/scripts
experimental/composer-sa...xtensionsaction/Scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...MakerLUISSample/scripts
composer-samples/csharp_...gWithTextSample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...ationFlowSample/scripts
composer-samples/javascr...gwithtextsample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...QuestionsSample/scripts
composer-samples/csharp_...mple/TodoSample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...erruptionSample/scripts
composer-samples/javascr...questionssample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...tWithLUISSample/scripts
experimental/composer-sa...e/actionssample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...gWithTextSample/scripts
experimental/composer-sa...xtensionsaction/Scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/javascr...cho-bot/echobot/scripts
experimental/composer-sa...xtensionsaction/Scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...tWithLUISSample/scripts
composer-samples/javascr...withcardssample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...ample/QnASample/scripts
experimental/composer-sa...xtensionsaction/Scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...MakerLUISSample/scripts
composer-samples/javascr...withcardssample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/csharp_...WithCardsSample/scripts
composer-samples/javascr...erruptionsample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/javascr...mple/todosample/scripts
experimental/composer-sa...e/actionssample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/javascr...ample/qnasample/scripts
composer-samples/javascr...withcardssample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/javascr...ationflowsample/scripts
experimental/composer-sa...onversation-bot/Scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
620 x 2 composer-samples/javascr...makerluissample/scripts
experimental/composer-sa...le/ActionSample/scripts
provisionComposer.js
provisionComposer.js
3:818 (100%)
3:818 (100%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 118 unit duplicates...
Size#FoldersFilesLinesCode
50 x 29 composer-samples/csharp_...QuestionsSample/scripts
composer-samples/csharp_...ationFlowSample/scripts
composer-samples/csharp_...on/CustomAction/scripts
composer-samples/csharp_...r/CustomTrigger/scripts
composer-samples/csharp_...EchoBot/EchoBot/scripts
composer-samples/csharp_...erruptionSample/scripts
composer-samples/csharp_...stratorDispatch/Scripts
composer-samples/csharp_...SchoolNavigator/Scripts
composer-samples/csharp_...MakerLUISSample/scripts
composer-samples/csharp_...ample/QnASample/scripts
...
provisionComposer.js
provisionComposer.js
provisionComposer.js
provisionComposer.js
provisionComposer.js
provisionComposer.js
provisionComposer.js
provisionComposer.js
provisionComposer.js
provisionComposer.js
...
621:677 
621:677 
621:677 
621:677 
621:677 
621:677 
621:677 
619:675 
621:677 
621:677 
...
view
30 x 2 Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
InstallAppDialog.cs
InstallAppDialog.cs
52:91 
52:91 
view
30 x 3 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
MainDialog.cs
MainDialog.cs
MainDialog.cs
60:103 
62:105 
63:106 
view
25 x 3 generators/dotnet-templa...CoreBot/content/CoreBot
generators/vsix-vs-win/B...rojectTemplates/CoreBot
generators/vsix-vs-win/B...oreBotWithTests/CoreBot
AdapterWithErrorHandler.cs
AdapterWithErrorHandler.cs
AdapterWithErrorHandler.cs
18:53 
18:53 
18:53 
view
24 x 2 Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
RootDialog.cs
RootDialog.cs
67:102 
67:102 
view
24 x 2 Migration/MigrationV3V4/...3EchoBot/Authentication
Migration/MigrationV3V4/...eRootBot/Authentication
CustomAllowedCallersClaimsValidator.cs
AllowedSkillsClaimsValidator.cs
39:70 
32:63 
view
24 x 3 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
DateResolverDialog.cs
DateResolverDialog.cs
DateResolverDialog.cs
35:66 
35:66 
35:66 
view
22 x 2 Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
RootDialog.cs
RootDialog.cs
104:138 
104:138 
view
21 x 2 Migration/MigrationV3V4/.../ContosoHelpdeskChatBot
Migration/MigrationV3V4/.../ContosoHelpdeskChatBot
AdapterWithErrorHandler.cs
AdapterWithErrorHandler.cs
16:44 
16:44 
view
21 x 16 composer-samples/csharp_...e/AskingQuestionsSample
composer-samples/csharp_...gConversationFlowSample
composer-samples/csharp_...stomAction/CustomAction
composer-samples/csharp_...omTrigger/CustomTrigger
composer-samples/csharp_...rojects/EchoBot/EchoBot
composer-samples/csharp_...mple/InterruptionSample
composer-samples/csharp_...ts/OrchestratorDispatch
composer-samples/csharp_...mple/QnAMakerLUISSample
composer-samples/csharp_...cts/QnASample/QnASample
composer-samples/csharp_...spondingWithCardsSample
...
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
...
28:54 
28:54 
28:54 
28:54 
28:54 
28:54 
28:54 
28:54 
28:54 
28:54 
...
view
20 x 16 composer-samples/csharp_...tionsSample/Controllers
composer-samples/csharp_...nFlowSample/Controllers
composer-samples/csharp_...ustomAction/Controllers
composer-samples/csharp_...stomTrigger/Controllers
composer-samples/csharp_...Bot/EchoBot/Controllers
composer-samples/csharp_...ptionSample/Controllers
composer-samples/csharp_...torDispatch/Controllers
composer-samples/csharp_...rLUISSample/Controllers
composer-samples/csharp_...e/QnASample/Controllers
composer-samples/csharp_...CardsSample/Controllers
...
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
...
50:74 
50:74 
50:74 
50:74 
50:74 
50:74 
50:74 
50:74 
50:74 
50:74 
...
view
20 x 3 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
CancelAndHelpDialog.cs
CancelAndHelpDialog.cs
CancelAndHelpDialog.cs
35:58 
35:58 
35:58 
view
19 x 3 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
MainDialog.cs
MainDialog.cs
MainDialog.cs
108:130 
110:132 
111:133 
view
18 x 2 Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
ResetPasswordDialog.cs
ResetPasswordDialog.cs
90:113 
90:113 
view
18 x 16 composer-samples/csharp_...tionsSample/Controllers
composer-samples/csharp_...nFlowSample/Controllers
composer-samples/csharp_...ustomAction/Controllers
composer-samples/csharp_...stomTrigger/Controllers
composer-samples/csharp_...Bot/EchoBot/Controllers
composer-samples/csharp_...ptionSample/Controllers
composer-samples/csharp_...torDispatch/Controllers
composer-samples/csharp_...rLUISSample/Controllers
composer-samples/csharp_...e/QnASample/Controllers
composer-samples/csharp_...CardsSample/Controllers
...
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
BotController.cs
...
24:45 
24:45 
24:45 
24:45 
24:45 
24:45 
24:45 
24:45 
24:45 
24:45 
...
view
18 x 3 generators/dotnet-templa...CoreBot/content/CoreBot
generators/vsix-vs-win/B...rojectTemplates/CoreBot
generators/vsix-vs-win/B...oreBotWithTests/CoreBot
FlightBookingRecognizer.cs
FlightBookingRecognizer.cs
FlightBookingRecognizer.cs
18:39 
16:37 
16:38 
view
17 x 6 Migration/MigrationV3V4/...lpdeskChatBot/App_Start
Migration/MigrationV3V4/...lpdeskChatBot/App_Start
Migration/MigrationV3V4/...lls/V3EchoBot/App_Start
Migration/MigrationV3V4/...ls/V3PizzaBot/App_Start
Migration/MigrationV3V4/...leSandwichBot/App_Start
Migration/MigrationV3V4/...ot/V3StateBot/App_Start
WebApiConfig.cs
WebApiConfig.cs
WebApiConfig.cs
WebApiConfig.cs
WebApiConfig.cs
WebApiConfig.cs
12:35 
12:35 
12:35 
12:35 
12:35 
12:35 
view
17 x 2 Migration/MigrationV3V4/...oHelpdeskChatBot/Models
Migration/MigrationV3V4/...oHelpdeskChatBot/Models
ContosoHelpdeskContext.cs
ContosoHelpdeskContext.cs
21:42 
21:42 
view
17 x 2 Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
Migration/MigrationV3V4/...HelpdeskChatBot/Dialogs
InstallAppDialog.cs
InstallAppDialog.cs
93:114 
93:114 
view
17 x 2 Migration/MigrationV3V4/CSharp/Skills/V3PizzaBot
Migration/MigrationV3V4/...lls/V3SimpleSandwichBot
ConversationHelper.cs
ConversationHelper.cs
30:49 
30:49 
view