microsoft / botbuilder-dotnet
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
  • 16% duplication:
    • 51,042 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 8,182 duplicated lines
  • 1,704 duplicates
system16% (8,182 lines)
Duplication per Extension
cs15% (7,266 lines)
yml40% (521 lines)
ps132% (224 lines)
vstemplate73% (171 lines)
Duplication per Component (primary)
libraries/Microsoft.Bot.Connector46% (2,199 lines)
generators/vsix-vs-win90% (1,059 lines)
libraries/AdaptiveExpressions9% (614 lines)
libraries/Microsoft.Bot.Builder.Dialogs.Adaptive9% (530 lines)
build/yaml40% (521 lines)
generators/dotnet-templates97% (505 lines)
libraries/Microsoft.Bot.Schema13% (442 lines)
libraries/Microsoft.Bot.Builder8% (374 lines)
libraries/Microsoft.Bot.Streaming18% (295 lines)
libraries/Microsoft.Bot.Builder.LanguageGeneration11% (283 lines)
libraries/Microsoft.Bot.Builder.Dialogs7% (261 lines)
build49% (224 lines)
libraries/integration12% (156 lines)
libraries/Adapters8% (143 lines)
libraries/Microsoft.Bot.Builder.AI.LUIS9% (129 lines)
FunctionalTests/Microsoft.Bot.Builder.FunctionalTests17% (126 lines)
libraries/Microsoft.Bot.Builder.AI.QnA8% (83 lines)
libraries/Microsoft.Bot.Builder.Azure8% (57 lines)
libraries/Microsoft.Bot.Connector.Streaming4% (43 lines)
libraries/Microsoft.Bot.Builder.Azure.Blobs13% (37 lines)
libraries/Parsers2% (30 lines)
libraries/Microsoft.Bot.Builder.Dialogs.Adaptive.Testing3% (26 lines)
libraries/Microsoft.Bot.Builder.ApplicationInsights38% (24 lines)
libraries/Microsoft.Bot.Builder.AI.Orchestrator6% (13 lines)
libraries/Microsoft.Bot.Builder.Dialogs.Declarative1% (8 lines)
ROOT0% (0 lines)
FunctionalTests0% (0 lines)
build/AnalyzeDeps0% (0 lines)
libraries0% (0 lines)
libraries/Microsoft.Bot.Builder.Azure.Queues0% (0 lines)
libraries/Microsoft.Bot.Builder.Dialogs.Adaptive.Runtime0% (0 lines)
libraries/Microsoft.Bot.Builder.Dialogs.Debugging0% (0 lines)
libraries/Microsoft.Bot.Builder.TemplateManager0% (0 lines)
libraries/Microsoft.Bot.Builder.Testing0% (0 lines)
libraries/Microsoft.Bot.Configuration0% (0 lines)
libraries/Swagger0% (0 lines)

Duplication Between Components (50+ lines)

G generators/dotnet-templates generators/dotnet-templates generators/vsix-vs-win generators/vsix-vs-win generators/dotnet-templates--generators/vsix-vs-win 1369 libraries/Microsoft.Bot.Builder.Dialogs.Adaptive libraries/Microsoft.Bot.Builder.Dialogs.Adaptive libraries/Microsoft.Bot.Builder.Dialogs libraries/Microsoft.Bot.Builder.Dialogs libraries/Microsoft.Bot.Builder.Dialogs.Adaptive--libraries/Microsoft.Bot.Builder.Dialogs 82 libraries/Microsoft.Bot.Connector.Streaming libraries/Microsoft.Bot.Connector.Streaming libraries/Microsoft.Bot.Streaming libraries/Microsoft.Bot.Streaming libraries/Microsoft.Bot.Connector.Streaming--libraries/Microsoft.Bot.Streaming 74 libraries/Microsoft.Bot.Builder.Azure libraries/Microsoft.Bot.Builder.Azure libraries/Microsoft.Bot.Builder libraries/Microsoft.Bot.Builder libraries/Microsoft.Bot.Builder.Azure--libraries/Microsoft.Bot.Builder 57 libraries/Microsoft.Bot.Builder.Azure--libraries/Microsoft.Bot.Streaming 56 libraries/Microsoft.Bot.Connector libraries/Microsoft.Bot.Connector libraries/integration libraries/integration libraries/Microsoft.Bot.Connector--libraries/integration 54 libraries/Microsoft.Bot.Builder.Dialogs.Adaptive.Testing libraries/Microsoft.Bot.Builder.Dialogs.Adaptive.Testing libraries/Microsoft.Bot.Builder.Dialogs.Adaptive.Testing--libraries/Microsoft.Bot.Builder.Dialogs 52

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 1,704 duplicates...
Size#FoldersFilesLinesCode
72 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
531:682 (6%)
995:1146 (6%)
view
70 x 2 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
MainDialog.cs
MainDialog.cs
1:154 (100%)
1:156 (100%)
view
66 x 2 generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
MainDialog.cs
MainDialog.cs
27:156 (94%)
28:157 (94%)
view
66 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
1012:1146 (6%)
1257:1391 (6%)
view
66 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
548:682 (6%)
1257:1391 (6%)
view
66 x 2 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
MainDialog.cs
MainDialog.cs
25:154 (94%)
28:157 (94%)
view
63 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
552:682 (6%)
779:909 (6%)
view
63 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
1016:1146 (6%)
2528:2658 (6%)
view
63 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
779:909 (6%)
1261:1391 (6%)
view
63 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
779:909 (6%)
1016:1146 (6%)
view
63 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
779:909 (6%)
2528:2658 (6%)
view
63 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
1261:1391 (6%)
2528:2658 (6%)
view
63 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
552:682 (6%)
2528:2658 (6%)
view
53 x 2 generators/vsix-vs-win/B...CoreBot/CognitiveModels
generators/vsix-vs-win/B...CoreBot/CognitiveModels
FlightBooking.cs
FlightBooking.cs
1:98 (100%)
1:98 (100%)
view
53 x 2 generators/dotnet-templa...CoreBot/CognitiveModels
generators/vsix-vs-win/B...CoreBot/CognitiveModels
FlightBooking.cs
FlightBooking.cs
1:98 (100%)
1:98 (100%)
view
53 x 2 generators/dotnet-templa...CoreBot/CognitiveModels
generators/vsix-vs-win/B...CoreBot/CognitiveModels
FlightBooking.cs
FlightBooking.cs
1:98 (100%)
1:98 (100%)
view
53 x 2 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
Conversations.cs
Conversations.cs
1607:1715 (5%)
2323:2431 (5%)
view
51 x 2 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
BookingDialog.cs
BookingDialog.cs
1:111 (100%)
1:111 (100%)
view
51 x 2 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
BookingDialog.cs
BookingDialog.cs
1:111 (100%)
1:111 (100%)
view
51 x 2 generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
BookingDialog.cs
BookingDialog.cs
1:111 (100%)
1:111 (100%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 73 unit duplicates...
Size#FoldersFilesLinesCode
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
90:133 
92:135 
93:136 
view
27 x 2 libraries/Microsoft.Bot.Builder.AI.QnA
libraries/Microsoft.Bot....gs.Adaptive/Recognizers
QnAMakerRecognizer.cs
AdaptiveRecognizer.cs
311:344 
47:80 
view
26 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
56:89 
56:89 
56:89 
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
23 x 2 libraries/Microsoft.Bot....ector.Streaming/Session
libraries/Microsoft.Bot..../Payloads/Disassemblers
StreamingSession.cs
PayloadDisassembler.cs
314:340 
95:121 
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
20 x 2 libraries/Microsoft.Bot.....Dialogs.Adaptive/Input
libraries/Microsoft.Bot.Builder.Dialogs/Prompts
DateTimeInput.cs
DatetimePrompt.cs
101:126 
126:151 
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
50:72 
52:74 
53:75 
view
19 x 2 libraries/Microsoft.Bot....ing/Transport/NamedPipe
libraries/Microsoft.Bot....ing/Transport/NamedPipe
NamedPipeClient.cs
NamedPipeServer.cs
177:201 
149:174 
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:38 
16:38 
view
18 x 2 libraries/Adapters/Micro...ilder.Adapters.Facebook
libraries/Adapters/Micro....Builder.Adapters.Slack
FacebookHelper.cs
SlackHelper.cs
200:223 
116:139 
view
18 x 2 libraries/Microsoft.Bot....ptive/TriggerConditions
libraries/Microsoft.Bot....ptive/TriggerConditions
OnAssignEntity.cs
OnChooseEntity.cs
70:93 
70:93 
view
18 x 4 libraries/Microsoft.Bot.Builder.Dialogs/Prompts
libraries/Microsoft.Bot.Builder.Dialogs/Prompts
libraries/Microsoft.Bot.Builder.Dialogs/Prompts
libraries/Microsoft.Bot.Builder.Dialogs/Prompts
AttachmentPrompt.cs
DatetimePrompt.cs
NumberPrompt.cs
TextPrompt.cs
42:62 
58:78 
69:89 
43:63 
view
17 x 3 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector/Teams
ConnectorClient.cs
OAuthClient.cs
TeamsConnectorClient.cs
146:165 
123:142 
112:131 
view
17 x 3 libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector
libraries/Microsoft.Bot.Connector/Teams
ConnectorClient.cs
OAuthClient.cs
TeamsConnectorClient.cs
185:204 
162:181 
151:170 
view
16 x 3 generators/dotnet-templa...content/CoreBot/Dialogs
generators/vsix-vs-win/B...mplates/CoreBot/Dialogs
generators/vsix-vs-win/B...thTests/CoreBot/Dialogs
BookingDialog.cs
BookingDialog.cs
BookingDialog.cs
20:40 
20:40 
20:40 
view
16 x 2 libraries/Adapters/Micro....Builder.Adapters.Slack
libraries/Adapters/Micro...Builder.Adapters.Twilio
SlackHelper.cs
TwilioHelper.cs
360:380 
170:190 
view
15 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
25:45 
27:47 
28:48 
view
15 x 7 generators/dotnet-templa...CoreBot/content/CoreBot
generators/dotnet-templa....CSharp.EchoBot/content
generators/dotnet-templa...CSharp.EmptyBot/content
generators/vsix-vs-win/B...rojectTemplates/CoreBot
generators/vsix-vs-win/B...oreBotWithTests/CoreBot
generators/vsix-vs-win/B...rojectTemplates/EchoBot
generators/vsix-vs-win/B...ojectTemplates/EmptyBot
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
Startup.cs
54:72 
42:60 
42:60 
55:73 
55:73 
42:60 
42:60 
view
15 x 2 generators/vsix-vs-win/B...tTemplates/CoreBot/Bots
generators/vsix-vs-win/B...tWithTests/CoreBot/Bots
DialogAndWelcomeBot.cs
DialogAndWelcomeBot.cs
44:60 
44:60 
view