It is recommended to use the NDepend interactive UI capabilities
to make the most of NDepend by mastering all aspects of your code.
Diagrams
Application Metrics
Note: Further Application Statistics are available.
|
Rules summary
58729This section lists all Rules violated, and Rules or Queries with Error- Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
- Number of Rules violated: 81
Summary of Rules violated

development-time, from within Visual
Studio. Online documentation.

existing code base? Use the option
Recent Violations Only!

can be used to break the build process if
violated. Online documentation.
Application Statistics
Stat | # Occurences | Avg | StdDev | Max |
---|---|---|---|---|
Properties on interfaces | 73 interfaces | 2 | 5.58 | 33 properties on Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager |
Methods on interfaces | 73 interfaces | 4.64 | 6.12 | 35 methods on Microsoft.AspNet.SignalR.Infrastructure.IPerformanceCounterManager |
Arguments on methods on interfaces | 339 methods | 0.63 | 0.9 | 7 arguments on Microsoft.AspNet.SignalR.Tests.Common.Infrastructure.ITestHost.Initialize(Nullable<Int32>,Nullable<Int32>,Nullable<Int32>,Nullable<Int32>,Nullable<Int32>,Boolean,MessageBusType) |
Public properties on classes | 1,608 Classes | 0.47 | 1.88 | 33 public properties on Microsoft.AspNet.SignalR.Infrastructure.PerformanceCounterManager |
Public methods on classes | 1,608 classes | 3.32 | 5.03 | 57 public methods on Microsoft.AspNet.SignalR.Tests.HubFacts |
Arguments on public methods on classes | 5,332 methods | 0.7 | 1.05 | 10 arguments on Microsoft.AspNet.SignalR.Infrastructure.Connection..ctor(IMessageBus,JsonSerializer,String,String,IList<String>,IList<String>,ITraceManager,IAckHandler,IPerformanceCounterManager,IProtectedData) |
IL instructions in non-abstract methods | 7,833 methods | 27.22 | 55.32 | 1184 IL instructions in Microsoft.AspNet.SignalR.Samples.Hubs.Chat.Chat.TryHandleCommand(String) |
Cyclomatic complexity on non abstract Methods | 7,833 Methods | 2.28 | 4.21 | CC = 98 for Microsoft.AspNet.SignalR.Tests.HubFacts+<SendToUser>d__72.MoveNext() |
Assemblies Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Assemblies | # lines of code | # IL instruction | # Types | # Abstract Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling | Relational Cohesion | Instability | Abstractness | Distance |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Microsoft.AspNet.SignalR.Client.Samples v2.1.1.0 | 124 | 2713 | 18 | 0 | 6 | 4 | - | 0 | 48 | 1.83 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.Client.JS v2.1.1.0 | 0 | 0 | 0 | 0 | - | - | - | 0 | 0 | 0 | 0 | 0 | 0 |
signalr v2.1.1.0 | 293 | 2480 | 19 | 4 | 351 | 54 | - | 0 | 88 | 1.84 | 1 | 0.21 | 0.15 |
Microsoft.AspNet.SignalR.Core v2.1.1.0 | 4984 | 43028 | 386 | 62 | 3100 | 38 | - | 475 | 258 | 3.51 | 0.35 | 0.16 | 0.34 |
crank v2.1.1.0 | 270 | 3103 | 18 | 0 | 13 | 4 | - | 0 | 78 | 2.33 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.LoadTestHarness v1.0.0.0 | 428 | 3800 | 50 | 0 | 60 | 12 | - | 0 | 90 | 1.56 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.StressServer v1.0.0.0 | 105 | 1569 | 20 | 0 | 23 | 17 | - | 4 | 64 | 1 | 0.94 | 0 | 0.04 |
Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 | 985 | 13411 | 167 | 4 | 67 | 6 | - | 328 | 256 | 1.27 | 0.44 | 0.03 | 0.38 |
Microsoft.AspNet.SignalR.ServiceBus v2.1.1.0 | 591 | 4648 | 48 | 0 | 101 | 14 | - | 4 | 91 | 1.92 | 0.96 | 0 | 0.03 |
Microsoft.AspNet.SignalR.Redis v2.1.1.0 | 448 | 3423 | 42 | 0 | 58 | 11 | - | 1 | 78 | 1.86 | 0.99 | 0 | 0.01 |
Microsoft.AspNet.SignalR.SqlServer v2.1.1.0 | 745 | 6522 | 63 | 2 | 133 | 15 | - | 8 | 106 | 1.9 | 0.93 | 0.03 | 0.03 |
Microsoft.AspNet.SignalR.Stress v2.1.1.0 | 1029 | 9351 | 91 | 5 | 128 | 11 | - | 0 | 177 | 2.2 | 1 | 0.05 | 0.04 |
Microsoft.AspNet.SignalR.Samples v2.1.1.0 | 726 | 12700 | 177 | 5 | 220 | 23 | - | 0 | 207 | 1.21 | 1 | 0.03 | 0.02 |
Microsoft.AspNet.SignalR.Client40 .Samples v2.1.1.0 | 92 | 739 | 8 | 0 | 4 | 4 | - | 0 | 33 | 1 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.Client.JS.Tests v2.1.1.0 | 0 | 0 | 0 | 0 | - | - | - | 0 | 0 | 0 | 0 | 0 | 0 |
Microsoft.AspNet.SignalR.Samples.VB v1.0.0.0 | 28 | 853 | 11 | 0 | - | - | - | 1 | 51 | 0.73 | 0.98 | 0 | 0.01 |
Microsoft.AspNet.SignalR.FunctionalTests v1.0.0.0 | 2986 | 59443 | 450 | 1 | 101 | 3 | - | 0 | 214 | 2.17 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.Client.Tests v1.0.0.0 | 468 | 5378 | 41 | 0 | 61 | 11 | - | 0 | 93 | 1.05 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.SystemWeb v2.1.1.0 | 13 | 53 | 2 | 0 | 93 | 87 | - | 0 | 18 | 0.5 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.DailyTests v1.0.0.0 | 60 | 528 | 4 | 0 | 19 | 24 | - | 0 | 14 | 1 | 1 | 0 | 0 |
Microsoft.AspNet.SelfHost.Samples v1.0.0.0 | 134 | 2948 | 36 | 1 | 27 | 16 | - | 0 | 88 | 1.22 | 1 | 0.03 | 0.02 |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples v1.0.0.0 | 311 | 4109 | 32 | 0 | 87 | 21 | - | 0 | 43 | 1.69 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.SqlServer.Tests v1.0.0.0 | 85 | 900 | 7 | 0 | 27 | 24 | - | 0 | 62 | 0.86 | 1 | 0 | 0 |
Microsoft.AspNet.SignalR.Tests v2.1.1.0 | 3250 | 31490 | 265 | 9 | 293 | 8 | - | 0 | 293 | 1.21 | 1 | 0.03 | 0.02 |
Types Metrics
If the code base analyzed has too many types, NDepend doesn't list Types Metrics to avoid a too big report. The section Types Metrics can be activated by unchecking the option: NDepend Project Properties > Report > Avoid too big report for large code base > Hide section Types Metrics if... It is recommended to use the NDepend interactive UI capabilities to browse large applications. |
Namespaces Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces | # lines of code | # IL instruction | # Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling |
---|---|---|---|---|---|---|---|---|
Microsoft.AspNet.SignalR.Client.Samples .exe:: | 0 | 103 | 1 | - | - | - | 1 | 5 |
Microsoft.AspNet.SignalR.Client.Samples .exe::Microsoft.AspNet.SignalR.Client .Samples | 124 | 2610 | 17 | 2 | 1 | - | 0 | 11 |
signalr.exe::System.Reflection | 3 | 34 | 1 | 0 | 0 | - | 0 | 2 |
signalr.exe::Microsoft.AspNet.SignalR .Infrastructure | 81 | 892 | 6 | 236 | 74 | - | 1 | 9 |
Microsoft.AspNet.SignalR.Utils | 209 | 1554 | 12 | 77 | 26 | - | 0 | 20 |
Microsoft.AspNet.SignalR.Core.dll:: | 0 | 966 | 7 | - | - | - | 2 | 5 |
Microsoft.AspNet.SignalR.Core .dll::Microsoft.AspNet.SignalR | 826 | 6556 | 67 | 545 | 39 | - | 69 | 31 |
Microsoft.AspNet.SignalR.Core .dll::Microsoft.AspNet.SignalR .Infrastructure | 842 | 6368 | 53 | 438 | 34 | - | 28 | 27 |
Microsoft.AspNet.SignalR.Configuration | 31 | 314 | 3 | 58 | 65 | - | 12 | 3 |
Microsoft.AspNet.SignalR.Hosting | 35 | 256 | 7 | 74 | 67 | - | 21 | 12 |
Microsoft.AspNet.SignalR.Hubs | 972 | 9720 | 127 | 851 | 46 | - | 36 | 30 |
Microsoft.AspNet.SignalR.Json | 100 | 850 | 6 | 89 | 47 | - | 11 | 10 |
Microsoft.AspNet.SignalR.Messaging | 1203 | 9174 | 47 | 387 | 24 | - | 17 | 23 |
Microsoft.AspNet.SignalR.WebSockets | 159 | 1761 | 11 | 25 | 13 | - | 3 | 12 |
Microsoft.AspNet.SignalR.Tracing | 13 | 113 | 2 | 0 | 0 | - | 17 | 6 |
Microsoft.AspNet.SignalR.Transports | 617 | 5142 | 35 | 292 | 32 | - | 9 | 23 |
Microsoft.AspNet.SignalR.Owin | 87 | 1103 | 11 | 23 | 20 | - | 3 | 16 |
Microsoft.AspNet.SignalR.Owin.Middleware | 20 | 117 | 2 | 0 | 0 | - | 1 | 8 |
Microsoft.AspNet.SignalR.Core.dll::Owin | 71 | 526 | 7 | 82 | 53 | - | 9 | 18 |
Microsoft.AspNet.SignalR.Core .dll::System.Diagnostics | 8 | 62 | 1 | 0 | 0 | - | 7 | 3 |
Microsoft.AspNet.SignalR.Crank | 270 | 3103 | 18 | 1 | 0 | - | 0 | 20 |
Microsoft.AspNet.SignalR.LoadTestHarness .dll:: | 0 | 278 | 1 | - | - | - | 1 | 5 |
Microsoft.AspNet.SignalR.LoadTestHarness .dll::Microsoft.AspNet.SignalR | 369 | 2787 | 33 | 34 | 8 | - | 1 | 9 |
Microsoft.AspNet.SignalR.LoadTestHarness | 59 | 735 | 16 | 1 | 1 | - | 0 | 18 |
Microsoft.AspNet.SignalR.StressServer .dll:: | 0 | 344 | 3 | - | - | - | 1 | 5 |
Microsoft.AspNet.SignalR.StressServer .dll::Microsoft.AspNet.SignalR.Samples | 52 | 456 | 4 | 0 | 0 | - | 1 | 8 |
Microsoft.AspNet.SignalR.StressServer .Connections | 1 | 14 | 1 | 0 | 0 | - | 2 | 3 |
Microsoft.AspNet.SignalR.StressServer .Hubs | 52 | 755 | 12 | 0 | 0 | - | 1 | 12 |
Microsoft.AspNet.SignalR.Tests.Common .dll:: | 0 | 1139 | 8 | - | - | - | 4 | 5 |
Microsoft.AspNet.SignalR.Tests.Common .dll::Microsoft.AspNet.SignalR .Infrastructure | 14 | 77 | 1 | 4 | 22 | - | 1 | 5 |
Microsoft.AspNet.SignalR.Tests.Common .dll::Microsoft.AspNet.SignalR.Samples .Hubs.Auth | 15 | 460 | 15 | 0 | 0 | - | 0 | 12 |
Microsoft.AspNet.SignalR.Tests.Common .dll::Microsoft.AspNet.SignalR.Samples .Hubs.ConnectDisconnect | 4 | 238 | 5 | 0 | 0 | - | 0 | 8 |
Microsoft.AspNet.SignalR.Tests.Common .dll::Microsoft.AspNet.SignalR.Samples .Hubs.DemoHub | 74 | 1952 | 22 | 0 | 0 | - | 2 | 13 |
Microsoft.AspNet.SignalR.Tests.Common .dll::Microsoft.AspNet.SignalR.Tests | 2 | 15 | 1 | 0 | 0 | - | 3 | 2 |
Microsoft.AspNet.SignalR.Tests .Infrastructure | 31 | 263 | 2 | 0 | 0 | - | 3 | 6 |
Microsoft.AspNet.SignalR.Tests.Utilities | 14 | 83 | 1 | 0 | 0 | - | 3 | 3 |
Microsoft.AspNet.SignalR.Tests.Common | 210 | 2453 | 28 | 11 | 4 | - | 3 | 40 |
Microsoft.AspNet.SignalR.Tests.Common .dll::Microsoft.AspNet.SignalR.Tests .Common.Connections | 29 | 231 | 5 | 3 | 9 | - | 1 | 9 |
Microsoft.AspNet.SignalR.Tests.Common .Handlers | 10 | 65 | 3 | 0 | 0 | - | 1 | 4 |
Microsoft.AspNet.SignalR.Tests.Common .Hubs | 65 | 2059 | 42 | 3 | 4 | - | 1 | 13 |
Microsoft.AspNet.SignalR.Tests.Common .Infrastructure | 388 | 3355 | 28 | 23 | 5 | - | 15 | 30 |
Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS | 109 | 646 | 1 | 3 | 2 | - | 1 | 11 |
Microsoft.AspNet.SignalR.Hosting.Memory | 15 | 226 | 3 | 0 | 0 | - | 5 | 14 |
Microsoft.AspNet.SignalR.Client.Http | 5 | 149 | 2 | 0 | 0 | - | 1 | 7 |
Microsoft.AspNet.SignalR.ServiceBus .dll::Microsoft.AspNet.SignalR | 352 | 2726 | 35 | 62 | 14 | - | 3 | 13 |
Microsoft.AspNet.SignalR.ServiceBus .dll::Microsoft.AspNet.SignalR .Infrastructure | 9 | 78 | 1 | 0 | 0 | - | 0 | 3 |
Microsoft.AspNet.SignalR.ServiceBus | 228 | 1810 | 10 | 23 | 9 | - | 2 | 18 |
Microsoft.AspNet.SignalR.ServiceBus .Infrastructure | 2 | 34 | 2 | 0 | 0 | - | 0 | 4 |
Microsoft.AspNet.SignalR.Redis .dll::Microsoft.AspNet.SignalR | 341 | 2660 | 36 | 30 | 8 | - | 2 | 13 |
Microsoft.AspNet.SignalR.Redis | 107 | 763 | 6 | 16 | 13 | - | 2 | 17 |
Microsoft.AspNet.SignalR.SqlServer .dll::Microsoft.AspNet.SignalR | 346 | 2642 | 36 | 34 | 8 | - | 3 | 14 |
Microsoft.AspNet.SignalR.SqlServer | 399 | 3880 | 27 | 64 | 13 | - | 3 | 22 |
Microsoft.AspNet.SignalR.Stress.exe:: | 0 | 344 | 3 | - | - | - | 1 | 5 |
Microsoft.AspNet.SignalR.Stress .exe::Microsoft.AspNet.SignalR | 324 | 2481 | 32 | 5 | 1 | - | 2 | 9 |
Microsoft.AspNet.SignalR.Stress .exe::Microsoft.AspNet.SignalR .Infrastructure | 45 | 365 | 2 | 6 | 11 | - | 3 | 6 |
Microsoft.AspNet.SignalR.Stress | 491 | 4527 | 41 | 57 | 10 | - | 2 | 36 |
Microsoft.AspNet.SignalR.Stress .Performance | 66 | 674 | 8 | 9 | 12 | - | 1 | 19 |
Microsoft.AspNet.SignalR.Stress .Infrastructure | 11 | 96 | 1 | 0 | 0 | - | 1 | 6 |
Microsoft.AspNet.SignalR.Stress.Stress | 92 | 864 | 4 | 18 | 16 | - | 0 | 14 |
Microsoft.AspNet.SignalR.Samples.dll:: | 0 | 756 | 7 | - | - | - | 4 | 5 |
Microsoft.AspNet.SignalR.Samples .dll::Microsoft.AspNet.SignalR | 45 | 306 | 1 | 29 | 39 | - | 1 | 4 |
Microsoft.AspNet.SignalR.Samples .dll::Microsoft.AspNet.SignalR.Tests .Common.Connections | 2 | 29 | 1 | 0 | 0 | - | 1 | 4 |
Microsoft.AspNet.SignalR.Samples .dll::Microsoft.AspNet.SignalR.Samples | 116 | 1133 | 17 | 30 | 20 | - | 0 | 34 |
Microsoft.AspNet.SignalR.Samples.Raw | 0 | 5 | 1 | 0 | 0 | - | 0 | 3 |
Microsoft.AspNet.SignalR.Samples .Streaming | 0 | 5 | 1 | 0 | 0 | - | 0 | 3 |
Microsoft.AspNet.SignalR.Samples .dll::Microsoft.AspNet.SignalR.Samples .Hubs.Auth | 28 | 578 | 16 | 21 | 42 | - | 0 | 17 |
Microsoft.AspNet.SignalR.Samples.Hubs .Benchmark | 16 | 330 | 3 | 0 | 0 | - | 0 | 9 |
Microsoft.AspNet.SignalR.Samples .dll::Microsoft.AspNet.SignalR.Samples .Hubs.ConnectDisconnect | 4 | 243 | 6 | 0 | 0 | - | 0 | 10 |
Microsoft.AspNet.SignalR.Samples.Hubs .Counting | 1 | 258 | 4 | 0 | 0 | - | 0 | 11 |
Microsoft.AspNet.SignalR.Samples.Hubs .DrawingPad | 0 | 5 | 1 | 0 | 0 | - | 0 | 3 |
Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI | 0 | 5 | 1 | 0 | 0 | - | 0 | 3 |
Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops | 0 | 5 | 1 | 0 | 0 | - | 0 | 3 |
Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking | 2 | 124 | 4 | 0 | 0 | - | 0 | 10 |
Microsoft.AspNet.SignalR.Samples.Hubs .SimultaneousConnections | 0 | 5 | 1 | 0 | 0 | - | 0 | 3 |
Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare | 85 | 992 | 15 | 0 | 0 | - | 0 | 12 |
Microsoft.AspNet.SignalR.Samples.Hubs .Test | 6 | 77 | 3 | 0 | 0 | - | 0 | 11 |
Microsoft.AspNet.SignalR.Samples .dll::Microsoft.AspNet.SignalR.Samples .Hubs.DemoHub | 76 | 2075 | 26 | 0 | 0 | - | 1 | 14 |
Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.MessageLoops | 16 | 317 | 4 | 0 | 0 | - | 0 | 9 |
Microsoft.AspNet.SignalR.Samples.Hubs .Chat | 214 | 2778 | 18 | 16 | 6 | - | 1 | 19 |
Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders | 27 | 565 | 8 | 0 | 0 | - | 1 | 13 |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad | 3 | 181 | 5 | 3 | 50 | - | 0 | 8 |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.HubConnectionAPI | 16 | 576 | 12 | 0 | 0 | - | 0 | 8 |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.RealtimeBroadcast | 14 | 228 | 3 | 0 | 0 | - | 0 | 9 |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test | 55 | 1124 | 18 | 0 | 0 | - | 0 | 15 |
Microsoft.AspNet.SignalR.Client40 .Samples.exe:: | 0 | 103 | 1 | - | - | - | 1 | 5 |
Microsoft.AspNet.SignalR.Client40 .Samples | 92 | 636 | 7 | 0 | 0 | - | 0 | 8 |
Microsoft.AspNet.SignalR.Samples.VB | 8 | 61 | 1 | - | - | - | 1 | 6 |
Microsoft.AspNet.SignalR.Samples.VB.My | 7 | 760 | 9 | - | - | - | 0 | 17 |
Microsoft.AspNet.SignalR.Samples.VB.My .Resources | 13 | 32 | 1 | - | - | - | 0 | 10 |
Microsoft.AspNet.SignalR.FunctionalTests .dll:: | 0 | 548 | 6 | - | - | - | 1 | 5 |
Microsoft.AspNet.SignalR.FunctionalTests .dll::Microsoft.AspNet.SignalR.Tests | 2536 | 49639 | 367 | 77 | 2 | - | 0 | 43 |
Microsoft.AspNet.SignalR.FunctionalTests .dll::Microsoft.AspNet.SignalR.Client .Tests | 254 | 4916 | 40 | 4 | 1 | - | 0 | 22 |
Microsoft.AspNet.SignalR.FunctionalTests .Server | 22 | 392 | 4 | 0 | 0 | - | 0 | 8 |
Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs | 153 | 3510 | 26 | 2 | 1 | - | 0 | 21 |
Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports | 21 | 438 | 7 | 1 | 4 | - | 0 | 12 |
Microsoft.AspNet.SignalR.Client.Tests .dll::Microsoft.AspNet.SignalR.Client .Tests | 461 | 5214 | 39 | 44 | 8 | - | 0 | 18 |
Microsoft.AspNet.SignalR.Client .Transports | 7 | 164 | 2 | 0 | 0 | - | 0 | 9 |
Microsoft.AspNet.SignalR.SystemWeb .dll::Microsoft.AspNet.SignalR | 3 | 23 | 1 | 4 | 57 | - | 0 | 5 |
Microsoft.AspNet.SignalR.SystemWeb .dll::System.Web.Routing | 10 | 30 | 1 | 81 | 89 | - | 0 | 5 |
Microsoft.AspNet.SignalR.FunctionalTests .NuGet | 60 | 528 | 4 | 2 | 3 | - | 0 | 6 |
Microsoft.AspNet.SelfHost.Samples.exe:: | 0 | 344 | 3 | - | - | - | 1 | 5 |
Microsoft.AspNet.SelfHost.Samples .exe::Microsoft.AspNet.SignalR.Samples | 52 | 456 | 4 | 0 | 0 | - | 1 | 8 |
Microsoft.AspNet.SelfHost.Samples .exe::Microsoft.AspNet.SignalR.Samples .Hubs.DemoHub | 71 | 2026 | 25 | 0 | 0 | - | 0 | 11 |
Microsoft.AspNet.Owin.Samples.Hubs | 1 | 41 | 2 | 0 | 0 | - | 0 | 7 |
Microsoft.AspNet.SelfHost.Samples | 10 | 81 | 2 | 9 | 47 | - | 0 | 13 |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples.exe:: | 0 | 103 | 1 | - | - | - | 1 | 1 |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .exe::Microsoft.AspNet.SignalR.Client .Samples | 128 | 2839 | 19 | 2 | 1 | - | 1 | 4 |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | 43 | 283 | 3 | 38 | 46 | - | 1 | 10 |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo | 140 | 884 | 9 | - | - | - | 1 | 4 |
Microsoft.AspNet.SignalR.Tests.SqlServer | 76 | 797 | 5 | 10 | 11 | - | 0 | 16 |
Microsoft.AspNet.SignalR.SqlServer.Tests | 9 | 103 | 2 | 0 | 0 | - | 0 | 5 |
Microsoft.AspNet.SignalR.Tests.dll:: | 0 | 173 | 1 | - | - | - | 1 | 5 |
Microsoft.AspNet.SignalR.Tests .dll::Microsoft.AspNet.SignalR.Tests | 996 | 9083 | 79 | 126 | 11 | - | 0 | 33 |
Microsoft.AspNet.SignalR.Tests.Hosting | 11 | 109 | 3 | 5 | 31 | - | 0 | 12 |
Microsoft.AspNet.SignalR.Tests.Json | 27 | 173 | 2 | 19 | 41 | - | 0 | 11 |
Microsoft.AspNet.SignalR.Tests.Owin | 216 | 2551 | 10 | 1 | 0 | - | 0 | 18 |
Microsoft.AspNet.SignalR.Tests.Tracing | 8 | 42 | 1 | 0 | 0 | - | 0 | 5 |
Microsoft.AspNet.SignalR.Tests.Core | 215 | 1286 | 15 | 25 | 10 | - | 0 | 27 |
Microsoft.AspNet.SignalR.Tests.Core.Hubs | 28 | 227 | 11 | 4 | 12 | - | 1 | 12 |
Microsoft.AspNet.SignalR.Tests.Server | 1072 | 9874 | 88 | 31 | 2 | - | 0 | 30 |
Microsoft.AspNet.SignalR.Tests.Server .Hubs | 322 | 3614 | 38 | 36 | 10 | - | 0 | 27 |
Microsoft.AspNet.SignalR.Tests.Server .Transports | 355 | 4358 | 17 | 37 | 9 | - | 0 | 25 |
1102
Code Quality |
|
![]() | Critical Rule warning: Methods too complex - critical |
warnif count > 0 from m in JustMyCode.Methods where
m.ILCyclomaticComplexity > 40 &&
m.ILNestingDepth > 5
orderby m.ILCyclomaticComplexity descending,
m.ILNestingDepth descending
select new { m, m.ILCyclomaticComplexity, m.ILNestingDepth }
// Methods with ILCyclomaticComplexity > 40 and ILNestingDepth > 4
// are really too complex and should be split
// in smaller methods, or even types.
// See the definition of the ILCyclomaticComplexity metric here
// http://www.ndepend.com/Metrics.aspx#ILCC
// See the definition of the ILNestingDepth metric here
// http://www.NDepend.com/Metrics.aspx#ILNestingDepthView Code Query or Rule Body
15 methods matched
methods | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | Full Name |
---|---|---|---|
MoveNext() | 98 | 12 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToUser>d__72.MoveNext() |
TryHandleCommand(String) | 51 | 6 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.TryHandleCommand(String) |
MoveNext() | 48 | 8 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToMultipleUsers>d__3a.MoveNext() |
MoveNext() | 47 | 8 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <VerifyOwinContext>d__95.MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+SendFacts+ <SendToAllButCaller>d__9f.MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts+ <SendToUsersFromOutsideOfHub>d__17 .MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts+ <SendToAllFromOutsideOfHub>d__52 .MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCaller>d__200.MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCallerInGroup>d__20d .MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAll>d__21a.MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSelf>d__227.MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSpecificConnections>d__235 .MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSpecificGroups>d__251.MoveNext() |
MoveNext() | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCallerInGroups>d__25f .MoveNext() |
MoveNext() | 41 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToUserConnectDisconnectEvents>d__87 .MoveNext() |
Statistics
Stat | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth |
---|---|---|
Sum: | 705 | 111 |
Average: | 47 | 7.4 |
Minimum: | 41 | 6 |
Maximum: | 98 | 12 |
Standard deviation: | 13.91 | 1.31 |
Variance: | 193.6 | 1.71 |
![]() | Critical Rule warning: Methods with too many parameters - critical |
warnif count > 0 from m in JustMyCode.Methods where
m.NbParameters > 8
orderby m.NbParameters descending
select new { m, m.NbParameters }
// Methods with more than 8 parameters might be painful to call
// and might degrade performance. You should prefer using
// additional properties/fields to the declaring type to
// handle numerous states. Another alternative is to provide
// a class or structure dedicated to handle arguments passing
// (for example see the class System.Diagnostics.ProcessStartInfo
// and the method System.Diagnostics.Process.Start(ProcessStartInfo))
// See the definition of the NbParameters metric here
// http://www.ndepend.com/Metrics.aspx#NbParameters
View Code Query or Rule Body
3 methods matched
methods | # Parameters | Full Name |
---|---|---|
.ctor(IMessageBus,JsonSerializer,String ,String,IList<String>,IList<String> ,ITraceManager,IAckHandler ,IPerformanceCounterManager ,IProtectedData) | 10 | Microsoft.AspNet.SignalR.Infrastructure .Connection..ctor(IMessageBus ,JsonSerializer,String,String,IList <String>,IList<String>,ITraceManager ,IAckHandler,IPerformanceCounterManager ,IProtectedData) |
.ctor(<Url>j__TPar,<ConnectionToken >j__TPar,<ConnectionId>j__TPar, <KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar) | 9 | <>f__AnonymousType5<<Url>j__TPar, <ConnectionToken>j__TPar,<ConnectionId >j__TPar,<KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar>..ctor( <Url>j__TPar,<ConnectionToken>j__TPar, <ConnectionId>j__TPar,<KeepAliveTimeout >j__TPar,<DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar) |
.ctor(String,IList<String>,TopicLookup ,String,Func<MessageResult,Object,Task <Boolean>>,Int32,IStringMinifier ,IPerformanceCounterManager,Object) | 9 | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription..ctor(String,IList <String>,TopicLookup,String,Func <MessageResult,Object,Task<Boolean>> ,Int32,IStringMinifier ,IPerformanceCounterManager,Object) |
Statistics
Stat | # Parameters |
---|---|
Sum: | 28 |
Average: | 9.33 |
Minimum: | 9 |
Maximum: | 10 |
Standard deviation: | 0.47 |
Variance: | 0.22 |
![]() | Rule warning: Quick summary of methods to refactor |
warnif count > 0 from m in JustMyCode.Methods where
// Code Metrics' definitions
m.NbLinesOfCode > 30 || // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
// We've commented # IL Instructions, because with LINQ syntax, a few lines of code can compile to hundreds of IL instructions.
// m.NbILInstructions > 200 || // http://www.ndepend.com/Metrics.aspx#NbILInstructions
m.CyclomaticComplexity > 20 || // http://www.ndepend.com/Metrics.aspx#CC
m.ILCyclomaticComplexity > 50 || // http://www.ndepend.com/Metrics.aspx#ILCC
m.ILNestingDepth > 5 || // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
m.NbParameters > 5 || // http://www.ndepend.com/Metrics.aspx#NbParameters
m.NbVariables > 8 || // http://www.ndepend.com/Metrics.aspx#NbVariables
m.NbOverloads > 6 // http://www.ndepend.com/Metrics.aspx#NbOverloads
select new { m, m.NbLinesOfCode, m.NbILInstructions, m.CyclomaticComplexity,
m.ILCyclomaticComplexity, m.ILNestingDepth,
m.NbParameters, m.NbVariables, m.NbOverloads } View Code Query or Rule Body
344 methods matched
methods | # lines of code (LOC) | # IL instructions | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | # Parameters | # Variables | # Overloads | Full Name |
---|---|---|---|---|---|---|---|---|---|
MoveNext() | 14 | 462 | 1 | 27 | 9 | 0 | 2 | 1 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunHubConnectionAPI>d__6 .MoveNext() |
MoveNext() | 20 | 346 | 5 | 20 | 6 | 0 | 5 | 1 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunAuth>d__24.MoveNext() |
MoveNext() | 21 | 376 | 2 | 24 | 7 | 0 | 3 | 1 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunPendingCallbacks>d__3f .MoveNext() |
ParseArguments(String[],String&,Boolean& ,String&,String&) | 21 | 91 | 9 | 11 | 6 | 5 | 2 | 1 | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand.ParseArguments (String[],String&,Boolean&,String& ,String&) |
.ctor(<Url>j__TPar,<ConnectionToken >j__TPar,<ConnectionId>j__TPar, <KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar) | 0 | 30 | N/A | 1 | 0 | 9 | 0 | 1 | <>f__AnonymousType5<<Url>j__TPar, <ConnectionToken>j__TPar,<ConnectionId >j__TPar,<KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar>..ctor( <Url>j__TPar,<ConnectionToken>j__TPar, <ConnectionId>j__TPar,<KeepAliveTimeout >j__TPar,<DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar) |
Equals(Object) | 0 | 74 | N/A | 3 | 9 | 1 | 2 | 1 | <>f__AnonymousType5<<Url>j__TPar, <ConnectionToken>j__TPar,<ConnectionId >j__TPar,<KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar>.Equals (Object) |
ProcessRequest(HostContext) | 31 | 262 | 9 | 10 | 1 | 1 | 8 | 2 | Microsoft.AspNet.SignalR .PersistentConnection.ProcessRequest (HostContext) |
Then(Task,Action) | 4 | 23 | 5 | 5 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 5 | 28 | 5 | 6 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 4 | 25 | 5 | 5 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 4 | 27 | 5 | 5 | 1 | 4 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 4 | 26 | 5 | 5 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 4 | 28 | 5 | 5 | 1 | 4 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 4 | 30 | 5 | 5 | 1 | 5 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 5 | 46 | 5 | 7 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 5 | 45 | 5 | 7 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 5 | 32 | 5 | 6 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 4 | 24 | 5 | 5 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 5 | 29 | 5 | 6 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 4 | 25 | 5 | 5 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 4 | 41 | 5 | 6 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 4 | 27 | 5 | 5 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
FromMethod(Action) | 4 | 17 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Action) |
FromMethod<T1>(Action<T1>,T1) | 4 | 18 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Action<T1>,T1) |
FromMethod<T1,T2>(Action<T1,T2>,T1,T2) | 4 | 19 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Action<T1,T2>,T1,T2) |
FromMethod(Func<Task>) | 3 | 15 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Func<Task>) |
FromMethod<TResult>(Func<Task<TResult>>) | 3 | 15 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<Task<TResult>> ) |
FromMethod<TResult>(Func<TResult>) | 3 | 16 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<TResult>) |
FromMethod<T1>(Func<T1,Task>,T1) | 3 | 16 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Func<T1,Task>,T1) |
FromMethod<T1,T2>(Func<T1,T2,Task>,T1,T2 ) | 3 | 17 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Func<T1,T2,Task>,T1 ,T2) |
FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task> ,T1,T2,T3) | 3 | 18 | 2 | 2 | 1 | 4 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task >,T1,T2,T3) |
FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) | 3 | 16 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) |
FromMethod<T1,TResult>(Func<T1,TResult> ,T1) | 3 | 17 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,TResult> ,T1) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) | 3 | 17 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) | 3 | 18 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) |
ThenWithArgs(Task,Action<T1>,T1) | 1 | 18 | 1 | 1 | 0 | 3 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Action<T1>,T1) |
ThenWithArgs(Task,Action<T1,T2>,T1,T2) | 1 | 21 | 1 | 1 | 0 | 4 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Action<T1,T2>,T1,T2) |
ThenWithArgs(Task,Func<T1,TResult>,T1) | 1 | 18 | 1 | 1 | 0 | 3 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,TResult>,T1) |
ThenWithArgs(Task,Func<T1,T2,TResult>,T1 ,T2) | 1 | 21 | 1 | 1 | 0 | 4 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,T2,TResult>,T1,T2) |
ThenWithArgs(Task<T>,Func<T,T1,TResult> ,T1) | 1 | 18 | 1 | 1 | 0 | 3 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<T,T1,TResult>,T1) |
ThenWithArgs(Task,Func<T1,Task>,T1) | 1 | 18 | 1 | 1 | 0 | 3 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,Task>,T1) |
ThenWithArgs(Task,Func<T1,T2,Task>,T1,T2 ) | 1 | 21 | 1 | 1 | 0 | 4 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,T2,Task>,T1,T2) |
ThenWithArgs(Task,Func<T1,T2,T3,Task>,T1 ,T2,T3) | 1 | 24 | 1 | 1 | 0 | 5 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,T2,T3,Task>,T1,T2,T3) |
ThenWithArgs(Task<T>,Func<T,T1,Task <TResult>>,T1) | 1 | 18 | 1 | 1 | 0 | 3 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<T,T1,Task<TResult>>,T1) |
ThenWithArgs(Task<T>,Func<Task<T>,T1 ,Task<T>>,T1) | 1 | 18 | 1 | 1 | 0 | 3 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<Task<T>,T1,Task<T>>,T1) |
SipHash_2_4_UlongCast_ForcedInline(Byte* ,UInt32,UInt64,UInt64) | 135 | 767 | 4 | 6 | 2 | 4 | 11 | 1 | Microsoft.AspNet.SignalR.Infrastructure .SipHashBasedStringEqualityComparer .SipHash_2_4_UlongCast_ForcedInline (Byte*,UInt32,UInt64,UInt64) |
.ctor(IMessageBus,JsonSerializer,String ,String,IList<String>,IList<String> ,ITraceManager,IAckHandler ,IPerformanceCounterManager ,IProtectedData) | 14 | 66 | 2 | 3 | 1 | 10 | 0 | 1 | Microsoft.AspNet.SignalR.Infrastructure .Connection..ctor(IMessageBus ,JsonSerializer,String,String,IList <String>,IList<String>,ITraceManager ,IAckHandler,IPerformanceCounterManager ,IProtectedData) |
.ctor(IConnection,IHubPipelineInvoker ,String,String,String,IList<String>) | 6 | 29 | 1 | 1 | 0 | 6 | 0 | 1 | Microsoft.AspNet.SignalR.Hubs .SignalProxy..ctor(IConnection ,IHubPipelineInvoker,String,String ,String,IList<String>) |
.ctor(IConnection,IHubPipelineInvoker ,IList<String>,String,String,IList <String>) | 6 | 41 | 1 | 2 | 1 | 6 | 0 | 1 | Microsoft.AspNet.SignalR.Hubs .MultipleSignalProxy..ctor(IConnection ,IHubPipelineInvoker,IList<String> ,String,String,IList<String>) |
GetExecutor(MethodInfo) | 20 | 128 | 4 | 7 | 1 | 1 | 14 | 1 | Microsoft.AspNet.SignalR.Hubs .HubMethodDispatcher.GetExecutor (MethodInfo) |
MoveNext() | 13 | 159 | 5 | 15 | 6 | 0 | 6 | 1 | Microsoft.AspNet.SignalR.Hubs .HubPipelineModule+<>c__DisplayClass1+< <BuildIncoming>b__0>d__3.MoveNext() |
.ctor(IConnection,IHubPipelineInvoker ,String,String,String,StateChangeTracker ) | 2 | 15 | 1 | 1 | 0 | 6 | 0 | 1 | Microsoft.AspNet.SignalR.Hubs .StatefulSignalProxy..ctor(IConnection ,IHubPipelineInvoker,String,String ,String,StateChangeTracker) |
Incoming(IHubIncomingInvokerContext) | 18 | 125 | 4 | 6 | 2 | 1 | 11 | 1 | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.Incoming (IHubIncomingInvokerContext) |
GetCursors(String,String,Func<String ,Object,String>,Object) | 56 | 268 | 18 | 22 | 4 | 4 | 12 | 3 | Microsoft.AspNet.SignalR.Messaging .Cursor.GetCursors(String,String,Func <String,Object,String>,Object) |
GetMessagesImpl(UInt64,Int32) | 20 | 149 | 6 | 9 | 1 | 2 | 10 | 1 | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>.GetMessagesImpl(UInt64 ,Int32) |
TryAddImpl(T,UInt64&) | 22 | 149 | 8 | 11 | 3 | 2 | 10 | 1 | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>.TryAddImpl(T,UInt64&) |
TryAddImpl(ScaleoutMapping,UInt64&) | 34 | 219 | 11 | 15 | 4 | 2 | 11 | 1 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore.TryAddImpl (ScaleoutMapping,UInt64&) |
GetMessages(UInt64) | 18 | 137 | 6 | 9 | 1 | 1 | 10 | 1 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore.GetMessages(UInt64) |
.ctor(Func<Int32,IList<Message>,Task> ,Action<Int32,UInt64,ScaleoutMessage> ,Int32,TraceSource ,IPerformanceCounterManager ,ScaleoutConfiguration) | 16 | 97 | 4 | 6 | 1 | 6 | 2 | 1 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager..ctor(Func<Int32 ,IList<Message>,Task>,Action<Int32 ,UInt64,ScaleoutMessage>,Int32 ,TraceSource,IPerformanceCounterManager ,ScaleoutConfiguration) |
.ctor(String,IList<String>,Func <MessageResult,Object,Task<Boolean>> ,Int32,IPerformanceCounterManager,Object ) | 20 | 101 | 6 | 6 | 1 | 6 | 0 | 1 | Microsoft.AspNet.SignalR.Messaging .Subscription..ctor(String,IList<String> ,Func<MessageResult,Object,Task<Boolean> >,Int32,IPerformanceCounterManager ,Object) |
.ctor(String,IList<String>,String,IList <ScaleoutMappingStore>,Func <MessageResult,Object,Task<Boolean>> ,Int32,IPerformanceCounterManager,Object ) | 18 | 110 | 7 | 9 | 2 | 8 | 2 | 1 | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription..ctor(String,IList <String>,String,IList <ScaleoutMappingStore>,Func <MessageResult,Object,Task<Boolean>> ,Int32,IPerformanceCounterManager,Object ) |
ExtractMessages(Int32,ScaleoutMapping ,IList<ArraySegment<Message>>,Int32&) | 19 | 170 | 8 | 15 | 7 | 4 | 7 | 1 | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription.ExtractMessages (Int32,ScaleoutMapping,IList <ArraySegment<Message>>,Int32&) |
.ctor(String,IList<String>,TopicLookup ,String,Func<MessageResult,Object,Task <Boolean>>,Int32,IStringMinifier ,IPerformanceCounterManager,Object) | 19 | 165 | 8 | 14 | 3 | 9 | 3 | 1 | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription..ctor(String,IList <String>,TopicLookup,String,Func <MessageResult,Object,Task<Boolean>> ,Int32,IStringMinifier ,IPerformanceCounterManager,Object) |
MoveNext() | 25 | 346 | 13 | 39 | 6 | 0 | 4 | 1 | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ <ProcessWebSocketRequestAsync>d__e .MoveNext() |
MoveNext() | 23 | 328 | 10 | 25 | 10 | 0 | 3 | 1 | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessageReader+ <ReadMessageAsync>d__0.MoveNext() |
.ctor(HostContext,JsonSerializer ,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,IConfigurationManager) | 2 | 14 | 1 | 1 | 0 | 6 | 0 | 2 | Microsoft.AspNet.SignalR.Transports .LongPollingTransport..ctor(HostContext ,JsonSerializer,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,IConfigurationManager) |
.ctor(HostContext,JsonSerializer ,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,Nullable<Int32>) | 7 | 35 | 1 | 1 | 0 | 6 | 0 | 2 | Microsoft.AspNet.SignalR.Transports .WebSocketTransport..ctor(HostContext ,JsonSerializer,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,Nullable<Int32>) |
UseSignalRMiddleware<T>(IAppBuilder ,Object[]) | 32 | 199 | 10 | 12 | 2 | 2 | 9 | 1 | Owin.OwinExtensions.UseSignalRMiddleware <T>(IAppBuilder,Object[]) |
MoveNext() | 14 | 248 | 6 | 24 | 7 | 0 | 2 | 1 | Microsoft.AspNet.SignalR.Crank.Client+ <Run>d__0.MoveNext() |
.ctor(<ConnectionBehavior>j__TPar, <BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar) | 0 | 24 | N/A | 1 | 0 | 7 | 0 | 1 | <>f__AnonymousType0<<ConnectionBehavior >j__TPar,<BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar>..ctor( <ConnectionBehavior>j__TPar, <BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar) |
Equals(Object) | 0 | 60 | N/A | 3 | 7 | 1 | 2 | 1 | <>f__AnonymousType0<<ConnectionBehavior >j__TPar,<BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar>.Equals(Object) |
Then(Task,Action) | 4 | 23 | 5 | 5 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 5 | 28 | 5 | 6 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 4 | 25 | 5 | 5 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 4 | 27 | 5 | 5 | 1 | 4 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 4 | 26 | 5 | 5 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 4 | 28 | 5 | 5 | 1 | 4 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 4 | 30 | 5 | 5 | 1 | 5 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 5 | 46 | 5 | 7 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 5 | 45 | 5 | 7 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 5 | 32 | 5 | 6 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 4 | 24 | 5 | 5 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 5 | 29 | 5 | 6 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 4 | 25 | 5 | 5 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 4 | 41 | 5 | 6 | 1 | 2 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 4 | 27 | 5 | 5 | 1 | 3 | 0 | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
FromMethod(Action) | 4 | 17 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Action) |
FromMethod<T1>(Action<T1>,T1) | 4 | 18 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Action<T1>,T1) |
FromMethod<T1,T2>(Action<T1,T2>,T1,T2) | 4 | 19 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Action<T1,T2>,T1,T2) |
FromMethod(Func<Task>) | 3 | 15 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Func<Task>) |
FromMethod<TResult>(Func<Task<TResult>>) | 3 | 15 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<Task<TResult>> ) |
FromMethod<TResult>(Func<TResult>) | 3 | 16 | 2 | 2 | 1 | 1 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<TResult>) |
FromMethod<T1>(Func<T1,Task>,T1) | 3 | 16 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Func<T1,Task>,T1) |
FromMethod<T1,T2>(Func<T1,T2,Task>,T1,T2 ) | 3 | 17 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Func<T1,T2,Task>,T1 ,T2) |
FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task> ,T1,T2,T3) | 3 | 18 | 2 | 2 | 1 | 4 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task >,T1,T2,T3) |
FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) | 3 | 16 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) |
FromMethod<T1,TResult>(Func<T1,TResult> ,T1) | 3 | 17 | 2 | 2 | 1 | 2 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,TResult> ,T1) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) | 3 | 17 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) | 3 | 18 | 2 | 2 | 1 | 3 | 1 | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) |
ThenWithArgs(Task,Action<T1>,T1) | 1 | 18 | 1 | 1 | 0 | 3 | 0 | 10 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Action<T1>,T1) |
Statistics
Stat | # lines of code (LOC) | # IL instructions | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | # Parameters | # Variables | # Overloads |
---|---|---|---|---|---|---|---|---|
Sum: | 2 972 | 35 923 | 1 060 | 2 814 | 620 | 829 | 614 | 3 090 |
Average: | 8.66 | 104.73 | 3.15 | 8.2 | 1.81 | 2.41 | 1.79 | 8.98 |
Minimum: | 0 | 2 | 1 | 1 | 0 | 0 | 0 | 1 |
Maximum: | 135 | 1 184 | 26 | 98 | 12 | 10 | 18 | 15 |
Standard deviation: | 12.48 | 155.38 | 2.92 | 12.05 | 2.37 | 1.84 | 3.18 | 5.87 |
Variance: | 155.86 | 24 142 | 8.55 | 145.1 | 5.62 | 3.38 | 10.11 | 34.41 |
![]() | Rule warning: Methods too big |
warnif count > 0 from m in JustMyCode.Methods where
m.NbLinesOfCode > 30
// We've commented # IL Instructions, because with LINQ syntax, a few lines of code can compile to hundreds of IL instructions.
// || m.NbILInstructions > 200
orderby m.NbLinesOfCode descending,
m.NbILInstructions descending
select new { m, m.NbLinesOfCode, m.NbILInstructions }
// Methods where NbLinesOfCode > 30 or NbILInstructions > 200
// are extremely complex and should be split in smaller methods.
// See the definition of the NbLinesOfCode metric here
// http://www.ndepend.com/Metrics.aspx#NbLinesOfCodeView Code Query or Rule Body
16 methods matched
methods | # lines of code (LOC) | # IL instructions | Full Name |
---|---|---|---|
SipHash_2_4_UlongCast_ForcedInline(Byte* ,UInt32,UInt64,UInt64) | 135 | 767 | Microsoft.AspNet.SignalR.Infrastructure .SipHashBasedStringEqualityComparer .SipHash_2_4_UlongCast_ForcedInline (Byte*,UInt32,UInt64,UInt64) |
TryHandleCommand(String) | 93 | 1 184 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.TryHandleCommand(String) |
ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) | 56 | 465 | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation .ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) |
GetCursors(String,String,Func<String ,Object,String>,Object) | 56 | 268 | Microsoft.AspNet.SignalR.Messaging .Cursor.GetCursors(String,String,Func <String,Object,String>,Object) |
MoveNext() | 39 | 637 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <VerifyOwinContext>d__95.MoveNext() |
ConfigureRoutes(IAppBuilder ,IDependencyResolver) | 38 | 285 | Microsoft.AspNet.SignalR.Tests.Common .Initializer.ConfigureRoutes(IAppBuilder ,IDependencyResolver) |
Run(String,String) | 36 | 186 | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.CommonNuGet.Run(String,String) |
CreateHost(HostType,TransportType,String ,String) | 35 | 211 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTestFactory .CreateHost(HostType,TransportType ,String,String) |
MoveNext() | 34 | 536 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+Owin+ <EnvironmentIsAvailable>d__bf.MoveNext() |
TryAddImpl(ScaleoutMapping,UInt64&) | 34 | 219 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore.TryAddImpl (ScaleoutMapping,UInt64&) |
StringsCanBeReminifiedAfterBeingRemoved( ) | 34 | 193 | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts .StringsCanBeReminifiedAfterBeingRemoved () |
MoveNext() | 33 | 388 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <FarmDisconnectRaisesUncleanDisconnects >d__3c.MoveNext() |
UseSignalRMiddleware<T>(IAppBuilder ,Object[]) | 32 | 199 | Owin.OwinExtensions.UseSignalRMiddleware <T>(IAppBuilder,Object[]) |
MoveNext() | 31 | 769 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToUser>d__72.MoveNext() |
ProcessRequest(HostContext) | 31 | 262 | Microsoft.AspNet.SignalR .PersistentConnection.ProcessRequest (HostContext) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 31 | 197 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Statistics
Stat | # lines of code (LOC) | # IL instructions |
---|---|---|
Sum: | 748 | 6 766 |
Average: | 46.75 | 422.88 |
Minimum: | 31 | 186 |
Maximum: | 135 | 1 184 |
Standard deviation: | 27.53 | 278.9 |
Variance: | 757.94 | 77 787 |
![]() | Rule warning: Methods too complex |
warnif count > 0 from m in JustMyCode.Methods where
m.CyclomaticComplexity > 20 ||
m.ILCyclomaticComplexity > 40 ||
m.ILNestingDepth > 5
orderby m.CyclomaticComplexity descending,
m.ILCyclomaticComplexity descending,
m.ILNestingDepth descending
select new { m, m.CyclomaticComplexity,
m.ILCyclomaticComplexity,
m.ILNestingDepth }
// Methods where CyclomaticComplexity > 20
// or ILCyclomaticComplexity > 40
// or ILNestingDepth > 4
// are hard to understand and maintain
// and should be split in smaller methods.
// See the definition of the complexity metrics here:
// http://www.ndepend.com/Metrics.aspx#CC
// http://www.ndepend.com/Metrics.aspx#ILCC
// http://www.NDepend.com/Metrics.aspx#ILNestingDepthView Code Query or Rule Body
57 methods matched
methods | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | Full Name |
---|---|---|---|---|
TryHandleCommand(String) | 26 | 51 | 6 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.TryHandleCommand(String) |
ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) | 17 | 29 | 7 | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation .ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) |
MoveNext() | 13 | 39 | 6 | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ <ProcessWebSocketRequestAsync>d__e .MoveNext() |
MoveNext() | 10 | 25 | 10 | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessageReader+ <ReadMessageAsync>d__0.MoveNext() |
ParseArguments(String[],String&,Boolean& ,String&,String&) | 9 | 11 | 6 | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand.ParseArguments (String[],String&,Boolean&,String& ,String&) |
ExtractMessages(Int32,ScaleoutMapping ,IList<ArraySegment<Message>>,Int32&) | 8 | 15 | 7 | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription.ExtractMessages (Int32,ScaleoutMapping,IList <ArraySegment<Message>>,Int32&) |
MoveNext() | 6 | 24 | 7 | Microsoft.AspNet.SignalR.Crank.Client+ <Run>d__0.MoveNext() |
MoveNext() | 5 | 20 | 6 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunAuth>d__24.MoveNext() |
MoveNext() | 5 | 20 | 6 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunAuth>d__24.MoveNext() |
MoveNext() | 5 | 15 | 6 | Microsoft.AspNet.SignalR.Hubs .HubPipelineModule+<>c__DisplayClass1+< <BuildIncoming>b__0>d__3.MoveNext() |
MoveNext() | 4 | 31 | 6 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <FarmDisconnectRaisesUncleanDisconnects >d__3c.MoveNext() |
MoveNext() | 2 | 36 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <JoinAndSendToGroupRenamedHub>d__26c .MoveNext() |
MoveNext() | 2 | 35 | 6 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start+ <ConnectionErrorCapturesExceptionsThrown WhenReceivingResponseFromSend>d__b3 .MoveNext() |
MoveNext() | 2 | 31 | 6 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <CanChangeExceptionsInHubPipelineModuleO nIncomingError>d__288.MoveNext() |
MoveNext() | 2 | 24 | 7 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunPendingCallbacks>d__3f .MoveNext() |
MoveNext() | 2 | 24 | 7 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunPendingCallbacks>d__3f .MoveNext() |
MoveNext() | 2 | 13 | 6 | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts+<>c__DisplayClass5+< <SubscriptionWithCancelledTaskCanBeDispo sed>b__4>d__7.MoveNext() |
MoveNext() | 1 | 98 | 12 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToUser>d__72.MoveNext() |
MoveNext() | 1 | 48 | 8 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToMultipleUsers>d__3a.MoveNext() |
MoveNext() | 1 | 47 | 8 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <VerifyOwinContext>d__95.MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+SendFacts+ <SendToAllButCaller>d__9f.MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts+ <SendToUsersFromOutsideOfHub>d__17 .MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts+ <SendToAllFromOutsideOfHub>d__52 .MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCaller>d__200.MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCallerInGroup>d__20d .MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAll>d__21a.MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSelf>d__227.MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSpecificConnections>d__235 .MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSpecificGroups>d__251.MoveNext() |
MoveNext() | 1 | 42 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCallerInGroups>d__25f .MoveNext() |
MoveNext() | 1 | 41 | 7 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToUserConnectDisconnectEvents>d__87 .MoveNext() |
MoveNext() | 1 | 40 | 8 | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.SecurityFacts+ <GroupsTokenIsPerConnectionId>d__b .MoveNext() |
MoveNext() | 1 | 39 | 8 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start+ <ClientStaysReconnectedAfterDisconnectTi meout>d__96.MoveNext() |
MoveNext() | 1 | 35 | 7 | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ClientCallbackWithFewerArgumentsDoesNot Throw>d__97.MoveNext() |
MoveNext() | 1 | 34 | 7 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync+<SendToGroupFromOutsideOfConnection >d__35.MoveNext() |
MoveNext() | 1 | 31 | 6 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <CanSendViaUser>d__54.MoveNext() |
MoveNext() | 1 | 31 | 6 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <CanSendViaUserWhenPrincipalSet>d__65 .MoveNext() |
MoveNext() | 1 | 30 | 8 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+Owin+ <EnvironmentIsAvailable>d__bf.MoveNext() |
MoveNext() | 1 | 30 | 6 | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ClientCallbackInvalidNumberOfArgumentsE xceptionThrown>d__8a.MoveNext() |
MoveNext() | 1 | 30 | 6 | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ClientCallbackArgumentTypeMismatchExcep tionThrown>d__a4.MoveNext() |
MoveNext() | 1 | 30 | 6 | Microsoft.AspNet.SignalR.Tests .KeepAliveFacts+<SuccessiveTimeoutTest >d__f.MoveNext() |
MoveNext() | 1 | 30 | 6 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <RejoiningGroupsOnlyReceivesGroupsBelong ingToHub>d__1aa.MoveNext() |
MoveNext() | 1 | 29 | 6 | Microsoft.AspNet.SignalR.Tests .ReconnectFacts+ <ReconnectFiresAfterHostShutdown>d__a .MoveNext() |
MoveNext() | 1 | 29 | 6 | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts+ <SendToGroupsFromOutsideOfHub>d__2c .MoveNext() |
MoveNext() | 1 | 29 | 6 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start+ <ClientStopsReconnectingAfterDisconnectT imeout>d__8a.MoveNext() |
MoveNext() | 1 | 27 | 9 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunHubConnectionAPI>d__6 .MoveNext() |
MoveNext() | 1 | 27 | 9 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunHubConnectionAPI>d__6 .MoveNext() |
MoveNext() | 1 | 23 | 6 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <ReturningNullFromReconnectAccepted >d__1d8.MoveNext() |
MoveNext() | 1 | 23 | 6 | Microsoft.AspNet.SignalR.FunctionalTests .Server.DateFacts+<DateAsStringRoundtrip >d__7.MoveNext() |
MoveNext() | 1 | 22 | 6 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForPersistentConnectionW henClientCallsStop>d__a.MoveNext() |
MoveNext() | 1 | 22 | 6 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForPersistentConnectionW henClientDisconnects>d__16.MoveNext() |
MoveNext() | 1 | 22 | 6 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForHubsWhenClientCallsSt op>d__21.MoveNext() |
MoveNext() | 1 | 22 | 6 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForHubsWhenClientDisconn ects>d__2d.MoveNext() |
MoveNext() | 1 | 22 | 6 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GroupTest+ <GroupsRejoinedWhenOnRejoiningGroupsOver ridden>d__96.MoveNext() |
Equals(Object) | N/A | 3 | 9 | <>f__AnonymousType5<<Url>j__TPar, <ConnectionToken>j__TPar,<ConnectionId >j__TPar,<KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar>.Equals (Object) |
Equals(Object) | N/A | 3 | 7 | <>f__AnonymousType0<<ConnectionBehavior >j__TPar,<BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar>.Equals(Object) |
Equals(Object) | N/A | 3 | 6 | <>f__AnonymousType4<<method>j__TPar, <count>j__TPar,<owinKeys>j__TPar, <headers>j__TPar,<query>j__TPar, <xContentTypeOptions>j__TPar>.Equals (Object) |
Statistics
Stat | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth |
---|---|---|---|
Sum: | 157 | 1 763 | 391 |
Average: | 2.91 | 30.93 | 6.86 |
Minimum: | 1 | 3 | 6 |
Maximum: | 26 | 98 | 12 |
Standard deviation: | 4.53 | 14.28 | 1.16 |
Variance: | 20.57 | 203.82 | 1.35 |
![]() | Rule warning: Methods potentially poorly commented |
warnif count > 0 from m in JustMyCode.Methods where
m.PercentageComment < 20 &&
m.NbLinesOfCode > 20
orderby m.PercentageComment ascending
select new { m, m.PercentageComment, m.NbLinesOfCode, m.NbLinesOfComment }
// Methods where %Comment < 20 and that have
// at least 20 lines of code might need to be more commented.
// See the definition of the Comments metric here
// http://www.ndepend.com/Metrics.aspx#PercentageComment
// http://www.ndepend.com/Metrics.aspx#NbLinesOfComment View Code Query or Rule Body
63 methods matched
methods | Percentage Comment | # lines of code (LOC) | # lines of comment | Full Name |
---|---|---|---|---|
MoveNext() | 0 | 21 | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunPendingCallbacks>d__3f .MoveNext() |
ParseArguments(String[],String&,Boolean& ,String&,String&) | 0 | 21 | 0 | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand.ParseArguments (String[],String&,Boolean&,String& ,String&) |
RegisterDefaultServices() | 0 | 22 | 0 | Microsoft.AspNet.SignalR .DefaultDependencyResolver .RegisterDefaultServices() |
SipHash_2_4_UlongCast_ForcedInline(Byte* ,UInt32,UInt64,UInt64) | 0 | 135 | 0 | Microsoft.AspNet.SignalR.Infrastructure .SipHashBasedStringEqualityComparer .SipHash_2_4_UlongCast_ForcedInline (Byte*,UInt32,UInt64,UInt64) |
OnReceived(IRequest,String,String) | 0 | 30 | 0 | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReceived(IRequest ,String,String) |
CreateDataClass() | 0 | 21 | 0 | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass.CreateDataClass() |
Run() | 0 | 25 | 0 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.CommonCommandLine.Run() |
Record() | 0 | 29 | 0 | Microsoft.AspNet.SignalR.Stress.RunBase .Record() |
StressGroups(Int32) | 0 | 22 | 0 | Microsoft.AspNet.SignalR.Stress .StressRuns.StressGroups(Int32) |
OnReceived(IRequest,String,String) | 0 | 30 | 0 | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReceived(IRequest ,String,String) |
RunAuth(String) | 0 | 27 | 0 | Microsoft.AspNet.SignalR.Client40 .Samples.Client.RunAuth(String) |
MoveNext() | 0 | 34 | 0 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+Owin+ <EnvironmentIsAvailable>d__bf.MoveNext() |
MoveNext() | 0 | 31 | 0 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToUser>d__72.MoveNext() |
MoveNext() | 0 | 39 | 0 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <VerifyOwinContext>d__95.MoveNext() |
ConnectionTraceIsProperlyFiltered() | 0 | 30 | 0 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .ConnectionTraceIsProperlyFiltered() |
SendCatchesOnReceivedExceptions() | 0 | 26 | 0 | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts .SendCatchesOnReceivedExceptions() |
Run(String,String) | 0 | 36 | 0 | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.CommonNuGet.Run(String,String) |
OnReceived(IRequest,String,String) | 0 | 30 | 0 | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReceived(IRequest ,String,String) |
MoveNext() | 0 | 21 | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunPendingCallbacks>d__3f .MoveNext() |
ReminifiedStringsMinifyToSameResult() | 0 | 21 | 0 | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts .ReminifiedStringsMinifyToSameResult() |
SendUrlTriggersReceivedEvent() | 0 | 21 | 0 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts .SendUrlTriggersReceivedEvent() |
EnqueAsyncWriteAndEndRequest(Func<Task>) | 0 | 29 | 0 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts .EnqueAsyncWriteAndEndRequest(Func<Task> ) |
CreateHost(HostType,TransportType,String ,String) | 2 | 35 | 1 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTestFactory .CreateHost(HostType,TransportType ,String,String) |
MoveNext() | 2 | 33 | 1 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <FarmDisconnectRaisesUncleanDisconnects >d__3c.MoveNext() |
.ctor(IStringMinifier,ITraceManager ,IPerformanceCounterManager ,IConfigurationManager,Int32) | 3 | 25 | 1 | Microsoft.AspNet.SignalR.Messaging .MessageBus..ctor(IStringMinifier ,ITraceManager ,IPerformanceCounterManager ,IConfigurationManager,Int32) |
Microsoft.AspNet.SignalR.Json .IJsonWritable.WriteJson(TextWriter) | 3 | 29 | 1 | Microsoft.AspNet.SignalR.Transports .PersistentResponse.Microsoft.AspNet .SignalR.Json.IJsonWritable.WriteJson (TextWriter) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 3 | 31 | 1 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
MoveNext() | 3 | 25 | 1 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <HubGroupsRejoinWhenAutoRejoiningGroupsE nabled>d__19c.MoveNext() |
MoveNext() | 4 | 23 | 1 | Microsoft.AspNet.SignalR.Tests.HubFacts+ <RejoiningGroupsOnlyReceivesGroupsBelong ingToHub>d__1aa.MoveNext() |
Symetric() | 4 | 24 | 1 | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts.Symetric() |
RemovingUnminifiedStringCausesUnminifyTo ReturnNull() | 4 | 21 | 1 | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts .RemovingUnminifiedStringCausesUnminifyT oReturnNull() |
AvoidDeadlockIfCancellationTokenTriggere dBeforeSubscribing() | 4 | 24 | 1 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts .AvoidDeadlockIfCancellationTokenTrigger edBeforeSubscribing() |
TryHandleCommand(String) | 5 | 93 | 5 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.TryHandleCommand(String) |
AddingAndRemovingSameItemDoesNotShowUpIn Diff() | 6 | 27 | 2 | Microsoft.AspNet.SignalR.Tests.Server .DiffSetFacts .AddingAndRemovingSameItemDoesNotShowUpI nDiff() |
ReceiveAbortBeforeCancellationSetup() | 6 | 28 | 2 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts .ReceiveAbortBeforeCancellationSetup() |
MoveNext() | 8 | 23 | 2 | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription+<GetMappings>d__12 .MoveNext() |
Receive(Object) | 8 | 21 | 2 | Microsoft.AspNet.SignalR.SqlServer .SqlReceiver.Receive(Object) |
FailedWriteCompletesRequestAfterDisconne ctTimeout() | 8 | 23 | 2 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .FailedWriteCompletesRequestAfterDisconn ectTimeout() |
StringsCanBeReminifiedAfterBeingRemoved( ) | 8 | 34 | 3 | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts .StringsCanBeReminifiedAfterBeingRemoved () |
SubscriptionWithMultipleExistingCursors( ) | 8 | 23 | 2 | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts .SubscriptionWithMultipleExistingCursors () |
RunWithPostReceive(Func<Task>) | 8 | 21 | 2 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts .RunWithPostReceive(Func<Task>) |
InitializeResponseIsFirstEnqueuedOperati on() | 9 | 29 | 3 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts .InitializeResponseIsFirstEnqueuedOperat ion() |
TaskAsyncHelpersPreserveCulture() | 10 | 25 | 3 | Microsoft.AspNet.SignalR.Tests .TaskAsyncHelperFacts .TaskAsyncHelpersPreserveCulture() |
RequestCompletesAfterFaultedInitializeRe sponse() | 10 | 25 | 3 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts .RequestCompletesAfterFaultedInitializeR esponse() |
ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) | 11 | 56 | 7 | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation .ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) |
DetailedErrorsAreDisabledByDefault() | 11 | 24 | 3 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts .DetailedErrorsAreDisabledByDefault() |
DetailedErrorsFromFaultedTasksAreDisable dByDefault() | 11 | 24 | 3 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts .DetailedErrorsFromFaultedTasksAreDisabl edByDefault() |
DetailedErrorsCanBeEnabled() | 11 | 23 | 3 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts .DetailedErrorsCanBeEnabled() |
DetailedErrorsFromFaultedTasksCanBeEnabl ed() | 11 | 23 | 3 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts .DetailedErrorsFromFaultedTasksCanBeEnab led() |
Initialize(Object) | 12 | 22 | 3 | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus.Initialize(Object) |
UncleanDisconnectFiresOnDisconnected() | 12 | 27 | 4 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+ProcessReques t.UncleanDisconnectFiresOnDisconnected() |
TestVectors() | 12 | 22 | 3 | Microsoft.AspNet.SignalR.Tests .SipHashBasedStringEqualityComparerFacts .TestVectors() |
ProcessRequest(HostContext) | 13 | 31 | 5 | Microsoft.AspNet.SignalR .PersistentConnection.ProcessRequest (HostContext) |
MoveNext() | 14 | 23 | 4 | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessageReader+ <ReadMessageAsync>d__0.MoveNext() |
SqlDependency_OnChange (SqlNotificationEventArgs,Action <IDataRecord,DbOperation>) | 14 | 23 | 4 | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation .SqlDependency_OnChange (SqlNotificationEventArgs,Action <IDataRecord,DbOperation>) |
GetCursors(String,String,Func<String ,Object,String>,Object) | 15 | 56 | 10 | Microsoft.AspNet.SignalR.Messaging .Cursor.GetCursors(String,String,Func <String,Object,String>,Object) |
Run(Object) | 15 | 22 | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer.Run(Object) |
ConfigureRoutes(IAppBuilder ,IDependencyResolver) | 15 | 38 | 7 | Microsoft.AspNet.SignalR.Tests.Common .Initializer.ConfigureRoutes(IAppBuilder ,IDependencyResolver) |
Run(Object) | 15 | 22 | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer.Run(Object) |
OnReceivedCore(Int32,UInt64 ,ScaleoutMessage) | 16 | 21 | 4 | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessageBus.OnReceivedCore(Int32 ,UInt64,ScaleoutMessage) |
AddingAndRemovingSameItemMultipleTimesSh owsUpOnceInTheDiff() | 18 | 26 | 6 | Microsoft.AspNet.SignalR.Tests.Server .DiffSetFacts .AddingAndRemovingSameItemMultipleTimesS howsUpOnceInTheDiff() |
TryAddImpl(ScaleoutMapping,UInt64&) | 19 | 34 | 8 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore.TryAddImpl (ScaleoutMapping,UInt64&) |
ContinueReceiving(IAsyncResult ,ServiceBusConnection+ReceiverContext) | 19 | 25 | 6 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnection.ContinueReceiving (IAsyncResult ,ServiceBusConnection+ReceiverContext) |
Statistics
Stat | Percentage Comment | # lines of code (LOC) | # lines of comment |
---|---|---|---|
Sum: | 390 | 1 885 | 132 |
Average: | 6.19 | 29.92 | 2.1 |
Minimum: | 0 | 21 | 0 |
Maximum: | 19 | 135 | 10 |
Standard deviation: | 5.98 | 17.16 | 2.29 |
Variance: | 35.8 | 294.58 | 5.26 |
![]() | Rule warning: Methods with too many parameters |
warnif count > 0 from m in JustMyCode.Methods where
m.NbParameters > 5
orderby m.NbParameters descending
select new { m, m.NbParameters }
// Methods where NbParameters > 5 might be painful to call
// and might degrade performance. You should prefer using
// additional properties/fields to the declaring type to
// handle numerous states. Another alternative is to provide
// a class or structure dedicated to handle arguments passing
// (for example see the class System.Diagnostics.ProcessStartInfo
// and the method System.Diagnostics.Process.Start(ProcessStartInfo))
// See the definition of the NbParameters metric here
// http://www.ndepend.com/Metrics.aspx#NbParametersView Code Query or Rule Body
22 methods matched
methods | # Parameters | Full Name |
---|---|---|
.ctor(IMessageBus,JsonSerializer,String ,String,IList<String>,IList<String> ,ITraceManager,IAckHandler ,IPerformanceCounterManager ,IProtectedData) | 10 | Microsoft.AspNet.SignalR.Infrastructure .Connection..ctor(IMessageBus ,JsonSerializer,String,String,IList <String>,IList<String>,ITraceManager ,IAckHandler,IPerformanceCounterManager ,IProtectedData) |
.ctor(<Url>j__TPar,<ConnectionToken >j__TPar,<ConnectionId>j__TPar, <KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar) | 9 | <>f__AnonymousType5<<Url>j__TPar, <ConnectionToken>j__TPar,<ConnectionId >j__TPar,<KeepAliveTimeout>j__TPar, <DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar>..ctor( <Url>j__TPar,<ConnectionToken>j__TPar, <ConnectionId>j__TPar,<KeepAliveTimeout >j__TPar,<DisconnectTimeout>j__TPar, <TryWebSockets>j__TPar,<ProtocolVersion >j__TPar,<TransportConnectTimeout >j__TPar,<LongPollDelay>j__TPar) |
.ctor(String,IList<String>,TopicLookup ,String,Func<MessageResult,Object,Task <Boolean>>,Int32,IStringMinifier ,IPerformanceCounterManager,Object) | 9 | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription..ctor(String,IList <String>,TopicLookup,String,Func <MessageResult,Object,Task<Boolean>> ,Int32,IStringMinifier ,IPerformanceCounterManager,Object) |
.ctor(String,IList<String>,String,IList <ScaleoutMappingStore>,Func <MessageResult,Object,Task<Boolean>> ,Int32,IPerformanceCounterManager,Object ) | 8 | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription..ctor(String,IList <String>,String,IList <ScaleoutMappingStore>,Func <MessageResult,Object,Task<Boolean>> ,Int32,IPerformanceCounterManager,Object ) |
.ctor(<ConnectionBehavior>j__TPar, <BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar) | 7 | <>f__AnonymousType0<<ConnectionBehavior >j__TPar,<BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar>..ctor( <ConnectionBehavior>j__TPar, <BroadcastBatching>j__TPar, <BroadcastCount>j__TPar, <BroadcastSeconds>j__TPar,<BroadcastSize >j__TPar,<Broadcasting>j__TPar, <ServerFps>j__TPar) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 7 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.ITestHost.Initialize (Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 7 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.ExternalTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 7 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 7 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 7 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.MemoryTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | 7 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.OwinTestHost.Initialize (Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
.ctor(IConnection,IHubPipelineInvoker ,String,String,String,IList<String>) | 6 | Microsoft.AspNet.SignalR.Hubs .SignalProxy..ctor(IConnection ,IHubPipelineInvoker,String,String ,String,IList<String>) |
.ctor(IConnection,IHubPipelineInvoker ,IList<String>,String,String,IList <String>) | 6 | Microsoft.AspNet.SignalR.Hubs .MultipleSignalProxy..ctor(IConnection ,IHubPipelineInvoker,IList<String> ,String,String,IList<String>) |
.ctor(IConnection,IHubPipelineInvoker ,String,String,String,StateChangeTracker ) | 6 | Microsoft.AspNet.SignalR.Hubs .StatefulSignalProxy..ctor(IConnection ,IHubPipelineInvoker,String,String ,String,StateChangeTracker) |
.ctor(Func<Int32,IList<Message>,Task> ,Action<Int32,UInt64,ScaleoutMessage> ,Int32,TraceSource ,IPerformanceCounterManager ,ScaleoutConfiguration) | 6 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager..ctor(Func<Int32 ,IList<Message>,Task>,Action<Int32 ,UInt64,ScaleoutMessage>,Int32 ,TraceSource,IPerformanceCounterManager ,ScaleoutConfiguration) |
.ctor(String,IList<String>,Func <MessageResult,Object,Task<Boolean>> ,Int32,IPerformanceCounterManager,Object ) | 6 | Microsoft.AspNet.SignalR.Messaging .Subscription..ctor(String,IList<String> ,Func<MessageResult,Object,Task<Boolean> >,Int32,IPerformanceCounterManager ,Object) |
.ctor(HostContext,JsonSerializer ,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,IConfigurationManager) | 6 | Microsoft.AspNet.SignalR.Transports .LongPollingTransport..ctor(HostContext ,JsonSerializer,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,IConfigurationManager) |
.ctor(HostContext,JsonSerializer ,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,Nullable<Int32>) | 6 | Microsoft.AspNet.SignalR.Transports .WebSocketTransport..ctor(HostContext ,JsonSerializer,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,Nullable<Int32>) |
.ctor(<method>j__TPar,<count>j__TPar, <owinKeys>j__TPar,<headers>j__TPar, <query>j__TPar,<xContentTypeOptions >j__TPar) | 6 | <>f__AnonymousType4<<method>j__TPar, <count>j__TPar,<owinKeys>j__TPar, <headers>j__TPar,<query>j__TPar, <xContentTypeOptions>j__TPar>..ctor( <method>j__TPar,<count>j__TPar,<owinKeys >j__TPar,<headers>j__TPar,<query>j__TPar ,<xContentTypeOptions>j__TPar) |
.ctor(ServiceBusScaleoutConfiguration ,IList<String>,TraceSource,Action<Int32 ,IEnumerable<BrokeredMessage>>,Action <Int32,Exception>,Action<Int32>) | 6 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnectionContext..ctor (ServiceBusScaleoutConfiguration,IList <String>,TraceSource,Action<Int32 ,IEnumerable<BrokeredMessage>>,Action <Int32,Exception>,Action<Int32>) |
MapConnection(RouteCollection,String ,String,Type,ConnectionConfiguration ,Action<IAppBuilder>) | 6 | System.Web.Routing .SignalRRouteExtensions.MapConnection (RouteCollection,String,String,Type ,ConnectionConfiguration,Action <IAppBuilder>) |
.ctor(HostContext,JsonSerializer ,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,IConfigurationManager) | 6 | Microsoft.AspNet.SignalR.Tests.Server .Transports .LongPollingTransportFacts+TestLongPolli ngTransport..ctor(HostContext ,JsonSerializer,ITransportHeartbeat ,IPerformanceCounterManager ,ITraceManager,IConfigurationManager) |
Statistics
Stat | # Parameters |
---|---|
Sum: | 151 |
Average: | 6.86 |
Minimum: | 6 |
Maximum: | 10 |
Standard deviation: | 1.14 |
Variance: | 1.3 |
![]() | Rule warning: Methods with too many local variables |
warnif count > 0 from m in JustMyCode.Methods where
m.NbVariables > 15
orderby m.NbVariables descending
select new { m, m.NbVariables }
// Methods where NbVariables > 8 are hard to understand and maintain.
// Methods where NbVariables > 15 are extremely complex
// and should be split in smaller methods.
// See the definition of the Nbvariables metric here
// http://www.ndepend.com/Metrics.aspx#NbvariablesView Code Query or Rule Body
1 methods matched
method | # Variables | Full Name |
---|---|---|
TryHandleCommand(String) | 18 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.TryHandleCommand(String) |
Statistics
Stat | # Variables |
---|---|
Sum: | 18 |
Average: | 18 |
Minimum: | 18 |
Maximum: | 18 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods with too many overloads |
warnif count > 0 from m in JustMyCode.Methods where
m.NbOverloads > 6 &&
!m.IsOperator // Don't report operator overload
orderby m.NbOverloads descending
select new { m, m.NbOverloads }
// Methods where NbOverloads > 6 might
// be a problem to maintain and provoke higher coupling
// than necessary.
// This might also reveal a potential misused of the
// C# and VB.NET language that since C#3 and VB9 support
// object initialization. This feature helps reducing the number
// of constructors of a class.
// See the definition of the NbOverloads metric here
// http://www.ndepend.com/Metrics.aspx#NbOverloadsView Code Query or Rule Body
228 methods matched
methods | # Overloads | Full Name |
---|---|---|
Then(Task,Action) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
Then(Task,Action) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
Then(Task,Action) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
Then(Task,Action) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
Then(Task,Action) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
Then(Task,Action) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 15 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
FromMethod(Action) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Action) |
FromMethod<T1>(Action<T1>,T1) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Action<T1>,T1) |
FromMethod<T1,T2>(Action<T1,T2>,T1,T2) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Action<T1,T2>,T1,T2) |
FromMethod(Func<Task>) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Func<Task>) |
FromMethod<TResult>(Func<Task<TResult>>) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<Task<TResult>> ) |
FromMethod<TResult>(Func<TResult>) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<TResult>) |
FromMethod<T1>(Func<T1,Task>,T1) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Func<T1,Task>,T1) |
FromMethod<T1,T2>(Func<T1,T2,Task>,T1,T2 ) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Func<T1,T2,Task>,T1 ,T2) |
FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task> ,T1,T2,T3) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task >,T1,T2,T3) |
FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) | 13 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) |
Statistics
Stat | # Overloads |
---|---|
Sum: | 2 964 |
Average: | 13 |
Minimum: | 10 |
Maximum: | 15 |
Standard deviation: | 1.99 |
Variance: | 3.95 |
![]() | Rule warning: Types with too many methods |
warnif count > 0 from t in JustMyCode.Types where
t.Methods.Count() > 20
orderby t.Methods.Count() descending
select new { t, t.InstanceMethods, t.StaticMethods }
// Types where Methods.Count() > 20 might be hard to
// understand and maintain
// but there might be cases where it is relevant
// to have a high number of methods.
// For example, the System.Windows.Forms.DataGridView
// standard class has more than 1000 methods.
View Code Query or Rule Body
46 types matched
types | InstanceMethods | StaticMethods | Full Name |
---|---|---|---|
PerformanceCounterManager | 71 methods | 4 methods | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterManager | 71 methods | 4 methods | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
TaskAsyncHelper | 0 method | 69 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper | 0 method | 68 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper | 0 method | 68 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper | 0 method | 68 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper | 0 method | 68 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper | 0 method | 68 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper |
HubAuthFacts | 33 methods | 34 methods | Microsoft.AspNet.SignalR.Tests .HubAuthFacts |
HubFacts | 57 methods | 10 methods | Microsoft.AspNet.SignalR.Tests.HubFacts |
PersistentConnection | 44 methods | 9 methods | Microsoft.AspNet.SignalR .PersistentConnection |
TransportDisconnectBase | 40 methods | 7 methods | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase |
DemoHub | 34 methods | 5 methods | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
DemoHub | 34 methods | 5 methods | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
CrankArguments | 36 methods | 2 methods | Microsoft.AspNet.SignalR.Crank .CrankArguments |
DemoHub | 33 methods | 5 methods | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
Program+StressArguments | 36 methods | 0 method | Microsoft.AspNet.SignalR.Stress .Program+StressArguments |
IPerformanceCounterManager | 35 methods | 0 method | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
IPerformanceCounterManager | 35 methods | 0 method | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
Connection | 25 methods | 9 methods | Microsoft.AspNet.SignalR.Infrastructure .Connection |
RunData | 34 methods | 0 method | Microsoft.AspNet.SignalR.Stress.RunData |
ForeverTransport | 23 methods | 10 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport |
HubDispatcher | 19 methods | 12 methods | Microsoft.AspNet.SignalR.Hubs .HubDispatcher |
RunBase | 27 methods | 3 methods | Microsoft.AspNet.SignalR.Stress.RunBase |
XamlUserType | 30 methods | 0 method | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType |
LongPollingTransport | 16 methods | 11 methods | Microsoft.AspNet.SignalR.Transports .LongPollingTransport |
ForeverTransportFacts | 15 methods | 11 methods | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts |
MessageBus | 24 methods | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus |
Subscription | 23 methods | 2 methods | Microsoft.AspNet.SignalR.Messaging .Subscription |
ConnectionFacts+Start | 17 methods | 8 methods | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
MessageBusFacts | 14 methods | 11 methods | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts |
HubDispatcherFacts | 8 methods | 17 methods | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts |
Message | 23 methods | 1 method | Microsoft.AspNet.SignalR.Messaging .Message |
HubProxyFacts | 20 methods | 4 methods | Microsoft.AspNet.SignalR.Tests .HubProxyFacts |
HubConnectionContextBase | 23 methods | 0 method | Microsoft.AspNet.SignalR.Hubs .HubConnectionContextBase |
ControllerHub | 3 methods | 20 methods | Microsoft.AspNet.SignalR.Crank .ControllerHub |
HostedTest | 19 methods | 4 methods | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest |
IISExpressTestHost | 21 methods | 2 methods | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost |
DefaultDependencyResolver | 18 methods | 4 methods | Microsoft.AspNet.SignalR .DefaultDependencyResolver |
DefaultJavaScriptProxyGenerator | 3 methods | 19 methods | Microsoft.AspNet.SignalR.Hubs .DefaultJavaScriptProxyGenerator |
StressRuns | 0 method | 22 methods | Microsoft.AspNet.SignalR.Stress .StressRuns |
ScaleoutStreamFacts | 14 methods | 8 methods | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts |
DynamicDictionary | 19 methods | 2 methods | Microsoft.AspNet.SignalR.Hubs .DynamicDictionary |
WebSocketHandler | 16 methods | 5 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler |
ServiceBusConnectionContext | 21 methods | 0 method | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnectionContext |
DbOperation | 17 methods | 4 methods | Microsoft.AspNet.SignalR.SqlServer .DbOperation |
Statistics
Stat | InstanceMethods | StaticMethods |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Types with too many fields |
warnif count > 0 from t in JustMyCode.Types where
t.Fields.Count() > 20 &&
!t.IsEnumeration
orderby t.Fields.Count() descending
select new { t, t.InstanceFields, t.StaticFields, t.SizeOfInst }
// Types where Fields.Count() > 20 and not IsEnumeration
// might be hard to understand and maintain
// but there might be cases where it is relevant
// to have a high number of fields.
// For example, the System.Windows.Forms.Control
// standard class has more than 200 fields.View Code Query or Rule Body
8 types matched
types | InstanceFields | StaticFields | Size of instance | Full Name |
---|---|---|---|---|
PerformanceCounterManager | 36 fields | 5 fields | 141 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterManager | 35 fields | 5 fields | 137 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
HubAuthFacts | 0 field | 33 fields | 0 | Microsoft.AspNet.SignalR.Tests .HubAuthFacts |
OwinConstants | 0 field | 32 fields | N/A | Microsoft.AspNet.SignalR.OwinConstants |
TransportDisconnectBase | 20 fields | 7 fields | 80 | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase |
MessageBus | 21 fields | 3 fields | 88 | Microsoft.AspNet.SignalR.Messaging .MessageBus |
Connection | 17 fields | 5 fields | 62 | Microsoft.AspNet.SignalR.Infrastructure .Connection |
ForeverTransport | 12 fields | 9 fields | 128 | Microsoft.AspNet.SignalR.Transports .ForeverTransport |
Statistics
Stat | InstanceFields | StaticFields | Size of instance |
---|---|---|---|
Sum: | 0 | 0 | 636 |
Average: | 0 | 0 | 90.86 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 141 |
Standard deviation: | 0 | 0 | 46.66 |
Variance: | 0 | 0 | 2 176 |
![]() | Rule warning: Types with poor cohesion |
warnif count > 0 from t in JustMyCode.Types where
(t.LCOM > 0.8 || t.LCOMHS > 0.95) &&
t.NbFields > 10 &&
t.NbMethods >10
orderby t.LCOM descending, t.LCOMHS descending
select new { t, t.LCOM, t.LCOMHS,
t.NbMethods, t.NbFields }
// Types where LCOM > 0.8 and NbFields > 10
// and NbMethods >10 might be problematic.
// However, it is very hard to avoid such
// non-cohesive types. The LCOMHS metric
// is often considered as more efficient to
// detect non-cohesive types.
// See the definition of the LCOM metric here
// http://www.ndepend.com/Metrics.aspx#LCOMView Code Query or Rule Body
19 types matched
types | Lack of Cohesion Of Methods (LCOM) | LCOM Henderson-Sellers (LCOMHS) | # Methods | # Fields | Full Name |
---|---|---|---|---|---|
CrankArguments | 0.97 | 1 | 39 | 20 | Microsoft.AspNet.SignalR.Crank .CrankArguments |
PerformanceCounterManager | 0.97 | 0.98 | 79 | 41 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterManager | 0.97 | 0.98 | 77 | 40 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PersistentConnection | 0.96 | 0.97 | 55 | 20 | Microsoft.AspNet.SignalR .PersistentConnection |
TransportDisconnectBase | 0.95 | 0.97 | 49 | 27 | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase |
ForeverTransport | 0.94 | 0.98 | 36 | 21 | Microsoft.AspNet.SignalR.Transports .ForeverTransport |
Subscription | 0.93 | 0.97 | 26 | 11 | Microsoft.AspNet.SignalR.Messaging .Subscription |
XamlUserType | 0.93 | 0.96 | 31 | 13 | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType |
IISExpressTestHost | 0.92 | 0.96 | 27 | 14 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost |
RunBase | 0.92 | 0.96 | 31 | 12 | Microsoft.AspNet.SignalR.Stress.RunBase |
MessageBus | 0.91 | 0.95 | 28 | 24 | Microsoft.AspNet.SignalR.Messaging .MessageBus |
HubDispatcher | 0.9 | 0.94 | 33 | 16 | Microsoft.AspNet.SignalR.Hubs .HubDispatcher |
PersistentResponse | 0.9 | 0.95 | 22 | 12 | Microsoft.AspNet.SignalR.Transports .PersistentResponse |
Connection | 0.9 | 0.93 | 35 | 22 | Microsoft.AspNet.SignalR.Infrastructure .Connection |
ServiceBusConnectionContext | 0.88 | 0.92 | 22 | 12 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnectionContext |
DefaultJavaScriptProxyGenerator | 0.87 | 0.93 | 25 | 16 | Microsoft.AspNet.SignalR.Hubs .DefaultJavaScriptProxyGenerator |
DefaultConfigurationManager | 0.83 | 0.89 | 16 | 11 | Microsoft.AspNet.SignalR.Configuration .DefaultConfigurationManager |
SiteManager | 0.81 | 0.87 | 16 | 11 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager |
HubPipeline+ComposedPipeline | 0.5 | 1 | 12 | 16 | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline |
Statistics
Stat | Lack of Cohesion Of Methods (LCOM) | LCOM Henderson-Sellers (LCOMHS) | # Methods | # Fields |
---|---|---|---|---|
Sum: | 16.95 | 18.1 | 659 | 359 |
Average: | 0.89 | 0.95 | 34.68 | 18.89 |
Minimum: | 0.5 | 0.87 | 12 | 11 |
Maximum: | 0.97 | 1 | 79 | 41 |
Standard deviation: | 0.1 | 0.034 | 18.11 | 8.75 |
Variance: | 0.01 | 0.0012 | 327.9 | 76.62 |
490
Object Oriented Design |
|
![]() | Rule warning: Base class should not use derivatives |
warnif count > 0
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }View Code Query or Rule Body
2 types matched
types | derivedClassesUsed | Full Name |
---|---|---|
HubInvocationProgress | 1 type | Microsoft.AspNet.SignalR.Hubs .HubInvocationProgress |
Shape | 4 types | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Shape |
Statistics
Stat | derivedClassesUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Class shouldn't be too deep in inheritance tree |
warnif count > 0 from t in JustMyCode.Types
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()
// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3
select new { t, baseClasses,
// The metric value DepthOfInheritance takes account
// of third-party base classes
t.DepthOfInheritance }
// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here
// http://www.ndepend.com/Metrics.aspx#DIT
View Code Query or Rule Body
16 types matched
types | baseClasses | Depth of inheritance | Full Name |
---|---|---|---|
AdminAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
AuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthHub |
IncomingAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | 4 types | 5 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
UserAndRoleAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
AuthenticatedEchoHub | 3 types | 4 | Microsoft.AspNet.SignalR.Tests.Common .Hubs.AuthenticatedEchoHub |
HubInvocationRun | 3 types | 4 | Microsoft.AspNet.SignalR.Stress .HubInvocationRun |
ClientServerMemoryRun | 3 types | 4 | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun |
AuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthHub |
AdminAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
InheritAuthHub | 4 types | 5 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
IncomingAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
UserAndRoleAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
HubFacts+MultGroupHub2 | 3 types | 4 | Microsoft.AspNet.SignalR.Tests .HubFacts+MultGroupHub2 |
DefaultActionResolverFacts+TestDerivedHu b | 3 types | 4 | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+TestDerivedH ub |
LongPollingTransportFacts+TestLongPollin gTransport | 3 types | 4 | Microsoft.AspNet.SignalR.Tests.Server .Transports .LongPollingTransportFacts+TestLongPolli ngTransport |
Statistics
Stat | baseClasses | Depth of inheritance |
---|---|---|
Sum: | 0 | 66 |
Average: | 0 | 4.12 |
Minimum: | 0 | 4 |
Maximum: | 0 | 5 |
Standard deviation: | 0 | 0.33 |
Variance: | 0 | 0.11 |
![]() | Rule warning: Class with no descendant should be sealed if possible |
warnif count > 0 from t in JustMyCode.Types where
t.IsClass &&
t.NbChildren ==0 &&
!t.IsSealed &&
!t.IsStatic
// && !t.IsPublic <-- You might want to add this condition
// if you are developing a framework
// with classes that are intended to be
// sub-classed by your clients.
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }View Code Query or Rule Body
507 types matched
types | # lines of code (LOC) | Full Name |
---|---|---|
ForeverTransportFacts | 239 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts |
HubAuthFacts | 201 | Microsoft.AspNet.SignalR.Tests .HubAuthFacts |
MessageBusFacts | 201 | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts |
Chat | 180 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat |
HubDispatcherFacts | 169 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts |
HubDispatcher | 161 | Microsoft.AspNet.SignalR.Hubs .HubDispatcher |
ServerRequestFacts | 145 | Microsoft.AspNet.SignalR.Tests.Owin .ServerRequestFacts |
ScaleoutStoreFacts | 133 | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStoreFacts |
ObservableDbOperation | 131 | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation |
StringMinifierFacts | 127 | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts |
ServiceBusConnection | 124 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnection |
ScaleOutMessageBusFacts | 123 | Microsoft.AspNet.SignalR.Tests.Server .ScaleOutMessageBusFacts |
Connection | 120 | Microsoft.AspNet.SignalR.Infrastructure .Connection |
DefaultActionResolverFacts | 118 | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts |
TransportFacts | 115 | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts |
ScaleoutStreamFacts | 113 | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts |
ControllerHub | 112 | Microsoft.AspNet.SignalR.Crank .ControllerHub |
DiffSetFacts | 112 | Microsoft.AspNet.SignalR.Tests.Server .DiffSetFacts |
SiteManager | 109 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager |
Cursor | 108 | Microsoft.AspNet.SignalR.Messaging .Cursor |
DefaultDependencyResolver | 107 | Microsoft.AspNet.SignalR .DefaultDependencyResolver |
DefaultSubscription | 95 | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription |
ScaleoutStream | 92 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream |
TransportHeartbeat | 92 | Microsoft.AspNet.SignalR.Transports .TransportHeartbeat |
DefaultJavaScriptProxyGenerator | 91 | Microsoft.AspNet.SignalR.Hubs .DefaultJavaScriptProxyGenerator |
Client | 81 | Microsoft.AspNet.SignalR.Client40 .Samples.Client |
DefaultHubManagerFacts | 80 | Microsoft.AspNet.SignalR.Tests.Core .DefaultHubManagerFacts |
GenerateHubProxyCommand | 79 | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand |
PerformanceCounterManager | 72 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
RedisMessageBus | 70 | Microsoft.AspNet.SignalR.Redis .RedisMessageBus |
ConfigurationManagerFacts | 69 | Microsoft.AspNet.SignalR.Tests .ConfigurationManagerFacts |
ConnectionFacts | 68 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts |
HubProxyFacts | 68 | Microsoft.AspNet.SignalR.Client.Tests .HubProxyFacts |
PersistentConnectionFacts+GetConnectionI d | 68 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GetConnection Id |
CursorFacts | 66 | Microsoft.AspNet.SignalR.Tests .CursorFacts |
ConnectionFacts+Start | 65 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
ScaleoutSubscription | 64 | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription |
PerformanceCounterManager | 63 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
DemoHub | 62 | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
DemoHub | 62 | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
PersistentConnectionFacts+ProcessRequest | 61 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+ProcessReques t |
XamlUserType | 59 | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType |
ServerConnectionFacts+PopulateResponseSt ate | 59 | Microsoft.AspNet.SignalR.Tests .ServerConnectionFacts+PopulateResponseS tate |
DemoHub | 57 | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
SqlReceiver | 56 | Microsoft.AspNet.SignalR.SqlServer .SqlReceiver |
BufferTextWriterFacts | 56 | Microsoft.AspNet.SignalR.Tests .BufferTextWriterFacts |
RawConnection | 51 | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection | 51 | Microsoft.AspNet.SignalR.Samples .RawConnection |
ShapeShare | 51 | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare |
RawConnection | 51 | Microsoft.AspNet.SignalR.Samples .RawConnection |
ObservableSqlOperationFacts | 49 | Microsoft.AspNet.SignalR.Tests.SqlServer .ObservableSqlOperationFacts |
ConnectionFacts | 48 | Microsoft.AspNet.SignalR.Tests .ConnectionFacts |
Program | 46 | Microsoft.AspNet.SignalR.Utils.Program |
HubFacts | 46 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubFacts |
Message | 45 | Microsoft.AspNet.SignalR.Messaging .Message |
HighFrequencyTimer | 45 | Microsoft.AspNet.SignalR .HighFrequencyTimer |
HighFrequencyTimer | 45 | Microsoft.AspNet.SignalR .HighFrequencyTimer |
SubscriptionFacts | 44 | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts |
SqlMessageBus | 42 | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus |
ServiceBusConnectionContext | 41 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnectionContext |
KeepAliveFacts | 40 | Microsoft.AspNet.SignalR.Client.Tests .KeepAliveFacts |
XamlTypeInfoProvider | 40 | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlTypeInfoProvider |
Client | 39 | Microsoft.AspNet.SignalR.Crank.Client |
PersistentConnectionFacts+OnConnectedAsy nc | 39 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync |
TypedClientBuilderFacts | 39 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts |
ForeverFrameTransport | 38 | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport |
HubProxyFacts | 38 | Microsoft.AspNet.SignalR.Tests .HubProxyFacts |
ConnectionFacts+Start | 38 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
ForeverFrameTransportFacts | 38 | Microsoft.AspNet.SignalR.Tests.Core .ForeverFrameTransportFacts |
ServiceBusMessageBus | 37 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus |
CommonNuGet | 37 | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.CommonNuGet |
HubMethodDispatcherFacts | 37 | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts |
ReflectedMethodDescriptorProvider | 36 | Microsoft.AspNet.SignalR.Hubs .ReflectedMethodDescriptorProvider |
LongPollingTransportFacts | 36 | Microsoft.AspNet.SignalR.Tests.Server .Transports.LongPollingTransportFacts |
BufferTextWriter+ChunkedWriter | 35 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter |
ConcurrentCallsRun | 35 | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun |
TestHub | 35 | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.TestHub |
WebSocketTransport | 34 | Microsoft.AspNet.SignalR.Transports .WebSocketTransport |
DynamicDictionary | 32 | Microsoft.AspNet.SignalR.Hubs .DynamicDictionary |
ReflectedHubDescriptorProvider | 32 | Microsoft.AspNet.SignalR.Hubs .ReflectedHubDescriptorProvider |
DataClass | 32 | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass |
CommonCommandLine | 32 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.CommonCommandLine |
PersistentResponseFacts | 32 | Microsoft.AspNet.SignalR.Tests .PersistentResponseFacts |
DefaultHubResolverFacts | 32 | Microsoft.AspNet.SignalR.Tests .DefaultHubResolverFacts |
AckHandler | 31 | Microsoft.AspNet.SignalR.Infrastructure .AckHandler |
DefaultHubManager | 31 | Microsoft.AspNet.SignalR.Hubs .DefaultHubManager |
LongPollingFacts | 31 | Microsoft.AspNet.SignalR.Tests .LongPollingFacts |
HubFacts | 31 | Microsoft.AspNet.SignalR.Tests.HubFacts |
StringMinifier | 30 | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier |
IISExpressTestHost | 30 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost |
SipHashBasedDictionaryConverter | 29 | Microsoft.AspNet.SignalR.Json .SipHashBasedDictionaryConverter |
DefaultWebSocketHandler | 29 | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler |
TaskQueueFacts | 29 | Microsoft.AspNet.SignalR.Tests .TaskQueueFacts |
GroupManager | 28 | Microsoft.AspNet.SignalR.GroupManager |
ServerSentEventsTransport | 28 | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport |
CrankArguments | 28 | Microsoft.AspNet.SignalR.Crank .CrankArguments |
Dashboard | 28 | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard |
PersistentConnectionFacts+VerifyGroups | 28 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+VerifyGroups |
TaskAsyncHelperFacts | 28 | Microsoft.AspNet.SignalR.Tests .TaskAsyncHelperFacts |
Topic | 27 | Microsoft.AspNet.SignalR.Messaging.Topic |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 9 260 |
Average: | 18.26 |
Minimum: | 0 |
Maximum: | 239 |
Standard deviation: | 31.73 |
Variance: | 1 006 |
![]() | Rule warning: Overrides of Method() should call base.Method() |
// Overrides of Method() should refine the behavior of base.Method().
// If base.Method() is not called, the base behavior is not refined but it is replaced.
// Violations of this rule are a sign of design flaw,
// especially if the design provides valid reasons
// that advocates that the base behavior must be replaced and not refined.
//
// Discussions on this topic are available here:
// http://stackoverflow.com/questions/1107022/should-i-call-the-base-class-implementation-when-overriding-a-method-in-c-sharp
// http://stackoverflow.com/questions/2945147/make-sure-base-method-gets-called-in-c-sharp
warnif count > 0
from t in Types // Take account of third-party types too
// Bother only classes with descendant
where t.IsClass && t.NbChildren > 0
from mBase in t.InstanceMethods
where mBase.IsVirtual &&
!mBase.IsThirdParty &&
!mBase.IsAbstract &&
!mBase.IsExplicitInterfaceImpl
from mOverride in mBase.OverridesDirectDerived
where !mOverride.IsUsing(mBase)
select new { mOverride, shouldCall = mBase, definedInBaseClass = mBase.ParentType }
View Code Query or Rule Body
110 methods matched
methods | shouldCall | definedInBaseClass | Full Name |
---|---|---|---|
UserAuthorized(IPrincipal) | UserAuthorized(IPrincipal) | AuthorizeAttribute | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute .UserAuthorized(IPrincipal) |
UserAuthorized(IPrincipal) | UserAuthorized(IPrincipal) | AuthorizeAttribute | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute .UserAuthorized(IPrincipal) |
get_Trace() | get_Trace() | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.get_Trace() |
get_GroupPrefix() | get_GroupPrefix() | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.get_GroupPrefix() |
GetSignals(String,String) | GetSignals(String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.GetSignals(String,String) |
AuthorizeRequest(IRequest) | AuthorizeRequest(IRequest) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .AuthorizeRequest(IRequest) |
AuthorizeRequest(IRequest) | AuthorizeRequest(IRequest) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .UnusableProtectedConnection .AuthorizeRequest(IRequest) |
AuthorizeRequest(IRequest) | AuthorizeRequest(IRequest) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .AuthorizeRequest(IRequest) |
OnRejoiningGroups(IRequest,IList<String> ,String) | OnRejoiningGroups(IRequest,IList<String>,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnRejoiningGroups (IRequest,IList<String>,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnConnected(IRequest ,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .AsyncOnConnectedConnection.OnConnected (IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnectionThrows .OnConnected(IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection .OnConnected(IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems.OnConnected (IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnection .OnConnected(IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .MyGroupEchoConnection.OnConnected (IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .MyReconnect.OnConnected(IRequest,String ) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnConnected(IRequest ,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnConnected(IRequest ,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnConnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnReconnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ExamineReconnectPath.OnReconnected (IRequest,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReconnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReconnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReconnected(IRequest ,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.LoadTestHarness .TestConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.EchoConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ExamineHeadersConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.PreserializedJsonConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .BroadcastConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .SyncErrorConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.StressServer .Connections.StressConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .SendingConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .TestConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+MyConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+MyConnection2 .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+TransportResponse .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+MyAuthenticatedConnecti on.OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+FarmConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.SecurityFacts+MyConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs .SecurityFacts+MyGroupConnection .OnReceived(IRequest,String,String) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnDisconnected(IRequest ,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems.OnDisconnected (IRequest,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnDisconnected(IRequest ,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnDisconnected(IRequest ,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnDisconnected(IRequest ,String,Boolean) |
TryGetMember(GetMemberBinder,Object&) | TryGetMember(GetMemberBinder,Object&) | SignalProxy | Microsoft.AspNet.SignalR.Hubs .StatefulSignalProxy.TryGetMember (GetMemberBinder,Object&) |
GetInvocationData(String,Object[]) | GetInvocationData(String,Object[]) | SignalProxy | Microsoft.AspNet.SignalR.Hubs .StatefulSignalProxy.GetInvocationData (String,Object[]) |
get_Parameters() | get_Parameters() | MethodDescriptor | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor.get_Parameters() |
get_Invoker() | get_Invoker() | MethodDescriptor | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor.get_Invoker() |
get_Attributes() | get_Attributes() | MethodDescriptor | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor.get_Attributes() |
BuildRejoiningGroups(Func<HubDescriptor ,IRequest,IList<String>,IList<String>>) | BuildRejoiningGroups(Func<HubDescriptor,IRequest,IList<String>,IList<String>>) | HubPipelineModule | Microsoft.AspNet.SignalR.Tests .HubFacts+LogRejoiningGroupsModule .BuildRejoiningGroups(Func<HubDescriptor ,IRequest,IList<String>,IList<String>>) |
OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) | OnIncomingError(ExceptionContext,IHubIncomingInvokerContext) | HubPipelineModule | Microsoft.AspNet.SignalR.Tests .HubFacts+SuppressErrorModule .OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) |
OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) | OnIncomingError(ExceptionContext,IHubIncomingInvokerContext) | HubPipelineModule | Microsoft.AspNet.SignalR.Tests .HubFacts+WrapErrorModule .OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) |
Publish(Message) | Publish(Message) | MessageBus | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessageBus.Publish(Message) |
CreateSubscription(ISubscriber,String ,Func<MessageResult,Object,Task<Boolean> >,Int32,Object) | CreateSubscription(ISubscriber,String,Func<MessageResult,Object,Task<Boolean>>,Int32,Object) | MessageBus | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessageBus.CreateSubscription (ISubscriber,String,Func<MessageResult ,Object,Task<Boolean>>,Int32,Object) |
CreateTopic(String) | CreateTopic(String) | MessageBus | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts+TestMessageBus .CreateTopic(String) |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.FakeScaleoutBus .get_StreamCount() |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus.get_StreamCount() |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus.get_StreamCount() |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Tests.Server .ScaleOutMessageBusFacts+TestScaleoutBus .get_StreamCount() |
Send(IList<Message>) | Send(IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Stress .StressRuns+DelayedMessageBus.Send(IList <Message>) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.FakeScaleoutBus.Send (Int32,IList<Message>) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Redis .RedisMessageBus.Send(Int32,IList <Message>) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus.Send(Int32,IList<Message> ) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus.Send(Int32,IList <Message>) |
BeforeInvoke(Object) | BeforeInvoke(Object) | Subscription | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription.BeforeInvoke (Object) |
BeforeInvoke(Object) | BeforeInvoke(Object) | Subscription | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription.BeforeInvoke(Object ) |
OnMessage(String) | OnMessage(String) | WebSocketHandler | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler.OnMessage (String) |
OnError() | OnError() | WebSocketHandler | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler.OnError() |
OnClose() | OnClose() | WebSocketHandler | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler.OnClose() |
get_MaxMessages() | get_MaxMessages() | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.get_MaxMessages() |
ProcessRequest(ITransportConnection) | ProcessRequest(ITransportConnection) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .WebSocketTransport.ProcessRequest (ITransportConnection) |
Send(Object) | Send(Object) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.Send(Object) |
Send(Object) | Send(Object) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .WebSocketTransport.Send(Object) |
ProcessSendRequest() | ProcessSendRequest() | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.ProcessSendRequest () |
OnMessageReceived(PersistentResponse) | OnMessageReceived(PersistentResponse) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.OnMessageReceived (PersistentResponse) |
Get(String) | Get(String) | TracingTestHost | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.MemoryTestHost.Get (String) |
Post(String,IDictionary<String,String>) | Post(String,IDictionary<String,String>) | TracingTestHost | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.MemoryTestHost.Post (String,IDictionary<String,String>) |
get_Endpoint() | get_Endpoint() | SendReceiveRun | Microsoft.AspNet.SignalR.Stress .HubInvocationRun.get_Endpoint() |
CreateReceiver(Int32) | CreateReceiver(Int32) | SendReceiveRun | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun .CreateReceiver(Int32) |
Send(Int32,String) | Send(Int32,String) | SendReceiveRun | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun.Send (Int32,String) |
CreateMessageBus() | CreateMessageBus() | MessageBusRun | Microsoft.AspNet.SignalR.Stress .Performance.ServiceBusMessageBusRun .CreateMessageBus() |
CreateMessageBus() | CreateMessageBus() | MessageBusRun | Microsoft.AspNet.SignalR.Stress .Performance.RedisMessageBusRun .CreateMessageBus() |
CreateMessageBus() | CreateMessageBus() | MessageBusRun | Microsoft.AspNet.SignalR.Stress .Performance.SqlMessageBusRun .CreateMessageBus() |
InitializePerformanceCounters() | InitializePerformanceCounters() | HostedRun | Microsoft.AspNet.SignalR.Stress .SendReceiveRun .InitializePerformanceCounters() |
get_MediaUrlRegex() | get_MediaUrlRegex() | EmbedContentProvider | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders .CollegeHumorContentProvider .get_MediaUrlRegex() |
ExtractParameters(Uri) | ExtractParameters(Uri) | EmbedContentProvider | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders .YouTubeContentProvider .ExtractParameters(Uri) |
Login(HubFacts+User) | Login(HubFacts+User) | HubFacts+MultGroupHub | Microsoft.AspNet.SignalR.Tests .HubFacts+MultGroupHub2.Login (HubFacts+User) |
get_BaseType() | get_BaseType() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_BaseType() |
get_ContentProperty() | get_ContentProperty() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_ContentProperty() |
GetMember(String) | GetMember(String) | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.GetMember(String) |
get_IsArray() | get_IsArray() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_IsArray() |
get_IsCollection() | get_IsCollection() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_IsCollection() |
get_IsConstructible() | get_IsConstructible() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_IsConstructible() |
Statistics
Stat | shouldCall | definedInBaseClass |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: A stateless class or structure might be turned into a static type |
// This rule indicates stateless types that might
// eventually be turned into static classes.
warnif count > 0 from t in JustMyCode.Types where
!t.IsStatic &&
!t.IsGeneric &&
t.InstanceFields.Count() == 0 &&
// Don't match:
// --> types that implement some interfaces.
t.NbInterfacesImplemented == 0 &&
// --> or classes that have sub-classes children.
t.NbChildren == 0 &&
// --> or classes that have a base class
((t.IsClass && t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1) ||
t.IsStructure)
select t
View Code Query or Rule Body
96 types matched
types | Full Name |
---|---|
Program | Microsoft.AspNet.SignalR.Client.Samples .Program |
PerformanceCounterInstaller | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller |
Program | Microsoft.AspNet.SignalR.Utils.Program |
TopicState | Microsoft.AspNet.SignalR.Messaging .TopicState |
ControllerHub+Startup | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup |
Client | Microsoft.AspNet.SignalR.Crank.Client |
Startup | Microsoft.AspNet.SignalR.LoadTestHarness .Startup |
Program | Microsoft.AspNet.SignalR.Stress.Program |
Startup | Microsoft.AspNet.SignalR.Samples.Startup |
Program | Microsoft.AspNet.SignalR.Client40 .Samples.Program |
MyProject+MyWebServices | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+MyWebServices |
LongPollingFacts | Microsoft.AspNet.SignalR.Tests .LongPollingFacts |
CustomHttpClient | Microsoft.AspNet.SignalR.Tests .CustomHttpClient |
PersistentConnectionFacts | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts |
GetHubContextFacts | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts |
ConnectionFacts | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts |
SecurityFacts | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.SecurityFacts |
ChunkBufferFacts | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts |
ChunkBufferFacts+ReadLine | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine |
ConnectionFacts+Start | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
HubProxyFacts | Microsoft.AspNet.SignalR.Client.Tests .HubProxyFacts |
KeepAliveFacts | Microsoft.AspNet.SignalR.Client.Tests .KeepAliveFacts |
TransportFacts | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts |
TransportFacts | Microsoft.AspNet.SignalR.Client .Transports.TransportFacts |
CommonNuGet | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.CommonNuGet |
OwinFacts | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.OwinFacts |
SignalRFacts | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.SignalRFacts |
SignalRLocFacts | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.SignalRLocFacts |
Startup | Microsoft.AspNet.SelfHost.Samples .Startup |
Program | Microsoft.AspNet.SelfHost.Samples .Program |
ObservableSqlOperationFacts | Microsoft.AspNet.SignalR.Tests.SqlServer .ObservableSqlOperationFacts |
SqlScaleoutConfigurationFacts | Microsoft.AspNet.SignalR.SqlServer.Tests .SqlScaleoutConfigurationFacts |
ArrayTextReaderFacts | Microsoft.AspNet.SignalR.Tests .ArrayTextReaderFacts |
ConfigurationManagerFacts | Microsoft.AspNet.SignalR.Tests .ConfigurationManagerFacts |
GroupManagerFacts | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts |
GroupManagerFacts+Add | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Add |
GroupManagerFacts+Remove | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Remove |
GroupManagerFacts+Send | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Send |
PersistentConnectionFactoryFacts | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFactoryFacts |
PersistentConnectionFactoryFacts+CreateI nstance | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFactoryFacts+Create Instance |
PersistentConnectionFacts | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts |
PersistentConnectionFacts+ProcessRequest | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+ProcessReques t |
PersistentConnectionFacts+VerifyGroups | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+VerifyGroups |
PersistentConnectionFacts+GetConnectionI d | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GetConnection Id |
PersistentResponseFacts | Microsoft.AspNet.SignalR.Tests .PersistentResponseFacts |
BufferTextWriterFacts | Microsoft.AspNet.SignalR.Tests .BufferTextWriterFacts |
ServerConnectionFacts | Microsoft.AspNet.SignalR.Tests .ServerConnectionFacts |
ServerConnectionFacts+PopulateResponseSt ate | Microsoft.AspNet.SignalR.Tests .ServerConnectionFacts+PopulateResponseS tate |
CursorFacts | Microsoft.AspNet.SignalR.Tests .CursorFacts |
DefaultHubResolverFacts | Microsoft.AspNet.SignalR.Tests .DefaultHubResolverFacts |
DefaultActionResolverFacts | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts |
StringMinifierFacts | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts |
TaskAsyncHelperFacts | Microsoft.AspNet.SignalR.Tests .TaskAsyncHelperFacts |
TaskQueueFacts | Microsoft.AspNet.SignalR.Tests .TaskQueueFacts |
CookieFacts | Microsoft.AspNet.SignalR.Tests.Hosting .CookieFacts |
ResponseExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Hosting .ResponseExtensionsFacts |
JsonFacts | Microsoft.AspNet.SignalR.Tests.Json .JsonFacts |
JsonSerializerExtensionFacts | Microsoft.AspNet.SignalR.Tests.Json .JsonSerializerExtensionFacts |
ServerRequestFacts | Microsoft.AspNet.SignalR.Tests.Owin .ServerRequestFacts |
WebSocketFacts | Microsoft.AspNet.SignalR.Tests.Owin .WebSocketFacts |
TraceManagerFacts | Microsoft.AspNet.SignalR.Tests.Tracing .TraceManagerFacts |
ConnectionExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Core .ConnectionExtensionsFacts |
HubManagerExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Core .HubManagerExtensionsFacts |
HubTypeExtensions | Microsoft.AspNet.SignalR.Tests.Core .HubTypeExtensions |
MethodExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Core .MethodExtensionsFacts |
DefaultHubManagerFacts | Microsoft.AspNet.SignalR.Tests.Core .DefaultHubManagerFacts |
HubDescriptorFacts | Microsoft.AspNet.SignalR.Tests.Core .HubDescriptorFacts |
HubMethodDispatcherFacts | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts |
ForeverFrameTransportFacts | Microsoft.AspNet.SignalR.Tests.Core .ForeverFrameTransportFacts |
DefaultJavaScriptProxyGeneratorFacts | Microsoft.AspNet.SignalR.Tests.Core.Hubs .DefaultJavaScriptProxyGeneratorFacts |
HubConnectionContextFacts | Microsoft.AspNet.SignalR.Tests.Core.Hubs .HubConnectionContextFacts |
HubContextFacts | Microsoft.AspNet.SignalR.Tests.Core.Hubs .HubContextFacts |
NotAHub | Microsoft.AspNet.SignalR.Tests.Core.Hubs .NotAHub |
AckHandlerFacts | Microsoft.AspNet.SignalR.Tests.Server .AckHandlerFacts |
ProtocolResolverFacts | Microsoft.AspNet.SignalR.Tests.Server .ProtocolResolverFacts |
ScaleoutStreamManagerFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamManagerFacts |
ServiceBusConfigurationFacts | Microsoft.AspNet.SignalR.Tests.Server .ServiceBusConfigurationFacts |
DiffSetFacts | Microsoft.AspNet.SignalR.Tests.Server .DiffSetFacts |
ConnectionFacts | Microsoft.AspNet.SignalR.Tests.Server .ConnectionFacts |
DisposerFacts | Microsoft.AspNet.SignalR.Tests.Server .DisposerFacts |
MessageBusFacts | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts |
ScaleOutMessageBusFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleOutMessageBusFacts |
ScaleoutStoreFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStoreFacts |
ScaleoutStreamFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts |
ScaleoutConfigurationFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutConfigurationFacts |
SubscriptionFacts | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts |
TopicFacts | Microsoft.AspNet.SignalR.Tests.Server .TopicFacts |
HubFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubFacts |
HubProgressFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubProgressFacts |
HubProgressFacts+ProgressData | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubProgressFacts+ProgressData |
TypedClientBuilderFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts |
TypedClientBuilderFacts+NotAnInterface | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+NotAnInterface |
HubDispatcherFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts |
ForeverTransportFacts | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts |
LongPollingTransportFacts | Microsoft.AspNet.SignalR.Tests.Server .Transports.LongPollingTransportFacts |
WebSocketTransportFacts | Microsoft.AspNet.SignalR.Tests.Server .Transports.WebSocketTransportFacts |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Non-static classes should be instantiated or turned to static |
// Notice that classes only instantiated through reflection, like plug-in root classes
// are matched by this rules.
warnif count > 0
from t in JustMyCode.Types
where t.IsClass &&
//!t.IsPublic && // if you are developing a framework,
// you might not want to match public classes
!t.IsStatic &&
!t.IsAttributeClass && // Attributes class are never seen as instantiated
!t.DeriveFrom("System.MarshalByRefObject".AllowNoMatch()) // Types instantiated through remoting infrastructure
// find the first constructor of t called
let ctorCalled = t.Constructors.FirstOrDefault(ctor => ctor.NbMethodsCallingMe > 0)
// match t if none of its constructors is called.
where ctorCalled == null
select new { t, t.Visibility }View Code Query or Rule Body
279 types matched
types | Visibility | Full Name |
---|---|---|
Program | Internal | Microsoft.AspNet.SignalR.Client.Samples .Program |
PerformanceCounterManager | Public | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
Program | Internal | Microsoft.AspNet.SignalR.Utils.Program |
ListHelper<T> | Internal | Microsoft.AspNet.SignalR.Infrastructure .ListHelper<T> |
SafeSet<T> | Internal | Microsoft.AspNet.SignalR.Infrastructure .SafeSet<T> |
HubRequestParser | Internal | Microsoft.AspNet.SignalR.Hubs .HubRequestParser |
HubRequestParser+HubInvocation | Private | Microsoft.AspNet.SignalR.Hubs .HubRequestParser+HubInvocation |
HubDispatcher+ClientHubInfo | Private | Microsoft.AspNet.SignalR.Hubs .HubDispatcher+ClientHubInfo |
TopicState | Internal | Microsoft.AspNet.SignalR.Messaging .TopicState |
HubDispatcherMiddleware | Public | Microsoft.AspNet.SignalR.Owin.Middleware .HubDispatcherMiddleware |
PersistentConnectionMiddleware | Public | Microsoft.AspNet.SignalR.Owin.Middleware .PersistentConnectionMiddleware |
ControllerHub | Public | Microsoft.AspNet.SignalR.Crank .ControllerHub |
ControllerHub+Startup | Public | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup |
Client | Public | Microsoft.AspNet.SignalR.Crank.Client |
CrankArguments | Internal | Microsoft.AspNet.SignalR.Crank .CrankArguments |
Basic | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Basic |
QueryString | Public | Microsoft.AspNet.SignalR.LoadTestHarness .QueryString |
Default | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Default |
Startup | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Startup |
TestConnection | Public | Microsoft.AspNet.SignalR.LoadTestHarness .TestConnection |
Dashboard | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard |
TestHub | Public | Microsoft.AspNet.SignalR.LoadTestHarness .TestHub |
RawConnection | Public | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection+Message | Private | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
StressConnection | Public | Microsoft.AspNet.SignalR.StressServer .Connections.StressConnection |
ConcurrentCallsHub | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.ConcurrentCallsHub |
SimpleEchoHub | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.SimpleEchoHub |
HubWithGroups | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.HubWithGroups |
OnConnectedOnDisconnectedHub | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub |
AdminAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
HeaderAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
IncomingAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
InvokeAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InvokeAuthHub |
UserAndRoleAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
Status | Public | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Status |
DemoHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
PreSendRequestHeadersModule | Public | Microsoft.AspNet.SignalR.Tests.Common .PreSendRequestHeadersModule |
AsyncOnConnectedConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .AsyncOnConnectedConnection |
FallbackToLongPollingConnectionThrows | Public | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnectionThrows |
ExamineHeadersConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .ExamineHeadersConnection |
ExamineReconnectPath | Public | Microsoft.AspNet.SignalR.Tests.Common .ExamineReconnectPath |
StartIISTask | Public | Microsoft.AspNet.SignalR.Tests.Common .StartIISTask |
AddGroupOnConnectedConnection | Internal | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection |
ConnectionThatUsesItems | Public | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems |
FallbackToLongPollingConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnection |
BroadcastConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .BroadcastConnection |
MyBadConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MyBadConnection |
MyGroupEchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MyGroupEchoConnection |
MyRejoinGroupsConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MyRejoinGroupsConnection |
MySendingConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MySendingConnection |
SyncErrorConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .SyncErrorConnection |
UnusableProtectedConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .UnusableProtectedConnection |
AuthenticatedEchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
EchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.EchoConnection |
PreserializedJsonConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.PreserializedJsonConnection |
RedirectionConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.RedirectionConnection |
StatusCodeConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.StatusCodeConnection |
AuthenticatedEchoHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.AuthenticatedEchoHub |
ChatWithGroups | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ChatWithGroups |
ClientCallbackHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ClientCallbackHub |
ConnectionDataVerifierHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ConnectionDataVerifierHub |
DelayedOnConnectedHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DelayedOnConnectedHub |
DateAsStringHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DateAsStringHub |
ExamineHeadersHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ExamineHeadersHub |
GroupJoiningHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.GroupJoiningHub |
InvalidTypedHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.InvalidTypedHub |
MyItemsHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.MyItemsHub |
ProgressHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub |
ValidTypedHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ValidTypedHub |
OnConnectedBufferHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.OnConnectedBufferHub |
RequestItemsResponse | Public | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.RequestItemsResponse |
ConnectionRun | Public | Microsoft.AspNet.SignalR.Stress .ConnectionRun |
HubInvocationRun | Public | Microsoft.AspNet.SignalR.Stress .HubInvocationRun |
EmptyProtectedData | Public | Microsoft.AspNet.SignalR.Stress .EmptyProtectedData |
Program | Internal | Microsoft.AspNet.SignalR.Stress.Program |
Program+StressArguments | Private | Microsoft.AspNet.SignalR.Stress .Program+StressArguments |
StressRuns+MyRejoinGroupConnection | Public | Microsoft.AspNet.SignalR.Stress .StressRuns+MyRejoinGroupConnection |
ClientServerMemoryRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun |
SimpleEchoHubRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun |
ServiceBusMessageBusRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.ServiceBusMessageBusRun |
RedisMessageBusRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.RedisMessageBusRun |
SqlMessageBusRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.SqlMessageBusRun |
ConcurrentCallsRun | Public | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun |
AuthenticatedEchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
Startup | Public | Microsoft.AspNet.SignalR.Samples.Startup |
Startup+ClaimsMiddleware | Private | Microsoft.AspNet.SignalR.Samples .Startup+ClaimsMiddleware |
_Default | Public | Microsoft.AspNet.SignalR.Samples ._Default |
Global | Public | Microsoft.AspNet.SignalR.Samples.Global |
RawConnection | Public | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection+Message | Private | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
SendingConnection | Public | Microsoft.AspNet.SignalR.Samples .SendingConnection |
TestConnection | Public | Microsoft.AspNet.SignalR.Samples .TestConnection |
SignalRMaster | Public | Microsoft.AspNet.SignalR.Samples .SignalRMaster |
StreamingConnection | Public | Microsoft.AspNet.SignalR.Samples .StreamingConnection |
Default | Public | Microsoft.AspNet.SignalR.Samples.Raw .Default |
Default | Public | Microsoft.AspNet.SignalR.Samples .Streaming.Default |
AdminAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
HeaderAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
InheritAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
Statistics
Stat | Visibility |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods should be declared static if possible |
warnif count > 0
// When an instance method can be safely declared as static you should declare it as static.
// Since it doesn't use any instance data and method of its type and base-types,
// you should consider if such a method could be moved to a static utility class
// or if it is strongly related enough to its current declaring type to stay in it.
//
// Turning an instance method into a static method is a micro performance optimization
// since a static method is a bit cheaper to invoke than an instance method.
from t in JustMyCode.Types.Where(t =>
!t.IsStatic && !t.IsInterface &&
!t.IsEnumeration && !t.IsDelegate &&
!t.IsGeneratedByCompiler)
let methodsThatCanBeMadeStatic =
from m in t.InstanceMethods
// An instance method can be turned to static if it is not virtual,
// not using the this reference and also, not using
// any of its class or base classes instance fields or instance methods.
where !m.IsAbstract && !m.IsVirtual &&
!m.AccessThis && !m.IsExplicitInterfaceImpl &&
// Optimization: Using FirstOrDefault() avoid to check all members,
// as soon as one member is found
// we know the method m cannot be made static.
m.MembersUsed.FirstOrDefault(
mUsed => !mUsed.IsStatic &&
(mUsed.ParentType == t ||
t.DeriveFrom(mUsed.ParentType))
) == null
select m
from m in methodsThatCanBeMadeStatic
let staticFieldsUsed = m.ParentType.StaticFields.UsedBy(m).Where(f => !f.IsGeneratedByCompiler)
select new { m, staticFieldsUsed }View Code Query or Rule Body
471 methods matched
methods | staticFieldsUsed | Full Name |
---|---|---|
GenerateProxy(String,String,Action <String>) | 0 field | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator.GenerateProxy(String,String,Action <String>) |
UninstallCounters() | 0 field | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller .UninstallCounters() |
get_RequireOutgoing() | 0 field | Microsoft.AspNet.SignalR .AuthorizeAttribute.get_RequireOutgoing( ) |
Mark(Int32,Int32[]) | 0 field | Microsoft.AspNet.SignalR.Crank .ControllerHub.Mark(Int32,Int32[]) |
Configuration(IAppBuilder) | 0 field | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup.Configuration (IAppBuilder) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.LoadTestHarness .Default.Page_Load(Object,EventArgs) |
Configuration(IAppBuilder) | 0 field | Microsoft.AspNet.SignalR.LoadTestHarness .Startup.Configuration(IAppBuilder) |
get__timer() | 1 field | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard.get__timer() |
ForceGC() | 0 field | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard.ForceGC() |
GetUser(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetUser(String) |
GetClient(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetClient(String) |
Echo(String) | 0 field | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub.Echo (String) |
GetValue() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.GetValue() |
SynchronousException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SynchronousException() |
HubException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.HubException() |
HubExceptionWithoutErrorData() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub .HubExceptionWithoutErrorData() |
CancelledTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledTask() |
CancelledGenericTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledGenericTask() |
NeverEndingTask() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.NeverEndingTask() |
SimpleArray(Int32[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SimpleArray(Int32[]) |
ComplexArray(DemoHub+Person[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ComplexArray (DemoHub+Person[]) |
PassingDynamicComplex(Object) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.PassingDynamicComplex (Object) |
Overload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload() |
Overload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload(Int32) |
InlineScriptTag() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.InlineScriptTag() |
UnsupportedOverload(String) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (String) |
UnsupportedOverload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (Int32) |
ReturnLargePayload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ReturnLargePayload() |
EchoReturn(String) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.EchoHub.EchoReturn(String) |
ReportProgressInt(IProgress<Int32>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressInt (IProgress<Int32>) |
ReportProgressString(IProgress<String>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressString (IProgress<String>) |
ReportProgressTyped(IProgress <ProgressHub+ProgressUpdate>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressTyped (IProgress<ProgressHub+ProgressUpdate>) |
ReportProgressDynamic(IProgress<Object>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressDynamic (IProgress<Object>) |
UseMessageBus(MessageBusType ,IDependencyResolver,Int32) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest.UseMessageBus (MessageBusType,IDependencyResolver ,Int32) |
SetReconnectDelay(IClientTransport ,TimeSpan) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest .SetReconnectDelay(IClientTransport ,TimeSpan) |
SetHostData(ITestHost,Dictionary<String ,String>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest.SetHostData (ITestHost,Dictionary<String,String>) |
GetName(MethodBase) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest.GetName (MethodBase) |
CreateTransport(TransportType ,IHttpClient) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest .CreateTransport(TransportType ,IHttpClient) |
MakeHttpRequest(String,Int32,Int32) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .MakeHttpRequest(String,Int32,Int32) |
EnsureIISExpressCompressionDirectory() | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .EnsureIISExpressCompressionDirectory() |
OnIISExpressExit(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .OnIISExpressExit(Object,EventArgs) |
RecordAggregates(String,Int64[]) | 0 field | Microsoft.AspNet.SignalR.Stress.RunBase .RecordAggregates(String,Int64[]) |
Configuration(IAppBuilder) | 0 field | Microsoft.AspNet.SignalR.Samples.Startup .Configuration(IAppBuilder) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples ._Default.Page_Load(Object,EventArgs) |
GetUser(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetUser(String) |
GetClient(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetClient(String) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples .SignalRMaster.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Raw .Default.Page_Load(Object,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples .Streaming.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Default.Page_Load (Object,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Counting.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DrawingPad.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI.Default.Page_Load (Object,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .SimultaneousConnections.Default .Page_Load(Object,EventArgs) |
GetShapes() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare.GetShapes() |
FindShape(String) | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare.FindShape(String) |
Set() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .Test.LongRunningHub.Set() |
Reset() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .Test.LongRunningHub.Reset() |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Test.Default.Page_Load(Object,EventArgs ) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.Default.Page_Load(Object ,EventArgs) |
GetValue() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.GetValue() |
SynchronousException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SynchronousException() |
HubException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.HubException() |
HubExceptionWithoutErrorData() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub .HubExceptionWithoutErrorData() |
CancelledTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledTask() |
CancelledGenericTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledGenericTask() |
NeverEndingTask() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.NeverEndingTask() |
SimpleArray(Int32[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SimpleArray(Int32[]) |
ComplexArray(DemoHub+Person[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ComplexArray (DemoHub+Person[]) |
PassingDynamicComplex(Object) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.PassingDynamicComplex (Object) |
Overload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload() |
Overload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload(Int32) |
InlineScriptTag() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.InlineScriptTag() |
UnsupportedOverload(String) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (String) |
UnsupportedOverload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (Int32) |
ReturnLargePayload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ReturnLargePayload() |
GetMD5Hash(String) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.GetMD5Hash(String) |
Transform(String,HashSet<String>&) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.Transform(String,HashSet <String>&) |
ExtractContent(HttpWebResponse) | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.ExtractContent (HttpWebResponse) |
get__timer() | 1 field | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.RealtimeBroadcast.Realtime .get__timer() |
GetType() | 0 field | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+MyWebServices.GetType() |
Dispose__Instance__<T>(T&) | 0 field | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+MyWebServices .Dispose__Instance__<T>(T&) |
Send(String) | 0 field | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+MyHub2.Send(String) |
PollingRequestHandlerDoesNotPollAfterClo se() | 0 field | Microsoft.AspNet.SignalR.Tests .LongPollingFacts .PollingRequestHandlerDoesNotPollAfterCl ose() |
PollingRequestHandlerDoesNotPollAfterClo seMidRequest() | 0 field | Microsoft.AspNet.SignalR.Tests .LongPollingFacts .PollingRequestHandlerDoesNotPollAfterCl oseMidRequest() |
FailedWriteCompletesRequestAfterDisconne ctTimeout() | 0 field | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .FailedWriteCompletesRequestAfterDisconn ectTimeout() |
ConnectionsWithTheSameConnectionIdSSEClo seGracefully() | 0 field | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .ConnectionsWithTheSameConnectionIdSSECl oseGracefully() |
ConnectionsWithTheSameConnectionIdLongPo llingCloseGracefully() | 0 field | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .ConnectionsWithTheSameConnectionIdLongP ollingCloseGracefully() |
HubHasConnectionEvents() | 0 field | Microsoft.AspNet.SignalR.Tests.HubFacts .HubHasConnectionEvents() |
UsingHubAfterManualCreationThrows() | 0 field | Microsoft.AspNet.SignalR.Tests.HubFacts .UsingHubAfterManualCreationThrows() |
GetCircular() | 0 field | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub.GetCircular() |
ReturnsNullIfNoNewLineIfBuffer() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .ReturnsNullIfNoNewLineIfBuffer() |
ReturnsTextUpToNewLine() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .ReturnsTextUpToNewLine() |
CanReadMultipleLines() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .CanReadMultipleLines() |
WillCompleteNewLine() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .WillCompleteNewLine() |
NegotiatePassesClientProtocolCorrectly (String,String) | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .NegotiatePassesClientProtocolCorrectly (String,String) |
ConnectionStateChangedEventIsCalledWithA ppropriateArguments() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .ConnectionStateChangedEventIsCalledWith AppropriateArguments() |
VerifyThatChangingTheJsonSerializerWorks () | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .VerifyThatChangingTheJsonSerializerWork s() |
Statistics
Stat | staticFieldsUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Constructor should not call a virtual methods |
// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.
warnif count > 0
from t in Application.Types where
t.IsClass &&
!t.IsGeneratedByCompiler &&
!t.IsSealed
from ctor in t.Constructors
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
where mCalled.IsVirtual &&
(mCalled.ParentType == t ||
t.DeriveFrom(mCalled.ParentType))
select mCalled
where virtualMethodsCalled.Count() > 0
select new { ctor ,
virtualMethodsCalled,
// If there is no derived type, it might be
// an opportunity to mark t as sealed.
t.DerivedTypes }View Code Query or Rule Body
12 methods matched
methods | virtualMethodsCalled | DerivedTypes | Full Name |
---|---|---|---|
.ctor() | 6 methods | 0 type | Microsoft.AspNet.SignalR.Configuration .DefaultConfigurationManager..ctor() |
.ctor(HubDescriptor,String,IEnumerable <MethodDescriptor>) | 1 method | 0 type | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor..ctor (HubDescriptor,String,IEnumerable <MethodDescriptor>) |
.ctor(JRaw) | 1 method | 0 type | Microsoft.AspNet.SignalR.Json.JRawValue. .ctor(JRaw) |
.ctor(IStringMinifier,ITraceManager ,IPerformanceCounterManager ,IConfigurationManager,Int32) | 1 method | 8 types | Microsoft.AspNet.SignalR.Messaging .MessageBus..ctor(IStringMinifier ,ITraceManager ,IPerformanceCounterManager ,IConfigurationManager,Int32) |
.ctor() | 1 method | 3 types | Microsoft.AspNet.SignalR.Messaging .ScaleoutConfiguration..ctor() |
.ctor() | 1 method | 0 type | Microsoft.AspNet.SignalR.Messaging .Command..ctor() |
.ctor(RunData) | 1 method | 0 type | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun..ctor (RunData) |
.ctor() | 2 methods | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Rectangle..ctor() |
.ctor() | 1 method | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Square..ctor() |
.ctor() | 1 method | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Circle..ctor() |
.ctor() | 2 methods | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Picture..ctor() |
.ctor(IList<String>) | 1 method | 0 type | Microsoft.AspNet.SignalR.Tests.Server .TestSubscriber..ctor(IList<String>) |
Statistics
Stat | virtualMethodsCalled | DerivedTypes |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Don't assign static fields from instance methods |
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where
f.IsStatic &&
!f.IsLiteral &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
// Contract API define such a insideContractEvaluation static field
f.Name != "insideContractEvaluation"
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }View Code Query or Rule Body
17 fields matched
fields | assignedBy | Full Name |
---|---|---|
_initializeDrainTask | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream._initializeDrainTask |
ClientsConnected | 2 methods | Microsoft.AspNet.SignalR.Crank .ControllerHub.ClientsConnected |
ControllerConnection | 1 method | Microsoft.AspNet.SignalR.Crank.Client .ControllerConnection |
ControllerProxy | 1 method | Microsoft.AspNet.SignalR.Crank.Client .ControllerProxy |
_broadcastSize | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastSize |
_broadcastCount | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastCount |
_broadcastSeconds | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastSeconds |
_batchingEnabled | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._batchingEnabled |
_actualFps | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._actualFps |
_id | 8 methods | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest._id |
instanceId | 1 method | Microsoft.AspNet.SignalR.Hosting.Memory .MemoryHost.instanceId |
Connections | 2 methods | Microsoft.AspNet.SignalR.Samples.Hubs .Benchmark.HubBench.Connections |
_id | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking.MouseTracking._id |
_invokeCount | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub._invokeCount |
_id | 1 method | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad.DrawingPad._id |
counter | 1 method | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.NodeEvent.counter |
_invokeCount | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub._invokeCount |
Statistics
Stat | assignedBy |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
4100
Design |
|
![]() | Rule warning: Avoid custom delegates |
// Prefer using one of the standard generic delegate type in
// Predicate<T> Func<T0,T1,..,TResult> Action<T0,T1,..>
// instead of creating your own delegate type.
// Not only the code using these custom delegates will become clearer,
// but you'll be relieved from the maintenance of these delegate types.
//
// Notice that delegate that are consumed by DllImport extern methods
// must not be converted, else this could provoke marshalling issues.
warnif count > 0
from t in Application.Types where t.IsDelegate
let invokeMethod = (from m in t.Methods where m.SimpleName == "Invoke" select m).Single()
let signature1 = invokeMethod.Name.Substring(invokeMethod.SimpleName.Length, invokeMethod.Name.Length - invokeMethod.SimpleName.Length)
// 'ref' and 'out' parameters canot be supported
where !signature1.Contains("&")
let signature2 = signature1.Replace("(","<").Replace(")",">")
let signature3 = signature2 == "<>" ? "" : signature2
let resultTypeName = invokeMethod.ReturnType == null ? "????" :
invokeMethod.ReturnType.FullName == "System.Void" ? "" :
invokeMethod.ReturnType.Name
let replaceWith = resultTypeName == "Boolean" ?
"Predicate" + signature3 : resultTypeName == "" ?
"Action" + signature3 :
"Func" + signature3.Replace(">", "," + resultTypeName + ">")
select new { t, replaceWith }View Code Query or Rule Body
2 types matched
types | replaceWith | Full Name |
---|---|---|
HubMethodDispatcher+HubMethodExecutor | Func<IHub,Object[],Object> | Microsoft.AspNet.SignalR.Hubs .HubMethodDispatcher+HubMethodExecutor |
HubMethodDispatcher+VoidHubMethodExecuto r | Action<IHub,Object[]> | Microsoft.AspNet.SignalR.Hubs .HubMethodDispatcher+VoidHubMethodExecut or |
Statistics
Stat | replaceWith |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Types with disposable instance fields must be disposable |
warnif count > 0
let iDisposable = ThirdParty.Types.WithFullName("System.IDisposable").FirstOrDefault()
where iDisposable != null // iDisposable can be null if the code base doesn't use at all System.IDisposable
from t in Application.Types where
!t.Implement(iDisposable) &&
!t.IsGeneratedByCompiler
let instanceFieldsDisposable =
t.InstanceFields.Where(f => f.FieldType != null &&
f.FieldType.Implement(iDisposable))
where instanceFieldsDisposable.Count() > 0
select new { t, instanceFieldsDisposable }View Code Query or Rule Body
35 types matched
types | instanceFieldsDisposable | Full Name |
---|---|---|
CommonClient | 1 field | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
ConnectionConfiguration | 1 field | Microsoft.AspNet.SignalR .ConnectionConfiguration |
ConnectionManager | 1 field | Microsoft.AspNet.SignalR.Infrastructure .ConnectionManager |
CancellationTokenExtensions+DiposeCancel lationState | 1 field | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+DiposeCance llationState |
TaskQueue | 1 field | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue |
Connection | 1 field | Microsoft.AspNet.SignalR.Infrastructure .Connection |
PersistentConnectionFactory | 1 field | Microsoft.AspNet.SignalR.Hosting .PersistentConnectionFactory |
HubInvokerContext | 1 field | Microsoft.AspNet.SignalR.Hubs .HubInvokerContext |
DefaultHubActivator | 1 field | Microsoft.AspNet.SignalR.Hubs .DefaultHubActivator |
MessageBroker+WorkContext | 1 field | Microsoft.AspNet.SignalR.Messaging .MessageBroker+WorkContext |
MessageBus+SubscriptionState | 1 field | Microsoft.AspNet.SignalR.Messaging .MessageBus+SubscriptionState |
ScaleoutSubscription+CachedStreamEnumera tor | 1 field | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription+CachedStreamEnumer ator |
Topic | 1 field | Microsoft.AspNet.SignalR.Messaging.Topic |
WebSocketHandler | 1 field | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler |
WebSocketHandler+ReceiveContext | 1 field | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext |
ForeverTransport+ForeverTransportContext | 1 field | Microsoft.AspNet.SignalR.Transports .ForeverTransport+ForeverTransportContex t |
ForeverTransport+SubscriptionDisposerCon text | 1 field | Microsoft.AspNet.SignalR.Transports .ForeverTransport+SubscriptionDisposerCo ntext |
ForeverTransport+RequestLifetime | 1 field | Microsoft.AspNet.SignalR.Transports .ForeverTransport+RequestLifetime |
ForeverFrameTransport+ForeverFrameTransp ortContext | 1 field | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport+ForeverFrameTrans portContext |
ServerSentEventsTransport+SendContext | 1 field | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport+SendContext |
TransportHeartbeat+ConnectionMetadata | 1 field | Microsoft.AspNet.SignalR.Transports .TransportHeartbeat+ConnectionMetadata |
LongPollingTransport+LongPollingTranspor tContext | 1 field | Microsoft.AspNet.SignalR.Transports .LongPollingTransport+LongPollingTranspo rtContext |
HttpRequestLifeTime | 1 field | Microsoft.AspNet.SignalR.Transports .HttpRequestLifeTime |
HttpRequestLifeTime+LifetimeContext | 1 field | Microsoft.AspNet.SignalR.Transports .HttpRequestLifeTime+LifetimeContext |
WebSocketTransport+WebSocketTransportCon text | 1 field | Microsoft.AspNet.SignalR.Transports .WebSocketTransport+WebSocketTransportCo ntext |
ServerResponse | 1 field | Microsoft.AspNet.SignalR.Owin .ServerResponse |
OrderedCountDownRange<T> | 2 fields | Microsoft.AspNet.SignalR.Tests .Infrastructure.OrderedCountDownRange<T> |
CountDownRange<T> | 1 field | Microsoft.AspNet.SignalR.Tests .Infrastructure.CountDownRange<T> |
ServiceBusConnection+ReceiverContext | 1 field | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnection+ReceiverContext |
TaskQueue | 1 field | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue |
Subscriber | 1 field | Microsoft.AspNet.SignalR.Stress .Subscriber |
Client | 1 field | Microsoft.AspNet.SignalR.Client40 .Samples.Client |
DisconnectFacts+ServerNode | 2 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ServerNode |
DisconnectFacts+MyConnection | 2 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+MyConnection |
TestSubscriber | 1 field | Microsoft.AspNet.SignalR.Tests.Server .TestSubscriber |
Statistics
Stat | instanceFieldsDisposable |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Classes that are candidate to be turned into structures |
//
// CAUTION: Before applying this rule, make sure to understand
// the implication of transforming a class into a structure.
// http://msdn.microsoft.com/en-us/library/aa664471(v=vs.71).aspx
//
// Int32, Double or Boolean are structures and not classes.
// Structure are particularly suited to implement lightweight values.
// Hence a class is candidate to be turned into a structure
// when its instances are lightweight values.
//
warnif count > 0 from t in JustMyCode.Types where
t.IsClass &&
!t.IsGeneratedByCompiler &&
!t.IsStatic &&
t.SizeOfInst > 0 &&
t.SizeOfInst <= 16 && // Structure instance must not be too big,
// else it degrades performance.
t.NbChildren == 0 && // Must not have children
// Must not implement interfaces to avoid boxing mismatch
// when structures implements interfaces.
t.InterfacesImplemented.Count() == 0 &&
// Must have no base class
t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1
select new { t, t.SizeOfInst, t.InstanceFields } // Must derive directly from System.Object
// && t.IsSealed <-- You might want to add this condition
// to restraint the set.
// && t.IsImmutable <-- Structures should be immutable type.
// && t.!IsPublic <-- You might want to add this condition if
// you are developping a framework with classes
// that are intended to be sub-classed by
// your clients.
View Code Query or Rule Body
82 types matched
types | Size of instance | InstanceFields | Full Name |
---|---|---|---|
CommonClient | 4 | 1 field | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
Cookie | 16 | 4 fields | Microsoft.AspNet.SignalR.Cookie |
AckHandler+AckInfo | 12 | 2 fields | Microsoft.AspNet.SignalR.Infrastructure .AckHandler+AckInfo |
ProtocolResolver | 12 | 3 fields | Microsoft.AspNet.SignalR.Infrastructure .ProtocolResolver |
DiffSet<T> | 12 | 3 fields | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T> |
CancellationTokenExtensions+DiposeCancel lationState | 12 | 2 fields | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+DiposeCance llationState |
CancellationTokenExtensions+Cancellation CallbackWrapper | 12 | 3 fields | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+Cancellatio nCallbackWrapper |
ByteBuffer | 13 | 3 fields | Microsoft.AspNet.SignalR.Infrastructure .ByteBuffer |
SafeSet<T> | 4 | 1 field | Microsoft.AspNet.SignalR.Infrastructure .SafeSet<T> |
Connection+ReceiveContext | 12 | 3 fields | Microsoft.AspNet.SignalR.Infrastructure .Connection+ReceiveContext |
HostContext | 12 | 3 fields | Microsoft.AspNet.SignalR.Hosting .HostContext |
PersistentConnectionFactory | 4 | 1 field | Microsoft.AspNet.SignalR.Hosting .PersistentConnectionFactory |
HubMethodDispatcher | 8 | 2 fields | Microsoft.AspNet.SignalR.Hubs .HubMethodDispatcher |
ExceptionContext | 8 | 2 fields | Microsoft.AspNet.SignalR.Hubs .ExceptionContext |
ClientHubInvocation | 16 | 4 fields | Microsoft.AspNet.SignalR.Hubs .ClientHubInvocation |
StateChangeTracker | 8 | 2 fields | Microsoft.AspNet.SignalR.Hubs .StateChangeTracker |
ParameterDescriptor | 8 | 2 fields | Microsoft.AspNet.SignalR.Hubs .ParameterDescriptor |
HubCallerContext | 8 | 2 fields | Microsoft.AspNet.SignalR.Hubs .HubCallerContext |
HubDispatcher+ClientHubInfo | 4 | 1 field | Microsoft.AspNet.SignalR.Hubs .HubDispatcher+ClientHubInfo |
Cursor | 16 | 3 fields | Microsoft.AspNet.SignalR.Messaging .Cursor |
ScaleoutMappingStore | 4 | 1 field | Microsoft.AspNet.SignalR.Messaging .ScaleoutMappingStore |
LocalEventKeyInfo | 16 | 3 fields | Microsoft.AspNet.SignalR.Messaging .LocalEventKeyInfo |
MessageBroker+WorkContext | 8 | 2 fields | Microsoft.AspNet.SignalR.Messaging .MessageBroker+WorkContext |
ScaleoutMessage | 12 | 2 fields | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessage |
MessageBus+SubscriptionState | 8 | 2 fields | Microsoft.AspNet.SignalR.Messaging .MessageBus+SubscriptionState |
MessageStore<T>+Fragment | 12 | 2 fields | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>+Fragment |
ScaleoutStreamManager | 16 | 4 fields | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager |
ScaleoutStreamManager+SendContext | 12 | 3 fields | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager+SendContext |
ScaleoutSubscription+CachedStreamEnumera tor | 12 | 3 fields | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription+CachedStreamEnumer ator |
ScaleoutStream+SendContext | 16 | 4 fields | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream+SendContext |
Command | 13 | 4 fields | Microsoft.AspNet.SignalR.Messaging .Command |
WebSocketHandler+CloseContext | 4 | 1 field | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+CloseContext |
WebSocketMessage | 8 | 2 fields | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage |
ForeverTransport+ForeverTransportContext | 8 | 2 fields | Microsoft.AspNet.SignalR.Transports .ForeverTransport+ForeverTransportContex t |
ForeverTransport+SubscriptionDisposerCon text | 8 | 2 fields | Microsoft.AspNet.SignalR.Transports .ForeverTransport+SubscriptionDisposerCo ntext |
ForeverTransport+RequestLifetime | 8 | 2 fields | Microsoft.AspNet.SignalR.Transports .ForeverTransport+RequestLifetime |
ForeverFrameTransport+ForeverFrameTransp ortContext | 8 | 2 fields | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport+ForeverFrameTrans portContext |
ServerSentEventsTransport+SendContext | 8 | 2 fields | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport+SendContext |
LongPollingTransport+LongPollingTranspor tContext | 8 | 2 fields | Microsoft.AspNet.SignalR.Transports .LongPollingTransport+LongPollingTranspo rtContext |
HttpRequestLifeTime+LifetimeContext | 12 | 3 fields | Microsoft.AspNet.SignalR.Transports .HttpRequestLifeTime+LifetimeContext |
WebSocketTransport+WebSocketTransportCon text | 8 | 2 fields | Microsoft.AspNet.SignalR.Transports .WebSocketTransport+WebSocketTransportCo ntext |
OwinWebSocketHandler | 9 | 2 fields | Microsoft.AspNet.SignalR.Owin .OwinWebSocketHandler |
RawConnection+Message | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
DemoHub+Person | 12 | 3 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
OrderedCountDownRange<T> | 13 | 4 fields | Microsoft.AspNet.SignalR.Tests .Infrastructure.OrderedCountDownRange<T> |
CountDownRange<T> | 12 | 3 fields | Microsoft.AspNet.SignalR.Tests .Infrastructure.CountDownRange<T> |
TypeWithDateAsString | 4 | 1 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.TypeWithDateAsString |
ProgressHub+ProgressUpdate | 8 | 2 fields | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub+ProgressUpdate |
SystemNetLogging+Logging | 8 | 2 fields | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.SystemNetLogging+Logging |
SubscriptionContext | 12 | 3 fields | Microsoft.AspNet.SignalR.ServiceBus .SubscriptionContext |
RedisMessage | 12 | 2 fields | Microsoft.AspNet.SignalR.Redis .RedisMessage |
SqlInstaller | 16 | 4 fields | Microsoft.AspNet.SignalR.SqlServer .SqlInstaller |
SqlSender | 16 | 4 fields | Microsoft.AspNet.SignalR.SqlServer .SqlSender |
StressRuns+LoadBalancer | 12 | 3 fields | Microsoft.AspNet.SignalR.Stress .StressRuns+LoadBalancer |
StressRuns+EventBus | 12 | 2 fields | Microsoft.AspNet.SignalR.Stress .StressRuns+EventBus |
StressRuns+EventMessage | 16 | 3 fields | Microsoft.AspNet.SignalR.Stress .StressRuns+EventMessage |
RawConnection+Message | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
User | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.User |
Point | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Point |
DemoHub+Person | 12 | 3 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
Chat+ChatMessage | 12 | 3 fields | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatMessage |
Chat+ChatUser | 16 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatUser |
Chat+ChatRoom | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatRoom |
DrawingPad+Point | 16 | 2 fields | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad .DrawingPad+Point |
DrawingPad+Line | 12 | 3 fields | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad.DrawingPad+Line |
NodeEvent | 8 | 2 fields | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.NodeEvent |
Client | 4 | 1 field | Microsoft.AspNet.SignalR.Client40 .Samples.Client |
MyProject+ThreadSafeObjectProvider<T> | 4 | 1 field | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+ThreadSafeObjectProvider<T> |
DisconnectFacts+ServerNode | 12 | 3 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ServerNode |
DisconnectFacts+LoadBalancer | 8 | 2 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+LoadBalancer |
HubFacts+User | 12 | 3 fields | Microsoft.AspNet.SignalR.Tests .HubFacts+User |
HubProgressFacts+ProgressUpdate | 8 | 2 fields | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs .HubProgressFacts+ProgressUpdate |
WebSocketFacts+ReturnsUnserializableObje ctHub+Circular | 8 | 2 fields | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub+Circular |
ConnectionFacts+UrlInspectingHttpClient | 4 | 1 field | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+UrlInspectingHttpClient |
RawConnection+Message | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
DemoHub+Person | 12 | 3 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | 8 | 2 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
DefaultActionResolverFacts+Complex | 8 | 2 fields | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+Complex |
DefaultActionResolverFacts+Address | 8 | 2 fields | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+Address |
SipHashBasedStringEqualityComparerFacts | 4 | 1 field | Microsoft.AspNet.SignalR.Tests .SipHashBasedStringEqualityComparerFacts |
Statistics
Stat | Size of instance | InstanceFields |
---|---|---|
Sum: | 812 | 0 |
Average: | 9.9 | 0 |
Minimum: | 4 | 0 |
Maximum: | 16 | 0 |
Standard deviation: | 3.57 | 0 |
Variance: | 12.72 | 0 |
![]() | Rule warning: Avoid namespaces with few types |
warnif count > 0 from n in JustMyCode.Namespaces
let types = n.ChildTypes.Where(t => !t.IsGeneratedByCompiler)
where
types.Count() < 5
orderby types.Count() ascending
select new { n, types }
// Make sure that there is a logical organization
// to each of your namespaces, and that there is a
// valid reason for putting types in a sparsely
// populated namespace. Namespaces should contain
// types that are used together in most scenarios.
// When their applications are mutually exclusive,
// types should be located in separate namespacesView Code Query or Rule Body
78 namespaces matched
namespaces | types | Full Name |
---|---|---|
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
0 type | ||
System.Reflection | 1 type | System.Reflection |
System.Diagnostics | 1 type | System.Diagnostics |
Microsoft.AspNet.SignalR.StressServer .Connections | 1 type | Microsoft.AspNet.SignalR.StressServer .Connections |
Microsoft.AspNet.SignalR.Infrastructure | 1 type | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect |
Microsoft.AspNet.SignalR.Tests | 1 type | Microsoft.AspNet.SignalR.Tests |
Microsoft.AspNet.SignalR.Tests.Utilities | 1 type | Microsoft.AspNet.SignalR.Tests.Utilities |
Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS |
Microsoft.AspNet.SignalR.Hosting.Memory | 1 type | Microsoft.AspNet.SignalR.Hosting.Memory |
Microsoft.AspNet.SignalR.Client.Http | 1 type | Microsoft.AspNet.SignalR.Client.Http |
Microsoft.AspNet.SignalR.Infrastructure | 1 type | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.ServiceBus .Infrastructure | 1 type | Microsoft.AspNet.SignalR.ServiceBus .Infrastructure |
Microsoft.AspNet.SignalR.Stress .Infrastructure | 1 type | Microsoft.AspNet.SignalR.Stress .Infrastructure |
Microsoft.AspNet.SignalR | 1 type | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Tests.Common .Connections | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Connections |
Microsoft.AspNet.SignalR.Samples.Raw | 1 type | Microsoft.AspNet.SignalR.Samples.Raw |
Microsoft.AspNet.SignalR.Samples .Streaming | 1 type | Microsoft.AspNet.SignalR.Samples .Streaming |
Microsoft.AspNet.SignalR.Samples.Hubs .Benchmark | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .Benchmark |
Microsoft.AspNet.SignalR.Samples.Hubs .DrawingPad | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .DrawingPad |
Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI |
Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops |
Microsoft.AspNet.SignalR.Samples.Hubs .SimultaneousConnections | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .SimultaneousConnections |
Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.MessageLoops | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.MessageLoops |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.HubConnectionAPI | 1 type | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.HubConnectionAPI |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.RealtimeBroadcast | 1 type | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.RealtimeBroadcast |
Microsoft.AspNet.SignalR.Samples.VB | 1 type | Microsoft.AspNet.SignalR.Samples.VB |
Microsoft.AspNet.SignalR.Samples.VB.My .Resources | 1 type | Microsoft.AspNet.SignalR.Samples.VB.My .Resources |
Microsoft.AspNet.SignalR.FunctionalTests .Server | 1 type | Microsoft.AspNet.SignalR.FunctionalTests .Server |
Microsoft.AspNet.SignalR.Client .Transports | 1 type | Microsoft.AspNet.SignalR.Client .Transports |
Microsoft.AspNet.SignalR | 1 type | Microsoft.AspNet.SignalR |
System.Web.Routing | 1 type | System.Web.Routing |
Microsoft.AspNet.Owin.Samples.Hubs | 1 type | Microsoft.AspNet.Owin.Samples.Hubs |
Microsoft.AspNet.SignalR.SqlServer.Tests | 1 type | Microsoft.AspNet.SignalR.SqlServer.Tests |
Microsoft.AspNet.SignalR.Tests.Tracing | 1 type | Microsoft.AspNet.SignalR.Tests.Tracing |
Microsoft.AspNet.SignalR.Client.Samples | 2 types | Microsoft.AspNet.SignalR.Client.Samples |
Microsoft.AspNet.SignalR.Tracing | 2 types | Microsoft.AspNet.SignalR.Tracing |
Microsoft.AspNet.SignalR.Owin.Middleware | 2 types | Microsoft.AspNet.SignalR.Owin.Middleware |
Owin | 2 types | Owin |
Microsoft.AspNet.SignalR.Tests .Infrastructure | 2 types | Microsoft.AspNet.SignalR.Tests .Infrastructure |
Microsoft.AspNet.SignalR.Infrastructure | 2 types | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect |
Microsoft.AspNet.SignalR.Samples.Hubs .Counting | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Counting |
Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking |
Microsoft.AspNet.SignalR.Samples.Hubs .Test | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Test |
Microsoft.AspNet.SignalR.Client40 .Samples | 2 types | Microsoft.AspNet.SignalR.Client40 .Samples |
Microsoft.AspNet.SelfHost.Samples | 2 types | Microsoft.AspNet.SelfHost.Samples |
Microsoft.AspNet.SignalR.Client.Samples | 2 types | Microsoft.AspNet.SignalR.Client.Samples |
Microsoft.AspNet.SignalR.Tests.SqlServer | 2 types | Microsoft.AspNet.SignalR.Tests.SqlServer |
Microsoft.AspNet.SignalR.Tests.Hosting | 2 types | Microsoft.AspNet.SignalR.Tests.Hosting |
Microsoft.AspNet.SignalR.Tests.Json | 2 types | Microsoft.AspNet.SignalR.Tests.Json |
Microsoft.AspNet.SignalR.Configuration | 3 types | Microsoft.AspNet.SignalR.Configuration |
Microsoft.AspNet.SignalR.Samples | 3 types | Microsoft.AspNet.SignalR.Samples |
Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub | 3 types | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub |
Microsoft.AspNet.SignalR.Tests.Common .Handlers | 3 types | Microsoft.AspNet.SignalR.Tests.Common .Handlers |
Microsoft.AspNet.SignalR.Stress.Stress | 3 types | Microsoft.AspNet.SignalR.Stress.Stress |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad | 3 types | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test | 3 types | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test |
Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports | 3 types | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports |
Microsoft.AspNet.SignalR.Samples | 3 types | Microsoft.AspNet.SignalR.Samples |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | 3 types | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples |
Microsoft.AspNet.SignalR.Tests.Owin | 3 types | Microsoft.AspNet.SignalR.Tests.Owin |
Microsoft.AspNet.SignalR.Redis | 4 types | Microsoft.AspNet.SignalR.Redis |
Microsoft.AspNet.SignalR | 4 types | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders | 4 types | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders |
Microsoft.AspNet.SignalR.FunctionalTests .NuGet | 4 types | Microsoft.AspNet.SignalR.FunctionalTests .NuGet |
Microsoft.AspNet.SignalR.Tests.Server .Transports | 4 types | Microsoft.AspNet.SignalR.Tests.Server .Transports |
Statistics
Stat | types |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Nested types should not be visible |
warnif count > 0 from t in JustMyCode.Types where
t.IsNested &&
!t.IsGeneratedByCompiler &&
!t.IsPrivate
select new { t, t.NbLinesOfCode, t.Visibility }
// A nested type is a type declared within the
// scope of another type. Nested types are useful
// for encapsulating private implementation details
// of the containing type. Used for this purpose,
// nested types should not be externally visible.
// Do not use externally visible nested types for
// logical grouping or to avoid name collisions;
// instead, use namespaces.View Code Query or Rule Body
75 types matched
types | # lines of code (LOC) | Visibility | Full Name |
---|---|---|---|
GenerateHubProxyCommand+JavaScriptGenera tor | 20 | Public | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator |
BufferTextWriter+ChunkedWriter | 35 | Internal | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter |
ScaleoutStore+Fragment | 33 | Internal | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment |
ForeverTransport+RequestLifetime | 8 | Internal | Microsoft.AspNet.SignalR.Transports .ForeverTransport+RequestLifetime |
ControllerHub+Startup | 1 | Public | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup |
DemoHub+Person | 0 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | 0 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
ProgressHub+ProgressUpdate | 0 | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub+ProgressUpdate |
StressRuns+MyGroupConnection | 10 | Public | Microsoft.AspNet.SignalR.Stress .StressRuns+MyGroupConnection |
StressRuns+MyRejoinGroupConnection | 0 | Public | Microsoft.AspNet.SignalR.Stress .StressRuns+MyRejoinGroupConnection |
DemoHub+Person | 0 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | 0 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
Chat+ChatMessage | 4 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatMessage |
Chat+ChatUser | 5 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatUser |
Chat+ChatRoom | 3 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatRoom |
DrawingPad+Point | 0 | Public | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad .DrawingPad+Point |
DrawingPad+Line | 0 | Public | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad.DrawingPad+Line |
MyProject+MyWebServices | 0 | Internal | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+MyWebServices |
MyProject+ThreadSafeObjectProvider<T> | 0 | Internal | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+ThreadSafeObjectProvider<T> |
HubProxyFacts+MyHub2 | 1 | Public | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+MyHub2 |
HubProxyFacts+ChatHub | 1 | Public | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ChatHub |
DisconnectFacts+MyHub | 8 | Public | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+MyHub |
PersistentConnectionFacts+OnConnectedAsy nc | 39 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync |
PersistentConnectionFacts+OnReconnectedA sync | 0 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnReconnected Async |
PersistentConnectionFacts+GroupTest | 0 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GroupTest |
PersistentConnectionFacts+SendFacts | 0 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+SendFacts |
PersistentConnectionFacts+ReceiveFacts | 0 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+ReceiveFacts |
PersistentConnectionFacts+Owin | 0 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+Owin |
HubFacts+SomeHub | 2 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+SomeHub |
HubFacts+CustomQueryHub | 1 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+CustomQueryHub |
HubFacts+MultGroupHub | 2 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+MultGroupHub |
HubFacts+MultGroupHub2 | 1 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+MultGroupHub2 |
HubFacts+LogRejoiningGroupsModule | 6 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+LogRejoiningGroupsModule |
HubFacts+SuppressErrorModule | 1 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+SuppressErrorModule |
HubFacts+WrapErrorModule | 1 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+WrapErrorModule |
HubFacts+User | 0 | Public | Microsoft.AspNet.SignalR.Tests .HubFacts+User |
ConnectionFacts+Start | 38 | Public | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
ConnectionFacts+MyAuthenticatedConnectio n | 1 | Public | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+MyAuthenticatedConnecti on |
HubProgressFacts+ProgressUpdate | 0 | Public | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs .HubProgressFacts+ProgressUpdate |
SecurityFacts+MyConnection | 1 | Public | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.SecurityFacts+MyConnection |
SecurityFacts+MyGroupConnection | 3 | Public | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs .SecurityFacts+MyGroupConnection |
WebSocketFacts+ReturnsUnserializableObje ctHub | 1 | Public | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub |
WebSocketFacts+ReturnsUnserializableObje ctHub+Circular | 3 | Public | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub+Circular |
ChunkBufferFacts+ReadLine | 27 | Public | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine |
ConnectionFacts+Start | 65 | Public | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
DemoHub+Person | 0 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | 0 | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
GroupManagerFacts+Add | 22 | Public | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Add |
GroupManagerFacts+Remove | 20 | Public | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Remove |
GroupManagerFacts+Send | 16 | Public | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Send |
PersistentConnectionFactoryFacts+CreateI nstance | 17 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFactoryFacts+Create Instance |
PersistentConnectionFactoryFacts+CreateI nstance+MyConnection | 0 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFactoryFacts+Create Instance+MyConnection |
PersistentConnectionFactoryFacts+CreateI nstance+MyOtherConnection | 0 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFactoryFacts+Create Instance+MyOtherConnection |
PersistentConnectionFacts+ProcessRequest | 61 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+ProcessReques t |
PersistentConnectionFacts+VerifyGroups | 28 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+VerifyGroups |
PersistentConnectionFacts+GetConnectionI d | 68 | Public | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GetConnection Id |
ServerConnectionFacts+PopulateResponseSt ate | 59 | Public | Microsoft.AspNet.SignalR.Tests .ServerConnectionFacts+PopulateResponseS tate |
DefaultHubResolverFacts+HubWithAttribute | 0 | Public | Microsoft.AspNet.SignalR.Tests .DefaultHubResolverFacts+HubWithAttribut e |
DefaultHubResolverFacts+HubWithoutAttrib ute | 0 | Public | Microsoft.AspNet.SignalR.Tests .DefaultHubResolverFacts+HubWithoutAttri bute |
DefaultActionResolverFacts+Complex | 0 | Public | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+Complex |
DefaultActionResolverFacts+Address | 0 | Public | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+Address |
ServerRequestFacts+OwinConstants | 0 | Internal | Microsoft.AspNet.SignalR.Tests.Owin .ServerRequestFacts+OwinConstants |
SubscriptionFacts+TestSubscription | 16 | Public | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts+TestSubscription |
HubFacts+IClientContract | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubFacts+IClientContract |
HubProgressFacts+ProgressData | 0 | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubProgressFacts+ProgressData |
TypedClientBuilderFacts+IClientContract | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IClientContract |
TypedClientBuilderFacts+IAmGeneric<T> | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts+IAmGeneric <T> |
TypedClientBuilderFacts+IDontReturnVoidO rTask | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IDontReturnVoid OrTask |
TypedClientBuilderFacts+IHaveOutParamete r | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveOutParamet er |
TypedClientBuilderFacts+IHaveRefParamete r | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveRefParamet er |
TypedClientBuilderFacts+IHaveProperties | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveProperties |
TypedClientBuilderFacts+IHaveIndexer | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveIndexer |
TypedClientBuilderFacts+IHaveEvent | N/A | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts+IHaveEvent |
TypedClientBuilderFacts+NotAnInterface | 0 | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+NotAnInterface |
TypedClientBuilderFacts+AlsoNotAnInterfa ce | 0 | Public | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+AlsoNotAnInterf ace |
Statistics
Stat | # lines of code (LOC) | Visibility |
---|---|---|
Sum: | 628 | 0 |
Average: | 9.52 | 0 |
Minimum: | 0 | 0 |
Maximum: | 68 | 0 |
Standard deviation: | 17.1 | 0 |
Variance: | 292.46 | 0 |
![]() | Rule warning: Declare types in namespaces |
warnif count > 0 from n in Application.Namespaces where
n.Name == ""
select new { n, n.ChildTypes, n.NbLinesOfCode }
// Types are declared within namespaces to
// prevent name collisions, and as a way of
// organizing related types in an object hierarchy.
// Types outside any named namespace are in a
// global namespace that cannot be referenced
// in code. If an anonymous namespace can be found,
// it means that it contains types outside of namespaces.View Code Query or Rule Body
12 namespaces matched
namespaces | ChildTypes | # lines of code (LOC) | Full Name |
---|---|---|---|
1 type | 0 | ||
7 types | 0 | ||
1 type | 0 | ||
3 types | 0 | ||
8 types | 0 | ||
3 types | 0 | ||
7 types | 0 | ||
1 type | 0 | ||
6 types | 0 | ||
3 types | 0 | ||
1 type | 0 | ||
1 type | 0 |
Statistics
Stat | ChildTypes | # lines of code (LOC) |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Empty static constructor can be discarded |
warnif count > 0 from m in Application.Methods where
m.IsClassConstructor &&
m.NbLinesOfCode == 0
select m
View Code Query or Rule Body
1 methods matched
method | Full Name |
---|---|
.cctor() | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject..cctor() |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Instances size shouldn't be too big |
warnif count > 0 from t in JustMyCode.Types where
t.SizeOfInst > 64
orderby t.SizeOfInst descending
select new { t, t.SizeOfInst, t.InstanceFields }
// Types where SizeOfInst > 64 might degrade performance
// (depending on the number of instances created at runtime)
// and might be hard to maintain. However it is not a rule
// since sometime there is no alternative (the size of
// instances of the System.Net.NetworkInformation.SystemIcmpV6Statistics
// standard class is 2064 bytes).
// Notice that a class with a large SizeOfInst value
// doesn't necessarily have a lot of instance fields.
// It might derive from a class with a large SizeOfInst value.
// See the definition of the SizeOfInst metric here
// http://www.ndepend.com/Metrics.aspx#SizeOfInstView Code Query or Rule Body
54 types matched
types | Size of instance | InstanceFields | Full Name |
---|---|---|---|
_Default | 370 | 3 fields | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.LoadTestHarness .Default |
_Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples ._Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Raw .Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples .Streaming.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Counting.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DrawingPad.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .SimultaneousConnections.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Test.Default |
Default | 358 | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.Default |
WebSocketTransport | 154 | 7 fields | Microsoft.AspNet.SignalR.Transports .WebSocketTransport |
RedisMessageBus | 144 | 9 fields | Microsoft.AspNet.SignalR.Redis .RedisMessageBus |
PerformanceCounterManager | 141 | 36 fields | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterManager | 137 | 35 fields | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
LongPollingTransportFacts+TestLongPollin gTransport | 137 | 1 field | Microsoft.AspNet.SignalR.Tests.Server .Transports .LongPollingTransportFacts+TestLongPolli ngTransport |
LongPollingTransport | 133 | 2 fields | Microsoft.AspNet.SignalR.Transports .LongPollingTransport |
ForeverFrameTransport | 132 | 1 field | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport |
ForeverTransport | 128 | 12 fields | Microsoft.AspNet.SignalR.Transports .ForeverTransport |
ServerSentEventsTransport | 128 | 0 field | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport |
SqlMessageBus | 124 | 5 fields | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus |
StressRuns+DelayedMessageBus | 124 | 4 fields | Microsoft.AspNet.SignalR.Stress .StressRuns+DelayedMessageBus |
ServiceBusMessageBus | 120 | 4 fields | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus |
FakeScaleoutBus | 116 | 2 fields | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.FakeScaleoutBus |
Global | 109 | 0 field | Microsoft.AspNet.SignalR.Samples.Global |
ScaleOutMessageBusFacts+TestScaleoutBus | 108 | 1 field | Microsoft.AspNet.SignalR.Tests.Server .ScaleOutMessageBusFacts+TestScaleoutBus |
ScaleoutMessageBus | 104 | 4 fields | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessageBus |
MessageBus | 88 | 21 fields | Microsoft.AspNet.SignalR.Messaging .MessageBus |
MessageBusFacts+TestMessageBus | 88 | 0 field | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts+TestMessageBus |
HubDispatcher | 84 | 11 fields | Microsoft.AspNet.SignalR.Hubs .HubDispatcher |
TransportDisconnectBase | 80 | 20 fields | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase |
HubFacts+<SendToUser>d__72 | 80 | 20 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToUser>d__72 |
ConnectionFacts+Start+ <ConnectionErrorCapturesExceptionsThrown WhenReceivingResponseFromSend>d__b3 | 80 | 17 fields | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start+ <ConnectionErrorCapturesExceptionsThrown WhenReceivingResponseFromSend>d__b3 |
HubFacts+<SendToSpecificConnections >d__235 | 76 | 19 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSpecificConnections>d__235 |
HubFacts+<SendToSpecificGroups>d__251 | 76 | 19 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSpecificGroups>d__251 |
HubFacts+<SendToAllButCallerInGroups >d__25f | 76 | 19 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCallerInGroups>d__25f |
HubFacts+<SendToAllButCaller>d__200 | 72 | 18 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCaller>d__200 |
HubFacts+<SendToAllButCallerInGroup >d__20d | 72 | 18 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAllButCallerInGroup>d__20d |
HubFacts+<SendToAll>d__21a | 72 | 18 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToAll>d__21a |
HubFacts+<SendToSelf>d__227 | 72 | 18 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToSelf>d__227 |
WebSocketMessageReader+<ReadMessageAsync >d__0 | 70 | 14 fields | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessageReader+ <ReadMessageAsync>d__0 |
CrankArguments | 69 | 18 fields | Microsoft.AspNet.SignalR.Crank .CrankArguments |
Program+StressArguments | 69 | 18 fields | Microsoft.AspNet.SignalR.Stress .Program+StressArguments |
RunData | 68 | 17 fields | Microsoft.AspNet.SignalR.Stress.RunData |
HubProxyFacts+ <ConnectionErrorCapturesExceptionsThrown InClientHubMethod>d__59 | 68 | 17 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ConnectionErrorCapturesExceptionsThrown InClientHubMethod>d__59 |
DisconnectFacts+ <FarmDisconnectRaisesUncleanDisconnects >d__3c | 68 | 16 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <FarmDisconnectRaisesUncleanDisconnects >d__3c |
GetHubContextFacts+ <SendToUsersFromOutsideOfHub>d__17 | 68 | 17 fields | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts+ <SendToUsersFromOutsideOfHub>d__17 |
HubFacts+<SendToMultipleUsers>d__3a | 68 | 17 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <SendToMultipleUsers>d__3a |
HubFacts+<ComplexPersonState>d__166 | 68 | 17 fields | Microsoft.AspNet.SignalR.Tests.HubFacts+ <ComplexPersonState>d__166 |
HubProgressFacts+ <HubProgressIsReportedSuccessfully>d__4 | 68 | 17 fields | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.HubProgressFacts+ <HubProgressIsReportedSuccessfully>d__4 |
SecurityFacts+ <GroupsTokenIsPerConnectionId>d__b | 68 | 17 fields | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.SecurityFacts+ <GroupsTokenIsPerConnectionId>d__b |
Statistics
Stat | Size of instance | InstanceFields |
---|---|---|
Sum: | 8 831 | 0 |
Average: | 163.54 | 0 |
Minimum: | 68 | 0 |
Maximum: | 370 | 0 |
Standard deviation: | 118.07 | 0 |
Variance: | 13 940 | 0 |
![]() | Rule warning: Attribute classes should be sealed |
warnif count > 0 from t in Application.Types where
t.IsAttributeClass &&
!t.IsSealed &&
!t.IsAbstract &&
t.IsPublic
select new { t, t.NbLinesOfCode }
// The .NET Framework class library provides methods
// for retrieving custom attributes. By default,
// these methods search the attribute inheritance
// hierarchy; for example System.Attribute.GetCustomAttribute
// searches for the specified attribute type, or any
// attribute type that extends the specified attribute
// type. Sealing the attribute eliminates the search
// through the inheritance hierarchy, and can improve
// performance.View Code Query or Rule Body
1 types matched
type | # lines of code (LOC) | Full Name |
---|---|---|
AuthorizeAttribute | 36 | Microsoft.AspNet.SignalR .AuthorizeAttribute |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 36 |
Average: | 36 |
Minimum: | 36 |
Maximum: | 36 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Don't forget to implement methods that throw NotImplementedException |
warnif count > 0
from m in Application.Methods
where m.CreateA("System.NotImplementedException".AllowNoMatch())
select mView Code Query or Rule Body
42 methods matched
methods | Full Name |
---|---|
get_RequireOutgoing() | Microsoft.AspNet.SignalR .AuthorizeAttribute.get_RequireOutgoing( ) |
WriteJson(JsonWriter,Object ,JsonSerializer) | Microsoft.AspNet.SignalR.Json .SipHashBasedDictionaryConverter .WriteJson(JsonWriter,Object ,JsonSerializer) |
Send(Int32,IList<Message>) | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessageBus.Send(Int32,IList <Message>) |
OnMessage(String) | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler.OnMessage(String) |
OnMessage(Byte[]) | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler.OnMessage(Byte[]) |
get_CloseStatus() | Microsoft.AspNet.SignalR.Owin .OwinWebSocketHandler+OwinWebSocket .get_CloseStatus() |
get_CloseStatusDescription() | Microsoft.AspNet.SignalR.Owin .OwinWebSocketHandler+OwinWebSocket .get_CloseStatusDescription() |
get_State() | Microsoft.AspNet.SignalR.Owin .OwinWebSocketHandler+OwinWebSocket .get_State() |
get_SubProtocol() | Microsoft.AspNet.SignalR.Owin .OwinWebSocketHandler+OwinWebSocket .get_SubProtocol() |
get_ExtraData() | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.ExternalTestHost .get_ExtraData() |
Get(String) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.ExternalTestHost.Get (String) |
Post(String,IDictionary<String,String>) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.ExternalTestHost.Post (String,IDictionary<String,String>) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Get(String) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost.Get (String) |
Post(String,IDictionary<String,String>) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost.Post (String,IDictionary<String,String>) |
Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost .Initialize(Nullable<Int32>,Nullable <Int32>,Nullable<Int32>,Nullable<Int32> ,Nullable<Int32>,Boolean,MessageBusType) |
Get(String) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost.Get (String) |
Post(String,IDictionary<String,String>) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost.Post (String,IDictionary<String,String>) |
Get(String,Action<IRequest>,Boolean) | Microsoft.AspNet.SignalR.Tests .CustomHttpClient.Get(String,Action <IRequest>,Boolean) |
Get(String,Action<IRequest>,Boolean) | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+UrlInspectingHttpClient .Get(String,Action<IRequest>,Boolean) |
Post(String,Action<IRequest>,IDictionary <String,String>,Boolean) | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+UrlInspectingHttpClient .Post(String,Action<IRequest> ,IDictionary<String,String>,Boolean) |
MapConnection<T>(RouteCollection,String ,String) | System.Web.Routing .SignalRRouteExtensions.MapConnection<T> (RouteCollection,String,String) |
MapConnection<T>(RouteCollection,String ,String,ConnectionConfiguration) | System.Web.Routing .SignalRRouteExtensions.MapConnection<T> (RouteCollection,String,String ,ConnectionConfiguration) |
MapConnection<T>(RouteCollection,String ,String,ConnectionConfiguration,Action <IAppBuilder>) | System.Web.Routing .SignalRRouteExtensions.MapConnection<T> (RouteCollection,String,String ,ConnectionConfiguration,Action <IAppBuilder>) |
MapConnection(RouteCollection,String ,String,Type,ConnectionConfiguration) | System.Web.Routing .SignalRRouteExtensions.MapConnection (RouteCollection,String,String,Type ,ConnectionConfiguration) |
MapConnection(RouteCollection,String ,String,Type,ConnectionConfiguration ,Action<IAppBuilder>) | System.Web.Routing .SignalRRouteExtensions.MapConnection (RouteCollection,String,String,Type ,ConnectionConfiguration,Action <IAppBuilder>) |
MapHubs(RouteCollection) | System.Web.Routing .SignalRRouteExtensions.MapHubs (RouteCollection) |
MapHubs(RouteCollection,HubConfiguration ) | System.Web.Routing .SignalRRouteExtensions.MapHubs (RouteCollection,HubConfiguration) |
MapHubs(RouteCollection,String ,HubConfiguration) | System.Web.Routing .SignalRRouteExtensions.MapHubs (RouteCollection,String,HubConfiguration ) |
MapHubs(RouteCollection,String ,HubConfiguration,Action<IAppBuilder>) | System.Web.Routing .SignalRRouteExtensions.MapHubs (RouteCollection,String,HubConfiguration ,Action<IAppBuilder>) |
MapHubs(RouteCollection,String,String ,HubConfiguration,Action<IAppBuilder>) | System.Web.Routing .SignalRRouteExtensions.MapHubs (RouteCollection,String,String ,HubConfiguration,Action<IAppBuilder>) |
get_Context() | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.get_Context() |
set_Context(HubCallerContext) | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.set_Context(HubCallerContext) |
get_Clients() | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.get_Clients() |
set_Clients(IHubCallerConnectionContext <Object>) | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.set_Clients (IHubCallerConnectionContext<Object>) |
get_Groups() | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.get_Groups() |
set_Groups(IGroupManager) | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.set_Groups(IGroupManager) |
OnConnected() | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.OnConnected() |
OnReconnected() | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.OnReconnected() |
OnDisconnected(Boolean) | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.OnDisconnected(Boolean) |
Dispose() | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+HubWithOverr ides2.Dispose() |
WriteCursor(TextWriter) | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts+TestSubscription .WriteCursor(TextWriter) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
531
Architecture and Layering |
|
![]() | Critical Rule warning: Avoid namespaces mutually dependent |
warnif count > 0
// Foreach pair of namespace mutually dependent, this rule lists pairs.
// The pair { first, second } is formatted to show first namespace shouldn't use the second namespace.
// The first/second order is inferred from the number of types used by each other.
// The first namespace is using fewer types of the second.
// It means the first namespace is certainly at a lower level in the architecture than the second.
//
// To explore the coupling between two namespaces mutually dependent:
// 1) export the first namespace to the vertical header of the dependency matrix
// 2) export the second namespace to the horizontal header of the dependency matrix
// 3) double-click the black cell
// 4) in the matrix command bar, click the button: Remove empty Row(s) en Column(s)
// At this point, the dependency matrix shows types involved into the coupling.
//
// Following this rule is useful to avoid namespaces dependency cycles.
// More on this in our white books relative to partitioning code.
// http://www.ndepend.com/WhiteBooks.aspx
// Optimization: restraint application assemblies set
// If some namespaces are mutually dependent
// - They must be declared in the same assembly
// - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies.Where(a => a.ContainsNamespaceDependencyCycle != null && a.ContainsNamespaceDependencyCycle.Value)
// hashset is used to avoid reporting both A <-> B and B <-> A
let hashset = new HashSet<INamespace>()
// Optimization: restraint namespaces set
// If a namespace doesn't have a Level value, it must be in a dependency cycle
// or it must be using directly or indirectly a dependency cycle.
let namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)
from nA in namespacesSuspect
// Select namespaces mutually dependent with nA
let unused = hashset.Add(nA) // Populate hashset
let namespacesMutuallyDependentWith_nA = nA.NamespacesUsed.Using(nA)
.Except(hashset) // <-- avoid reporting both A <-> B and B <-> A
where namespacesMutuallyDependentWith_nA.Count() > 0
from nB in namespacesMutuallyDependentWith_nA
// nA and nB are mutually dependent
// First select the one that shouldn't use the other.
// The first namespace is inferred from the fact that it is using less types of the second.
let typesOfBUsedByA = nB.ChildTypes.UsedBy(nA)
let typesOfAUsedByB = nA.ChildTypes.UsedBy(nB)
let first = (typesOfBUsedByA.Count() > typesOfAUsedByB.Count()) ? nB : nA
let second = (first == nA) ? nB : nA
let typesOfFirstUsedBySecond = (first == nA) ? typesOfAUsedByB : typesOfBUsedByA
let typesOfSecondUsedByFirst = (first == nA) ? typesOfBUsedByA : typesOfAUsedByB
select new { first, shouldntUse = second, typesOfFirstUsedBySecond, typesOfSecondUsedByFirst }
View Code Query or Rule Body
20 namespaces matched
namespaces | shouldntUse | typesOfFirstUsedBySecond | typesOfSecondUsedByFirst | Full Name |
---|---|---|---|---|
Microsoft.AspNet.SignalR.Hubs | Microsoft.AspNet.SignalR | 31 types | 18 types | Microsoft.AspNet.SignalR.Hubs |
Microsoft.AspNet.SignalR.Infrastructure | Microsoft.AspNet.SignalR | 15 types | 14 types | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Configuration | Microsoft.AspNet.SignalR | 3 types | 1 type | Microsoft.AspNet.SignalR.Configuration |
Microsoft.AspNet.SignalR | Microsoft.AspNet.SignalR.Hosting | 6 types | 4 types | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | Microsoft.AspNet.SignalR.Messaging | 5 types | 4 types | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | Microsoft.AspNet.SignalR.Transports | 8 types | 6 types | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | Microsoft.AspNet.SignalR.Json | 2 types | 2 types | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Infrastructure | Microsoft.AspNet.SignalR.Hosting | 3 types | 3 types | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Hubs | Microsoft.AspNet.SignalR.Infrastructure | 7 types | 4 types | Microsoft.AspNet.SignalR.Hubs |
Microsoft.AspNet.SignalR.Infrastructure | Microsoft.AspNet.SignalR.Messaging | 9 types | 8 types | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Infrastructure | Microsoft.AspNet.SignalR.Json | 2 types | 1 type | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Infrastructure | Microsoft.AspNet.SignalR.Transports | 11 types | 2 types | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Hosting | Microsoft.AspNet.SignalR.Owin | 3 types | 2 types | Microsoft.AspNet.SignalR.Hosting |
Microsoft.AspNet.SignalR.Tests.Common .Infrastructure | Microsoft.AspNet.SignalR.Tests.Common | 3 types | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure |
Microsoft.AspNet.SignalR | Microsoft.AspNet.SignalR.ServiceBus | 2 types | 1 type | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | Microsoft.AspNet.SignalR.Redis | 2 types | 1 type | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | Microsoft.AspNet.SignalR.SqlServer | 3 types | 1 type | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Stress | Microsoft.AspNet.SignalR.Stress.Performance | 5 types | 1 type | Microsoft.AspNet.SignalR.Stress |
Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders | Microsoft.AspNet.SignalR.Samples.Hubs.Chat | 3 types | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples.Microsoft_AspNet_SignalR_Client_WindowsStoreCSharp_Samples_XamlTypeInfo | 1 type | 1 type | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples |
Statistics
Stat | shouldntUse | typesOfFirstUsedBySecond | typesOfSecondUsedByFirst |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Avoid namespaces dependency cycles |
warnif count > 0
// This query lists all application namespace dependency cycles.
// Each row shows a different cycle, prefixed with a namespace entangled in the cycle.
//
// To browse a cycle on the dependency graph or the dependency matrix, right click
// a cycle cell and export the matched namespaces to the dependency graph or matrix!
//
// In the matrix, dependency cycles are represented with red squares and black cells.
// To easily browse dependency cycles, the Matrix comes with an option:
// --> Display Direct and Indirect Dependencies
//
// Read our white books relative to partitioning code,
// to know more about namespaces dependency cycles, and why avoiding them
// is a simple but efficient solution to architecture for your code base.
// http://www.ndepend.com/WhiteBooks.aspx
// Optimization: restraint application assemblies set
// If some namespaces are mutually dependent
// - They must be declared in the same assembly
// - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies
.Where(a => a.ContainsNamespaceDependencyCycle != null &&
a.ContainsNamespaceDependencyCycle.Value)
// Optimization: restraint namespaces set
// A namespace involved in a cycle necessarily have a null Level.
let namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)
// hashset is used to avoid iterating again on namespaces already caught in a cycle.
let hashset = new HashSet<INamespace>()
from suspect in namespacesSuspect
// By commenting in this line, the query matches all namespaces involved in a cycle.
where !hashset.Contains(suspect)
// Define 2 code metrics
// - Namespaces depth of is using indirectly the suspect namespace.
// - Namespaces depth of is used by the suspect namespace indirectly.
// Note: for direct usage the depth is equal to 1.
let namespacesUserDepth = namespacesSuspect.DepthOfIsUsing(suspect)
let namespacesUsedDepth = namespacesSuspect.DepthOfIsUsedBy(suspect)
// Select namespaces that are both using and used by namespaceSuspect
let usersAndUsed = from n in namespacesSuspect where
namespacesUserDepth[n] > 0 &&
namespacesUsedDepth[n] > 0
select n
where usersAndUsed.Count() > 0
// Here we've found namespace(s) both using and used by the suspect namespace.
// A cycle involving the suspect namespace is found!
let cycle = usersAndUsed.Append(suspect)
// Fill hashset with namespaces in the cycle.
// .ToArray() is needed to force the iterating process.
let unused1 = (from n in cycle let unused2 = hashset.Add(n) select n).ToArray()
select new { suspect, cycle }
View Code Query or Rule Body
8 namespaces matched
namespaces | cycle | Full Name |
---|---|---|
Microsoft.AspNet.SignalR | 10 namespaces | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Tests.Common | 2 namespaces | Microsoft.AspNet.SignalR.Tests.Common |
Microsoft.AspNet.SignalR | 2 namespaces | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | 2 namespaces | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | 2 namespaces | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Stress | 2 namespaces | Microsoft.AspNet.SignalR.Stress |
Microsoft.AspNet.SignalR.Samples.Hubs .Chat | 2 namespaces | Microsoft.AspNet.SignalR.Samples.Hubs .Chat |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | 2 namespaces | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples |
Statistics
Stat | cycle |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid partitioning the code base through many small library Assemblies |
warnif count > 10
from a in Application.Assemblies where
( a.NbLinesOfCode < 1000 ||
a.NbILInstructions < 7000 ) &&
a.FilePath.FileExtension.ToLower() == ".dll"
select new { a, a.NbLinesOfCode, a.NbILInstructions }
// Each .NET Assembly represents one or several physical file.
// Having too many library .NET Assemblies is a symptom of
// considering physical .NET Assemblies as logical components.
// We advise having less, and bigger, .NET Assemblies
// and using the concept of namespaces to define logical components.
// Benefits are:
// - Much faster compilation time
// (compilation time divided by 10 wouldn't be surprising)
// - Faster startup time for your program
// - Easier deploiement thanks to less files to manage.
// - If you are developing a Framework,
// less .NET assemblies to reference and manage for your users
//
// More on this in our white books relative to partitioning code.
// http://www.ndepend.com/WhiteBooks.aspx View Code Query or Rule Body
14 assemblies matched
assemblies | # lines of code (LOC) | # IL instructions | Full Name |
---|---|---|---|
Microsoft.AspNet.SignalR.Client.JS | 0 | 0 | Microsoft.AspNet.SignalR.Client.JS |
Microsoft.AspNet.SignalR.LoadTestHarness | 428 | 3 800 | Microsoft.AspNet.SignalR.LoadTestHarness |
Microsoft.AspNet.SignalR.StressServer | 105 | 1 569 | Microsoft.AspNet.SignalR.StressServer |
Microsoft.AspNet.SignalR.Tests.Common | 985 | 13 411 | Microsoft.AspNet.SignalR.Tests.Common |
Microsoft.AspNet.SignalR.ServiceBus | 591 | 4 648 | Microsoft.AspNet.SignalR.ServiceBus |
Microsoft.AspNet.SignalR.Redis | 448 | 3 423 | Microsoft.AspNet.SignalR.Redis |
Microsoft.AspNet.SignalR.SqlServer | 745 | 6 522 | Microsoft.AspNet.SignalR.SqlServer |
Microsoft.AspNet.SignalR.Samples | 726 | 12 700 | Microsoft.AspNet.SignalR.Samples |
Microsoft.AspNet.SignalR.Client.JS.Tests | 0 | 0 | Microsoft.AspNet.SignalR.Client.JS.Tests |
Microsoft.AspNet.SignalR.Samples.VB | 28 | 853 | Microsoft.AspNet.SignalR.Samples.VB |
Microsoft.AspNet.SignalR.Client.Tests | 468 | 5 378 | Microsoft.AspNet.SignalR.Client.Tests |
Microsoft.AspNet.SignalR.SystemWeb | 13 | 53 | Microsoft.AspNet.SignalR.SystemWeb |
Microsoft.AspNet.SignalR.DailyTests | 60 | 528 | Microsoft.AspNet.SignalR.DailyTests |
Microsoft.AspNet.SignalR.SqlServer.Tests | 85 | 900 | Microsoft.AspNet.SignalR.SqlServer.Tests |
Statistics
Stat | # lines of code (LOC) | # IL instructions |
---|---|---|
Sum: | 4 682 | 53 785 |
Average: | 334.43 | 3 841 |
Minimum: | 0 | 0 |
Maximum: | 985 | 13 411 |
Standard deviation: | 323.1 | 4 292 |
Variance: | 104 394 | 18 429 690 |
![]() | Rule warning: Assemblies with poor cohesion (RelationalCohesion) |
warnif count > 0 from a in Application.Assemblies where
a.NbTypes > 20 && // Relational Cohesion metrics is relevant only if there are several types
(a.RelationalCohesion < 1.5 ||
a.RelationalCohesion > 4.0)
select new { a, a.NbTypes, a.RelationalCohesion }
// As classes inside an assembly should be strongly related,
// the cohesion should be high. On the other hand, a value
// which is too high may indicate over-coupling. A good range
// for RelationalCohesion is 1.5 to 4.0.
// See the definition of the RelationalCohesion metric here
// http://www.ndepend.com/Metrics.aspx#RelationalCohesionView Code Query or Rule Body
5 assemblies matched
assemblies | # Types | Relational cohesion | Full Name |
---|---|---|---|
Microsoft.AspNet.SignalR.Tests.Common | 167 | 1.27 | Microsoft.AspNet.SignalR.Tests.Common |
Microsoft.AspNet.SignalR.Samples | 177 | 1.21 | Microsoft.AspNet.SignalR.Samples |
Microsoft.AspNet.SignalR.Client.Tests | 41 | 1.05 | Microsoft.AspNet.SignalR.Client.Tests |
Microsoft.AspNet.SelfHost.Samples | 36 | 1.22 | Microsoft.AspNet.SelfHost.Samples |
Microsoft.AspNet.SignalR.Tests | 265 | 1.21 | Microsoft.AspNet.SignalR.Tests |
Statistics
Stat | # Types | Relational cohesion |
---|---|---|
Sum: | 686 | 5.97 |
Average: | 137.2 | 1.19 |
Minimum: | 36 | 1.05 |
Maximum: | 265 | 1.27 |
Standard deviation: | 87.52 | 0.075 |
Variance: | 7 660 | 0.0057 |
103
Dead Code |
|
![]() | Critical Rule warning: Potentially dead Types |
warnif count > 0
// Filter procedure for types that should'nt be considered as dead
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
t => !t.IsPublic && // Public types might be used by client applications of your assemblies.
t.Name != "Program" &&
!t.IsGeneratedByCompiler &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// Exclude static types that define only const fields
// because they cannot be seen as used in IL code.
!(t.IsStatic && t.NbMethods == 0 && !t.Fields.Where(f => !f.IsLiteral).Any()))
// Select types unused
let typesUnused =
from t in JustMyCode.Types where
t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
select t
// Dead types = types used only by unused types (recursive)
let deadTypesMetric = typesUnused.FillIterative(
types => from t in codeBase.Application.Types.UsedByAny(types).Except(types)
where canTypeBeConsideredAsDeadProc(t) &&
t.TypesUsingMe.Intersect(types).Count() == t.NbTypesUsingMe
select t)
from t in deadTypesMetric.DefinitionDomain
select new { t, t.TypesUsingMe, depth = deadTypesMetric[t] }View Code Query or Rule Body
7 types matched
types | TypesUsingMe | depth | Full Name |
---|---|---|---|
AssemblyMetadataAttribute | 0 type | 0 | System.Reflection .AssemblyMetadataAttribute |
DiffPair<T> | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T> |
UrlDecoder | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder |
SafeSet<T> | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .SafeSet<T> |
TopicState | 0 type | 0 | Microsoft.AspNet.SignalR.Messaging .TopicState |
DisposableAction | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction |
UrlDecoder+DecoderHelper | 1 type | 1 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper |
Statistics
Stat | TypesUsingMe | depth |
---|---|---|
Sum: | 0 | 1 |
Average: | 0 | 0.14 |
Minimum: | 0 | 0 |
Maximum: | 0 | 1 |
Standard deviation: | 0 | 0.35 |
Variance: | 0 | 0.12 |
![]() | Critical Rule warning: Potentially dead Methods |
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
m => !m.IsPubliclyVisible && // Public methods might be used by client applications of your assemblies.
!m.IsEntryPoint && // Main() method is not used by-design.
!m.IsExplicitInterfaceImpl && // The IL code never explicitely calls explicit interface methods implementation.
!m.IsClassConstructor && // The IL code never explicitely calls class constructors.
!m.IsFinalizer && // The IL code never explicitely calls finalizers.
!m.IsVirtual && // Only check for non virtual method that are not seen as used in IL.
!(m.IsConstructor && // Don't take account of protected ctor that might be call by a derived ctors.
m.IsProtected) &&
!m.IsEventAdder && // The IL code never explicitely calls events adder/remover.
!m.IsEventRemover &&
!m.IsGeneratedByCompiler &&
!m.ParentType.IsDelegate &&
// Methods tagged with these two attributes are called by the serialization infrastructure.
!m.HasAttribute("System.Runtime.Serialization.OnSerializingAttribute".AllowNoMatch()) &&
!m.HasAttribute("System.Runtime.Serialization.OnDeserializedAttribute".AllowNoMatch()) &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()))
// Get methods unused
let methodsUnused =
from m in JustMyCode.Methods where
m.NbMethodsCallingMe == 0 &&
canMethodBeConsideredAsDeadProc(m)
select m
// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
methods => // Unique loop, just to let a chance to build the hashset.
from o in (new object()).ToEnumerable()
// Use a hashet to make Intersect calls much faster!
let hashset = methods.ToHashSet()
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
where canMethodBeConsideredAsDeadProc(m) &&
// Select methods called only by methods already considered as dead
hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
select m)
from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }View Code Query or Rule Body
551 methods matched
methods | MethodsCallingMe | depth | Full Name |
---|---|---|---|
RunHubConnectionAPI(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunHubConnectionAPI(String ) |
RunRawConnection(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunRawConnection(String) |
RunStreaming(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunStreaming(String) |
RunAuth(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunAuth(String) |
RunWindowsAuth(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunWindowsAuth(String) |
RunHeaderAuthHub(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunHeaderAuthHub(String) |
RunPendingCallbacks(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunPendingCallbacks(String ) |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .Program..ctor() |
.ctor(String,String) | 0 method | 0 | System.Reflection .AssemblyMetadataAttribute..ctor(String ,String) |
get_Key() | 0 method | 0 | System.Reflection .AssemblyMetadataAttribute.get_Key() |
set_Key(String) | 1 method | 1 | System.Reflection .AssemblyMetadataAttribute.set_Key (String) |
get_Value() | 0 method | 0 | System.Reflection .AssemblyMetadataAttribute.get_Value() |
set_Value(String) | 1 method | 1 | System.Reflection .AssemblyMetadataAttribute.set_Value (String) |
set_Name(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.set_Name (String) |
set_Description(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_Description(String) |
set_CounterType(PerformanceCounterType) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_CounterType(PerformanceCounterType) |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute..ctor() |
set_ConnectionsConnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsConnected (IPerformanceCounter) |
set_ConnectionsReconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsReconnected (IPerformanceCounter) |
set_ConnectionsDisconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsDisconnected (IPerformanceCounter) |
set_ConnectionsCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsCurrent (IPerformanceCounter) |
set_ConnectionMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedTotal (IPerformanceCounter) |
set_ConnectionMessagesSentTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentTotal (IPerformanceCounter) |
set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) |
set_ConnectionMessagesSentPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentPerSec (IPerformanceCounter) |
set_MessageBusMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedTotal (IPerformanceCounter) |
set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) |
set_ScaleoutMessageBusMessagesReceivedPe rSec(IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutMessageBusMessagesReceivedP erSec(IPerformanceCounter) |
set_MessageBusMessagesPublishedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesPublishedTotal (IPerformanceCounter) |
set_MessageBusMessagesPublishedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesPublishedPerSec (IPerformanceCounter) |
set_MessageBusSubscribersCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusSubscribersCurrent (IPerformanceCounter) |
set_MessageBusSubscribersTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusSubscribersTotal (IPerformanceCounter) |
set_MessageBusSubscribersPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusSubscribersPerSec (IPerformanceCounter) |
set_MessageBusAllocatedWorkers (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusAllocatedWorkers (IPerformanceCounter) |
set_MessageBusBusyWorkers (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusBusyWorkers (IPerformanceCounter) |
set_MessageBusTopicsCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusTopicsCurrent (IPerformanceCounter) |
set_ErrorsAllTotal(IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsAllTotal(IPerformanceCounter) |
set_ErrorsAllPerSec(IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsAllPerSec(IPerformanceCounter ) |
set_ErrorsHubResolutionTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubResolutionTotal (IPerformanceCounter) |
set_ErrorsHubResolutionPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubResolutionPerSec (IPerformanceCounter) |
set_ErrorsHubInvocationTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubInvocationTotal (IPerformanceCounter) |
set_ErrorsHubInvocationPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubInvocationPerSec (IPerformanceCounter) |
set_ErrorsTransportTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsTransportTotal (IPerformanceCounter) |
set_ErrorsTransportPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsTransportPerSec (IPerformanceCounter) |
set_ScaleoutStreamCountTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutStreamCountTotal (IPerformanceCounter) |
set_ScaleoutStreamCountOpen (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutStreamCountOpen (IPerformanceCounter) |
set_ScaleoutStreamCountBuffering (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutStreamCountBuffering (IPerformanceCounter) |
set_ScaleoutErrorsTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutErrorsTotal (IPerformanceCounter) |
set_ScaleoutErrorsPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutErrorsPerSec (IPerformanceCounter) |
set_ScaleoutSendQueueLength (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutSendQueueLength (IPerformanceCounter) |
get_Error() | 0 method | 0 | Microsoft.AspNet.SignalR.Utils.Command .get_Error() |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator..ctor() |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Utils.Program. .ctor() |
FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) |
FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) |
ContinueWithNotComplete(Task,Action) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWithNotComplete(Task,Action) |
ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) |
Then(Task,Action) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then<TResult>(Task<TResult>,Action <TResult>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
RunSynchronously(Task,Action) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .RunSynchronously(Task,Action) |
FromMethod(Action) | 2 methods | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Action) |
FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) |
FromMethod<T1,TResult>(Func<T1,TResult> ,T1) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,TResult> ,T1) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) |
Canceled() | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Canceled() |
RunTask(Task<T>,Action<T>) | 1 method | 1 | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> .RunTask(Task<T>,Action<T>) |
ThenWithArgs(Task,Func<T1,TResult>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,TResult>,T1) |
ThenWithArgs(Task,Func<T1,T2,TResult>,T1 ,T2) | 0 method | 0 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,T2,TResult>,T1,T2) |
ThenWithArgs(Task<T>,Func<T,T1,TResult> ,T1) | 1 method | 1 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<T,T1,TResult>,T1) |
ThenWithArgs(Task<T>,Func<T,T1,Task <TResult>>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<T,T1,Task<TResult>>,T1) |
ThenWithArgs(Task<T>,Func<Task<T>,T1 ,Task<T>>,T1) | 1 method | 1 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<Task<T>,T1,Task<T>>,T1) |
ReadAsync(Stream,Byte[]) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.ReadAsync(Stream ,Byte[]) |
WriteAsync(Stream,Byte[]) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.WriteAsync(Stream ,Byte[]) |
WrapEndWrite(Stream) | 1 method | 1 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.WrapEndWrite(Stream) |
FromAsync<T>(Func<AsyncCallback ,IAsyncResult>,Func<IAsyncResult,T>) | 2 methods | 1 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.FromAsync<T>(Func <AsyncCallback,IAsyncResult>,Func <IAsyncResult,T>) |
.ctor(IWebSocket) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter..ctor(IWebSocket) |
get_AnyChanges() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.get_AnyChanges() |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .ListHelper<T>..ctor() |
set_Name(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.set_Name (String) |
get_Description() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_Description() |
set_Description(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_Description(String) |
get_CounterType() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_CounterType() |
set_CounterType(PerformanceCounterType) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_CounterType(PerformanceCounterType) |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute..ctor() |
set_ConnectionsConnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsConnected (IPerformanceCounter) |
set_ConnectionsReconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsReconnected (IPerformanceCounter) |
set_ConnectionsDisconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsDisconnected (IPerformanceCounter) |
set_ConnectionsCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsCurrent (IPerformanceCounter) |
set_ConnectionMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedTotal (IPerformanceCounter) |
set_ConnectionMessagesSentTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentTotal (IPerformanceCounter) |
set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) |
set_ConnectionMessagesSentPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentPerSec (IPerformanceCounter) |
set_MessageBusMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedTotal (IPerformanceCounter) |
set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) |
Statistics
Stat | MethodsCallingMe | depth |
---|---|---|
Sum: | 0 | 162 |
Average: | 0 | 0.29 |
Minimum: | 0 | 0 |
Maximum: | 0 | 3 |
Standard deviation: | 0 | 0.53 |
Variance: | 0 | 0.28 |
![]() | Critical Rule warning: Potentially dead Fields |
warnif count > 0
from f in JustMyCode.Fields where
f.NbMethodsUsingMe == 0 &&
!f.IsPublic && // Although not recommended, public fields might be used by client applications of your assemblies.
!f.IsLiteral && // The IL code never explicitely uses literal fields.
!f.IsEnumValue && // The IL code never explicitely uses enumeration value.
f.Name != "value__" && // Field named 'value__' are relative to enumerations and the IL code never explicitely uses them.
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
!f.IsGeneratedByCompiler
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select fView Code Query or Rule Body
4 fields matched
fields | Full Name |
---|---|
HeadContent | Microsoft.AspNet.SignalR.Samples .SignalRMaster.HeadContent |
MainContent | Microsoft.AspNet.SignalR.Samples .SignalRMaster.MainContent |
Scripts | Microsoft.AspNet.SignalR.Samples .SignalRMaster.Scripts |
login | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.login |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
281
Visibility |
|
![]() | Rule warning: Methods that could have a lower visibility |
warnif count > 0 from m in JustMyCode.Methods where
m.Visibility != m.OptimalVisibility &&
!m.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
// Eliminate default constructor from the result.
// Whatever the visibility of the declaring class,
// default constructors are public and introduce noise
// in the current rule.
!( m.IsConstructor && m.IsPublic && m.NbParameters == 0) &&
// Don't decrease the visibility of Main() methods.
!m.IsEntryPoint
select new { m,
m.Visibility ,
CouldBeDeclared = m.OptimalVisibility,
m.MethodsCallingMe }View Code Query or Rule Body
2,107 methods matched
methods | Visibility | CouldBeDeclared | MethodsCallingMe | Full Name |
---|---|---|---|---|
.ctor(TextWriter) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Client.Samples .CommonClient..ctor(TextWriter) |
RunAsync(String) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunAsync(String) |
.ctor(String,String) | Public | Private | 0 method | System.Reflection .AssemblyMetadataAttribute..ctor(String ,String) |
get_Key() | Public | Private | 0 method | System.Reflection .AssemblyMetadataAttribute.get_Key() |
set_Key(String) | Public | Private | 1 method | System.Reflection .AssemblyMetadataAttribute.set_Key (String) |
get_Value() | Public | Private | 0 method | System.Reflection .AssemblyMetadataAttribute.get_Value() |
set_Value(String) | Public | Private | 1 method | System.Reflection .AssemblyMetadataAttribute.set_Value (String) |
get_Name() | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.get_Name() |
set_Name(String) | Public | Private | 0 method | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.set_Name (String) |
get_Description() | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_Description() |
set_Description(String) | Public | Private | 0 method | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_Description(String) |
get_CounterType() | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_CounterType() |
set_CounterType(PerformanceCounterType) | Public | Private | 0 method | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_CounterType(PerformanceCounterType) |
.ctor(PerformanceCounter) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper..ctor (PerformanceCounter) |
get_Error() | Protected | Private | 0 method | Microsoft.AspNet.SignalR.Utils.Command .get_Error() |
.ctor(Action<String>,Action<String> ,Action<String>,Action<String>) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand..ctor(Action <String>,Action<String>,Action<String> ,Action<String>) |
GenerateProxy(String,String,Action <String>) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator.GenerateProxy(String,String,Action <String>) |
.ctor(Action<String>,Action<String> ,Action<String>,Action<String>) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Utils .InstallPerformanceCountersCommand..ctor (Action<String>,Action<String>,Action <String>,Action<String>) |
InstallCounters() | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller .InstallCounters() |
UninstallCounters() | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller .UninstallCounters() |
.ctor(Action<String>,Action<String> ,Action<String>,Action<String>) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Utils .UninstallPerformanceCountersCommand. .ctor(Action<String>,Action<String> ,Action<String>,Action<String>) |
get_EnableJSONP() | Public | Internal | 1 method | Microsoft.AspNet.SignalR .ConnectionConfiguration.get_EnableJSONP () |
get_EnableJavaScriptProxies() | Public | Internal | 1 method | Microsoft.AspNet.SignalR .HubConfiguration .get_EnableJavaScriptProxies() |
get_EnableDetailedErrors() | Public | Internal | 1 method | Microsoft.AspNet.SignalR .HubConfiguration .get_EnableDetailedErrors() |
get_ErrorData() | Public | Internal | 1 method | Microsoft.AspNet.SignalR.HubException .get_ErrorData() |
get_Signals() | Public | Internal | 1 method | Microsoft.AspNet.SignalR .ConnectionMessage.get_Signals() |
.ctor(IList<String>,Object) | Public | Internal | 1 method | Microsoft.AspNet.SignalR .ConnectionMessage..ctor(IList<String> ,Object) |
.ctor(IList<String>,Object,IList<String> ) | Public | Internal | 3 methods | Microsoft.AspNet.SignalR .ConnectionMessage..ctor(IList<String> ,Object,IList<String>) |
.ctor(String,Object) | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .ConnectionMessage..ctor(String,Object) |
.ctor(String,Object,IList<String>) | Public | Internal | 4 methods | Microsoft.AspNet.SignalR .ConnectionMessage..ctor(String,Object ,IList<String>) |
set_DependencyResolver (IDependencyResolver) | Public | Private | 0 method | Microsoft.AspNet.SignalR.GlobalHost .set_DependencyResolver (IDependencyResolver) |
.ctor(String,String) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Cookie..ctor (String,String) |
get_RequireOutgoing() | Public | Private | 0 method | Microsoft.AspNet.SignalR .AuthorizeAttribute.get_RequireOutgoing( ) |
set_RequireOutgoing(Boolean) | Public | Private | 0 method | Microsoft.AspNet.SignalR .AuthorizeAttribute.set_RequireOutgoing (Boolean) |
get_Roles() | Public | Private | 0 method | Microsoft.AspNet.SignalR .AuthorizeAttribute.get_Roles() |
set_Roles(String) | Public | Private | 0 method | Microsoft.AspNet.SignalR .AuthorizeAttribute.set_Roles(String) |
get_Users() | Public | Private | 0 method | Microsoft.AspNet.SignalR .AuthorizeAttribute.get_Users() |
set_Users(String) | Public | Private | 0 method | Microsoft.AspNet.SignalR .AuthorizeAttribute.set_Users(String) |
Resolve(IDependencyResolver,Type) | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .DependencyResolverExtensions.Resolve (IDependencyResolver,Type) |
ResolveAll<T>(IDependencyResolver) | Public | Internal | 1 method | Microsoft.AspNet.SignalR .DependencyResolverExtensions.ResolveAll <T>(IDependencyResolver) |
ResolveAll(IDependencyResolver,Type) | Public | Private | 0 method | Microsoft.AspNet.SignalR .DependencyResolverExtensions.ResolveAll (IDependencyResolver,Type) |
get_ProtectedData() | Protected | Private | 4 methods | Microsoft.AspNet.SignalR .PersistentConnection.get_ProtectedData( ) |
get_MessageBus() | Protected | Private | 1 method | Microsoft.AspNet.SignalR .PersistentConnection.get_MessageBus() |
get_AckHandler() | Protected | Private | 1 method | Microsoft.AspNet.SignalR .PersistentConnection.get_AckHandler() |
get_UserIdProvider() | Protected | Private | 1 method | Microsoft.AspNet.SignalR .PersistentConnection.get_UserIdProvider () |
ProcessRequest(IDictionary<String,Object >) | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .PersistentConnection.ProcessRequest (IDictionary<String,Object>) |
OrEmpty(Task) | Public | Internal | 11 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .OrEmpty(Task) |
OrEmpty<T>(Task<T>) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .OrEmpty<T>(Task<T>) |
FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) |
FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) |
Catch<TTask>(TTask,IPerformanceCounter[] ) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Catch<TTask>(TTask ,IPerformanceCounter[]) |
Catch<TTask>(TTask,Action <AggregateException,Object>,Object) | Public | Internal | 5 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .Catch<TTask>(TTask,Action <AggregateException,Object>,Object) |
ContinueWithNotComplete(Task,Action) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWithNotComplete(Task,Action) |
ContinueWith(Task,TaskCompletionSource <Object>) | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWith(Task,TaskCompletionSource <Object>) |
ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) |
Then(Task,Action) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<T1>(Task,Action<T1>,T1) | Public | Internal | 5 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | Public | Internal | 6 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then<TResult>(Task<TResult>,Action <TResult>) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
Finally(Task,Action<Object>,Object) | Public | Internal | 4 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .Finally(Task,Action<Object>,Object) |
RunSynchronously(Task,Action) | Public | Private | 0 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .RunSynchronously(Task,Action) |
FastUnwrap(Task<Task>) | Public | Internal | 6 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .FastUnwrap(Task<Task>) |
FastUnwrap<T>(Task<Task<T>>) | Public | Private | 3 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .FastUnwrap<T>(Task<Task<T>>) |
FromMethod(Action) | Public | Private | 2 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Action) |
FromMethod<T1>(Action<T1>,T1) | Public | Private | 3 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Action<T1>,T1) |
FromMethod<T1,T2>(Action<T1,T2>,T1,T2) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Action<T1,T2>,T1,T2) |
FromMethod(Func<Task>) | Public | Internal | 5 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Func<Task>) |
FromMethod<TResult>(Func<Task<TResult>>) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<Task<TResult>> ) |
FromMethod<TResult>(Func<TResult>) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<TResult>) |
FromMethod<T1>(Func<T1,Task>,T1) | Public | Private | 2 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Func<T1,Task>,T1) |
FromMethod<T1,T2>(Func<T1,T2,Task>,T1,T2 ) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Func<T1,T2,Task>,T1 ,T2) |
FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task> ,T1,T2,T3) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task >,T1,T2,T3) |
FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) |
FromMethod<T1,TResult>(Func<T1,TResult> ,T1) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,TResult> ,T1) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) | Public | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) |
ContinueWithPreservedCulture<T>(Task<T> ,Action<Task<T>>,TaskContinuationOptions ) | Internal | Private | 2 methods | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWithPreservedCulture<T>(Task<T> ,Action<Task<T>>,TaskContinuationOptions ) |
ContinueWithPreservedCulture<T,TResult> (Task<T>,Func<Task<T>,TResult> ,TaskContinuationOptions) | Internal | Private | 1 method | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWithPreservedCulture<T,TResult> (Task<T>,Func<Task<T>,TResult> ,TaskContinuationOptions) |
ThenWithArgs(Task,Func<T1,TResult>,T1) | Internal | Private | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,TResult>,T1) |
ThenWithArgs(Task,Func<T1,T2,TResult>,T1 ,T2) | Internal | Private | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,T2,TResult>,T1,T2) |
ThenWithArgs(Task<T>,Func<T,T1,Task <TResult>>,T1) | Internal | Private | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<T,T1,Task<TResult>>,T1) |
ReadAsync(Stream,Byte[]) | Public | Private | 0 method | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.ReadAsync(Stream ,Byte[]) |
WriteAsync(Stream,Byte[]) | Public | Private | 0 method | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.WriteAsync(Stream ,Byte[]) |
get_Tcs() | Public | Internal | 4 methods | Microsoft.AspNet.SignalR.Infrastructure .AckHandler+AckInfo.get_Tcs() |
get_Created() | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Infrastructure .AckHandler+AckInfo.get_Created() |
.ctor(IWebSocket) | Public | Private | 0 method | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter..ctor(IWebSocket) |
get_Writer() | ProtectedOrInternal | Internal | 5 methods | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter.get_Writer() |
.ctor(Action<ArraySegment<Byte>,Object> ,Object,Int32,Encoding,Boolean) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter..ctor (Action<ArraySegment<Byte>,Object> ,Object,Int32,Encoding,Boolean) |
Write(Char) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Write (Char) |
Write(String) | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Write (String) |
Write(ArraySegment<Byte>) | Public | Internal | 1 method | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Write (ArraySegment<Byte>) |
Flush() | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Flush() |
Statistics
Stat | Visibility | CouldBeDeclared | MethodsCallingMe |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Types that could have a lower visibility |
warnif count > 0 from t in JustMyCode.Types where
t.Visibility != t.OptimalVisibility &&
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
!t.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// Static types that define only const fields cannot be seen as used in IL code.
// They don't have to be tagged with CannotDecreaseVisibilityAttribute.
!( t.IsStatic &&
!t.Methods.Any(m => !m.IsClassConstructor) &&
!t.Fields.Any(f => !f.IsLiteral && !(f.IsStatic && f.IsInitOnly))) &&
// A type used by an interface that has the same visibility
// cannot have its visibility decreased, else a compilation error occurs!
!t.TypesUsingMe.Any(tUser =>
tUser.IsInterface &&
tUser.Visibility == t.Visibility)
select new { t, t.Visibility ,
CouldBeDeclared = t.OptimalVisibility,
t.TypesUsingMe }
View Code Query or Rule Body
370 types matched
types | Visibility | CouldBeDeclared | TypesUsingMe | Full Name |
---|---|---|---|---|
CommonClient | Public | Internal | 10 types | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
IPerformanceCounterManager | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
PerformanceCounterManager | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
GenerateHubProxyCommand+JavaScriptGenera tor | Public | Private | 1 type | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator |
BufferTextWriter+ChunkedWriter | Internal | Protected | 2 types | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter |
IBinaryWriter | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Infrastructure .IBinaryWriter |
DataProtectionProviderProtectedData | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Infrastructure .DataProtectionProviderProtectedData |
PrincipalUserIdProvider | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Infrastructure .PrincipalUserIdProvider |
InterlockedHelper | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Infrastructure .InterlockedHelper |
CallerStateProxy | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .CallerStateProxy |
TypedHubCallerConnectionContext<T> | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .TypedHubCallerConnectionContext<T> |
ConnectionIdProxy | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .ConnectionIdProxy |
MultipleSignalProxy | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Hubs .MultipleSignalProxy |
DynamicDictionary | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .DynamicDictionary |
IJavaScriptProxyGenerator | Public | Internal | 4 types | Microsoft.AspNet.SignalR.Hubs .IJavaScriptProxyGenerator |
EmptyJavaScriptProxyGenerator | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .EmptyJavaScriptProxyGenerator |
IAssemblyLocator | Public | Internal | 5 types | Microsoft.AspNet.SignalR.Hubs .IAssemblyLocator |
EnumerableOfAssemblyLocator | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Hubs .EnumerableOfAssemblyLocator |
GroupProxy | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs.GroupProxy |
NullMethodDescriptor | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor |
UserProxy | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs.UserProxy |
AuthorizeModule | Public | Internal | 4 types | Microsoft.AspNet.SignalR.Hubs .AuthorizeModule |
IHubRequestParser | Public | Internal | 3 types | Microsoft.AspNet.SignalR.Hubs .IHubRequestParser |
NotAuthorizedException | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .NotAuthorizedException |
StatefulSignalProxy | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .StatefulSignalProxy |
IParameterResolver | Public | Internal | 3 types | Microsoft.AspNet.SignalR.Hubs .IParameterResolver |
DefaultAssemblyLocator | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Hubs .DefaultAssemblyLocator |
IMethodDescriptorProvider | Public | Internal | 5 types | Microsoft.AspNet.SignalR.Hubs .IMethodDescriptorProvider |
IHubActivator | Public | Internal | 3 types | Microsoft.AspNet.SignalR.Hubs .IHubActivator |
DefaultHubActivator | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Hubs .DefaultHubActivator |
ReflectionHelper | Public | Internal | 3 types | Microsoft.AspNet.SignalR.Hubs .ReflectionHelper |
IHubDescriptorProvider | Public | Internal | 4 types | Microsoft.AspNet.SignalR.Hubs .IHubDescriptorProvider |
ClientProxy | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .ClientProxy |
NullJavaScriptMinifier | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Hubs .NullJavaScriptMinifier |
ScaleoutMappingStore | Public | Internal | 4 types | Microsoft.AspNet.SignalR.Messaging .ScaleoutMappingStore |
LocalEventKeyInfo | Public | Internal | 4 types | Microsoft.AspNet.SignalR.Messaging .LocalEventKeyInfo |
MessageBroker | Public | Internal | 3 types | Microsoft.AspNet.SignalR.Messaging .MessageBroker |
MessageStore<T> | Public | Internal | 6 types | Microsoft.AspNet.SignalR.Messaging .MessageStore<T> |
ScaleoutSubscription | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription |
ForeverTransport+RequestLifetime | Internal | Protected | 2 types | Microsoft.AspNet.SignalR.Transports .ForeverTransport+RequestLifetime |
ServerSentEventsTransport | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport |
TransportHeartbeat | Public | Internal | 3 types | Microsoft.AspNet.SignalR.Transports .TransportHeartbeat |
TransportManager | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Transports .TransportManager |
WebSocketTransport | Public | Internal | 4 types | Microsoft.AspNet.SignalR.Transports .WebSocketTransport |
ServerResponse | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Owin .ServerResponse |
HubDispatcherMiddleware | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Owin.Middleware .HubDispatcherMiddleware |
PersistentConnectionMiddleware | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Owin.Middleware .PersistentConnectionMiddleware |
ObsoleteOwinExtensions | Public | Internal | 0 type | Owin.ObsoleteOwinExtensions |
ControllerHub | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Crank .ControllerHub |
ControllerHub+Startup | Public | Private | 1 type | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup |
Client | Public | Internal | 8 types | Microsoft.AspNet.SignalR.Crank.Client |
HighFrequencyTimer | Public | Internal | 1 type | Microsoft.AspNet.SignalR .HighFrequencyTimer |
Basic | Public | Internal | 0 type | Microsoft.AspNet.SignalR.LoadTestHarness .Basic |
QueryString | Public | Internal | 0 type | Microsoft.AspNet.SignalR.LoadTestHarness .QueryString |
Default | Public | Internal | 0 type | Microsoft.AspNet.SignalR.LoadTestHarness .Default |
Startup | Public | Internal | 0 type | Microsoft.AspNet.SignalR.LoadTestHarness .Startup |
TestConnection | Public | Internal | 2 types | Microsoft.AspNet.SignalR.LoadTestHarness .TestConnection |
Dashboard | Public | Internal | 2 types | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard |
TestHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.LoadTestHarness .TestHub |
ConcurrentCallsHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.StressServer .Hubs.ConcurrentCallsHub |
SimpleEchoHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.StressServer .Hubs.SimpleEchoHub |
HubWithGroups | Public | Internal | 0 type | Microsoft.AspNet.SignalR.StressServer .Hubs.HubWithGroups |
OnConnectedOnDisconnectedHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub |
AdminAuthHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
AuthorizeClaimsAttribute | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute |
HeaderAuthHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
IncomingAuthHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
InvokeAuthHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InvokeAuthHub |
UserAndRoleAuthHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
Status | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Status |
Initializer | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Tests.Common .Initializer |
PreSendRequestHeadersModule | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .PreSendRequestHeadersModule |
AsyncOnConnectedConnection | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Tests.Common .AsyncOnConnectedConnection |
FallbackToLongPollingConnectionThrows | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnectionThrows |
ExamineHeadersConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .ExamineHeadersConnection |
ExamineReconnectPath | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Tests.Common .ExamineReconnectPath |
StartIISTask | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Tests.Common .StartIISTask |
ConnectionThatUsesItems | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems |
FallbackToLongPollingConnection | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnection |
MyBadConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .MyBadConnection |
MyRejoinGroupsConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .MyRejoinGroupsConnection |
MySendingConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .MySendingConnection |
SyncErrorConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .SyncErrorConnection |
UnusableProtectedConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .UnusableProtectedConnection |
AuthenticatedEchoConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
EchoConnection | Public | Internal | 2 types | Microsoft.AspNet.SignalR.Tests.Common .Connections.EchoConnection |
PreserializedJsonConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Connections.PreserializedJsonConnection |
RedirectionConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Connections.RedirectionConnection |
StatusCodeConnection | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Connections.StatusCodeConnection |
GCHandler | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Handlers.GCHandler |
HandlerWithSession | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Handlers.HandlerWithSession |
PingHandler | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Handlers.PingHandler |
AuthenticatedEchoHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Tests.Common .Hubs.AuthenticatedEchoHub |
ChatWithGroups | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ChatWithGroups |
ClientCallbackHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ClientCallbackHub |
ConnectionDataVerifierHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ConnectionDataVerifierHub |
DelayedOnConnectedHub | Public | Internal | 1 type | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DelayedOnConnectedHub |
DateAsStringHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DateAsStringHub |
ExamineHeadersHub | Public | Internal | 0 type | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ExamineHeadersHub |
Statistics
Stat | Visibility | CouldBeDeclared | TypesUsingMe |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Fields that could have a lower visibility |
warnif count > 0 from f in JustMyCode.Fields where
f.Visibility != f.OptimalVisibility &&
!f.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch())
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
select new { f,
f.Visibility ,
CouldBeDeclared = f.OptimalVisibility,
f.MethodsUsingMe }View Code Query or Rule Body
83 fields matched
fields | Visibility | CouldBeDeclared | MethodsUsingMe | Full Name |
---|---|---|---|---|
_requireOutgoing | Protected | Private | 3 methods | Microsoft.AspNet.SignalR .AuthorizeAttribute._requireOutgoing |
Empty | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Added | Public | Private | 1 method | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.Added |
Removed | Public | Private | 1 method | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.Removed |
Empty | Public | Internal | 11 methods | Microsoft.AspNet.SignalR.Infrastructure .ListHelper<T>.Empty |
Invoke | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Invoke |
Connect | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Connect |
Reconnect | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Reconnect |
Disconnect | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Disconnect |
AuthorizeConnect | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline .AuthorizeConnect |
RejoiningGroups | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline .RejoiningGroups |
Send | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Send |
Instance | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Hubs .NullJavaScriptMinifier.Instance |
Subscription | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .MessageBroker+WorkContext.Subscription |
Broker | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Messaging .MessageBroker+WorkContext.Broker |
BeforeTopicGarbageCollected | Internal | Private | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.BeforeTopicGarbageCollected |
AfterTopicGarbageCollected | Internal | Private | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.AfterTopicGarbageCollected |
TerminalMessage | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .MessageResult.TerminalMessage |
FragmentNum | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>+Fragment.FragmentNum |
Data | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>+Fragment.Data |
FragmentNum | Public | Internal | 5 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.FragmentNum |
Data | Public | Internal | 8 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.Data |
Length | Public | Internal | 6 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.Length |
MinId | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.MinId |
MaxId | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.MaxId |
StreamManager | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager+SendContext .StreamManager |
Index | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager+SendContext.Index |
Messages | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager+SendContext .Messages |
Stream | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream+SendContext.Stream |
TaskCompletionSource | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream+SendContext .TaskCompletionSource |
Handler | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+CloseContext.Handler |
Handler | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext.Handler |
Message | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext.Message |
MessageType | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext .MessageType |
EndOfMessage | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext .EndOfMessage |
WebSocket | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .WebSocket |
DisconnectToken | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .DisconnectToken |
MaxIncomingMessageSize | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .MaxIncomingMessageSize |
BufferSize | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .BufferSize |
EmptyTextMessage | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.EmptyTextMessage |
EmptyBinaryMessage | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.EmptyBinaryMessage |
CloseMessage | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.CloseMessage |
Data | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.Data |
MessageType | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.MessageType |
_emptyTaskFunc | Internal | Protected | 2 methods | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase._emptyTaskFunc |
_requestLifeTime | Internal | Protected | 4 methods | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase ._requestLifeTime |
_transportLifetime | Internal | Protected | 6 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport._transportLifetime |
AfterReceive | Internal | Private | 1 method | Microsoft.AspNet.SignalR.Transports .ForeverTransport.AfterReceive |
BeforeReceive | Internal | Private | 1 method | Microsoft.AspNet.SignalR.Transports .ForeverTransport.BeforeReceive |
State | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport+ForeverTransportContex t.State |
Transport | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport+ForeverTransportContex t.Transport |
Transport | Public | Internal | 4 methods | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport+ForeverFrameTrans portContext.Transport |
State | Public | Internal | 4 methods | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport+ForeverFrameTrans portContext.State |
Transport | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport+SendContext .Transport |
State | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport+SendContext .State |
State | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Transports .LongPollingTransport+LongPollingTranspo rtContext.State |
Transport | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Transports .LongPollingTransport+LongPollingTranspo rtContext.Transport |
Transport | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Transports .WebSocketTransport+WebSocketTransportCo ntext.Transport |
State | Public | Internal | 2 methods | Microsoft.AspNet.SignalR.Transports .WebSocketTransport+WebSocketTransportCo ntext.State |
Empty | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Sources | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.SystemNetLogging+Logging .Sources |
Empty | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Empty | Public | Private | 1 method | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
Receiver | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnection+ReceiverContext .Receiver |
ConnectionContext | Public | Internal | 4 methods | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnection+ReceiverContext .ConnectionContext |
Empty | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Empty | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Empty | Public | Internal | 2 methods | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Empty | Public | Internal | 4 methods | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
HeadContent | Protected | Private | 0 method | Microsoft.AspNet.SignalR.Samples .SignalRMaster.HeadContent |
MainContent | Protected | Private | 0 method | Microsoft.AspNet.SignalR.Samples .SignalRMaster.MainContent |
Scripts | Protected | Private | 0 method | Microsoft.AspNet.SignalR.Samples .SignalRMaster.Scripts |
userName | Protected | Private | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.userName |
roles | Protected | Private | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.roles |
login | Protected | Private | 0 method | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.login |
Connections | Public | Private | 3 methods | Microsoft.AspNet.SignalR.Samples.Hubs .Benchmark.HubBench.Connections |
OnPoll | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Tests .ReconnectFacts+ServerRestarter.OnPoll |
GroupsRejoined | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Tests .HubFacts+LogRejoiningGroupsModule .GroupsRejoined |
Myself | Public | Private | 1 method | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub+Circular.Myself |
Foo | Public | Private | 1 method | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub+Circular.Foo |
_i | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts+DispatcherHub ._i |
_s | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts+DispatcherHub ._s |
_dt | Public | Internal | 3 methods | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts+DispatcherHub ._dt |
Statistics
Stat | Visibility | CouldBeDeclared | MethodsUsingMe |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Types that could be declared as private, nested in a parent type |
// The conditions for a type to be nested into a parent type
// is that the parent type is the only type using it,
// and that the parent type is declared in the same namespace.
//
// Declaring a type as private into a parent type helps enforcing encapsulation.
// But since nested private types are hardly testable, this rule might
// not be applied for types used directly by tests.
warnif count > 0
from t in Application.Types
where !t.IsGeneratedByCompiler &&
!t.IsNested &&
!t.IsPubliclyVisible &&
// Only one type user...
t.TypesUsingMe.Count() == 1
let couldBeNestedIn = t.TypesUsingMe.Single()
where !couldBeNestedIn.IsGeneratedByCompiler &&
// ...declared in the same namespace
couldBeNestedIn.ParentNamespace == t.ParentNamespace
select new { t, couldBeNestedIn }View Code Query or Rule Body
31 types matched
types | couldBeNestedIn | Full Name |
---|---|---|
NoOpPerformanceCounter | PerformanceCounterManager | Microsoft.AspNet.SignalR.Infrastructure .NoOpPerformanceCounter |
PerformanceCounterWrapper | PerformanceCounterManager | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper |
GenerateHubProxyCommand | Program | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand |
InstallPerformanceCountersCommand | Program | Microsoft.AspNet.SignalR.Utils .InstallPerformanceCountersCommand |
Program | GenerateHubProxyCommand | Microsoft.AspNet.SignalR.Utils.Program |
UninstallPerformanceCountersCommand | Program | Microsoft.AspNet.SignalR.Utils .UninstallPerformanceCountersCommand |
PerformanceCounterAttribute | PerformanceCounterManager | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute |
PerformanceCounterWrapper | PerformanceCounterManager | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper |
PersistentConnectionContext | ConnectionManager | Microsoft.AspNet.SignalR.Infrastructure .PersistentConnectionContext |
HubOutgoingInvokerContextExtensions | HubDispatcher | Microsoft.AspNet.SignalR.Hubs .HubOutgoingInvokerContextExtensions |
NullClientProxy | HubConnectionContext | Microsoft.AspNet.SignalR.Hubs .NullClientProxy |
HubInvokerContext | HubDispatcher | Microsoft.AspNet.SignalR.Hubs .HubInvokerContext |
ConnectionsSample | ControllerHub | Microsoft.AspNet.SignalR.Crank .ConnectionsSample |
PerformanceCounters | ControllerHub | Microsoft.AspNet.SignalR.Crank .PerformanceCounters |
DbProviderFactoryAdapter | DbProviderFactoryExtensions | Microsoft.AspNet.SignalR.SqlServer .DbProviderFactoryAdapter |
IDataParameterExtensions | DbOperation | Microsoft.AspNet.SignalR.SqlServer .IDataParameterExtensions |
IDataRecordExtensions | SqlPayload | Microsoft.AspNet.SignalR.SqlServer .IDataRecordExtensions |
SqlInstaller | SqlMessageBus | Microsoft.AspNet.SignalR.SqlServer .SqlInstaller |
SqlReceiver | SqlStream | Microsoft.AspNet.SignalR.SqlServer .SqlReceiver |
SqlSender | SqlStream | Microsoft.AspNet.SignalR.SqlServer .SqlSender |
SqlStream | SqlMessageBus | Microsoft.AspNet.SignalR.SqlServer .SqlStream |
MyApplication | MyProject | Microsoft.AspNet.SignalR.Samples.VB.My .MyApplication |
MyComputer | MyProject | Microsoft.AspNet.SignalR.Samples.VB.My .MyComputer |
InternalXmlHelper | InternalXmlHelper+RemoveNamespaceAttributesClosure | Microsoft.AspNet.SignalR.Samples.VB.My .InternalXmlHelper |
MySettings | MySettingsProperty | Microsoft.AspNet.SignalR.Samples.VB.My .MySettings |
AddToCollection | XamlUserType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .AddToCollection |
AddToDictionary | XamlUserType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .AddToDictionary |
XamlUserType | XamlTypeInfoProvider | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType |
Getter | XamlMember | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo.Getter |
Setter | XamlMember | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo.Setter |
XamlMember | XamlTypeInfoProvider | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlMember |
Statistics
Stat | couldBeNestedIn |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid publicly visible constant fields |
// Match constant fields which are visible outside their parent assembly.
// Such field, when used outside its parent assembly,
// has its constant value hard-coded into the client assembly.
// Changing the field's value requires to recompile all assemblies
// that use the field.
// Declare the field as static readonly instead. This way, the value can be
// safely changed, without the need to recompile client assemblies.
warnif count > 0
from f in Application.Fields
where f.IsLiteral && f.IsPubliclyVisible
&& !f.IsEnumValue // This situation also applies to enumeration values
// but to avoid too many false positives, per default
// this rule doesn't match these particular fields.
select fView Code Query or Rule Body
4 fields matched
fields | Full Name |
---|---|
CategoryName | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager.CategoryName |
ConnectionToken | Microsoft.AspNet.SignalR.Infrastructure .Purposes.ConnectionToken |
Groups | Microsoft.AspNet.SignalR.Infrastructure .Purposes.Groups |
CategoryName | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager.CategoryName |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Fields should be declared as private |
// Fields should be considered as implementation details
// and as a consequence they should be declared as private.
// When a field is private, the caller cannot get
// inappropriate direct access to the field.
warnif count > 0 from f in Application.Fields where
!f.IsPrivate &&
// These conditions filter cases where fields
// doesn't represent state that should be encapsulated.
!f.IsGeneratedByCompiler &&
!f.IsSpecialName &&
!f.IsInitOnly &&
!f.IsLiteral &&
!f.IsEnumValue
// A non-private field assigned from outside its class,
// usually leads to complicated field state management.
let outsideMethodsAssigningMe =
f.MethodsAssigningMe.Where(m => m.ParentType != f.ParentType)
select new { f,
f.Visibility,
outsideMethodsAssigningMe }View Code Query or Rule Body
73 fields matched
fields | Visibility | outsideMethodsAssigningMe | Full Name |
---|---|---|---|
_requireOutgoing | Protected | 0 method | Microsoft.AspNet.SignalR .AuthorizeAttribute._requireOutgoing |
Empty | Public | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Added | Public | 0 method | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.Added |
Removed | Public | 0 method | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.Removed |
Invoke | Public | 0 method | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Invoke |
Connect | Public | 0 method | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Connect |
Reconnect | Public | 0 method | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Reconnect |
Disconnect | Public | 0 method | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Disconnect |
AuthorizeConnect | Public | 0 method | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline .AuthorizeConnect |
RejoiningGroups | Public | 0 method | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline .RejoiningGroups |
Send | Public | 0 method | Microsoft.AspNet.SignalR.Hubs .HubPipeline+ComposedPipeline.Send |
Subscription | Public | 0 method | Microsoft.AspNet.SignalR.Messaging .MessageBroker+WorkContext.Subscription |
Broker | Public | 0 method | Microsoft.AspNet.SignalR.Messaging .MessageBroker+WorkContext.Broker |
BeforeTopicGarbageCollected | Internal | 0 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.BeforeTopicGarbageCollected |
AfterTopicGarbageCollected | Internal | 0 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.AfterTopicGarbageCollected |
BeforeTopicMarked | Internal | 3 methods | Microsoft.AspNet.SignalR.Messaging .MessageBus.BeforeTopicMarked |
BeforeTopicCreated | Internal | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.BeforeTopicCreated |
AfterTopicMarkedSuccessfully | Internal | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.AfterTopicMarkedSuccessfully |
AfterTopicMarked | Internal | 2 methods | Microsoft.AspNet.SignalR.Messaging .MessageBus.AfterTopicMarked |
Length | Public | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.Length |
MinId | Public | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.MinId |
MaxId | Public | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.MaxId |
StreamManager | Public | 0 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager+SendContext .StreamManager |
Index | Public | 0 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager+SendContext.Index |
Messages | Public | 0 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStreamManager+SendContext .Messages |
_defaultCursorPrefix | Internal | 0 method | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription ._defaultCursorPrefix |
State | Internal | 1 method | Microsoft.AspNet.SignalR.Messaging.Topic .State |
Handler | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+CloseContext.Handler |
Handler | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext.Handler |
Message | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext.Message |
MessageType | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext .MessageType |
EndOfMessage | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+SendContext .EndOfMessage |
WebSocket | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .WebSocket |
DisconnectToken | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .DisconnectToken |
MaxIncomingMessageSize | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .MaxIncomingMessageSize |
BufferSize | Public | 0 method | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ReceiveContext .BufferSize |
_connectTcs | Internal | 0 method | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase._connectTcs |
_requestLifeTime | Internal | 0 method | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase ._requestLifeTime |
_transportLifetime | Internal | 0 method | Microsoft.AspNet.SignalR.Transports .ForeverTransport._transportLifetime |
AfterReceive | Internal | 0 method | Microsoft.AspNet.SignalR.Transports .ForeverTransport.AfterReceive |
BeforeCancellationTokenCallbackRegistere d | Internal | 2 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport .BeforeCancellationTokenCallbackRegister ed |
BeforeReceive | Internal | 0 method | Microsoft.AspNet.SignalR.Transports .ForeverTransport.BeforeReceive |
AfterRequestEnd | Internal | 3 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport.AfterRequestEnd |
State | Public | 0 method | Microsoft.AspNet.SignalR.Transports .ForeverTransport+ForeverTransportContex t.State |
Transport | Public | 0 method | Microsoft.AspNet.SignalR.Transports .ForeverTransport+ForeverTransportContex t.Transport |
Transport | Public | 0 method | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport+ForeverFrameTrans portContext.Transport |
State | Public | 0 method | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport+ForeverFrameTrans portContext.State |
Transport | Public | 0 method | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport+SendContext .Transport |
State | Public | 0 method | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport+SendContext .State |
State | Public | 0 method | Microsoft.AspNet.SignalR.Transports .LongPollingTransport+LongPollingTranspo rtContext.State |
Transport | Public | 0 method | Microsoft.AspNet.SignalR.Transports .LongPollingTransport+LongPollingTranspo rtContext.Transport |
Transport | Public | 0 method | Microsoft.AspNet.SignalR.Transports .WebSocketTransport+WebSocketTransportCo ntext.Transport |
State | Public | 0 method | Microsoft.AspNet.SignalR.Transports .WebSocketTransport+WebSocketTransportCo ntext.State |
Empty | Public | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Sources | Public | 0 method | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.SystemNetLogging+Logging .Sources |
Empty | Public | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Empty | Public | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Empty | Public | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
Empty | Public | 0 method | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
HeadContent | Protected | 0 method | Microsoft.AspNet.SignalR.Samples .SignalRMaster.HeadContent |
MainContent | Protected | 0 method | Microsoft.AspNet.SignalR.Samples .SignalRMaster.MainContent |
Scripts | Protected | 0 method | Microsoft.AspNet.SignalR.Samples .SignalRMaster.Scripts |
userName | Protected | 0 method | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.userName |
roles | Protected | 0 method | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.roles |
login | Protected | 0 method | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.login |
Connections | Public | 0 method | Microsoft.AspNet.SignalR.Samples.Hubs .Benchmark.HubBench.Connections |
OnPoll | Public | 1 method | Microsoft.AspNet.SignalR.Tests .ReconnectFacts+ServerRestarter.OnPoll |
GroupsRejoined | Public | 0 method | Microsoft.AspNet.SignalR.Tests .HubFacts+LogRejoiningGroupsModule .GroupsRejoined |
Myself | Public | 0 method | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub+Circular.Myself |
Foo | Public | 0 method | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub+Circular.Foo |
_i | Public | 0 method | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts+DispatcherHub ._i |
_s | Public | 0 method | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts+DispatcherHub ._s |
_dt | Public | 0 method | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts+DispatcherHub ._dt |
Statistics
Stat | Visibility | outsideMethodsAssigningMe |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Critical Rule warning: Constructors of abstract classes should be declared as protected or private |
// Constructors of an abstract class can be accessed only from its class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.
// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.
warnif count > 0
from t in Application.Types where
t.IsClass &&
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }
View Code Query or Rule Body
7 types matched
types | ctors | Full Name |
---|---|---|
Command | 1 method | Microsoft.AspNet.SignalR.Utils.Command |
BufferTextWriter | 2 methods | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter |
RunBase | 1 method | Microsoft.AspNet.SignalR.Stress.RunBase |
HostedRun | 1 method | Microsoft.AspNet.SignalR.Stress .Performance.HostedRun |
StressRunBase | 1 method | Microsoft.AspNet.SignalR.Stress.Stress .StressRunBase |
HostedStressRun | 1 method | Microsoft.AspNet.SignalR.Stress.Stress .HostedStressRun |
Shape | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Shape |
Statistics
Stat | ctors |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid public methods not publicly visible |
// Matched methods are declared public but are not publicly visible by assemblies consumers.
// Their visibility level must be decreased.
warnif count > 0
from m in JustMyCode.Methods where
!m.IsPubliclyVisible && m.IsPublic &&
// Eliminate virtual methods
!m.IsVirtual &&
// Eliminate interface and delegate types
!m.ParentType.IsInterface &&
!m.ParentType.IsDelegate &&
// Eliminate default constructors
!(m.IsConstructor && m.NbParameters == 0) &&
// Eliminate operators that must be declared public
!m.IsOperator &&
// Eliminate methods generated by compiler
!m.IsGeneratedByCompiler
select mView Code Query or Rule Body
752 methods matched
methods | Full Name |
---|---|
.ctor(String,String) | System.Reflection .AssemblyMetadataAttribute..ctor(String ,String) |
get_Key() | System.Reflection .AssemblyMetadataAttribute.get_Key() |
set_Key(String) | System.Reflection .AssemblyMetadataAttribute.set_Key (String) |
get_Value() | System.Reflection .AssemblyMetadataAttribute.get_Value() |
set_Value(String) | System.Reflection .AssemblyMetadataAttribute.set_Value (String) |
get_Name() | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.get_Name() |
set_Name(String) | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.set_Name (String) |
get_Description() | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_Description() |
set_Description(String) | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_Description(String) |
get_CounterType() | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_CounterType() |
set_CounterType(PerformanceCounterType) | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_CounterType(PerformanceCounterType) |
.ctor(PerformanceCounter) | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper..ctor (PerformanceCounter) |
.ctor(Action<String>,Action<String> ,Action<String>,Action<String>) | Microsoft.AspNet.SignalR.Utils.Command. .ctor(Action<String>,Action<String> ,Action<String>,Action<String>) |
.ctor(Action<String>,Action<String> ,Action<String>,Action<String>) | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand..ctor(Action <String>,Action<String>,Action<String> ,Action<String>) |
GenerateProxy(String,String,Action <String>) | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator.GenerateProxy(String,String,Action <String>) |
.ctor(Action<String>,Action<String> ,Action<String>,Action<String>) | Microsoft.AspNet.SignalR.Utils .InstallPerformanceCountersCommand..ctor (Action<String>,Action<String>,Action <String>,Action<String>) |
InstallCounters() | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller .InstallCounters() |
UninstallCounters() | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller .UninstallCounters() |
.ctor(Action<String>,Action<String> ,Action<String>,Action<String>) | Microsoft.AspNet.SignalR.Utils .UninstallPerformanceCountersCommand. .ctor(Action<String>,Action<String> ,Action<String>,Action<String>) |
get_Empty() | Microsoft.AspNet.SignalR.TaskAsyncHelper .get_Empty() |
get_True() | Microsoft.AspNet.SignalR.TaskAsyncHelper .get_True() |
get_False() | Microsoft.AspNet.SignalR.TaskAsyncHelper .get_False() |
OrEmpty(Task) | Microsoft.AspNet.SignalR.TaskAsyncHelper .OrEmpty(Task) |
OrEmpty<T>(Task<T>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .OrEmpty<T>(Task<T>) |
FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) |
FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) |
Catch<TTask>(TTask) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Catch<TTask>(TTask) |
Catch<TTask>(TTask,IPerformanceCounter[] ) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Catch<TTask>(TTask ,IPerformanceCounter[]) |
Catch<TTask>(TTask,Action <AggregateException,Object>,Object) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Catch<TTask>(TTask,Action <AggregateException,Object>,Object) |
Catch<TTask>(TTask,Action <AggregateException>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Catch<TTask>(TTask,Action <AggregateException>) |
ContinueWithNotComplete(Task,Action) | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWithNotComplete(Task,Action) |
ContinueWithNotComplete(Task ,TaskCompletionSource<Object>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWithNotComplete(Task ,TaskCompletionSource<Object>) |
ContinueWith(Task,TaskCompletionSource <Object>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWith(Task,TaskCompletionSource <Object>) |
ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) |
Then(Task,Action) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<TResult>(Task,Func<TResult>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<TResult>) |
Then<T1>(Task,Action<T1>,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Action<T1>,T1) |
Then<T1,T2>(Task,Action<T1,T2>,T1,T2) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Action<T1,T2>,T1,T2) |
Then<T1>(Task,Func<T1,Task>,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1>(Task,Func<T1,Task>,T1) |
Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2>(Task,Func<T1,T2,Task>,T1,T2 ) |
Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T1,T2,T3>(Task,Func<T1,T2,T3,Task> ,T1,T2,T3) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then(Task,Func<Task>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Func<Task>) |
Then<TResult>(Task,Func<Task<TResult>>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task,Func<Task<TResult>>) |
Then<TResult>(Task<TResult>,Action <TResult>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
Finally(Task,Action<Object>,Object) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Finally(Task,Action<Object>,Object) |
RunSynchronously(Task,Action) | Microsoft.AspNet.SignalR.TaskAsyncHelper .RunSynchronously(Task,Action) |
FastUnwrap(Task<Task>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FastUnwrap(Task<Task>) |
FastUnwrap<T>(Task<Task<T>>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FastUnwrap<T>(Task<Task<T>>) |
Delay(TimeSpan) | Microsoft.AspNet.SignalR.TaskAsyncHelper .Delay(TimeSpan) |
FromMethod(Action) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Action) |
FromMethod<T1>(Action<T1>,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Action<T1>,T1) |
FromMethod<T1,T2>(Action<T1,T2>,T1,T2) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Action<T1,T2>,T1,T2) |
FromMethod(Func<Task>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Func<Task>) |
FromMethod<TResult>(Func<Task<TResult>>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<Task<TResult>> ) |
FromMethod<TResult>(Func<TResult>) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<TResult>(Func<TResult>) |
FromMethod<T1>(Func<T1,Task>,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1>(Func<T1,Task>,T1) |
FromMethod<T1,T2>(Func<T1,T2,Task>,T1,T2 ) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2>(Func<T1,T2,Task>,T1 ,T2) |
FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task> ,T1,T2,T3) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,T3>(Func<T1,T2,T3,Task >,T1,T2,T3) |
FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) |
FromMethod<T1,TResult>(Func<T1,TResult> ,T1) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,TResult> ,T1) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) |
FromResult<T>(T) | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromResult<T>(T) |
ReadAsync(Stream,Byte[]) | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.ReadAsync(Stream ,Byte[]) |
WriteAsync(Stream,Byte[]) | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.WriteAsync(Stream ,Byte[]) |
get_Tcs() | Microsoft.AspNet.SignalR.Infrastructure .AckHandler+AckInfo.get_Tcs() |
get_Created() | Microsoft.AspNet.SignalR.Infrastructure .AckHandler+AckInfo.get_Created() |
.ctor(IResponse) | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter..ctor(IResponse) |
.ctor(IWebSocket) | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter..ctor(IWebSocket) |
.ctor(Action<ArraySegment<Byte>,Object> ,Object,Int32,Encoding,Boolean) | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter..ctor (Action<ArraySegment<Byte>,Object> ,Object,Int32,Encoding,Boolean) |
Write(Char) | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Write (Char) |
Write(String) | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Write (String) |
Write(ArraySegment<Byte>) | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Write (ArraySegment<Byte>) |
Flush() | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter.Flush() |
.ctor(IResponse) | Microsoft.AspNet.SignalR.Infrastructure .BinaryTextWriter..ctor(IResponse) |
.ctor(IWebSocket) | Microsoft.AspNet.SignalR.Infrastructure .BinaryTextWriter..ctor(IWebSocket) |
.ctor(Action<ArraySegment<Byte>,Object> ,Object,Boolean,Int32) | Microsoft.AspNet.SignalR.Infrastructure .BinaryTextWriter..ctor(Action <ArraySegment<Byte>,Object>,Object ,Boolean,Int32) |
get_AnyChanges() | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.get_AnyChanges() |
.ctor(IEnumerable<T>) | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>..ctor(IEnumerable<T>) |
Add(T) | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>.Add(T) |
Remove(T) | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>.Remove(T) |
Contains(T) | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>.Contains(T) |
GetSnapshot() | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>.GetSnapshot() |
DetectChanges() | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>.DetectChanges() |
HasGroupPrefix(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.HasGroupPrefix(String) |
GetConnectionId(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.GetConnectionId(String) |
GetHubConnectionId(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.GetHubConnectionId(String) |
GetHubName(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.GetHubName(String) |
GetHubGroupName(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.GetHubGroupName(String) |
GetHubUserId(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.GetHubUserId(String) |
GetPersistentConnectionGroupName(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper .GetPersistentConnectionGroupName(String ) |
GetPersistentConnectionName(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper .GetPersistentConnectionName(String) |
GetAck(String) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.GetAck(String) |
GetPrefixedConnectionIds(IList<String>) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.GetPrefixedConnectionIds (IList<String>) |
RemoveGroupPrefixes(IEnumerable<String>) | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper.RemoveGroupPrefixes (IEnumerable<String>) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Event handler methods should be declared private |
warnif count > 0
from m in Application.Methods where
!m.IsPrivate &&
// A method is considered as event handler if...
m.NbParameters==2 && // ...it has two parameters..
m.Name.Contains("Object") && // ...of types Object...
m.Name.Contains("EventArgs") && // ...and EventArgs
// Discard special cases
!m.ParentType.IsDelegate &&
!m.IsGeneratedByCompiler
select new { m,m.Visibility }
// This rule implementation relies on the facts that:
// -> A method name contains the type of its parameters.
// -> All EventArgs derived types have the suffix "EventArgs".View Code Query or Rule Body
16 methods matched
methods | Visibility | Full Name |
---|---|---|
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.LoadTestHarness .Default.Page_Load(Object,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples ._Default.Page_Load(Object,EventArgs) |
Application_AuthenticateRequest(Object ,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Global .Application_AuthenticateRequest(Object ,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples .SignalRMaster.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Raw .Default.Page_Load(Object,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples .Streaming.Default.Page_Load(Object ,EventArgs) |
Login(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.Login(Object,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Default.Page_Load (Object,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .Counting.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .DrawingPad.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI.Default.Page_Load (Object,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .SimultaneousConnections.Default .Page_Load(Object,EventArgs) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .Test.Default.Page_Load(Object,EventArgs ) |
Page_Load(Object,EventArgs) | Protected | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.Default.Page_Load(Object ,EventArgs) |
Statistics
Stat | Visibility |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
461
Purity - Immutability - Side-Effects |
|
![]() | Rule warning: Fields should be marked as ReadOnly when possible |
warnif count > 0
from f in JustMyCode.Fields where
f.IsImmutable &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
!f.IsEventDelegateObject
select new { f, f.SizeOfInst }
// A field that matches the condition IsImmutable
// is a field that is assigned only by constructors
// of its class.
// For an instance field, this means its value
// will remain constant throught the lifetime
// of the object.
// For a static field, this means its value will
// remain constant throught the lifetime of the
// program.
// In both cases, such field can safely be marked
// with the C# readonly keyword
// (ReadOnly in VB.NET).
// The condition IsInitOnly matches fields that
// are marked with the C# readonly keyword
// (ReadOnly in VB.NET).
View Code Query or Rule Body
115 fields matched
fields | Size of instance | Full Name |
---|---|---|
_traceWriter | 4 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient._traceWriter |
_initLocker | 4 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._initLocker |
_disposed | 4 | Microsoft.AspNet.SignalR .DefaultDependencyResolver._disposed |
_timer | 4 | Microsoft.AspNet.SignalR.Infrastructure .AckHandler._timer |
_bufferSize | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter._bufferSize |
_charLen | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter._charLen |
_initLocker | 4 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._initLocker |
_callbackInvoked | 4 | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+Cancellatio nCallbackWrapper._callbackInvoked |
_cts | 4 | Microsoft.AspNet.SignalR.Infrastructure .SafeCancellationTokenSource._cts |
_state | 4 | Microsoft.AspNet.SignalR.Infrastructure .SafeCancellationTokenSource._state |
_bufferSize | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._bufferSize |
_charBuffer | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._charBuffer |
_encoding | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._encoding |
_dynamicContext | 4 | Microsoft.AspNet.SignalR.Hubs .TypedHubConnectionContext<T> ._dynamicContext |
_dynamicContext | 4 | Microsoft.AspNet.SignalR.Hubs .TypedHubCallerConnectionContext<T> ._dynamicContext |
_executor | 4 | Microsoft.AspNet.SignalR.Hubs .HubMethodDispatcher._executor |
_builder | N/A | Microsoft.AspNet.SignalR.Hubs .TypedClientBuilder<T>._builder |
_escapeChars | N/A | Microsoft.AspNet.SignalR.Messaging .Cursor._escapeChars |
_escapedKey | 4 | Microsoft.AspNet.SignalR.Messaging .Cursor._escapedKey |
_gcTimer | 4 | Microsoft.AspNet.SignalR.Messaging .MessageBus._gcTimer |
_gcRunning | 4 | Microsoft.AspNet.SignalR.Messaging .MessageBus._gcRunning |
_fragments | 4 | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>._fragments |
_fragments | 4 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore._fragments |
_subscriptionState | 4 | Microsoft.AspNet.SignalR.Messaging .Subscription._subscriptionState |
_cursors | 4 | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription._cursors |
_cursorTopics | 4 | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription._cursorTopics |
_trace | 4 | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase._trace |
_timedOut | 4 | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase._timedOut |
_ended | 4 | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase._ended |
_running | 4 | Microsoft.AspNet.SignalR.Transports .TransportHeartbeat._running |
_queryString | 4 | Microsoft.AspNet.SignalR.Owin .ServerRequest._queryString |
_headers | 4 | Microsoft.AspNet.SignalR.Owin .ServerRequest._headers |
_cookies | 4 | Microsoft.AspNet.SignalR.Owin .ServerRequest._cookies |
_user | 4 | Microsoft.AspNet.SignalR.Owin .ServerRequest._user |
states | 4 | Microsoft.AspNet.SignalR.Crank .ConnectionsSample.states |
Samples | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.Samples |
FlushLock | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.FlushLock |
Connections | N/A | Microsoft.AspNet.SignalR.Crank.Client .Connections |
HubProxies | N/A | Microsoft.AspNet.SignalR.Crank.Client .HubProxies |
ServerAvailableMBytesCounter | 4 | Microsoft.AspNet.SignalR.Crank .PerformanceCounters .ServerAvailableMBytesCounter |
SignalRConnectionsCurrentCounter | 4 | Microsoft.AspNet.SignalR.Crank .PerformanceCounters .SignalRConnectionsCurrentCounter |
SignalRConnectionsReconnectedCounter | 4 | Microsoft.AspNet.SignalR.Crank .PerformanceCounters .SignalRConnectionsReconnectedCounter |
SignalRConnectionsDisconnectedCounter | 4 | Microsoft.AspNet.SignalR.Crank .PerformanceCounters .SignalRConnectionsDisconnectedCounter |
ServerTcpConnectionsEstCounter | 4 | Microsoft.AspNet.SignalR.Crank .PerformanceCounters .ServerTcpConnectionsEstCounter |
_fps | 8 | Microsoft.AspNet.SignalR .HighFrequencyTimer._fps |
_callback | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._callback |
_started | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._started |
_stopped | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._stopped |
_actualFpsUpdate | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._actualFpsUpdate |
syncLock | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass.syncLock |
random | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass.random |
theList | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub .theList |
syncLock | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub .syncLock |
_items | 4 | Microsoft.AspNet.SignalR.Tests .Infrastructure.CountDownRange<T>._items |
_seen | 4 | Microsoft.AspNet.SignalR.Tests .Infrastructure.CountDownRange<T>._seen |
_wh | 4 | Microsoft.AspNet.SignalR.Tests .Infrastructure.CountDownRange<T>._wh |
_mre | 4 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.AsyncManualResetEvent ._mre |
process | 4 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.CommonCommandLine .process |
_streams | 4 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.FakeScaleoutBus._streams |
_traceSources | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost ._traceSources |
_random | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.OwinTestHost._random |
TestSiteUrl | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .TestSiteUrl |
PingUrl | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager.PingUrl |
GCUrl | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager.GCUrl |
_connectionContext | 4 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus._connectionContext |
_trace | 4 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus._trace |
_state | 4 | Microsoft.AspNet.SignalR.Redis .RedisMessageBus._state |
_parameters | 4 | Microsoft.AspNet.SignalR.SqlServer .DbOperation._parameters |
_maxIdSql | 4 | Microsoft.AspNet.SignalR.SqlServer .SqlReceiver._maxIdSql |
_selectSql | 4 | Microsoft.AspNet.SignalR.SqlServer .SqlReceiver._selectSql |
_random | 4 | Microsoft.AspNet.SignalR.Stress .StressRuns+LoadBalancer._random |
_queue | 4 | Microsoft.AspNet.SignalR.Stress .StressRuns+DelayedMessageBus._queue |
_connections | 4 | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun ._connections |
_proxies | 4 | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun._proxies |
_categoryString | 4 | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun ._categoryString |
_callbacks | 4 | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun._callbacks |
_latencySamples | 4 | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun ._latencySamples |
_eventsMre | 4 | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun._eventsMre |
_fps | 8 | Microsoft.AspNet.SignalR .HighFrequencyTimer._fps |
_callback | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._callback |
_started | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._started |
_stopped | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._stopped |
_actualFpsUpdate | 4 | Microsoft.AspNet.SignalR .HighFrequencyTimer._actualFpsUpdate |
_users | N/A | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare._users |
_shapes | N/A | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare._shapes |
_userNameGenerator | N/A | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare ._userNameGenerator |
myEvent | N/A | Microsoft.AspNet.SignalR.Samples.Hubs .Test.LongRunningHub.myEvent |
_trace | N/A | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.StressHub._trace |
_connections | N/A | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.TestHub._connections |
_groups | N/A | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.TestHub._groups |
_trace | N/A | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.TestHub._trace |
_traceWriter | 4 | Microsoft.AspNet.SignalR.Client40 .Samples.Client._traceWriter |
_connection | 4 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ServerNode._connection |
_connectWh | 4 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+MyHub._connectWh |
_disconnectWh | 4 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+MyHub._disconnectWh |
_connectWh | 4 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+MyConnection._connectWh |
_disconnectWh | 4 | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+MyConnection ._disconnectWh |
_onUrlGet | 4 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+UrlInspectingHttpClient ._onUrlGet |
_traceWriter | 4 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient._traceWriter |
_context | 4 | Microsoft.AspNet.SignalR.Client.Samples .TextBoxWriter._context |
Statistics
Stat | Size of instance |
---|---|
Sum: | 376 |
Average: | 4.09 |
Minimum: | 4 |
Maximum: | 8 |
Standard deviation: | 0.58 |
Variance: | 0.34 |
![]() | Rule warning: Structures should be immutable |
warnif count > 0 from t in Application.Types where
t.IsStructure &&
!t.IsImmutable
let mutableFields = t.Fields.Where(f => !f.IsImmutable)
select new { t, t.NbLinesOfCode, mutableFields }
// It is deemed as a good practice to make
// your structure immutable.
// An object is immutable if its state doesn’t
// change once the object has been created.
// Consequently, a structure is immutable if
// its instances are immutable.
// Immutable types naturally simplify code by
// limiting side-effects.
// See some explanations on immutability and
// how NDepend supports it here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx
View Code Query or Rule Body
259 types matched
types | # lines of code (LOC) | mutableFields | Full Name |
---|---|---|---|
CommonClient+<RunAsync>d__0 | 7 | 5 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunAsync>d__0 |
CommonClient+<RunHubConnectionAPI>d__6 | 14 | 10 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunHubConnectionAPI>d__6 |
CommonClient+<RunDemo>d__11 | 10 | 8 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunDemo>d__11 |
CommonClient+<RunRawConnection>d__16 | 7 | 7 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunRawConnection>d__16 |
CommonClient+<RunStreaming>d__1b | 5 | 7 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunStreaming>d__1b |
CommonClient+<RunAuth>d__24 | 20 | 9 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunAuth>d__24 |
CommonClient+<RunWindowsAuth>d__2d | 8 | 7 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunWindowsAuth>d__2d |
CommonClient+<RunHeaderAuthHub>d__34 | 7 | 7 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunHeaderAuthHub>d__34 |
CommonClient+<RunPendingCallbacks>d__3f | 21 | 9 fields | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunPendingCallbacks>d__3f |
ConnectionMessage | 10 | 4 fields | Microsoft.AspNet.SignalR .ConnectionMessage |
DiffPair<T> | 1 | 2 fields | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T> |
HubPipelineModule+<>c__DisplayClass1+< <BuildIncoming>b__0>d__3 | 13 | 6 fields | Microsoft.AspNet.SignalR.Hubs .HubPipelineModule+<>c__DisplayClass1+< <BuildIncoming>b__0>d__3 |
ScaleoutMappingStore+ScaleoutStoreEnumer ator | 22 | 4 fields | Microsoft.AspNet.SignalR.Messaging .ScaleoutMappingStore+ScaleoutStoreEnume rator |
MessageBroker+<DoWork>d__2 | 7 | 4 fields | Microsoft.AspNet.SignalR.Messaging .MessageBroker+<DoWork>d__2 |
MessageResult | 7 | 3 fields | Microsoft.AspNet.SignalR.Messaging .MessageResult |
Subscription+<Invoke>d__2 | 9 | 8 fields | Microsoft.AspNet.SignalR.Messaging .Subscription+<Invoke>d__2 |
Subscription+<Work>d__8 | 12 | 9 fields | Microsoft.AspNet.SignalR.Messaging .Subscription+<Work>d__8 |
WebSocketHandler+<<SendAsync>b__0>d__2 | 6 | 5 fields | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+<<SendAsync>b__0>d__2 |
WebSocketHandler+<<CloseAsync>b__6>d__8 | 6 | 5 fields | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+<<CloseAsync>b__6>d__8 |
WebSocketHandler+ <ProcessWebSocketRequestAsync>d__e | 25 | 12 fields | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler+ <ProcessWebSocketRequestAsync>d__e |
WebSocketMessageReader+<ReadMessageAsync >d__0 | 23 | 13 fields | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessageReader+ <ReadMessageAsync>d__0 |
ForeverTransport+<ProcessSendRequest >d__e | 4 | 7 fields | Microsoft.AspNet.SignalR.Transports .ForeverTransport+<ProcessSendRequest >d__e |
LongPollingTransport+<ProcessSendRequest >d__12 | 4 | 7 fields | Microsoft.AspNet.SignalR.Transports .LongPollingTransport+ <ProcessSendRequest>d__12 |
WebSocketTransport+<PerformSend>d__8 | 7 | 5 fields | Microsoft.AspNet.SignalR.Transports .WebSocketTransport+<PerformSend>d__8 |
OwinWebSocketHandler+OwinWebSocket+ <ReceiveAsync>d__6 | 5 | 10 fields | Microsoft.AspNet.SignalR.Owin .OwinWebSocketHandler+OwinWebSocket+ <ReceiveAsync>d__6 |
OwinWebSocketHandler+<>c__DisplayClass1+ <<RunWebSocketHandler>b__0>d__3 | 4 | 4 fields | Microsoft.AspNet.SignalR.Owin .OwinWebSocketHandler+< >c__DisplayClass1+<<RunWebSocketHandler >b__0>d__3 |
ServerRequest+<ReadForm>d__3 | 2 | 5 fields | Microsoft.AspNet.SignalR.Owin .ServerRequest+<ReadForm>d__3 |
Client+<Run>d__0 | 14 | 4 fields | Microsoft.AspNet.SignalR.Crank.Client+ <Run>d__0 |
Client+<OpenControllerConnection>d__6 | 12 | 4 fields | Microsoft.AspNet.SignalR.Crank.Client+ <OpenControllerConnection>d__6 |
Client+<RunSend>d__16 | 5 | 5 fields | Microsoft.AspNet.SignalR.Crank.Client+ <RunSend>d__16 |
Client+<RunConnect>d__1b | 6 | 4 fields | Microsoft.AspNet.SignalR.Crank.Client+ <RunConnect>d__1b |
Client+<ConnectBatch>d__1f | 6 | 4 fields | Microsoft.AspNet.SignalR.Crank.Client+ <ConnectBatch>d__1f |
Client+<ConnectSingle>d__27 | 8 | 5 fields | Microsoft.AspNet.SignalR.Crank.Client+ <ConnectSingle>d__27 |
DemoHub+<PlainTask>d__b | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+<PlainTask>d__b |
DemoHub+<GenericTaskWithContinueWith >d__12 | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+ <GenericTaskWithContinueWith>d__12 |
DemoHub+<TaskWithException>d__17 | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+<TaskWithException >d__17 |
DemoHub+<GenericTaskWithException>d__1c | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+ <GenericTaskWithException>d__1c |
DemoHub+<ReportProgress>d__46 | 6 | 7 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+<ReportProgress>d__46 |
Initializer+<>c__DisplayClass23+< >c__DisplayClass26+<<ConfigureRoutes >b__16>d__34 | 9 | 11 fields | Microsoft.AspNet.SignalR.Tests.Common .Initializer+<>c__DisplayClass23+< >c__DisplayClass26+<<ConfigureRoutes >b__16>d__34 |
Initializer+<>c__DisplayClass23+< <ConfigureRoutes>b__14>d__2b | 12 | 11 fields | Microsoft.AspNet.SignalR.Tests.Common .Initializer+<>c__DisplayClass23+< <ConfigureRoutes>b__14>d__2b |
AsyncOnConnectedConnection+<OnConnected >d__0 | 1 | 6 fields | Microsoft.AspNet.SignalR.Tests.Common .AsyncOnConnectedConnection+<OnConnected >d__0 |
AddGroupOnConnectedConnection+ <OnConnected>d__0 | 3 | 6 fields | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection+ <OnConnected>d__0 |
AddGroupOnConnectedConnection+ <OnReceived>d__3 | 1 | 7 fields | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection+ <OnReceived>d__3 |
FallbackToLongPollingConnection+ <OnConnected>d__0 | 4 | 7 fields | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnection+ <OnConnected>d__0 |
EchoHub+<EchoAndDelayCallback>d__9 | 2 | 6 fields | Microsoft.AspNet.SignalR.Tests.Common .Hubs.EchoHub+<EchoAndDelayCallback>d__9 |
DelayedOnConnectedHub+<OnConnected>d__0 | 2 | 4 fields | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DelayedOnConnectedHub+<OnConnected >d__0 |
InvalidTypedHub+<Ping>d__0 | 1 | 4 fields | Microsoft.AspNet.SignalR.Tests.Common .Hubs.InvalidTypedHub+<Ping>d__0 |
ProgressHub+<DoLongRunningJob>d__0 | 6 | 6 fields | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub+<DoLongRunningJob>d__0 |
ProgressHub+<>c__DisplayClass7+< <SendProgressAfterMethodReturn>b__6>d__9 | 5 | 4 fields | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub+<>c__DisplayClass7+< <SendProgressAfterMethodReturn>b__6>d__9 |
ValidTypedHub+<Ping>d__0 | 1 | 4 fields | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ValidTypedHub+<Ping>d__0 |
AsyncManualResetEvent+<WaitAsync>d__3 | 1 | 6 fields | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.AsyncManualResetEvent+ <WaitAsync>d__3 |
MemoryHost+<>c__DisplayClass2+< <Configure>b__1>d__5 | 5 | 6 fields | Microsoft.AspNet.SignalR.Hosting.Memory .MemoryHost+<>c__DisplayClass2+< <Configure>b__1>d__5 |
MemoryHostHttpHandler+<SendAsync>d__0 | 3 | 6 fields | Microsoft.AspNet.SignalR.Client.Http .MemoryHostHttpHandler+<SendAsync>d__0 |
RunBase+<Sender>d__c | 8 | 6 fields | Microsoft.AspNet.SignalR.Stress.RunBase+ <Sender>d__c |
SimpleEchoHubRun+<Send>d__3 | 3 | 7 fields | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun+<Send>d__3 |
StressRunBase+<Sender>d__4 | 8 | 6 fields | Microsoft.AspNet.SignalR.Stress.Stress .StressRunBase+<Sender>d__4 |
Startup+<>c__DisplayClass7+< <Configuration>b__4>d__9 | 9 | 11 fields | Microsoft.AspNet.SignalR.Samples .Startup+<>c__DisplayClass7+< <Configuration>b__4>d__9 |
CountingHub+<Send>d__6 | 1 | 5 fields | Microsoft.AspNet.SignalR.Samples.Hubs .Counting.CountingHub+<Send>d__6 |
DemoHub+<PlainTask>d__b | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+<PlainTask>d__b |
DemoHub+<GenericTaskWithContinueWith >d__12 | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+ <GenericTaskWithContinueWith>d__12 |
DemoHub+<TaskWithException>d__17 | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+<TaskWithException >d__17 |
DemoHub+<GenericTaskWithException>d__1c | 1 | 4 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+ <GenericTaskWithException>d__1c |
DemoHub+<ReportProgress>d__46 | 6 | 7 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+<ReportProgress>d__46 |
TypedDemoHub+<Echo>d__0 | 1 | 5 fields | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub+<Echo>d__0 |
ConnectionFacts+ <NoReconnectsAfterFallback>d__17 | 10 | 8 fields | Microsoft.AspNet.SignalR.Tests .ConnectionFacts+ <NoReconnectsAfterFallback>d__17 |
ConnectionFacts+ <TransportConnectTimeoutDoesNotAddupOver NegotiateRequests>d__21 | 10 | 8 fields | Microsoft.AspNet.SignalR.Tests .ConnectionFacts+ <TransportConnectTimeoutDoesNotAddupOver NegotiateRequests>d__21 |
ConnectionFacts+ <ConnectionFailsToStartWithInvalidOldPro tocol>d__28 | 10 | 12 fields | Microsoft.AspNet.SignalR.Tests .ConnectionFacts+ <ConnectionFailsToStartWithInvalidOldPro tocol>d__28 |
ConnectionFacts+ <ConnectionDisposeTriggersStop>d__2f | 7 | 10 fields | Microsoft.AspNet.SignalR.Tests .ConnectionFacts+ <ConnectionDisposeTriggersStop>d__2f |
ConnectionFacts+ <RequestHeadersSetCorrectly>d__3d | 13 | 14 fields | Microsoft.AspNet.SignalR.Tests .ConnectionFacts+ <RequestHeadersSetCorrectly>d__3d |
ConnectionFacts+ <RequestHeadersCanBeSetOnceConnected >d__48 | 10 | 13 fields | Microsoft.AspNet.SignalR.Tests .ConnectionFacts+ <RequestHeadersCanBeSetOnceConnected >d__48 |
ConnectionFacts+ <ReconnectRequestPathEndsInReconnect >d__54 | 11 | 12 fields | Microsoft.AspNet.SignalR.Tests .ConnectionFacts+ <ReconnectRequestPathEndsInReconnect >d__54 |
HubProxyFacts+ <TransportTimesOutIfNoInitMessage>d__0 | 10 | 13 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <TransportTimesOutIfNoInitMessage>d__0 |
HubProxyFacts+ <InitMessageReceivedPriorToStartCompleti on>d__16 | 8 | 11 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <InitMessageReceivedPriorToStartCompleti on>d__16 |
HubProxyFacts+ <TransportCanJoinGroupInOnConnected >d__29 | 11 | 14 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <TransportCanJoinGroupInOnConnected >d__29 |
HubProxyFacts+<EndToEndTest>d__36 | 10 | 12 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+<EndToEndTest>d__36 |
HubProxyFacts+ <HubNamesAreNotCaseSensitive>d__42 | 10 | 12 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <HubNamesAreNotCaseSensitive>d__42 |
HubProxyFacts+ <UnableToCreateHubThrowsError>d__4c | 7 | 12 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <UnableToCreateHubThrowsError>d__4c |
HubProxyFacts+ <ConnectionErrorCapturesExceptionsThrown InClientHubMethod>d__59 | 14 | 16 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ConnectionErrorCapturesExceptionsThrown InClientHubMethod>d__59 |
HubProxyFacts+ <RequestHeadersSetCorrectly>d__6d | 14 | 14 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <RequestHeadersSetCorrectly>d__6d |
HubProxyFacts+ <RequestHeadersCanBeSetOnceConnected >d__7c | 11 | 15 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <RequestHeadersCanBeSetOnceConnected >d__7c |
HubProxyFacts+ <ClientCallbackInvalidNumberOfArgumentsE xceptionThrown>d__8a | 14 | 12 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ClientCallbackInvalidNumberOfArgumentsE xceptionThrown>d__8a |
HubProxyFacts+ <ClientCallbackWithFewerArgumentsDoesNot Throw>d__97 | 13 | 13 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ClientCallbackWithFewerArgumentsDoesNot Throw>d__97 |
HubProxyFacts+ <ClientCallbackArgumentTypeMismatchExcep tionThrown>d__a4 | 14 | 12 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ClientCallbackArgumentTypeMismatchExcep tionThrown>d__a4 |
HubProxyFacts+ <WaitingOnHubInvocationDoesNotDeadlock >d__b1 | 11 | 13 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <WaitingOnHubInvocationDoesNotDeadlock >d__b1 |
HubProxyFacts+ <CallingStopAfterAwaitingInvocationRetur nsFast>d__b9 | 7 | 10 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <CallingStopAfterAwaitingInvocationRetur nsFast>d__b9 |
HubProxyFacts+ <CallingStopInClientMethodWorks>d__c4 | 11 | 11 fields | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <CallingStopInClientMethodWorks>d__c4 |
KeepAliveFacts+ <ReconnectionSuccesfulTest>d__4 | 12 | 13 fields | Microsoft.AspNet.SignalR.Tests .KeepAliveFacts+ <ReconnectionSuccesfulTest>d__4 |
KeepAliveFacts+<SuccessiveTimeoutTest >d__f | 12 | 13 fields | Microsoft.AspNet.SignalR.Tests .KeepAliveFacts+<SuccessiveTimeoutTest >d__f |
KeepAliveFacts+<OnConnectionSlowTest >d__1a | 10 | 13 fields | Microsoft.AspNet.SignalR.Tests .KeepAliveFacts+<OnConnectionSlowTest >d__1a |
WebSocketFacts+ <ClientCanReceiveMessagesOver64KBViaWebS ockets>d__0 | 8 | 11 fields | Microsoft.AspNet.SignalR.Tests .WebSocketFacts+ <ClientCanReceiveMessagesOver64KBViaWebS ockets>d__0 |
WebSocketFacts+ <ServerCannotReceiveMessagesOver64KBViaW ebSockets>d__b | 7 | 10 fields | Microsoft.AspNet.SignalR.Tests .WebSocketFacts+ <ServerCannotReceiveMessagesOver64KBViaW ebSockets>d__b |
WebSocketFacts+<>c__DisplayClass19+< <SendingDuringWebSocketReconnectFails >b__14>d__1b | 6 | 4 fields | Microsoft.AspNet.SignalR.Tests .WebSocketFacts+<>c__DisplayClass19+< <SendingDuringWebSocketReconnectFails >b__14>d__1b |
WebSocketFacts+ <SendingDuringWebSocketReconnectFails >d__1e | 10 | 10 fields | Microsoft.AspNet.SignalR.Tests .WebSocketFacts+ <SendingDuringWebSocketReconnectFails >d__1e |
DisconnectFacts+ <DisconnectFiresForPersistentConnectionW henClientCallsStop>d__a | 12 | 9 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForPersistentConnectionW henClientCallsStop>d__a |
DisconnectFacts+ <DisconnectFiresForPersistentConnectionW henClientDisconnects>d__16 | 11 | 8 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForPersistentConnectionW henClientDisconnects>d__16 |
DisconnectFacts+ <DisconnectFiresForHubsWhenClientCallsSt op>d__21 | 13 | 9 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForHubsWhenClientCallsSt op>d__21 |
DisconnectFacts+ <DisconnectFiresForHubsWhenClientDisconn ects>d__2d | 12 | 8 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <DisconnectFiresForHubsWhenClientDisconn ects>d__2d |
DisconnectFacts+ <FarmDisconnectRaisesUncleanDisconnects >d__3c | 33 | 15 fields | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+ <FarmDisconnectRaisesUncleanDisconnects >d__3c |
PersistentConnectionFacts+OnConnectedAsy nc+<SendToClientFromOutsideOfConnection >d__17 | 10 | 11 fields | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync+<SendToClientFromOutsideOfConnection >d__17 |
PersistentConnectionFacts+OnConnectedAsy nc+<SendToClientsFromOutsideOfConnection >d__26 | 10 | 11 fields | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync+ <SendToClientsFromOutsideOfConnection >d__26 |
Statistics
Stat | # lines of code (LOC) | mutableFields |
---|---|---|
Sum: | 2 525 | 0 |
Average: | 9.75 | 0 |
Minimum: | 1 | 0 |
Maximum: | 39 | 0 |
Standard deviation: | 5.97 | 0 |
Variance: | 35.67 | 0 |
![]() | Rule warning: Property Getters should be immutable |
warnif count > 0 from m in Application.Methods where
m.IsPropertyGetter &&
( ( !m.IsStatic && m.ChangesObjectState) ||
( m.IsStatic && m.ChangesTypeState) )
let fieldsAssigned = m.FieldsAssigned
select new { m, m.NbLinesOfCode, fieldsAssigned }
// This rule might be violated in the case of object lazy initialized
// when the property getter is accessed the first time.
// But in general, the callers of a property
// doesn't expect to change any state through the call.
View Code Query or Rule Body
11 methods matched
methods | # lines of code (LOC) | fieldsAssigned | Full Name |
---|---|---|---|
get_ResourceManager() | 4 | 1 field | Microsoft.AspNet.SignalR.Utils.Resources .get_ResourceManager() |
get_ResourceManager() | 4 | 1 field | Microsoft.AspNet.SignalR.Resources .get_ResourceManager() |
get_Writer() | 3 | 1 field | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter.get_Writer() |
get_OutputWriter() | 4 | 1 field | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase .get_OutputWriter() |
get_LastMessageId() | 3 | 1 field | Microsoft.AspNet.SignalR.Transports .ForeverTransport.get_LastMessageId() |
get_HTMLOutputWriter() | 4 | 1 field | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport .get_HTMLOutputWriter() |
get_Controller() | 3 | 1 field | Microsoft.AspNet.SignalR.Crank .CrankArguments.get_Controller() |
get_Server() | 3 | 1 field | Microsoft.AspNet.SignalR.Crank .CrankArguments.get_Server() |
get_ResourceManager() | 4 | 1 field | Microsoft.AspNet.SignalR.SqlServer .Resources.get_ResourceManager() |
get_ScenarioName() | 3 | 1 field | Microsoft.AspNet.SignalR.Stress .Performance.HostedRun.get_ScenarioName( ) |
get_ResourceManager() | 7 | 1 field | Microsoft.AspNet.SignalR.Samples.VB.My .Resources.Resources.get_ResourceManager () |
Statistics
Stat | # lines of code (LOC) | fieldsAssigned |
---|---|---|
Sum: | 42 | 0 |
Average: | 3.82 | 0 |
Minimum: | 3 | 0 |
Maximum: | 7 | 0 |
Standard deviation: | 1.11 | 0 |
Variance: | 1.24 | 0 |
![]() | Rule warning: Avoid static fields with a mutable field type |
warnif count > 0
from f in Application.Fields
where f.IsStatic && !f.IsEnumValue && !f.IsGeneratedByCompiler && !f.IsLiteral
let fieldType = f.FieldType
where fieldType != null &&
!fieldType.IsThirdParty &&
!fieldType.IsInterface &&
!fieldType.IsImmutable
select new { f,
mutableFieldType = fieldType ,
isFieldImmutable = f.IsImmutable,
isFieldIsReadOnly = f.IsInitOnly }
// As explained in this blog post
// http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members
// static fields should be used to hold only constant and immutable states.
View Code Query or Rule Body
10 fields matched
fields | mutableFieldType | isFieldImmutable | isFieldIsReadOnly | Full Name |
---|---|---|---|---|
Empty | DisposableAction | True | True | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
_tokenRegister | CancellationTokenExtensions+RegisterDelegate | True | True | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions ._tokenRegister |
TerminalMessage | MessageResult | True | True | Microsoft.AspNet.SignalR.Messaging .MessageResult.TerminalMessage |
Arguments | CrankArguments | False | False | Microsoft.AspNet.SignalR.Crank .ControllerHub.Arguments |
TestPhase | ControllerEvents | False | False | Microsoft.AspNet.SignalR.Crank .ControllerHub.TestPhase |
Arguments | CrankArguments | False | False | Microsoft.AspNet.SignalR.Crank.Client .Arguments |
TestPhase | ControllerEvents | False | False | Microsoft.AspNet.SignalR.Crank.Client .TestPhase |
Empty | DisposableAction | True | True | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
Empty | DisposableAction | True | True | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
defaultInstance | MySettings | True | False | Microsoft.AspNet.SignalR.Samples.VB.My .MySettings.defaultInstance |
Statistics
Stat | mutableFieldType | isFieldImmutable | isFieldIsReadOnly |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: A field must not be assigned from outside its parent hierarchy types |
warnif count > 0
from f in JustMyCode.Fields.Where(f =>
!f.IsPrivate && !f.IsGeneratedByCompiler &&
!f.IsImmutable && !f.IsEnumValue)
let methodsAssignerOutsideOfMyType = f.MethodsAssigningMe.Where(
m =>!m.IsGeneratedByCompiler &&
m.ParentType != f.ParentType &&
!m.ParentType.DeriveFrom(f.ParentType) )
where methodsAssignerOutsideOfMyType.Count() > 0
select new { f, methodsAssignerOutsideOfMyType }View Code Query or Rule Body
10 fields matched
fields | methodsAssignerOutsideOfMyType | Full Name |
---|---|---|
BeforeTopicMarked | 3 methods | Microsoft.AspNet.SignalR.Messaging .MessageBus.BeforeTopicMarked |
BeforeTopicCreated | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.BeforeTopicCreated |
AfterTopicMarkedSuccessfully | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.AfterTopicMarkedSuccessfully |
AfterTopicMarked | 2 methods | Microsoft.AspNet.SignalR.Messaging .MessageBus.AfterTopicMarked |
Length | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.Length |
MinId | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.MinId |
MaxId | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore+Fragment.MaxId |
State | 1 method | Microsoft.AspNet.SignalR.Messaging.Topic .State |
BeforeCancellationTokenCallbackRegistere d | 2 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport .BeforeCancellationTokenCallbackRegister ed |
AfterRequestEnd | 3 methods | Microsoft.AspNet.SignalR.Transports .ForeverTransport.AfterRequestEnd |
Statistics
Stat | methodsAssignerOutsideOfMyType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Critical Rule warning: Don't assign a field from many methods |
warnif count > 0
from f in JustMyCode.Fields where
!f.IsEnumValue &&
!f.IsImmutable &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
!f.IsEventDelegateObject &&
(f.IsPrivate || f.IsProtected) // Don't match fields assigned outside their classes.
// The threshold 4 is arbitrary and it should avoid matching too many fields.
// Threshold is even lower for static fields because this reveals situations even more complex.
where f.MethodsAssigningMe.Count() >= (!f.IsStatic ? 4 : 2)
select new { f,
f.MethodsAssigningMe,
f.MethodsReadingMeButNotAssigningMe,
f.MethodsUsingMe,
f.ParentType }
// A field assigned from many methods is a symptom of bug-prone code.
// This situation makes harder to anticipate the field state during runtime.
// The code is then hard to read, hard to debug and hard to maintain.
// Hard-to-solve bugs due to corrupted state are often the consequence of fields anarchically assigned.
//
// The situation is even more complex if the field is static.
// Indeed, this potentially involves global random accesses from different parts of the application.
// This is why this rule provides a lower threshold for static fields.
//
// If the object containing such field is meant to be used from multiple threads,
// there are alarming chances that the code is unmaintainable and bugged.
// When multiple threads are involved, the rule of thumb is to use immutable objects.
//
// If the field type is a reference type (interfaces, classes, strings, delegates)
// corrupted state might result in a NullReferenceException.
// If the field type is a value type (number, boolean, structure)
// corrupted state might result in wrong result not even signaled by an exception sent.
//
// There is no straight advice to refactor the number of methods responsible for assigning a field.
// Solutions often involve rethinking and then rewriting a complex algorithm.
// Such field can sometime become just a variable accessed locally by a method or a closure.
// Sometime, just rethinking the life-time and the role of the parent object allows the field to become immutable
// (i.e assigned only by the constructor).
View Code Query or Rule Body
6 fields matched
fields | MethodsAssigningMe | MethodsReadingMeButNotAssigningMe | MethodsUsingMe | ParentType | Full Name |
---|---|---|---|---|---|
_nextFreeMessageId | 4 methods | 0 method | 4 methods | MessageStore<T> | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>._nextFreeMessageId |
ClientsConnected | 2 methods | 2 methods | 4 methods | ControllerHub | Microsoft.AspNet.SignalR.Crank .ControllerHub.ClientsConnected |
ControllerConnection | 2 methods | 0 method | 2 methods | Client | Microsoft.AspNet.SignalR.Crank.Client .ControllerConnection |
ControllerProxy | 2 methods | 1 method | 3 methods | Client | Microsoft.AspNet.SignalR.Crank.Client .ControllerProxy |
_id | 8 methods | 0 method | 8 methods | HostedTest | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest._id |
_notificationState | 4 methods | 1 method | 5 methods | ObservableDbOperation | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation ._notificationState |
Statistics
Stat | MethodsAssigningMe | MethodsReadingMeButNotAssigningMe | MethodsUsingMe | ParentType |
---|---|---|---|---|
Sum: | 0 | 0 | 0 | 0 |
Average: | 0 | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 | 0 |
![]() | Rule warning: Do not declare read only mutable reference types |
warnif count > 0 from f in JustMyCode.Fields where
f.IsInitOnly &&
!f.ParentType.IsPrivate &&
!f.IsPrivate &&
f.FieldType != null &&
f.FieldType.IsClass &&
!f.FieldType.IsThirdParty &&
!f.FieldType.IsImmutable
select new { f, f.FieldType, FieldVisibility = f.Visibility }
// This rule is violated when a public or internal
// type contains a public or internal read-only field
// that is a mutable reference type.
//
// This situation provides the wrong impression that the
// value can't change, when actually it's only the field
// value that can't change, rather than the object.
//
// To fix a violation of this rule, remove the read-only
// modifier or, if a breaking change is acceptable,
// replace the field with an immutable type.
//
// An object is immutable if its state doesn’t
// change once the object has been created.
// Consequently, a class or a structure is
// immutable if its instances are immutable.
// Immutable types naturally simplify code by
// limiting side-effects.
View Code Query or Rule Body
3 fields matched
fields | FieldType | FieldVisibility | Full Name |
---|---|---|---|
Empty | DisposableAction | Public | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
Empty | DisposableAction | Public | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
Empty | DisposableAction | Public | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
Statistics
Stat | FieldType | FieldVisibility |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
6101
Naming Conventions |
|
![]() | Rule warning: Instance fields should be prefixed with a 'm_' |
warnif count > 0 from f in Application.Fields where
!f.NameLike (@"^m_") &&
!f.IsStatic &&
!f.IsLiteral &&
!f.IsGeneratedByCompiler &&
!f.IsSpecialName &&
!f.IsEventDelegateObject
select new { f, f.SizeOfInst }
// This naming convention provokes debate.
// Don't hesitate to customize the regex of
// NameLike to your preference.View Code Query or Rule Body
584 fields matched
fields | Size of instance | Full Name |
---|---|---|
_traceWriter | 4 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient._traceWriter |
_initialized | 1 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._initialized |
_initLocker | 4 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._initLocker |
_counter | 4 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper._counter |
_resolver | 4 | Microsoft.AspNet.SignalR .ConnectionConfiguration._resolver |
_roles | 4 | Microsoft.AspNet.SignalR .AuthorizeAttribute._roles |
_rolesSplit | 4 | Microsoft.AspNet.SignalR .AuthorizeAttribute._rolesSplit |
_users | 4 | Microsoft.AspNet.SignalR .AuthorizeAttribute._users |
_usersSplit | 4 | Microsoft.AspNet.SignalR .AuthorizeAttribute._usersSplit |
_requireOutgoing | 5 | Microsoft.AspNet.SignalR .AuthorizeAttribute._requireOutgoing |
_resolvers | 4 | Microsoft.AspNet.SignalR .DefaultDependencyResolver._resolvers |
_trackedDisposables | 4 | Microsoft.AspNet.SignalR .DefaultDependencyResolver ._trackedDisposables |
_disposed | 4 | Microsoft.AspNet.SignalR .DefaultDependencyResolver._disposed |
_configurationManager | 4 | Microsoft.AspNet.SignalR .PersistentConnection ._configurationManager |
_transportManager | 4 | Microsoft.AspNet.SignalR .PersistentConnection._transportManager |
_initialized | 1 | Microsoft.AspNet.SignalR .PersistentConnection._initialized |
_connection | 4 | Microsoft.AspNet.SignalR.GroupManager ._connection |
_groupPrefix | 4 | Microsoft.AspNet.SignalR.GroupManager ._groupPrefix |
_acks | 4 | Microsoft.AspNet.SignalR.Infrastructure .AckHandler._acks |
_ackThreshold | 8 | Microsoft.AspNet.SignalR.Infrastructure .AckHandler._ackThreshold |
_timer | 4 | Microsoft.AspNet.SignalR.Infrastructure .AckHandler._timer |
_buffer | 12 | Microsoft.AspNet.SignalR.Infrastructure .ArraySegmentTextReader._buffer |
_encoding | 4 | Microsoft.AspNet.SignalR.Infrastructure .ArraySegmentTextReader._encoding |
_offset | 4 | Microsoft.AspNet.SignalR.Infrastructure .ArraySegmentTextReader._offset |
_encoding | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter._encoding |
_write | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter._write |
_writeState | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter._writeState |
_reuseBuffers | 1 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter._reuseBuffers |
_writer | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter._writer |
_bufferSize | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter._bufferSize |
_charPos | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter._charPos |
_charLen | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter._charLen |
_encoder | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter._encoder |
_charBuffer | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter ._charBuffer |
_byteBuffer | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter ._byteBuffer |
_write | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter._write |
_writeState | 4 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter ._writeState |
_resolver | 4 | Microsoft.AspNet.SignalR.Infrastructure .ConnectionManager._resolver |
_counters | 4 | Microsoft.AspNet.SignalR.Infrastructure .ConnectionManager._counters |
_provider | 4 | Microsoft.AspNet.SignalR.Infrastructure .DataProtectionProviderProtectedData ._provider |
_connectionTokenProtector | 4 | Microsoft.AspNet.SignalR.Infrastructure .DataProtectionProviderProtectedData ._connectionTokenProtector |
_groupsProtector | 4 | Microsoft.AspNet.SignalR.Infrastructure .DataProtectionProviderProtectedData ._groupsProtector |
_minSupportedProtocol | 4 | Microsoft.AspNet.SignalR.Infrastructure .ProtocolResolver._minSupportedProtocol |
_maxSupportedProtocol | 4 | Microsoft.AspNet.SignalR.Infrastructure .ProtocolResolver._maxSupportedProtocol |
_minimumDelayedStartVersion | 4 | Microsoft.AspNet.SignalR.Infrastructure .ProtocolResolver ._minimumDelayedStartVersion |
Added | 4 | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.Added |
Removed | 4 | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.Removed |
_items | 4 | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>._items |
_addedItems | 4 | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>._addedItems |
_removedItems | 4 | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T>._removedItems |
_k0 | 8 | Microsoft.AspNet.SignalR.Infrastructure .SipHashBasedStringEqualityComparer._k0 |
_k1 | 8 | Microsoft.AspNet.SignalR.Infrastructure .SipHashBasedStringEqualityComparer._k1 |
_action | 4 | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction._action |
_state | 4 | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction._state |
_initialized | 1 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._initialized |
_initLocker | 4 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._initLocker |
_trace | 4 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._trace |
_disposable | 4 | Microsoft.AspNet.SignalR.Infrastructure .Disposer._disposable |
_counter | 4 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper._counter |
_callbackWrapper | 4 | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+DiposeCance llationState._callbackWrapper |
_registration | 8 | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+DiposeCance llationState._registration |
_callback | 4 | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+Cancellatio nCallbackWrapper._callback |
_state | 4 | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+Cancellatio nCallbackWrapper._state |
_callbackInvoked | 4 | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+Cancellatio nCallbackWrapper._callbackInvoked |
_cts | 4 | Microsoft.AspNet.SignalR.Infrastructure .SafeCancellationTokenSource._cts |
_state | 4 | Microsoft.AspNet.SignalR.Infrastructure .SafeCancellationTokenSource._state |
_lockObj | 4 | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue._lockObj |
_lastQueuedTask | 4 | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue._lastQueuedTask |
_drained | 1 | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue._drained |
_maxSize | 5 | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue._maxSize |
_size | 8 | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue._size |
_stringMinifier | 4 | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier._stringMinifier |
_stringMaximizer | 4 | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier._stringMaximizer |
_lastMinifiedKey | 4 | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier._lastMinifiedKey |
_createMinifiedString | 4 | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier._createMinifiedString |
_currentLength | 4 | Microsoft.AspNet.SignalR.Infrastructure .ByteBuffer._currentLength |
_maxLength | 5 | Microsoft.AspNet.SignalR.Infrastructure .ByteBuffer._maxLength |
_segments | 4 | Microsoft.AspNet.SignalR.Infrastructure .ByteBuffer._segments |
_bufferSize | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._bufferSize |
_numChars | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._numChars |
_charBuffer | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._charBuffer |
_numBytes | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._numBytes |
_byteBuffer | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._byteBuffer |
_encoding | 4 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper._encoding |
_items | 4 | Microsoft.AspNet.SignalR.Infrastructure .SafeSet<T>._items |
_bus | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._bus |
_serializer | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._serializer |
_baseSignal | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._baseSignal |
_connectionId | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._connectionId |
_signals | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._signals |
_groups | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._groups |
_counters | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._counters |
_aborted | 1 | Microsoft.AspNet.SignalR.Infrastructure .Connection._aborted |
_initializing | 1 | Microsoft.AspNet.SignalR.Infrastructure .Connection._initializing |
_traceSource | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._traceSource |
_ackHandler | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._ackHandler |
_protectedData | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._protectedData |
_excludeMessage | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection._excludeMessage |
_connection | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection+ReceiveContext._connection |
_callback | 4 | Microsoft.AspNet.SignalR.Infrastructure .Connection+ReceiveContext._callback |
Statistics
Stat | Size of instance |
---|---|
Sum: | 2 424 |
Average: | 4.15 |
Minimum: | 1 |
Maximum: | 21 |
Standard deviation: | 1.5 |
Variance: | 2.26 |
![]() | Rule warning: Static fields should be prefixed with a 's_' |
warnif count > 0 from f in Application.Fields where
!f.NameLike (@"^s_") &&
f.IsStatic &&
!f.IsLiteral &&
!f.IsGeneratedByCompiler &&
!f.IsSpecialName &&
!f.IsEventDelegateObject
select new { f, f.SizeOfInst }
// This naming convention provokes debate.
// Don't hesitate to customize the regex of
// NameLike to your preference.
View Code Query or Rule Body
167 fields matched
fields | Size of instance | Full Name |
---|---|---|
_counterProperties | N/A | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager ._counterProperties |
_noOpCounter | N/A | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._noOpCounter |
_commands | N/A | Microsoft.AspNet.SignalR.Utils.Program ._commands |
resourceMan | N/A | Microsoft.AspNet.SignalR.Utils.Resources .resourceMan |
resourceCulture | N/A | Microsoft.AspNet.SignalR.Utils.Resources .resourceCulture |
_defaultResolver | N/A | Microsoft.AspNet.SignalR.GlobalHost ._defaultResolver |
_resolver | N/A | Microsoft.AspNet.SignalR.GlobalHost ._resolver |
SplitChars | N/A | Microsoft.AspNet.SignalR .PersistentConnection.SplitChars |
_protocolResolver | N/A | Microsoft.AspNet.SignalR .PersistentConnection._protocolResolver |
resourceMan | N/A | Microsoft.AspNet.SignalR.Resources .resourceMan |
resourceCulture | N/A | Microsoft.AspNet.SignalR.Resources .resourceCulture |
_emptyTask | N/A | Microsoft.AspNet.SignalR.TaskAsyncHelper ._emptyTask |
_trueTask | N/A | Microsoft.AspNet.SignalR.TaskAsyncHelper ._trueTask |
_falseTask | N/A | Microsoft.AspNet.SignalR.TaskAsyncHelper ._falseTask |
Empty | N/A | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
_encoding | N/A | Microsoft.AspNet.SignalR.Infrastructure .DataProtectionProviderProtectedData ._encoding |
_encoding | N/A | Microsoft.AspNet.SignalR.Infrastructure .DefaultProtectedData._encoding |
_isRunningMono | N/A | Microsoft.AspNet.SignalR.Infrastructure .MonoUtility._isRunningMono |
Empty | N/A | Microsoft.AspNet.SignalR.Infrastructure .ListHelper<T>.Empty |
_rng | N/A | Microsoft.AspNet.SignalR.Infrastructure .SipHashBasedStringEqualityComparer._rng |
Empty | N/A | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction.Empty |
_counterProperties | N/A | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager ._counterProperties |
_noOpCounter | N/A | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager._noOpCounter |
_disposedSentinel | N/A | Microsoft.AspNet.SignalR.Infrastructure .Disposer._disposedSentinel |
_tokenRegister | N/A | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions ._tokenRegister |
_minimumKeepAlive | N/A | Microsoft.AspNet.SignalR.Configuration .DefaultConfigurationManager ._minimumKeepAlive |
_minimumDisconnectTimeout | N/A | Microsoft.AspNet.SignalR.Configuration .DefaultConfigurationManager ._minimumDisconnectTimeout |
_progressCreateCache | N/A | Microsoft.AspNet.SignalR.Hubs .HubInvocationProgress ._progressCreateCache |
_attributes | N/A | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor._attributes |
_parameters | N/A | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor._parameters |
_emptyArgs | N/A | Microsoft.AspNet.SignalR.Hubs .HubRequestParser._emptyArgs |
_excludeTypes | N/A | Microsoft.AspNet.SignalR.Hubs .ReflectionHelper._excludeTypes |
_excludeInterfaces | N/A | Microsoft.AspNet.SignalR.Hubs .ReflectionHelper._excludeInterfaces |
_templateFromResource | N/A | Microsoft.AspNet.SignalR.Hubs .DefaultJavaScriptProxyGenerator ._templateFromResource |
_numberTypes | N/A | Microsoft.AspNet.SignalR.Hubs .DefaultJavaScriptProxyGenerator ._numberTypes |
_dateTypes | N/A | Microsoft.AspNet.SignalR.Hubs .DefaultJavaScriptProxyGenerator ._dateTypes |
_continueWithMethod | N/A | Microsoft.AspNet.SignalR.Hubs .HubDispatcher._continueWithMethod |
Instance | N/A | Microsoft.AspNet.SignalR.Hubs .NullJavaScriptMinifier.Instance |
_builder | N/A | Microsoft.AspNet.SignalR.Hubs .TypedClientBuilder<T>._builder |
_jsKeywords | N/A | Microsoft.AspNet.SignalR.Json .JsonUtility._jsKeywords |
_escapeChars | N/A | Microsoft.AspNet.SignalR.Messaging .Cursor._escapeChars |
_gcInterval | N/A | Microsoft.AspNet.SignalR.Messaging .MessageBus._gcInterval |
_emptyList | N/A | Microsoft.AspNet.SignalR.Messaging .MessageResult._emptyList |
TerminalMessage | N/A | Microsoft.AspNet.SignalR.Messaging .MessageResult.TerminalMessage |
_minFragmentCount | N/A | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>._minFragmentCount |
_maxFragmentSize | N/A | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>._maxFragmentSize |
_emptyArraySegment | N/A | Microsoft.AspNet.SignalR.Messaging .MessageStore<T>._emptyArraySegment |
_maxFragmentSize | N/A | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore._maxFragmentSize |
_emptyArraySegment | N/A | Microsoft.AspNet.SignalR.Messaging .ScaleoutStore._emptyArraySegment |
_defaultCursorPrefix | N/A | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription ._defaultCursorPrefix |
_initializeDrainTask | N/A | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream._initializeDrainTask |
_zeroByteBuffer | N/A | Microsoft.AspNet.SignalR.Messaging .Message._zeroByteBuffer |
_encoding | N/A | Microsoft.AspNet.SignalR.Messaging .Message._encoding |
_closeTimeout | N/A | Microsoft.AspNet.SignalR.WebSockets .WebSocketHandler._closeTimeout |
EmptyTextMessage | N/A | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.EmptyTextMessage |
EmptyBinaryMessage | N/A | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.EmptyBinaryMessage |
CloseMessage | N/A | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessage.CloseMessage |
_emptyArraySegment | N/A | Microsoft.AspNet.SignalR.WebSockets .WebSocketMessageReader ._emptyArraySegment |
_emptyTaskFunc | N/A | Microsoft.AspNet.SignalR.Transports .TransportDisconnectBase._emptyTaskFunc |
_protocolResolver | N/A | Microsoft.AspNet.SignalR.Transports .ForeverTransport._protocolResolver |
Arguments | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.Arguments |
AppHost | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.AppHost |
ClientsConnected | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.ClientsConnected |
PerformanceCounters | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.PerformanceCounters |
Samples | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.Samples |
NextSample | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.NextSample |
FlushLock | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.FlushLock |
TestPhase | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.TestPhase |
TestTimer | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.TestTimer |
HubContext | N/A | Microsoft.AspNet.SignalR.Crank .ControllerHub.HubContext |
Arguments | N/A | Microsoft.AspNet.SignalR.Crank.Client .Arguments |
Connections | N/A | Microsoft.AspNet.SignalR.Crank.Client .Connections |
HubProxies | N/A | Microsoft.AspNet.SignalR.Crank.Client .HubProxies |
ControllerConnection | N/A | Microsoft.AspNet.SignalR.Crank.Client .ControllerConnection |
ControllerProxy | N/A | Microsoft.AspNet.SignalR.Crank.Client .ControllerProxy |
TestPhase | N/A | Microsoft.AspNet.SignalR.Crank.Client .TestPhase |
_emptyTask | N/A | Microsoft.AspNet.SignalR.TaskAsyncHelper ._emptyTask |
_trueTask | N/A | Microsoft.AspNet.SignalR.TaskAsyncHelper ._trueTask |
_falseTask | N/A | Microsoft.AspNet.SignalR.TaskAsyncHelper ._falseTask |
Empty | N/A | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T>.Empty |
_broadcastSize | N/A | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastSize |
_broadcastPayload | N/A | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastPayload |
_broadcastCount | N/A | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastCount |
_broadcastSeconds | N/A | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastSeconds |
_batchingEnabled | N/A | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._batchingEnabled |
_actualFps | N/A | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._actualFps |
_timerInstance | N/A | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._timerInstance |
_users | N/A | Microsoft.AspNet.SignalR.Samples .RawConnection._users |
_clients | N/A | Microsoft.AspNet.SignalR.Samples .RawConnection._clients |
syncLock | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass.syncLock |
random | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass.random |
theList | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub .theList |
syncLock | N/A | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub .syncLock |
_neverEndingTcs | N/A | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub._neverEndingTcs |
_defaultTimeout | N/A | Microsoft.AspNet.SignalR.Tests.Common .ClientAssertExtensions._defaultTimeout |
_id | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest._id |
_webConfigTemplate | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost ._webConfigTemplate |
_traceSources | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost ._traceSources |
_random | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.OwinTestHost._random |
_logging | N/A | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.SystemNetLogging ._logging |
Statistics
Stat | Size of instance |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Abstract base class should be suffixed with 'Base' |
warnif count > 0 from t in Application.Types where
t.IsAbstract &&
t.IsClass &&
// equivalent to: DepthOfDeriveFrom "System.Object" == 1
t.DepthOfInheritance == 1 &&
((!t.IsGeneric && !t.NameLike (@"Base$")) ||
( t.IsGeneric && !t.NameLike (@"Base<")))
select new { t, t.DepthOfInheritance }View Code Query or Rule Body
9 types matched
types | Depth of inheritance | Full Name |
---|---|---|
Command | 1 | Microsoft.AspNet.SignalR.Utils.Command |
PersistentConnection | 1 | Microsoft.AspNet.SignalR .PersistentConnection |
Descriptor | 1 | Microsoft.AspNet.SignalR.Hubs.Descriptor |
HubPipelineModule | 1 | Microsoft.AspNet.SignalR.Hubs .HubPipelineModule |
Subscription | 1 | Microsoft.AspNet.SignalR.Messaging .Subscription |
HostedTest | 1 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest |
TracingTestHost | 1 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.TracingTestHost |
Shape | 1 | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Shape |
EmbedContentProvider | 1 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders .EmbedContentProvider |
Statistics
Stat | Depth of inheritance |
---|---|
Sum: | 9 |
Average: | 1 |
Minimum: | 1 |
Maximum: | 1 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Types name should begin with an Upper character |
warnif count > 0 from t in JustMyCode.Types where
// The name of a type should begin with an Upper letter.
!t.SimpleNameLike (@"^[A-Z]") &&
// Except if it is generated by compiler or ...
!t.IsSpecialName &&
!t.IsGeneratedByCompiler
select new { t, t.NbLinesOfCode }View Code Query or Rule Body
2 types matched
types | # lines of code (LOC) | Full Name |
---|---|---|
_Default | 0 | Microsoft.AspNet.SignalR.Samples ._Default |
_Default | 13 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 13 |
Average: | 6.5 |
Minimum: | 0 |
Maximum: | 13 |
Standard deviation: | 6.5 |
Variance: | 42.25 |
![]() | Rule warning: Methods name should begin with an Upper character |
warnif count > 0 from m in JustMyCode.Methods where
!m.NameLike (@"^[A-Z]") &&
!m.IsSpecialName &&
!m.IsGeneratedByCompiler
select m
// The name of a regular method should
// begin with an Upper letter.View Code Query or Rule Body
17 methods matched
methods | Full Name |
---|---|
send() | Microsoft.AspNet.SignalR.Tests .IBasicClient.send() |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubFacts+IClientContract.send (String) |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IClientContract .send(String) |
sendMore(Boolean,String[]) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IClientContract .sendMore(Boolean,String[]) |
sendDefault(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IClientContract .sendDefault(String) |
ping() | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IClientContract .ping() |
send(T) | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts+IAmGeneric <T>.send(T) |
ping() | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts+IAmGeneric <T>.ping() |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IDontReturnVoid OrTask.send(String) |
add(Int32,Int32) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IDontReturnVoid OrTask.add(Int32,Int32) |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveOutParamet er.send(String) |
status(String,Boolean&) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveOutParamet er.status(String,Boolean&) |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveRefParamet er.send(String) |
status(String,Boolean&) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveRefParamet er.status(String,Boolean&) |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveProperties .send(String) |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+IHaveIndexer .send(String) |
send(String) | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts+IHaveEvent .send(String) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Avoid types with name too long |
warnif count > 0 from t in Application.Types
where !t.IsGeneratedByCompiler
where t.SimpleName.Length > 35
select new { t, t.SimpleName }
View Code Query or Rule Body
3 types matched
types | SimpleName | Full Name |
---|---|---|
FallbackToLongPollingConnectionThrows | FallbackToLongPollingConnectionThrows | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnectionThrows |
SipHashBasedStringEqualityComparerFacts | SipHashBasedStringEqualityComparerFacts | Microsoft.AspNet.SignalR.Tests .SipHashBasedStringEqualityComparerFacts |
DefaultJavaScriptProxyGeneratorFacts | DefaultJavaScriptProxyGeneratorFacts | Microsoft.AspNet.SignalR.Tests.Core.Hubs .DefaultJavaScriptProxyGeneratorFacts |
Statistics
Stat | SimpleName |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid methods with name too long |
warnif count > 0 from m in Application.Methods where
!m.IsExplicitInterfaceImpl &&
!m.IsGeneratedByCompiler &&
((!m.IsSpecialName && m.SimpleName.Length > 35) ||
// Property getter/setter are prefixed with "get_" "set_" of length 4.
( m.IsSpecialName && m.SimpleName.Length - 4 > 35))
select new { m, m.SimpleName }
// The regex matches methods with name longer
// than 35 characters.
// Method Name doesn't contain the type and namespace
// prefix, FullName does.
// The regex computes the method name length from
// the beginning until the first open parenthesis
// or first lower than (for generic methods).
// Explicit Interface Implementation methods are
// discarded because their names are prefixed
// with the interface name.
View Code Query or Rule Body
277 methods matched
methods | SimpleName | Full Name |
---|---|---|
get_ScaleoutMessageBusMessagesReceivedPe rSec() | get_ScaleoutMessageBusMessagesReceivedPerSec | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager .get_ScaleoutMessageBusMessagesReceivedP erSec() |
get_ScaleoutMessageBusMessagesReceivedPe rSec() | get_ScaleoutMessageBusMessagesReceivedPerSec | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .get_ScaleoutMessageBusMessagesReceivedP erSec() |
set_ScaleoutMessageBusMessagesReceivedPe rSec(IPerformanceCounter) | set_ScaleoutMessageBusMessagesReceivedPerSec | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutMessageBusMessagesReceivedP erSec(IPerformanceCounter) |
get_Notify_GeneratesHubProxyJSFilesForHu b() | get_Notify_GeneratesHubProxyJSFilesForHub | Microsoft.AspNet.SignalR.Utils.Resources .get_Notify_GeneratesHubProxyJSFilesForH ub() |
get_Notify_InstallingPerformanceCounters () | get_Notify_InstallingPerformanceCounters | Microsoft.AspNet.SignalR.Utils.Resources .get_Notify_InstallingPerformanceCounter s() |
get_Notify_InstallSignalRPerformanceCoun ters() | get_Notify_InstallSignalRPerformanceCounters | Microsoft.AspNet.SignalR.Utils.Resources .get_Notify_InstallSignalRPerformanceCou nters() |
get_Notify_PerformanceCountersUninstalle d() | get_Notify_PerformanceCountersUninstalled | Microsoft.AspNet.SignalR.Utils.Resources .get_Notify_PerformanceCountersUninstall ed() |
get_Notify_UninstallSignalRPerformanceCo unters() | get_Notify_UninstallSignalRPerformanceCounters | Microsoft.AspNet.SignalR.Utils.Resources .get_Notify_UninstallSignalRPerformanceC ounters() |
get_DynamicComment_CallsMethodOnServerSi deDeferredPromise() | get_DynamicComment_CallsMethodOnServerSideDeferredPromise | Microsoft.AspNet.SignalR.Resources .get_DynamicComment_CallsMethodOnServerS ideDeferredPromise() |
get_Error_CallerNotAuthorizedToInvokeMet hodOn() | get_Error_CallerNotAuthorizedToInvokeMethodOn | Microsoft.AspNet.SignalR.Resources .get_Error_CallerNotAuthorizedToInvokeMe thodOn() |
get_Error_DisconnectTimeoutCannotBeConfi guredAfterKeepAlive() | get_Error_DisconnectTimeoutCannotBeConfiguredAfterKeepAlive | Microsoft.AspNet.SignalR.Resources .get_Error_DisconnectTimeoutCannotBeConf iguredAfterKeepAlive() |
get_Error_DisconnectTimeoutMustBeAtLeast SixSeconds() | get_Error_DisconnectTimeoutMustBeAtLeastSixSeconds | Microsoft.AspNet.SignalR.Resources .get_Error_DisconnectTimeoutMustBeAtLeas tSixSeconds() |
get_Error_DuplicateHubNamesInConnectionD ata() | get_Error_DuplicateHubNamesInConnectionData | Microsoft.AspNet.SignalR.Resources .get_Error_DuplicateHubNamesInConnection Data() |
get_Error_ExceptionContextCanOnlyBeModif iedOnce() | get_Error_ExceptionContextCanOnlyBeModifiedOnce | Microsoft.AspNet.SignalR.Resources .get_Error_ExceptionContextCanOnlyBeModi fiedOnce() |
get_Error_HubProgressOnlyReportableBefor eMethodReturns() | get_Error_HubProgressOnlyReportableBeforeMethodReturns | Microsoft.AspNet.SignalR.Resources .get_Error_HubProgressOnlyReportableBefo reMethodReturns() |
get_Error_KeepAliveMustBeGreaterThanTwoS econds() | get_Error_KeepAliveMustBeGreaterThanTwoSeconds | Microsoft.AspNet.SignalR.Resources .get_Error_KeepAliveMustBeGreaterThanTwo Seconds() |
get_Error_KeepAliveMustBeNoMoreThanAThir dOfTheDisconnectTimeout() | get_Error_KeepAliveMustBeNoMoreThanAThirdOfTheDisconnectTimeout | Microsoft.AspNet.SignalR.Resources .get_Error_KeepAliveMustBeNoMoreThanAThi rdOfTheDisconnectTimeout() |
get_Error_MethodCouldNotBeResolvedCandid ates() | get_Error_MethodCouldNotBeResolvedCandidates | Microsoft.AspNet.SignalR.Resources .get_Error_MethodCouldNotBeResolvedCandi dates() |
get_Error_MethodLevelOutgoingAuthorizati on() | get_Error_MethodLevelOutgoingAuthorization | Microsoft.AspNet.SignalR.Resources .get_Error_MethodLevelOutgoingAuthorizat ion() |
get_Error_MultipleActivatorsAreaRegister edCallGetServices() | get_Error_MultipleActivatorsAreaRegisteredCallGetServices | Microsoft.AspNet.SignalR.Resources .get_Error_MultipleActivatorsAreaRegiste redCallGetServices() |
get_Error_ProtocolErrorMissingConnection Token() | get_Error_ProtocolErrorMissingConnectionToken | Microsoft.AspNet.SignalR.Resources .get_Error_ProtocolErrorMissingConnectio nToken() |
get_Error_UnableToAddModulePiplineAlread yInvoked() | get_Error_UnableToAddModulePiplineAlreadyInvoked | Microsoft.AspNet.SignalR.Resources .get_Error_UnableToAddModulePiplineAlrea dyInvoked() |
get_Error_UsingHubInstanceNotCreatedUnsu pported() | get_Error_UsingHubInstanceNotCreatedUnsupported | Microsoft.AspNet.SignalR.Resources .get_Error_UsingHubInstanceNotCreatedUns upported() |
get_ScaleoutMessageBusMessagesReceivedPe rSec() | get_ScaleoutMessageBusMessagesReceivedPerSec | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager .get_ScaleoutMessageBusMessagesReceivedP erSec() |
get_ScaleoutMessageBusMessagesReceivedPe rSec() | get_ScaleoutMessageBusMessagesReceivedPerSec | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .get_ScaleoutMessageBusMessagesReceivedP erSec() |
set_ScaleoutMessageBusMessagesReceivedPe rSec(IPerformanceCounter) | set_ScaleoutMessageBusMessagesReceivedPerSec | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutMessageBusMessagesReceivedP erSec(IPerformanceCounter) |
IsValidJavaScriptIdentifierStartChar (Char) | IsValidJavaScriptIdentifierStartChar | Microsoft.AspNet.SignalR.Json .JsonUtility .IsValidJavaScriptIdentifierStartChar (Char) |
IsValidJavaScriptIdenfitierNonStartChar (Char) | IsValidJavaScriptIdenfitierNonStartChar | Microsoft.AspNet.SignalR.Json .JsonUtility .IsValidJavaScriptIdenfitierNonStartChar (Char) |
EnsureIISExpressCompressionDirectory() | EnsureIISExpressCompressionDirectory | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .EnsureIISExpressCompressionDirectory() |
ClientGroupsSyncWithServerGroupsOnReconn ectLongPolling() | ClientGroupsSyncWithServerGroupsOnReconnectLongPolling | Microsoft.AspNet.SignalR.Stress .StressRuns .ClientGroupsSyncWithServerGroupsOnRecon nectLongPolling() |
MarkActiveStopsConnectionIfCalledAfterEx tendedPeriod(HostType,TransportType ,MessageBusType) | MarkActiveStopsConnectionIfCalledAfterExtendedPeriod | Microsoft.AspNet.SignalR.Tests .ConnectionFacts .MarkActiveStopsConnectionIfCalledAfterE xtendedPeriod(HostType,TransportType ,MessageBusType) |
ReconnectExceedingReconnectWindowDisconn ectsWithFastBeatInterval(HostType ,TransportType,MessageBusType) | ReconnectExceedingReconnectWindowDisconnectsWithFastBeatInterval | Microsoft.AspNet.SignalR.Tests .ConnectionFacts .ReconnectExceedingReconnectWindowDiscon nectsWithFastBeatInterval(HostType ,TransportType,MessageBusType) |
ReconnectExceedingReconnectWindowDisconn ects(HostType,TransportType ,MessageBusType) | ReconnectExceedingReconnectWindowDisconnects | Microsoft.AspNet.SignalR.Tests .ConnectionFacts .ReconnectExceedingReconnectWindowDiscon nects(HostType,TransportType ,MessageBusType) |
WebSocketsTransportFailsIfOnConnectedThr ows() | WebSocketsTransportFailsIfOnConnectedThrows | Microsoft.AspNet.SignalR.Tests .ConnectionFacts .WebSocketsTransportFailsIfOnConnectedTh rows() |
TransportConnectTimeoutDoesNotAddupOverN egotiateRequests() | TransportConnectTimeoutDoesNotAddupOverNegotiateRequests | Microsoft.AspNet.SignalR.Tests .ConnectionFacts .TransportConnectTimeoutDoesNotAddupOver NegotiateRequests() |
ConnectionFailsToStartWithInvalidOldProt ocol(String,HostType,TransportType ,MessageBusType) | ConnectionFailsToStartWithInvalidOldProtocol | Microsoft.AspNet.SignalR.Tests .ConnectionFacts .ConnectionFailsToStartWithInvalidOldPro tocol(String,HostType,TransportType ,MessageBusType) |
ConnectionFunctionsCorrectlyAfterCalling StartMutlipleTimes(HostType ,TransportType,MessageBusType) | ConnectionFunctionsCorrectlyAfterCallingStartMutlipleTimes | Microsoft.AspNet.SignalR.Tests .ConnectionFacts .ConnectionFunctionsCorrectlyAfterCallin gStartMutlipleTimes(HostType ,TransportType,MessageBusType) |
WebSocketTransportDoesntHangIfConnectRet urnsCancelledTask() | WebSocketTransportDoesntHangIfConnectReturnsCancelledTask | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .WebSocketTransportDoesntHangIfConnectRe turnsCancelledTask() |
WebSocketTransportDoesntHangIfConnectRet urnsFaultedTask() | WebSocketTransportDoesntHangIfConnectReturnsFaultedTask | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .WebSocketTransportDoesntHangIfConnectRe turnsFaultedTask() |
RunWebSocketTransportWithConnectTask (Func<Task>) | RunWebSocketTransportWithConnectTask | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .RunWebSocketTransportWithConnectTask (Func<Task>) |
ConnectionFailsStartOnMultipleTransportT imeouts(HostType,TransportType ,MessageBusType) | ConnectionFailsStartOnMultipleTransportTimeouts | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .ConnectionFailsStartOnMultipleTransport Timeouts(HostType,TransportType ,MessageBusType) |
InitMessageReceivedPriorToStartCompletio n(HostType,TransportType,MessageBusType) | InitMessageReceivedPriorToStartCompletion | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .InitMessageReceivedPriorToStartCompleti on(HostType,TransportType,MessageBusType ) |
TransportsQueueIncomingMessagesCorrectly (HostType,TransportType,MessageBusType) | TransportsQueueIncomingMessagesCorrectly | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .TransportsQueueIncomingMessagesCorrectl y(HostType,TransportType,MessageBusType) |
ConnectionErrorCapturesExceptionsThrownI nClientHubMethod(HostType,TransportType ,MessageBusType) | ConnectionErrorCapturesExceptionsThrownInClientHubMethod | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .ConnectionErrorCapturesExceptionsThrown InClientHubMethod(HostType,TransportType ,MessageBusType) |
ClientCallbackInvalidNumberOfArgumentsEx ceptionThrown(HostType,TransportType) | ClientCallbackInvalidNumberOfArgumentsExceptionThrown | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .ClientCallbackInvalidNumberOfArgumentsE xceptionThrown(HostType,TransportType) |
ClientCallbackWithFewerArgumentsDoesNotT hrow(HostType,TransportType) | ClientCallbackWithFewerArgumentsDoesNotThrow | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .ClientCallbackWithFewerArgumentsDoesNot Throw(HostType,TransportType) |
ClientCallbackArgumentTypeMismatchExcept ionThrown(HostType,TransportType) | ClientCallbackArgumentTypeMismatchExceptionThrown | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .ClientCallbackArgumentTypeMismatchExcep tionThrown(HostType,TransportType) |
WaitingOnHubInvocationDoesNotDeadlock (HostType,TransportType) | WaitingOnHubInvocationDoesNotDeadlock | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .WaitingOnHubInvocationDoesNotDeadlock (HostType,TransportType) |
CallingStopAfterAwaitingInvocationReturn sFast(HostType,TransportType) | CallingStopAfterAwaitingInvocationReturnsFast | Microsoft.AspNet.SignalR.Tests .HubProxyFacts .CallingStopAfterAwaitingInvocationRetur nsFast(HostType,TransportType) |
PollingRequestHandlerDoesNotPollAfterClo se() | PollingRequestHandlerDoesNotPollAfterClose | Microsoft.AspNet.SignalR.Tests .LongPollingFacts .PollingRequestHandlerDoesNotPollAfterCl ose() |
PollingRequestHandlerDoesNotPollAfterClo seMidRequest() | PollingRequestHandlerDoesNotPollAfterCloseMidRequest | Microsoft.AspNet.SignalR.Tests .LongPollingFacts .PollingRequestHandlerDoesNotPollAfterCl oseMidRequest() |
ClientCanReceiveMessagesOver64KBViaWebSo ckets(HostType,TransportType) | ClientCanReceiveMessagesOver64KBViaWebSockets | Microsoft.AspNet.SignalR.Tests .WebSocketFacts .ClientCanReceiveMessagesOver64KBViaWebS ockets(HostType,TransportType) |
ServerCannotReceiveMessagesOver64KBViaWe bSockets(HostType,TransportType) | ServerCannotReceiveMessagesOver64KBViaWebSockets | Microsoft.AspNet.SignalR.Tests .WebSocketFacts .ServerCannotReceiveMessagesOver64KBViaW ebSockets(HostType,TransportType) |
MaxIncomingWebSocketMessageSizeCanBeDisa bled(HostType,TransportType) | MaxIncomingWebSocketMessageSizeCanBeDisabled | Microsoft.AspNet.SignalR.Tests .WebSocketFacts .MaxIncomingWebSocketMessageSizeCanBeDis abled(HostType,TransportType) |
MaxIncomingWebSocketMessageSizeCanBeIncr eased(HostType,TransportType) | MaxIncomingWebSocketMessageSizeCanBeIncreased | Microsoft.AspNet.SignalR.Tests .WebSocketFacts .MaxIncomingWebSocketMessageSizeCanBeInc reased(HostType,TransportType) |
MaxIncomingWebSocketMessageSizeCanBeRedu ced(HostType,TransportType) | MaxIncomingWebSocketMessageSizeCanBeReduced | Microsoft.AspNet.SignalR.Tests .WebSocketFacts .MaxIncomingWebSocketMessageSizeCanBeRed uced(HostType,TransportType) |
SendingDuringWebSocketReconnectFails (HostType,TransportType) | SendingDuringWebSocketReconnectFails | Microsoft.AspNet.SignalR.Tests .WebSocketFacts .SendingDuringWebSocketReconnectFails (HostType,TransportType) |
FailedWriteCompletesRequestAfterDisconne ctTimeout() | FailedWriteCompletesRequestAfterDisconnectTimeout | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .FailedWriteCompletesRequestAfterDisconn ectTimeout() |
DisconnectFiresForPersistentConnectionWh enClientCallsStop() | DisconnectFiresForPersistentConnectionWhenClientCallsStop | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .DisconnectFiresForPersistentConnectionW henClientCallsStop() |
DisconnectFiresForPersistentConnectionWh enClientDisconnects() | DisconnectFiresForPersistentConnectionWhenClientDisconnects | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .DisconnectFiresForPersistentConnectionW henClientDisconnects() |
DisconnectFiresForHubsWhenClientCallsSto p() | DisconnectFiresForHubsWhenClientCallsStop | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .DisconnectFiresForHubsWhenClientCallsSt op() |
DisconnectFiresForHubsWhenClientDisconne cts() | DisconnectFiresForHubsWhenClientDisconnects | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .DisconnectFiresForHubsWhenClientDisconn ects() |
FarmDisconnectRaisesUncleanDisconnects() | FarmDisconnectRaisesUncleanDisconnects | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .FarmDisconnectRaisesUncleanDisconnects( ) |
ConnectionsWithTheSameConnectionIdSSEClo seGracefully() | ConnectionsWithTheSameConnectionIdSSECloseGracefully | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .ConnectionsWithTheSameConnectionIdSSECl oseGracefully() |
ConnectionsWithTheSameConnectionIdLongPo llingCloseGracefully() | ConnectionsWithTheSameConnectionIdLongPollingCloseGracefully | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .ConnectionsWithTheSameConnectionIdLongP ollingCloseGracefully() |
SendToClientsFromOutsideOfConnection() | SendToClientsFromOutsideOfConnection | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync.SendToClientsFromOutsideOfConnection () |
UnableToConnectToProtectedConnection (HostType,TransportType,MessageBusType) | UnableToConnectToProtectedConnection | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync.UnableToConnectToProtectedConnection (HostType,TransportType,MessageBusType) |
GroupCanBeAddedAndMessagedOnConnected (HostType,TransportType,MessageBusType) | GroupCanBeAddedAndMessagedOnConnected | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .GroupCanBeAddedAndMessagedOnConnected (HostType,TransportType,MessageBusType) |
SendCanBeCalledAfterStateChangedEvent (HostType,TransportType,MessageBusType) | SendCanBeCalledAfterStateChangedEvent | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .SendCanBeCalledAfterStateChangedEvent (HostType,TransportType,MessageBusType) |
GroupsRejoinedWhenOnRejoiningGroupsOverr idden(HostType,TransportType ,MessageBusType) | GroupsRejoinedWhenOnRejoiningGroupsOverridden | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GroupTest .GroupsRejoinedWhenOnRejoiningGroupsOver ridden(HostType,TransportType ,MessageBusType) |
SendToSpecificClientFromOutsideOfHub() | SendToSpecificClientFromOutsideOfHub | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts .SendToSpecificClientFromOutsideOfHub() |
SendToSpecificClientsFromOutsideOfHub() | SendToSpecificClientsFromOutsideOfHub | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts .SendToSpecificClientsFromOutsideOfHub() |
UnauthenticatedUserCanReceiveHubMessages ByDefault() | UnauthenticatedUserCanReceiveHubMessagesByDefault | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCanReceiveHubMessage sByDefault() |
AuthenticatedUserCanReceiveHubMessagesBy Default() | AuthenticatedUserCanReceiveHubMessagesByDefault | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanReceiveHubMessagesB yDefault() |
UnauthenticatedUserCanInvokeMethodsByDef ault() | UnauthenticatedUserCanInvokeMethodsByDefault | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCanInvokeMethodsByDe fault() |
AuthenticatedUserCanInvokeMethodsByDefau lt() | AuthenticatedUserCanInvokeMethodsByDefault | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanInvokeMethodsByDefa ult() |
UnauthenticatedUserCannotReceiveHubMessa gesWhenAuthenticationRequiredGlobally() | UnauthenticatedUserCannotReceiveHubMessagesWhenAuthenticationRequiredGlobally | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotReceiveHubMess agesWhenAuthenticationRequiredGlobally() |
AuthenticatedUserCanReceiveHubMessagesWh enAuthenticationRequiredGlobally() | AuthenticatedUserCanReceiveHubMessagesWhenAuthenticationRequiredGlobally | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanReceiveHubMessagesW henAuthenticationRequiredGlobally() |
UnauthenticatedUserCannotInvokeMethodsWh enAuthenticationRequiredGlobally() | UnauthenticatedUserCannotInvokeMethodsWhenAuthenticationRequiredGlobally | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotInvokeMethodsW henAuthenticationRequiredGlobally() |
AuthenticatedUserCanInvokeMethodsWhenAut henticationRequiredGlobally() | AuthenticatedUserCanInvokeMethodsWhenAuthenticationRequiredGlobally | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanInvokeMethodsWhenAu thenticationRequiredGlobally() |
UnauthenticatedUserCannotReceiveHubMessa gesFromAuthorizedHubs() | UnauthenticatedUserCannotReceiveHubMessagesFromAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotReceiveHubMess agesFromAuthorizedHubs() |
AuthenticatedUserCanReceiveHubMessagesFr omAuthorizedHubs() | AuthenticatedUserCanReceiveHubMessagesFromAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanReceiveHubMessagesF romAuthorizedHubs() |
UnauthenticatedUserCannotInvokeMethodsIn AuthorizedHubs() | UnauthenticatedUserCannotInvokeMethodsInAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotInvokeMethodsI nAuthorizedHubs() |
AuthenticatedUserCanInvokeMethodsInAutho rizedHubs() | AuthenticatedUserCanInvokeMethodsInAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanInvokeMethodsInAuth orizedHubs() |
UnauthenticatedUserCannotReceiveHubMessa gesFromHubsInheritingFromAuthorizedHubs( ) | UnauthenticatedUserCannotReceiveHubMessagesFromHubsInheritingFromAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotReceiveHubMess agesFromHubsInheritingFromAuthorizedHubs () |
AuthenticatedUserCanReceiveHubMessagesFr omHubsInheritingFromAuthorizedHubs() | AuthenticatedUserCanReceiveHubMessagesFromHubsInheritingFromAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanReceiveHubMessagesF romHubsInheritingFromAuthorizedHubs() |
UnauthenticatedUserCannotInvokeMethodsIn HubsInheritingFromAuthorizedHubs() | UnauthenticatedUserCannotInvokeMethodsInHubsInheritingFromAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotInvokeMethodsI nHubsInheritingFromAuthorizedHubs() |
AuthenticatedUserCanInvokeMethodsInHubsI nheritingFromAuthorizedHubs() | AuthenticatedUserCanInvokeMethodsInHubsInheritingFromAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedUserCanInvokeMethodsInHubs InheritingFromAuthorizedHubs() |
UnauthenticatedUserCannotReceiveHubMessa gesFromHubsAuthorizedWithRoles() | UnauthenticatedUserCannotReceiveHubMessagesFromHubsAuthorizedWithRoles | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotReceiveHubMess agesFromHubsAuthorizedWithRoles() |
UnauthenticatedUserCannotInvokeMethodsIn HubsAuthorizedWithRoles() | UnauthenticatedUserCannotInvokeMethodsInHubsAuthorizedWithRoles | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotInvokeMethodsI nHubsAuthorizedWithRoles() |
UnauthorizedUserCannotReceiveHubMessages FromHubsAuthorizedWithRoles() | UnauthorizedUserCannotReceiveHubMessagesFromHubsAuthorizedWithRoles | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthorizedUserCannotReceiveHubMessage sFromHubsAuthorizedWithRoles() |
UnauthorizedUserCannotInvokeMethodsInHub sAuthorizedWithRoles() | UnauthorizedUserCannotInvokeMethodsInHubsAuthorizedWithRoles | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthorizedUserCannotInvokeMethodsInHu bsAuthorizedWithRoles() |
AuthenticatedAndAuthorizedUserCanReceive HubMessagesFromHubsAuthorizedWithRoles() | AuthenticatedAndAuthorizedUserCanReceiveHubMessagesFromHubsAuthorizedWithRoles | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedAndAuthorizedUserCanReceiv eHubMessagesFromHubsAuthorizedWithRoles( ) |
AuthenticatedAndAuthorizedUserCanInvokeM ethodsInHubsAuthorizedWithRoles() | AuthenticatedAndAuthorizedUserCanInvokeMethodsInHubsAuthorizedWithRoles | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedAndAuthorizedUserCanInvoke MethodsInHubsAuthorizedWithRoles() |
UnauthorizedUserCannotReceiveHubMessages FromHubsAuthorizedSpecifyingUserAndRole( ) | UnauthorizedUserCannotReceiveHubMessagesFromHubsAuthorizedSpecifyingUserAndRole | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthorizedUserCannotReceiveHubMessage sFromHubsAuthorizedSpecifyingUserAndRole () |
UnauthorizedUserCannotInvokeMethodsInHub sAuthorizedSpecifyingUserAndRole() | UnauthorizedUserCannotInvokeMethodsInHubsAuthorizedSpecifyingUserAndRole | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthorizedUserCannotInvokeMethodsInHu bsAuthorizedSpecifyingUserAndRole() |
AuthenticatedAndAuthorizedUserCanReceive HubMessagesFromHubsAuthorizedSpecifyingU serAndRole() | AuthenticatedAndAuthorizedUserCanReceiveHubMessagesFromHubsAuthorizedSpecifyingUserAndRole | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedAndAuthorizedUserCanReceiv eHubMessagesFromHubsAuthorizedSpecifying UserAndRole() |
AuthenticatedAndAuthorizedUserCanInvokeM ethodsInHubsAuthorizedSpecifyingUserAndR ole() | AuthenticatedAndAuthorizedUserCanInvokeMethodsInHubsAuthorizedSpecifyingUserAndRole | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .AuthenticatedAndAuthorizedUserCanInvoke MethodsInHubsAuthorizedSpecifyingUserAnd Role() |
UnauthenticatedUserCanReceiveHubMessages FromIncomingAuthorizedHubs() | UnauthenticatedUserCanReceiveHubMessagesFromIncomingAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCanReceiveHubMessage sFromIncomingAuthorizedHubs() |
UnauthenticatedUserCannotInvokeMethodsIn IncomingAuthorizedHubs() | UnauthenticatedUserCannotInvokeMethodsInIncomingAuthorizedHubs | Microsoft.AspNet.SignalR.Tests .HubAuthFacts .UnauthenticatedUserCannotInvokeMethodsI nIncomingAuthorizedHubs() |
Statistics
Stat | SimpleName |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid fields with name too long |
warnif count > 0 from f in Application.Fields where
!f.IsGeneratedByCompiler &&
f.Name.Length > 35
select f
// The regex matches fields with name longer
// than 35 characters.
// Field Name doesn't contain the type and
// namespace prefix, FullName does.
View Code Query or Rule Body
5 fields matched
fields | Full Name |
---|---|
_minimumKeepAlivesPerDisconnectTimeout | Microsoft.AspNet.SignalR.Configuration .DefaultConfigurationManager ._minimumKeepAlivesPerDisconnectTimeout |
BeforeCancellationTokenCallbackRegistere d | Microsoft.AspNet.SignalR.Transports .ForeverTransport .BeforeCancellationTokenCallbackRegister ed |
AspNetServerVariableWebSocketVersion | Microsoft.AspNet.SignalR.Owin .WebSocketConstants .AspNetServerVariableWebSocketVersion |
SignalRConnectionsReconnectedCounter | Microsoft.AspNet.SignalR.Crank .PerformanceCounters .SignalRConnectionsReconnectedCounter |
SignalRConnectionsDisconnectedCounter | Microsoft.AspNet.SignalR.Crank .PerformanceCounters .SignalRConnectionsDisconnectedCounter |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Critical Rule warning: Avoid having different types with same name |
// Such practice typically creates confusion,
// and type naming collision inside a source file.
warnif count > 0
// This rule matches also collisions between
// application and third-party types sharing a same name.
let groups = JustMyCode.Types.Union(ThirdParty.Types)
// Discard nested types, whose name is
// prefixed with the parent type name.
.Where(t => !t.IsNested)
// Group types by name.
.GroupBy(t => t.Name)
from @group in groups
where @group.Count() > 1
// Let's see if types with the same name are declared
// in different namespaces.
// (t.FullName is {namespaceName}.{typeName} )
let groupsFullName = @group.GroupBy(t => t.FullName)
where groupsFullName.Count() > 1
// If several types with same name are declared in different namespaces
// eliminate the case where all types are declared in third-party assemblies.
let types= groupsFullName.SelectMany(g => g)
where types.Any(t => !t.IsThirdParty)
// Uncomment this line, to only gets naming collision involving
// both application and third-party types.
// && types.Any(t => t.IsThirdParty)
orderby types.Count() descending
select new { t = types.First(),
// In the 'types' column, make sure to group matched types
// by parent assemblies and parent namespaces, to get a result
// more readable.
types
}View Code Query or Rule Body
21 types matched
types | types | Full Name |
---|---|---|
Default | 12 types | Microsoft.AspNet.SignalR.LoadTestHarness .Default |
Program | 6 types | Microsoft.AspNet.SignalR.Client.Samples .Program |
ConnectionFacts | 4 types | Microsoft.AspNet.SignalR.Tests .ConnectionFacts |
Startup | 3 types | Microsoft.AspNet.SignalR.LoadTestHarness .Startup |
WebSocketFacts | 3 types | Microsoft.AspNet.SignalR.Tests .WebSocketFacts |
Command | 2 types | Microsoft.AspNet.SignalR.Utils.Command |
HubTypeExtensions | 2 types | Microsoft.AspNet.SignalR.Hubs .HubTypeExtensions |
Client | 2 types | Microsoft.AspNet.SignalR.Crank.Client |
QueryString | 2 types | Microsoft.AspNet.SignalR.LoadTestHarness .QueryString |
TestConnection | 2 types | Microsoft.AspNet.SignalR.LoadTestHarness .TestConnection |
TestHub | 2 types | Microsoft.AspNet.SignalR.LoadTestHarness .TestHub |
EmptyProtectedData | 2 types | Microsoft.AspNet.SignalR.Tests .EmptyProtectedData |
_Default | 2 types | Microsoft.AspNet.SignalR.Samples ._Default |
User | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.User |
Chat | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat |
HubProxyFacts | 2 types | Microsoft.AspNet.SignalR.Tests .HubProxyFacts |
KeepAliveFacts | 2 types | Microsoft.AspNet.SignalR.Tests .KeepAliveFacts |
HubFacts | 2 types | Microsoft.AspNet.SignalR.Tests.HubFacts |
HubProgressFacts | 2 types | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.HubProgressFacts |
TransportFacts | 2 types | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts |
Activator | 2 types | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .Activator |
Statistics
Stat | types |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid naming types and namespaces with the same identifier |
// Not only this can provoke compiler resolution collision,
// but also, this makes code less maintainable because
// concepts are not concisely identified.
warnif count > 0
let hashsetShortNames = Namespaces.Where(n => n.Name.Length > 0).Select(n => n.SimpleName).ToHashSet()
from t in JustMyCode.Types
where hashsetShortNames.Contains(t.Name)
select new { t, namespaces = Namespaces.Where(n => n.SimpleName == t.Name) }View Code Query or Rule Body
10 types matched
types | namespaces | Full Name |
---|---|---|
DemoHub | 3 namespaces | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
MouseTracking | 1 namespace | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking.MouseTracking |
ShapeShare | 1 namespace | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare |
DemoHub | 3 namespaces | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
MessageLoops | 1 namespace | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.MessageLoops.MessageLoops |
Chat | 1 namespace | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat |
DrawingPad | 2 namespaces | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad.DrawingPad |
HubConnectionAPI | 2 namespaces | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.HubConnectionAPI .HubConnectionAPI |
DemoHub | 3 namespaces | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
Chat | 1 namespace | Microsoft.AspNet.Owin.Samples.Hubs.Chat |
Statistics
Stat | namespaces |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods prefixed with 'Try' should return a boolean |
// and such TryXXX method can eventually have out parameters to return results.
// Get inspired from the API design of:
// System.Int32.TryParse(int,out string):bool
warnif count > 0
from m in Application.Methods where
m.SimpleNameLike("^Try") &&
m.ReturnType != null &&
m.ReturnType.FullName != "System.Boolean"
select new { m, m.ReturnType }View Code Query or Rule Body
3 methods matched
methods | ReturnType | Full Name |
---|---|---|
TryDispose() | Void | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+DiposeCance llationState.TryDispose() |
TryInvoke() | Void | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+Cancellatio nCallbackWrapper.TryInvoke() |
TryGetClient(Boolean,Int32,IHttpClient&) | IDisposable | Microsoft.AspNet.SignalR.Stress .StressRuns.TryGetClient(Boolean,Int32 ,IHttpClient&) |
Statistics
Stat | ReturnType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
060
Source Files Organization |
|
![]() | Rule warning: Avoid referencing source file out of Visual Studio project directory |
// A source file located outside of the VS project directory can be add through:
// > Add > Existing Items... > Add As Link
//
// Don't use this possibility to share code accross several assemblies.
// This provoques type duplication at binary level.
// Hence maintainability is degraded and subtle versioning bug can appear.
// Prefer sharing types through classic libraries.
//
// This practice can be tolerated for certain types shared accross executable assemblies.
// Such type can be responsible for particular and not shareable startup related concerns,
// such as registering custom assembly resolving handlers or
// checking the .NET Framework version before loading any custom library.
warnif count > 0
from a in Application.Assemblies
where a.VisualStudioProjectFilePath != null
let vsProjDirPathLower = a.VisualStudioProjectFilePath.ParentDirectoryPath.ToString().ToLower()
from t in a.ChildTypes
where JustMyCode.Contains(t) && t.SourceFileDeclAvailable
from decl in t.SourceDecls
let sourceFilePathLower = decl.SourceFile.FilePath.ToString().ToLower()
where sourceFilePathLower .IndexOf(vsProjDirPathLower) != 0
select new { t, sourceFilePathLower , projectFilePath = a.VisualStudioProjectFilePath.ToString() }View Code Query or Rule Body
59 types matched
types | sourceFilePathLower | projectFilePath | Full Name |
---|---|---|---|
CommonClient | c:\projects\signalr-master\signalr-master\samples\common\commonclient.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.Samples\Microsoft.AspNet.SignalR.Client.Samples.csproj | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
AssemblyMetadataAttribute | c:\projects\signalr-master\signalr-master\src\common\commonassemblyinfo.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Microsoft.AspNet.SignalR.Utils.csproj | System.Reflection .AssemblyMetadataAttribute |
IPerformanceCounter | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\iperformancecounter.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Microsoft.AspNet.SignalR.Utils.csproj | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounter |
IPerformanceCounterManager | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\iperformancecountermanager.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Microsoft.AspNet.SignalR.Utils.csproj | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
NoOpPerformanceCounter | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\noopperformancecounter.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Microsoft.AspNet.SignalR.Utils.csproj | Microsoft.AspNet.SignalR.Infrastructure .NoOpPerformanceCounter |
PerformanceCounterAttribute | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\performancecounterattribute.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Microsoft.AspNet.SignalR.Utils.csproj | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute |
PerformanceCounterManager | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\performancecountermanager.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Microsoft.AspNet.SignalR.Utils.csproj | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterWrapper | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\performancecounterwrapper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Microsoft.AspNet.SignalR.Utils.csproj | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper |
StreamExtensions | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.client\infrastructure\streamextensions.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Microsoft.AspNet.SignalR.Core.csproj | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions |
TaskAsyncHelper | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\Microsoft.AspNet.SignalR.LoadTestHarness.csproj | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper+TaskRunners<T,TResult> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\Microsoft.AspNet.SignalR.LoadTestHarness.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> |
TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\Microsoft.AspNet.SignalR.LoadTestHarness.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> |
TaskAsyncHelper+TaskCache<T> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\Microsoft.AspNet.SignalR.LoadTestHarness.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T> |
HighFrequencyTimer | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\realtimebroadcast\highfrequencytimer.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\Microsoft.AspNet.SignalR.LoadTestHarness.csproj | Microsoft.AspNet.SignalR .HighFrequencyTimer |
RawConnection | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\raw\rawconnection.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.StressServer\Microsoft.AspNet.SignalR.StressServer.csproj | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection+MessageType | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\raw\rawconnection.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.StressServer\Microsoft.AspNet.SignalR.StressServer.csproj | Microsoft.AspNet.SignalR.Samples .RawConnection+MessageType |
RawConnection+Message | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\raw\rawconnection.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.StressServer\Microsoft.AspNet.SignalR.StressServer.csproj | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
NoAuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\noauthhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.NoAuthHub |
AdminAuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\adminauthhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
AuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\authhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthHub |
AuthorizeClaimsAttribute | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\authorizeclaimsattribute.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute |
HeaderAuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\headerauthhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
IncomingAuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\incomingauthhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\inheritauthhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
InvokeAuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\invokeauthhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InvokeAuthHub |
UserAndRoleAuthHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\auth\userandroleauthhub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
Status | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\connectdisconnect\status.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Status |
DemoHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\demohub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
DemoHub+Person | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\demohub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\demohub.cs | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Microsoft.AspNet.SignalR.Tests.Common.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
TaskAsyncHelper | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.ServiceBus\Microsoft.AspNet.SignalR.ServiceBus.csproj | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper+TaskRunners<T,TResult> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.ServiceBus\Microsoft.AspNet.SignalR.ServiceBus.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> |
TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.ServiceBus\Microsoft.AspNet.SignalR.ServiceBus.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> |
TaskAsyncHelper+TaskCache<T> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.ServiceBus\Microsoft.AspNet.SignalR.ServiceBus.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T> |
DisposableAction | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\disposableaction.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.ServiceBus\Microsoft.AspNet.SignalR.ServiceBus.csproj | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction |
TaskAsyncHelper | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Redis\Microsoft.AspNet.SignalR.Redis.csproj | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper+TaskRunners<T,TResult> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Redis\Microsoft.AspNet.SignalR.Redis.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> |
TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Redis\Microsoft.AspNet.SignalR.Redis.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> |
TaskAsyncHelper+TaskCache<T> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Redis\Microsoft.AspNet.SignalR.Redis.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T> |
TaskAsyncHelper | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.SqlServer\Microsoft.AspNet.SignalR.SqlServer.csproj | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper+TaskRunners<T,TResult> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.SqlServer\Microsoft.AspNet.SignalR.SqlServer.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> |
TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.SqlServer\Microsoft.AspNet.SignalR.SqlServer.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> |
TaskAsyncHelper+TaskCache<T> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.SqlServer\Microsoft.AspNet.SignalR.SqlServer.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T> |
TaskAsyncHelper | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\Microsoft.AspNet.SignalR.Stress.csproj | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper+TaskRunners<T,TResult> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\Microsoft.AspNet.SignalR.Stress.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> |
TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\Microsoft.AspNet.SignalR.Stress.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> |
TaskAsyncHelper+TaskCache<T> | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\taskasynchelper.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\Microsoft.AspNet.SignalR.Stress.csproj | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T> |
DisposableAction | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\disposableaction.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\Microsoft.AspNet.SignalR.Stress.csproj | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction |
TaskQueue | c:\projects\signalr-master\signalr-master\src\microsoft.aspnet.signalr.core\infrastructure\taskqueue.cs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\Microsoft.AspNet.SignalR.Stress.csproj | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue |
AuthenticatedEchoConnection | c:\projects\signalr-master\signalr-master\tests\microsoft.aspnet.signalr.tests.common\connections\authenticatedechoconnection.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Microsoft.AspNet.SignalR.Samples.csproj | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
RawConnection | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\raw\rawconnection.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection+MessageType | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\raw\rawconnection.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples .RawConnection+MessageType |
RawConnection+Message | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\raw\rawconnection.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
DemoHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\demohub.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
DemoHub+Person | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\demohub.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\demohub.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
TypedDemoHub | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\typeddemohub.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub |
IClient | c:\projects\signalr-master\signalr-master\samples\microsoft.aspnet.signalr.samples\hubs\demohub\typeddemohub.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\Microsoft.AspNet.SelfHost.Samples.csproj | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.IClient |
CommonClient | c:\projects\signalr-master\signalr-master\samples\common\commonclient.cs | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples.csproj | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
Statistics
Stat | sourceFilePathLower | projectFilePath |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Avoid duplicating a type definition across assemblies |
// Prefer to factorize type definition in a library assembly.
warnif count > 0
let groups = Application.Types
.Where(t => !t.IsGeneratedByCompiler)
.GroupBy(t => t.FullName)
from @group in groups
where @group.Count() > 1
select new { t = @group.First(),
// In the 'types' column, make sure to group matched types by parent assemblies.
typesDefs = @group.ToArray()
}View Code Query or Rule Body
38 types matched
types | typesDefs | Full Name |
---|---|---|
CommonClient | 2 types | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
IPerformanceCounter | 2 types | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounter |
IPerformanceCounterManager | 2 types | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
NoOpPerformanceCounter | 2 types | Microsoft.AspNet.SignalR.Infrastructure .NoOpPerformanceCounter |
PerformanceCounterAttribute | 2 types | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute |
PerformanceCounterManager | 2 types | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterWrapper | 2 types | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper |
RequestExtensions | 2 types | Microsoft.AspNet.SignalR .RequestExtensions |
DependencyResolverExtensions | 4 types | Microsoft.AspNet.SignalR .DependencyResolverExtensions |
TaskAsyncHelper | 6 types | Microsoft.AspNet.SignalR.TaskAsyncHelper |
TaskAsyncHelper+TaskRunners<T,TResult> | 6 types | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> |
TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> | 6 types | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3> |
TaskAsyncHelper+TaskCache<T> | 6 types | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskCache<T> |
DisposableAction | 3 types | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction |
TaskQueue | 2 types | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue |
HighFrequencyTimer | 2 types | Microsoft.AspNet.SignalR .HighFrequencyTimer |
RawConnection | 3 types | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection+MessageType | 3 types | Microsoft.AspNet.SignalR.Samples .RawConnection+MessageType |
RawConnection+Message | 3 types | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
NoAuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.NoAuthHub |
AdminAuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
AuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthHub |
AuthorizeClaimsAttribute | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute |
HeaderAuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
IncomingAuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
InvokeAuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InvokeAuthHub |
UserAndRoleAuthHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
Status | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Status |
DemoHub | 3 types | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
DemoHub+Person | 3 types | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Person |
DemoHub+Address | 3 types | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub+Address |
AuthenticatedEchoConnection | 2 types | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
TypedDemoHub | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub |
IClient | 2 types | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.IClient |
PersistentConnectionFacts | 2 types | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts |
ConnectionFacts | 2 types | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts |
ConnectionFacts+Start | 2 types | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
Statistics
Stat | typesDefs |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid defining multiple types in a source file |
warnif count > 0
// Build a lookup indexed by source files, values being a sequence of types defined in the source file.
let lookup = Application.Types.Where(t =>
t.SourceFileDeclAvailable &&
// except nested types and types generated by compilers!
!t.IsGeneratedByCompiler &&
!t.IsNested)
// It could make sense to not apply this rule for enumerations.
// && !t.IsEnumeration)
// We use multi-key, since a type can be declared in multiple source files.
.ToMultiKeyLookup(t => t.SourceDecls.Select(d => d.SourceFile))
from @group in lookup where @group.Count() > 1
let sourceFile = @group.Key
// CQLinq doesn't let indexing result with sourceFile
// so we choose a typeIndex in types,
// preferably the type that has the file name.
let typeWithSourceFileName = @group.FirstOrDefault(t => t.SimpleName == sourceFile.FileNameWithoutExtension)
let typeIndex = typeWithSourceFileName ?? @group.First()
select new { typeIndex,
types = @group as IEnumerable<IType>,
sourceFile.FilePathString }View Code Query or Rule Body
35 types matched
types | types | FilePathString | Full Name |
---|---|---|---|
CommonClient | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Common\CommonClient.cs | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
IPerformanceCounter | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IPerformanceCounter.cs | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounter |
IPerformanceCounterManager | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IPerformanceCounterManager.cs | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
NoOpPerformanceCounter | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\NoOpPerformanceCounter.cs | Microsoft.AspNet.SignalR.Infrastructure .NoOpPerformanceCounter |
PerformanceCounterAttribute | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterAttribute.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute |
PerformanceCounterManager | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterManager.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterWrapper | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterWrapper.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper |
TaskAsyncHelper | 6 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\TaskAsyncHelper.cs | Microsoft.AspNet.SignalR.TaskAsyncHelper |
DisposableAction | 3 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\DisposableAction.cs | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction |
TaskQueue | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\TaskQueue.cs | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue |
HubInvocationProgress | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\HubInvocationProgress.cs | Microsoft.AspNet.SignalR.Hubs .HubInvocationProgress |
HighFrequencyTimer | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\RealtimeBroadcast\HighFrequencyTimer.cs | Microsoft.AspNet.SignalR .HighFrequencyTimer |
TestConnection | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\TestConnection.cs | Microsoft.AspNet.SignalR.LoadTestHarness .TestConnection |
RawConnection | 3 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Raw\RawConnection.cs | Microsoft.AspNet.SignalR.Samples .RawConnection |
ConcurrentCallsHub | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.StressServer\Hubs\ConcurrentCallsHub.cs | Microsoft.AspNet.SignalR.StressServer .Hubs.ConcurrentCallsHub |
HubWithGroups | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.StressServer\Hubs\HubWithGroups.cs | Microsoft.AspNet.SignalR.StressServer .Hubs.HubWithGroups |
NoAuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\NoAuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.NoAuthHub |
AdminAuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\AdminAuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
AuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\AuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthHub |
AuthorizeClaimsAttribute | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\AuthorizeClaimsAttribute.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute |
HeaderAuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\HeaderAuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
IncomingAuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\IncomingAuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\InheritAuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
InvokeAuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\InvokeAuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InvokeAuthHub |
UserAndRoleAuthHub | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Auth\UserAndRoleAuthHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
Status | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\ConnectDisconnect\Status.cs | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Status |
DemoHub | 3 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\DemoHub\DemoHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
AuthenticatedEchoConnection | 2 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Connections\AuthenticatedEchoConnection.cs | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
DateAsStringHub | 2 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\Hubs\DateAsStringHub.cs | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DateAsStringHub |
ShapeShare | 9 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\ShapeShare\ShapeShare.cs | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare |
TypedDemoHub | 4 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\DemoHub\TypedDemoHub.cs | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub |
LongPollingFacts | 2 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.FunctionalTests\Client\LongPollingFacts.cs | Microsoft.AspNet.SignalR.Tests .LongPollingFacts |
HubFacts | 4 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.FunctionalTests\Server\Hubs\HubFacts.cs | Microsoft.AspNet.SignalR.Tests.HubFacts |
App | 2 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples\obj\Debug\App.g.i.cs | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples.App |
NotAHub | 4 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests\Core\Hubs\TestHubs.cs | Microsoft.AspNet.SignalR.Tests.Core.Hubs .NotAHub |
Statistics
Stat | types | FilePathString |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Namespace name should correspond to file location |
// For a good code organization,
// do mirror the namespaces hierarchy and the source files directories tree.
warnif count > 0
from n in Application.Namespaces
// Replace dots by spaces in namespace name
let dirCorresponding = n.Name.Replace('.', ' ')
// Look at source file decl of JustMyCode type's declared in n
from t in n.ChildTypes
where JustMyCode.Contains(t) && t.SourceFileDeclAvailable
from decl in t.SourceDecls
let sourceFilePath = decl.SourceFile.FilePath.ToString()
// Replace dots and path separators by spaces in source files names
where !sourceFilePath.Replace('.',' ').Replace('\\',' ').Contains(dirCorresponding)
select new { t, dirCorresponding , sourceFilePath } View Code Query or Rule Body
312 types matched
types | dirCorresponding | sourceFilePath | Full Name |
---|---|---|---|
CommonClient | Microsoft AspNet SignalR Client Samples | c:\projects\SignalR-master\SignalR-master\samples\Common\CommonClient.cs | Microsoft.AspNet.SignalR.Client.Samples .CommonClient |
AssemblyMetadataAttribute | System Reflection | c:\projects\SignalR-master\SignalR-master\src\Common\CommonAssemblyInfo.cs | System.Reflection .AssemblyMetadataAttribute |
IPerformanceCounter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IPerformanceCounter.cs | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounter |
IPerformanceCounterManager | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IPerformanceCounterManager.cs | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
NoOpPerformanceCounter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\NoOpPerformanceCounter.cs | Microsoft.AspNet.SignalR.Infrastructure .NoOpPerformanceCounter |
PerformanceCounterAttribute | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterAttribute.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute |
PerformanceCounterManager | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterManager.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
PerformanceCounterWrapper | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterWrapper.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper |
StreamExtensions | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Client\Infrastructure\StreamExtensions.cs | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions |
IAckHandler | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IAckHandler.cs | Microsoft.AspNet.SignalR.Infrastructure .IAckHandler |
AckHandler | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\AckHandler.cs | Microsoft.AspNet.SignalR.Infrastructure .AckHandler |
AckHandler+AckInfo | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\AckHandler.cs | Microsoft.AspNet.SignalR.Infrastructure .AckHandler+AckInfo |
ArraySegmentTextReader | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\ArraySegmentTextReader.cs | Microsoft.AspNet.SignalR.Infrastructure .ArraySegmentTextReader |
BufferTextWriter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\BufferTextWriter.cs | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter |
BufferTextWriter+ChunkedWriter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\BufferTextWriter.cs | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter |
IBinaryWriter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IBinaryWriter.cs | Microsoft.AspNet.SignalR.Infrastructure .IBinaryWriter |
BinaryTextWriter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\BinaryTextWriter.cs | Microsoft.AspNet.SignalR.Infrastructure .BinaryTextWriter |
IConnectionManager | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IConnectionManager.cs | Microsoft.AspNet.SignalR.Infrastructure .IConnectionManager |
ConnectionManager | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\ConnectionManager.cs | Microsoft.AspNet.SignalR.Infrastructure .ConnectionManager |
IProtectedData | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IProtectedData.cs | Microsoft.AspNet.SignalR.Infrastructure .IProtectedData |
DataProtectionProviderProtectedData | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\DataProtectionProviderProtectedData.cs | Microsoft.AspNet.SignalR.Infrastructure .DataProtectionProviderProtectedData |
DefaultProtectedData | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\DefaultProtectedData.cs | Microsoft.AspNet.SignalR.Infrastructure .DefaultProtectedData |
MonoUtility | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\MonoUtility.cs | Microsoft.AspNet.SignalR.Infrastructure .MonoUtility |
PrincipalUserIdProvider | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PrincipalUserIdProvider.cs | Microsoft.AspNet.SignalR.Infrastructure .PrincipalUserIdProvider |
ProtocolResolver | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\ProtocolResolver.cs | Microsoft.AspNet.SignalR.Infrastructure .ProtocolResolver |
DiffPair<T> | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\DiffPair.cs | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T> |
DiffSet<T> | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\DiffSet.cs | Microsoft.AspNet.SignalR.Infrastructure .DiffSet<T> |
InterlockedHelper | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\InterlockedHelper.cs | Microsoft.AspNet.SignalR.Infrastructure .InterlockedHelper |
ListHelper<T> | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\ListHelper.cs | Microsoft.AspNet.SignalR.Infrastructure .ListHelper<T> |
PrefixHelper | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PrefixHelper.cs | Microsoft.AspNet.SignalR.Infrastructure .PrefixHelper |
Purposes | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\Purposes.cs | Microsoft.AspNet.SignalR.Infrastructure .Purposes |
SipHashBasedStringEqualityComparer | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\SipHashBasedStringEqualityComparer.cs | Microsoft.AspNet.SignalR.Infrastructure .SipHashBasedStringEqualityComparer |
DisposableAction | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\DisposableAction.cs | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction |
IPerformanceCounter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IPerformanceCounter.cs | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounter |
IPerformanceCounterManager | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IPerformanceCounterManager.cs | Microsoft.AspNet.SignalR.Infrastructure .IPerformanceCounterManager |
NoOpPerformanceCounter | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\NoOpPerformanceCounter.cs | Microsoft.AspNet.SignalR.Infrastructure .NoOpPerformanceCounter |
PerformanceCounterAttribute | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterAttribute.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute |
PerformanceCounterManager | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterManager.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
Disposer | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\Disposer.cs | Microsoft.AspNet.SignalR.Infrastructure .Disposer |
PerformanceCounterWrapper | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PerformanceCounterWrapper.cs | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterWrapper |
CancellationTokenExtensions | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\CancellationTokenExtensions.cs | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions |
CancellationTokenExtensions+DiposeCancel lationState | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\CancellationTokenExtensions.cs | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+DiposeCance llationState |
CancellationTokenExtensions+Cancellation CallbackWrapper | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\CancellationTokenExtensions.cs | Microsoft.AspNet.SignalR.Infrastructure .CancellationTokenExtensions+Cancellatio nCallbackWrapper |
SafeCancellationTokenSource | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\SafeCancellationTokenSource.cs | Microsoft.AspNet.SignalR.Infrastructure .SafeCancellationTokenSource |
SafeCancellationTokenSource+State | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\SafeCancellationTokenSource.cs | Microsoft.AspNet.SignalR.Infrastructure .SafeCancellationTokenSource+State |
TaskQueue | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\TaskQueue.cs | Microsoft.AspNet.SignalR.Infrastructure .TaskQueue |
IStringMinifier | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\IStringMinifier.cs | Microsoft.AspNet.SignalR.Infrastructure .IStringMinifier |
StringMinifier | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\StringMinifier.cs | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier |
PersistentConnectionContext | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\PersistentConnectionContext.cs | Microsoft.AspNet.SignalR.Infrastructure .PersistentConnectionContext |
ByteBuffer | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Owin\Infrastructure\ByteBuffer.cs | Microsoft.AspNet.SignalR.Infrastructure .ByteBuffer |
UrlDecoder | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Owin\Infrastructure\UrlDecoder.cs | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder |
UrlDecoder+DecoderHelper | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Owin\Infrastructure\UrlDecoder.cs | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper |
SafeSet<T> | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\SafeSet.cs | Microsoft.AspNet.SignalR.Infrastructure .SafeSet<T> |
Connection | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\Connection.cs | Microsoft.AspNet.SignalR.Infrastructure .Connection |
Connection+ReceiveContext | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\Connection.cs | Microsoft.AspNet.SignalR.Infrastructure .Connection+ReceiveContext |
ExceptionsExtensions | Microsoft AspNet SignalR Infrastructure | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Infrastructure\ExceptionsExtensions.cs | Microsoft.AspNet.SignalR.Infrastructure .ExceptionsExtensions |
ConfigurationExtensions | Microsoft AspNet SignalR Configuration | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Configuration\ConfigurationExtensions.cs | Microsoft.AspNet.SignalR.Configuration .ConfigurationExtensions |
IConfigurationManager | Microsoft AspNet SignalR Configuration | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Configuration\IConfigurationManager.cs | Microsoft.AspNet.SignalR.Configuration .IConfigurationManager |
DefaultConfigurationManager | Microsoft AspNet SignalR Configuration | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Configuration\DefaultConfigurationManager.cs | Microsoft.AspNet.SignalR.Configuration .DefaultConfigurationManager |
INameValueCollection | Microsoft AspNet SignalR Hosting | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hosting\INameValueCollection.cs | Microsoft.AspNet.SignalR.Hosting .INameValueCollection |
IResponse | Microsoft AspNet SignalR Hosting | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hosting\IResponse.cs | Microsoft.AspNet.SignalR.Hosting .IResponse |
HostContext | Microsoft AspNet SignalR Hosting | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hosting\HostContext.cs | Microsoft.AspNet.SignalR.Hosting .HostContext |
HostDependencyResolverExtensions | Microsoft AspNet SignalR Hosting | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hosting\HostDependencyResolverExtensions.cs | Microsoft.AspNet.SignalR.Hosting .HostDependencyResolverExtensions |
IWebSocket | Microsoft AspNet SignalR Hosting | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hosting\IWebSocket.cs | Microsoft.AspNet.SignalR.Hosting .IWebSocket |
ResponseExtensions | Microsoft AspNet SignalR Hosting | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hosting\ResponseExtensions.cs | Microsoft.AspNet.SignalR.Hosting .ResponseExtensions |
PersistentConnectionFactory | Microsoft AspNet SignalR Hosting | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hosting\PersistentConnectionFactory.cs | Microsoft.AspNet.SignalR.Hosting .PersistentConnectionFactory |
HubInvocationProgress | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\HubInvocationProgress.cs | Microsoft.AspNet.SignalR.Hubs .HubInvocationProgress |
HubInvocationProgress<T> | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\HubInvocationProgress.cs | Microsoft.AspNet.SignalR.Hubs .HubInvocationProgress<T> |
CallerStateProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\CallerStateProxy.cs | Microsoft.AspNet.SignalR.Hubs .CallerStateProxy |
IHubConnectionContext<T> | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\IHubConnectionContext.cs | Microsoft.AspNet.SignalR.Hubs .IHubConnectionContext<T> |
TypedHubConnectionContext<T> | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\TypedHubConnectionContext.cs | Microsoft.AspNet.SignalR.Hubs .TypedHubConnectionContext<T> |
IHubCallerConnectionContext<T> | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\IHubCallerConnectionContext.cs | Microsoft.AspNet.SignalR.Hubs .IHubCallerConnectionContext<T> |
TypedHubCallerConnectionContext<T> | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\TypedHubCallerConnectionContext.cs | Microsoft.AspNet.SignalR.Hubs .TypedHubCallerConnectionContext<T> |
HubContext<T> | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\HubContext`T.cs | Microsoft.AspNet.SignalR.Hubs.HubContext <T> |
IHub | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\IHub.cs | Microsoft.AspNet.SignalR.Hubs.IHub |
HubBase | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\HubBase.cs | Microsoft.AspNet.SignalR.Hubs.HubBase |
IClientProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\IClientProxy.cs | Microsoft.AspNet.SignalR.Hubs .IClientProxy |
SignalProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\SignalProxy.cs | Microsoft.AspNet.SignalR.Hubs .SignalProxy |
ConnectionIdProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\ConnectionIdProxy.cs | Microsoft.AspNet.SignalR.Hubs .ConnectionIdProxy |
HubConnectionContextBase | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\HubConnectionContextBase.cs | Microsoft.AspNet.SignalR.Hubs .HubConnectionContextBase |
MultipleSignalProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\MultipleSignalProxy.cs | Microsoft.AspNet.SignalR.Hubs .MultipleSignalProxy |
DynamicDictionary | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\DynamicDictionary.cs | Microsoft.AspNet.SignalR.Hubs .DynamicDictionary |
IJavaScriptProxyGenerator | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\IJavaScriptProxyGenerator.cs | Microsoft.AspNet.SignalR.Hubs .IJavaScriptProxyGenerator |
EmptyJavaScriptProxyGenerator | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\EmptyJavaScriptProxyGenerator.cs | Microsoft.AspNet.SignalR.Hubs .EmptyJavaScriptProxyGenerator |
IAssemblyLocator | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\IAssemblyLocator.cs | Microsoft.AspNet.SignalR.Hubs .IAssemblyLocator |
EnumerableOfAssemblyLocator | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\EnumerableOfAssemblyLocator.cs | Microsoft.AspNet.SignalR.Hubs .EnumerableOfAssemblyLocator |
GroupProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\GroupProxy.cs | Microsoft.AspNet.SignalR.Hubs.GroupProxy |
Descriptor | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Lookup\Descriptors\Descriptor.cs | Microsoft.AspNet.SignalR.Hubs.Descriptor |
MethodDescriptor | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Lookup\Descriptors\MethodDescriptor.cs | Microsoft.AspNet.SignalR.Hubs .MethodDescriptor |
NullMethodDescriptor | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Lookup\Descriptors\NullMethodDescriptor.cs | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor |
HubMethodDispatcher | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Lookup\HubMethodDispatcher.cs | Microsoft.AspNet.SignalR.Hubs .HubMethodDispatcher |
ExceptionContext | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Pipeline\ExceptionContext.cs | Microsoft.AspNet.SignalR.Hubs .ExceptionContext |
HubOutgoingInvokerContextExtensions | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Pipeline\HubOutgoingInvokerContextExtensions.cs | Microsoft.AspNet.SignalR.Hubs .HubOutgoingInvokerContextExtensions |
UserProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\UserProxy.cs | Microsoft.AspNet.SignalR.Hubs.UserProxy |
HubConnectionContext | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\HubConnectionContext.cs | Microsoft.AspNet.SignalR.Hubs .HubConnectionContext |
NullClientProxy | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\NullClientProxy.cs | Microsoft.AspNet.SignalR.Hubs .NullClientProxy |
IHubPipelineModule | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Pipeline\IHubPipelineModule.cs | Microsoft.AspNet.SignalR.Hubs .IHubPipelineModule |
HubPipelineModule | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Pipeline\HubPipelineModule.cs | Microsoft.AspNet.SignalR.Hubs .HubPipelineModule |
AuthorizeModule | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Pipeline\Auth\AuthorizeModule.cs | Microsoft.AspNet.SignalR.Hubs .AuthorizeModule |
IAuthorizeHubConnection | Microsoft AspNet SignalR Hubs | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs\Pipeline\Auth\IAuthorizeHubConnection.cs | Microsoft.AspNet.SignalR.Hubs .IAuthorizeHubConnection |
Statistics
Stat | dirCorresponding | sourceFilePath |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Types with source files stored in the same directory, should be declared in the same namespace |
warnif count > 0
// Group JustMyCode types in a lookup
// where groups are keyed with directories that contain the types' source file(s).
// Note that a type can be contained in several groups
// if it is declared in several source files stored in different directories.
let lookup = JustMyCode.Types.Where(t => t.SourceFileDeclAvailable)
.ToMultiKeyLookup(
t => t.SourceDecls.Select(
decl => decl.SourceFile.FilePath.ParentDirectoryPath).Distinct()
)
from groupOfTypes in lookup
let parentNamespaces = groupOfTypes.ParentNamespaces()
// Select group of types (with source files stored in the same directory) ...
// ... but contained in several namespaces
where parentNamespaces.Count() > 1
// mainNamespaces is the namespace that contains many types
// declared in the directory groupOfTypes .key
let mainNamespace = groupOfTypes
.ToLookup(t => t.ParentNamespace)
.OrderByDescending(g => g.Count()).First().Key
// Select types with source files stored in the same directory,
// but contained in namespaces different than mainNamespace.
let typesOutOfMainNamespace = groupOfTypes
.Where(t => t.ParentNamespace != mainNamespace )
// Filter types declared on several source files that contain generated methods
// because typically such type contains one or several partial definitions generated.
// These partially generated types would be false positive for the present rule.
.Where(t => t.SourceDecls.Count() == 1 ||
t.Methods.Count(m => JustMyCode.Contains(m)) == 0)
where typesOutOfMainNamespace.Count() > 0
select new { mainNamespace,
// Typically a type in typesOutOfMainNamespace ...
// 1) ... is contained in the wrong namespace but its source file(s) is stored in the right directory.
// --> In such situation the type should be contained in mainNamespace.
// 2) ... is contained in the right namespace but its source file(s) is stored in the wrong directory
// --> In such situation the source file of type must be moved to the parent namespace directory.
// 3) ... is declared in multiple source files, stored in different directories.
// --> It would be preferable that all source files are stored in a single directory.
typesOutOfMainNamespace }
View Code Query or Rule Body
29 namespaces matched
namespaces | typesOutOfMainNamespace | Full Name |
---|---|---|
Microsoft.AspNet.SignalR.Client.Samples | 1 type | Microsoft.AspNet.SignalR.Client.Samples |
Microsoft.AspNet.SignalR.Infrastructure | 9 types | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR | 20 types | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Hubs | 1 type | Microsoft.AspNet.SignalR.Hubs |
Microsoft.AspNet.SignalR.Messaging | 1 type | Microsoft.AspNet.SignalR.Messaging |
Microsoft.AspNet.SignalR.Infrastructure | 3 types | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Owin | 3 types | Microsoft.AspNet.SignalR.Owin |
Microsoft.AspNet.SignalR.Tracing | 1 type | Microsoft.AspNet.SignalR.Tracing |
Microsoft.AspNet.SignalR | 2 types | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Samples | 6 types | Microsoft.AspNet.SignalR.Samples |
Microsoft.AspNet.SignalR.Tests.Common .Infrastructure | 8 types | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure |
Microsoft.AspNet.SignalR.Samples.Hubs .Auth | 9 types | Microsoft.AspNet.SignalR.Samples.Hubs .Auth |
Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect |
Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub | 8 types | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub |
Microsoft.AspNet.SignalR.Tests.Common | 6 types | Microsoft.AspNet.SignalR.Tests.Common |
Microsoft.AspNet.SignalR.ServiceBus | 2 types | Microsoft.AspNet.SignalR.ServiceBus |
Microsoft.AspNet.SignalR.Redis | 2 types | Microsoft.AspNet.SignalR.Redis |
Microsoft.AspNet.SignalR.SqlServer | 3 types | Microsoft.AspNet.SignalR.SqlServer |
Microsoft.AspNet.SignalR.Stress | 6 types | Microsoft.AspNet.SignalR.Stress |
Microsoft.AspNet.SignalR.Stress | 3 types | Microsoft.AspNet.SignalR.Stress |
Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test | 2 types | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test |
Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI |
Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops |
Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders |
Microsoft.AspNet.SignalR.Tests | 7 types | Microsoft.AspNet.SignalR.Tests |
Microsoft.AspNet.SignalR.Tests | 7 types | Microsoft.AspNet.SignalR.Tests |
Microsoft.AspNet.SignalR | 1 type | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | 1 type | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples |
Microsoft.AspNet.SignalR.Tests.SqlServer | 1 type | Microsoft.AspNet.SignalR.Tests.SqlServer |
Statistics
Stat | typesOutOfMainNamespace |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Types declared in the same namespace, should have their source files stored in the same directory |
warnif count > 0
from @namespace in Application.Namespaces
// Group types of @namespace in a lookup
// where groups are keyed with directories that contain the types' source file(s).
// Note that a type can be contained in several groups
// if it is declared in several source files stored in different directories.
let lookup = @namespace.ChildTypes.Where(t => t.SourceFileDeclAvailable && JustMyCode.Contains(t))
.ToMultiKeyLookup(
t => t.SourceDecls.Select(
decl => decl.SourceFile.FilePath.ParentDirectoryPath).Distinct()
)
// Are types of @namespaces declared in more than one directory?
where lookup.Count > 1
// Infer the main folder, preferably the one that has the same name as the namespace.
let dirs = lookup.Select(types => types.Key)
let mainDirNullable = dirs.Where(d => d.DirectoryName == @namespace.SimpleName).FirstOrDefault()
let mainDir = mainDirNullable ?? dirs.First()
// Types declared out of mainDir, are types in group of types declared in a directory different than mainDir!
let typesDeclaredOutOfMainDir = lookup.Where(types => types.Key != mainDir)
.SelectMany(types => types)
// Filter types declared on several source files that contain generated methods
// because typically such type contains one or several partial definitions generated.
// These partially generated types would be false positive for the present rule.
.Where(t => t.SourceDecls.Count() == 1 ||
t.Methods.Count(m => JustMyCode.Contains(m)) == 0)
where typesDeclaredOutOfMainDir.Count() > 0
select new { @namespace,
// Typically a type in typesDeclaredOutOfMainDir ...
// 1) ... is contained in the wrong namespace but its source file(s) is stored in the right directory.
// --> In such situation the type parent namespace should be the namespace corresponding to the directory.
// 2) ... is contained in the right namespace but its source file(s) is stored in the wrong directory
// --> In such situation the type source file should be moved to mainDir.
// 3) ... is declared in multiple source files, stored in different directories.
// --> It would be preferable that all source files are stored in a single directory.
typesDeclaredOutOfMainDir ,
mainDir = mainDir.ToString() }View Code Query or Rule Body
21 namespaces matched
namespaces | typesDeclaredOutOfMainDir | mainDir | Full Name |
---|---|---|---|
Microsoft.AspNet.SignalR.Client.Samples | 1 type | c:\projects\SignalR-master\SignalR-master\samples\Common | Microsoft.AspNet.SignalR.Client.Samples |
Microsoft.AspNet.SignalR.Utils | 1 type | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\Commands | Microsoft.AspNet.SignalR.Utils |
Microsoft.AspNet.SignalR | 5 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Infrastructure | 47 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Client\Infrastructure | Microsoft.AspNet.SignalR.Infrastructure |
Microsoft.AspNet.SignalR.Hubs | 33 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Hubs | Microsoft.AspNet.SignalR.Hubs |
Microsoft.AspNet.SignalR.Owin | 1 type | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\Owin | Microsoft.AspNet.SignalR.Owin |
Microsoft.AspNet.SignalR | 1 type | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.LoadTestHarness | 5 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\Baseline | Microsoft.AspNet.SignalR.LoadTestHarness |
Microsoft.AspNet.SignalR.Tests.Common | 18 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests.Common\App_Start | Microsoft.AspNet.SignalR.Tests.Common |
Microsoft.AspNet.SignalR | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | 2 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR | 3 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core | Microsoft.AspNet.SignalR |
Microsoft.AspNet.SignalR.Stress | 11 types | c:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\Stress | Microsoft.AspNet.SignalR.Stress |
Microsoft.AspNet.SignalR.Samples | 7 types | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\App_Start | Microsoft.AspNet.SignalR.Samples |
Microsoft.AspNet.SignalR.Samples.Hubs .Chat | 1 type | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\Hubs\Chat | Microsoft.AspNet.SignalR.Samples.Hubs .Chat |
Microsoft.AspNet.SignalR.Tests | 29 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.FunctionalTests\Client | Microsoft.AspNet.SignalR.Tests |
Microsoft.AspNet.SignalR.Client.Tests | 8 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Client.Tests | Microsoft.AspNet.SignalR.Client.Tests |
Microsoft.AspNet.SignalR.Client.Samples | 1 type | c:\projects\SignalR-master\SignalR-master\samples\Common | Microsoft.AspNet.SignalR.Client.Samples |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | 1 type | c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples |
Microsoft.AspNet.SignalR.Tests | 2 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests | Microsoft.AspNet.SignalR.Tests |
Microsoft.AspNet.SignalR.Tests.Core | 9 types | c:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests\Core | Microsoft.AspNet.SignalR.Tests.Core |
Statistics
Stat | typesDeclaredOutOfMainDir | mainDir |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
23100
.NET Framework Usage |
|
760
System |
|
![]() | Rule warning: Mark assemblies with CLSCompliant |
warnif count > 0 from a in Application.Assemblies where
!a.HasAttribute ("System.CLSCompliantAttribute".AllowNoMatch())
select a
// The Common Language Specification (CLS) defines
// naming restrictions, data types, and rules to which
// assemblies must conform if they are to be used
// across programming languages. Good design dictates
// that all assemblies explicitly indicate CLS
// compliance with CLSCompliantAttribute. If the
// attribute is not present on an assembly, the
// assembly is not compliant.View Code Query or Rule Body
17 assemblies matched
assemblies | Full Name |
---|---|
Microsoft.AspNet.SignalR.Client.Samples | Microsoft.AspNet.SignalR.Client.Samples |
Microsoft.AspNet.SignalR.Client.JS | Microsoft.AspNet.SignalR.Client.JS |
Microsoft.AspNet.SignalR.LoadTestHarness | Microsoft.AspNet.SignalR.LoadTestHarness |
Microsoft.AspNet.SignalR.StressServer | Microsoft.AspNet.SignalR.StressServer |
Microsoft.AspNet.SignalR.Tests.Common | Microsoft.AspNet.SignalR.Tests.Common |
Microsoft.AspNet.SignalR.Stress | Microsoft.AspNet.SignalR.Stress |
Microsoft.AspNet.SignalR.Samples | Microsoft.AspNet.SignalR.Samples |
Microsoft.AspNet.SignalR.Client40 .Samples | Microsoft.AspNet.SignalR.Client40 .Samples |
Microsoft.AspNet.SignalR.Client.JS.Tests | Microsoft.AspNet.SignalR.Client.JS.Tests |
Microsoft.AspNet.SignalR.Samples.VB | Microsoft.AspNet.SignalR.Samples.VB |
Microsoft.AspNet.SignalR.FunctionalTests | Microsoft.AspNet.SignalR.FunctionalTests |
Microsoft.AspNet.SignalR.Client.Tests | Microsoft.AspNet.SignalR.Client.Tests |
Microsoft.AspNet.SignalR.DailyTests | Microsoft.AspNet.SignalR.DailyTests |
Microsoft.AspNet.SelfHost.Samples | Microsoft.AspNet.SelfHost.Samples |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples |
Microsoft.AspNet.SignalR.SqlServer.Tests | Microsoft.AspNet.SignalR.SqlServer.Tests |
Microsoft.AspNet.SignalR.Tests | Microsoft.AspNet.SignalR.Tests |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Mark assemblies with ComVisible |
warnif count > 0 from a in Application.Assemblies where
!a.HasAttribute ("System.Runtime.InteropServices.ComVisibleAttribute".AllowNoMatch())
select a
// The ComVisibleAttribute attribute determines
// how COM clients access managed code. Good design
// dictates that assemblies explicitly indicate
// COM visibility. COM visibility can be set for
// an entire assembly and then overridden for
// individual types and type members. If the
// attribute is not present, the contents of
// the assembly are visible to COM clients.View Code Query or Rule Body
3 assemblies matched
assemblies | Full Name |
---|---|
Microsoft.AspNet.SignalR.Client.Samples | Microsoft.AspNet.SignalR.Client.Samples |
Microsoft.AspNet.SignalR.Client40 .Samples | Microsoft.AspNet.SignalR.Client40 .Samples |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Remove calls to GC.Collect() |
warnif count > 0
let gcCollectMethods = ThirdParty.Methods.WithFullNameIn(
"System.GC.Collect()",
"System.GC.Collect(Int32)",
"System.GC.Collect(Int32,GCCollectionMode)")
from m in Application.Methods.UsingAny(gcCollectMethods)
select m
// It is preferrable to avoid calling GC.Collect()
// explicitely in order to avoid some performance pitfall.
// More in information on this here:
// http://blogs.msdn.com/ricom/archive/2004/11/29/271829.aspxView Code Query or Rule Body
5 methods matched
methods | Full Name |
---|---|
ForceGC() | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard.ForceGC() |
ProcessRequest(HttpContext) | Microsoft.AspNet.SignalR.Tests.Common .Handlers.GCHandler.ProcessRequest (HttpContext) |
Dispose(Boolean) | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest.Dispose (Boolean) |
Dispose(Boolean) | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts.Dispose(Boolean) |
Dispose(Boolean) | Microsoft.AspNet.SignalR.Client.Tests .EventSourceStreamReaderFacts.Dispose (Boolean) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Do not raise too general exception types |
warnif count > 0 from m in Application.Methods where
// Test for non-constructor, else this rule
// would warn on ctor of classes that derive
// from these exception types.
!m.IsConstructor && (
m.CreateA("System.Exception".AllowNoMatch()) ||
m.CreateA("System.ApplicationException".AllowNoMatch()) ||
m.CreateA("System.SystemException".AllowNoMatch()) )
select m
View Code Query or Rule Body
42 methods matched
methods | Full Name |
---|---|
SynchronousException() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SynchronousException() |
<TaskWithException>b__15() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.<TaskWithException >b__15() |
<GenericTaskWithException>b__1a() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub. <GenericTaskWithException>b__1a() |
Run() | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.CommonCommandLine.Run() |
EchoCaller() | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun.EchoCaller() |
EchoMessage() | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun.EchoMessage() |
<CreateReceiver>b__9(String,DataClass ,Int32) | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun.<CreateReceiver>b__9 (String,DataClass,Int32) |
SynchronousException() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SynchronousException() |
<TaskWithException>b__15() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.<TaskWithException >b__15() |
<GenericTaskWithException>b__1a() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub. <GenericTaskWithException>b__1a() |
<WebSocketTransportDoesntHangIfConnectRe turnsFaultedTask>b__b() | Microsoft.AspNet.SignalR.Tests .HubProxyFacts. <WebSocketTransportDoesntHangIfConnectRe turnsFaultedTask>b__b() |
MoveNext() | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+ <ConnectionErrorCapturesExceptionsThrown InClientHubMethod>d__59.MoveNext() |
<FailedWriteCompletesRequestAfterDisconn ectTimeout>b__1() | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+<>c__DisplayClass3. <FailedWriteCompletesRequestAfterDisconn ectTimeout>b__1() |
<FallbackToLongPollingIIS>b__2f (StateChange) | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start+< >c__DisplayClass30. <FallbackToLongPollingIIS>b__2f (StateChange) |
MoveNext() | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start+ <ConnectionErrorCapturesExceptionsThrown InReceived>d__a2.MoveNext() |
MoveNext() | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub+<GetStuff>d__c.MoveNext() |
OnErrorSetsLastError() | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts.OnErrorSetsLastError() |
StopWithExceptionRaisesOnError() | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .StopWithExceptionRaisesOnError() |
AsyncStartShouldFailIfTransportStartFail s() | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start .AsyncStartShouldFailIfTransportStartFai ls() |
<CloseThrowsSouldntTakeProcessDown>b__4 (Exception) | Microsoft.AspNet.SignalR.Client.Tests .EventSourceStreamReaderFacts+< >c__DisplayClass5. <CloseThrowsSouldntTakeProcessDown>b__4 (Exception) |
ProcessResponseCapturesOnReceivedExcepti ons() | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts .ProcessResponseCapturesOnReceivedExcept ions() |
SendCatchesOnReceivedExceptions() | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts .SendCatchesOnReceivedExceptions() |
SynchronousException() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SynchronousException() |
<TaskWithException>b__15() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.<TaskWithException >b__15() |
<GenericTaskWithException>b__1a() | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub. <GenericTaskWithException>b__1a() |
CallsOnErrorOnException() | Microsoft.AspNet.SignalR.Tests.SqlServer .ObservableSqlOperationFacts .CallsOnErrorOnException() |
TaskAsyncHelpersPreserveCulture() | Microsoft.AspNet.SignalR.Tests .TaskAsyncHelperFacts .TaskAsyncHelpersPreserveCulture() |
<DrainingTaskQueueShutsQueueOff>b__1() | Microsoft.AspNet.SignalR.Tests .TaskQueueFacts. <DrainingTaskQueueShutsQueueOff>b__1() |
<TaskQueueDoesNotQueueNewTasksIfPrevious TaskFaulted>b__4() | Microsoft.AspNet.SignalR.Tests .TaskQueueFacts. <TaskQueueDoesNotQueueNewTasksIfPrevious TaskFaulted>b__4() |
ThrowingErrorOnCloseRaisesOnClosed() | Microsoft.AspNet.SignalR.Tests.Owin .WebSocketFacts .ThrowingErrorOnCloseRaisesOnClosed() |
SendAfterOpenAndAfterErrorThrows() | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts .SendAfterOpenAndAfterErrorThrows() |
InitialToBufferingToOpenToSend() | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts .InitialToBufferingToOpenToSend() |
BufferAfterClosedEnqueueThrows() | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts .BufferAfterClosedEnqueueThrows() |
MoveNext() | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts+< <CloseWhileQueueRunsWithFailedTask>b__32 >d__3a.MoveNext() |
MoveNext() | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts+< <OpenQueueErrorOpenQueue>b__41>d__4a .MoveNext() |
MoveNext() | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts+< <FaultedTaskShouldPropagateSync>b__14 >d__1b.MoveNext() |
MoveNext() | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts+< <FaultedTaskShouldPropagateAsync>b__1f >d__24.MoveNext() |
Error() | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts+ErrorHub.Error( ) |
MoveNext() | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts+ErrorHub+ <ErrorTask>d__47.MoveNext() |
<RunPostReceiveWithFaultedTask>b__14() | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts. <RunPostReceiveWithFaultedTask>b__14() |
<RequestCompletesAfterFaultedWritesInTas kQueue>b__2d() | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts. <RequestCompletesAfterFaultedWritesInTas kQueue>b__2d() |
<RequestCompletesAfterFaultedInitializeR esponse>b__3c(ITransportConnection) | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts. <RequestCompletesAfterFaultedInitializeR esponse>b__3c(ITransportConnection) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Do not raise reserved exception types |
warnif count > 0
let reservedExceptions = ThirdParty.Types.WithFullNameIn(
"System.ExecutionEngineException",
"System.IndexOutOfRangeException",
"System.NullReferenceException",
"System.OutOfMemoryException",
"System.StackOverflowException",
"System.InvalidProgramException",
"System.AccessViolationException",
"System.CannotUnloadAppDomainException",
"System.BadImageFormatException",
"System.DataMisalignedException")
from m in Application.Methods.ThatCreateAny(reservedExceptions)
let reservedExceptionsCreated = reservedExceptions.Where(t => m.IsUsing(t))
select new { m, reservedExceptionsCreated }View Code Query or Rule Body
2 methods matched
methods | reservedExceptionsCreated | Full Name |
---|---|---|
GetCharFromSixBitInt(UInt32) | 1 type | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier.GetCharFromSixBitInt (UInt32) |
TryHandleCommand(String) | 1 type | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.TryHandleCommand(String) |
Statistics
Stat | reservedExceptionsCreated |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Uri fields should be of type System.Uri |
warnif count > 0 from f in Application.Fields where
(f.NameLike (@"Uri$") ||
f.NameLike (@"Url$")) &&
!f.FieldTypeIs ("System.Uri".AllowNoMatch())
select new { f, f.FieldType }
// A field which name end with 'Uri' is deemed
// as representing a uri. Such field should be of
// type System.Uri.View Code Query or Rule Body
10 fields matched
fields | FieldType | Full Name |
---|---|---|
serverUrl | String | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunRawConnection>d__16 .serverUrl |
serverUrl | String | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunStreaming>d__1b .serverUrl |
serverUrl | String | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunAuth>d__24.serverUrl |
baseUrl | String | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+< >c__DisplayClass3.baseUrl |
TestSiteUrl | String | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .TestSiteUrl |
PingUrl | String | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager.PingUrl |
GCUrl | String | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager.GCUrl |
serverUrl | String | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunRawConnection>d__16 .serverUrl |
serverUrl | String | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunStreaming>d__1b .serverUrl |
serverUrl | String | Microsoft.AspNet.SignalR.Client.Samples .CommonClient+<RunAuth>d__24.serverUrl |
Statistics
Stat | FieldType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
110
System.Collection |
|
![]() | Rule warning: Collection properties should be read only |
// A writable collection property allows a user to replace the collection with
// a completely different collection. A read-only property stops the collection
// from being replaced but still allows the individual members to be set.
// If replacing the collection is a goal, the preferred design pattern is to
// include a method to remove all the elements from the collection
// (with a call to the ICollection.Clear() method) and then re-populate the collection.
warnif count > 0
// First find collectionTypes
let collectionInterfaces = ThirdParty.Types.WithFullNameIn(
"System.Collections.ICollection", "System.Collections.Generic.ICollection<T>")
where collectionInterfaces.Count() > 0
let collectionTypes = Types.ThatImplementAny(collectionInterfaces)
.Union(collectionInterfaces).ToHashSet()
// Then find all property setters that have an associated
// getter that returns a collection type.
from propGetter in Application.Methods.Where(
m => m.IsPropertyGetter &&
m.ReturnType != null &&
collectionTypes.Contains(m.ReturnType))
let propSetter = propGetter.ParentType.Methods.WithSimpleName(
propGetter.SimpleName.Replace("get_","set_"))
.SingleOrDefault()
where propSetter != null &&
!propSetter.IsPrivate
select new { propSetter, propGetter.ReturnType }View Code Query or Rule Body
14 methods matched
methods | ReturnType | Full Name |
---|---|---|
set_Parameters(IList<ParameterDescriptor >) | IList<T> | Microsoft.AspNet.SignalR.Hubs .MethodDescriptor.set_Parameters(IList <ParameterDescriptor>) |
set_ExcludedSignals(IList<String>) | IList<T> | Microsoft.AspNet.SignalR.Hubs .HubOutgoingInvokerContext .set_ExcludedSignals(IList<String>) |
set_State(IDictionary<String,Object>) | IDictionary<TKey,TValue> | Microsoft.AspNet.SignalR.Hubs .ClientHubInvocation.set_State (IDictionary<String,Object>) |
set_State(IDictionary<String,Object>) | IDictionary<TKey,TValue> | Microsoft.AspNet.SignalR.Hubs.HubRequest .set_State(IDictionary<String,Object>) |
set_State(IDictionary<String,Object>) | IDictionary<TKey,TValue> | Microsoft.AspNet.SignalR.Hubs .HubResponse.set_State(IDictionary <String,Object>) |
set_Messages(IList<Message>) | IList<T> | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessage.set_Messages(IList <Message>) |
set_Value(ArraySegment<Byte>) | ArraySegment<T> | Microsoft.AspNet.SignalR.Messaging .Message.set_Value(ArraySegment<Byte>) |
set_Messages(IList<ArraySegment<Message> >) | IList<T> | Microsoft.AspNet.SignalR.Transports .PersistentResponse.set_Messages(IList <ArraySegment<Message>>) |
set_TheList(List<Guid>) | List<T> | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass.set_TheList(List<Guid>) |
set_Headers(IList<KeyValuePair<String ,String>>) | IList<T> | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.RequestItemsResponse .set_Headers(IList<KeyValuePair<String ,String>>) |
set_Query(IList<KeyValuePair<String ,String>>) | IList<T> | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.RequestItemsResponse .set_Query(IList<KeyValuePair<String ,String>>) |
set_EventKeys(IList<String>) | IList<T> | Microsoft.AspNet.SignalR.Stress .Subscriber.set_EventKeys(IList<String>) |
set_Messages(List<Chat+ChatMessage>) | List<T> | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatRoom.set_Messages(List <Chat+ChatMessage>) |
set_Users(HashSet<String>) | HashSet<T> | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat+ChatRoom.set_Users(HashSet <String>) |
Statistics
Stat | ReturnType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
420
System.Threading |
|
![]() | Rule warning: Don't create threads explicitely |
warnif count > 0 from m in Application.Methods where
m.CreateA ("System.Threading.Thread".AllowNoMatch())
select m
// Prefer using the thread pool instead of
// creating manually your own thread.
// Threads are costly objects.
// They take approximately 200,000 cycles to
// create and about 100,000 cycles to destroy.
// By default they reserve 1 megabyte of virtual
// memory for its stack and use 2,000-8,000
// cycles for each context switch.
// As a consequence, it is preferrable to let
// the thread pool recycle threads.
// Creating custom thread can also be the
// sign of flawed design, where tasks and
// threads have affinity. It is preferrable
// to code tasks that can be ran on any thread.View Code Query or Rule Body
3 methods matched
methods | Full Name |
---|---|
BrodcastFromServer() | Microsoft.AspNet.SignalR.Stress .StressRuns.BrodcastFromServer() |
ManyUniqueGroups(Int32) | Microsoft.AspNet.SignalR.Stress .StressRuns.ManyUniqueGroups(Int32) |
Connect_Broadcast5msg_AndDisconnect (Int32) | Microsoft.AspNet.SignalR.Stress .StressRuns .Connect_Broadcast5msg_AndDisconnect (Int32) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Don't use dangerous threading methods |
warnif count > 0
let wrongMethods = ThirdParty.Methods.WithFullNameIn(
// Usage of Thread.Abort() is dangerous.
// More information on this here:
// http://www.interact-sw.co.uk/iangblog/2004/11/12/cancellation
"System.Threading.Thread.Abort()",
"System.Threading.Thread.Abort(Object)",
// Usage of Thread.Sleep() is a sign of
// flawed design. More information on this here:
// http://msmvps.com/blogs/peterritchie/archive/2007/04/26/thread-sleep-is-a-sign-of-a-poorly-designed-program.aspx
"System.Threading.Thread.Sleep(Int32)",
// Suspend() and Resume() are dangerous threading methods, marked as obsolete.
// More information on workaround here:
// http://stackoverflow.com/questions/382173/what-are-alternative-ways-to-suspend-and-resume-a-thread
"System.Threading.Thread.Suspend()",
"System.Threading.Thread.Resume()"
)
from m in Application.Methods.UsingAny(wrongMethods)
select new { m, calls = m.MethodsCalled.Intersect(wrongMethods) }
View Code Query or Rule Body
24 methods matched
methods | calls | Full Name |
---|---|---|
Dispose(Boolean) | 1 method | Microsoft.AspNet.SignalR.Messaging .MessageBus.Dispose(Boolean) |
Run() | 1 method | Microsoft.AspNet.SignalR.Crank .ControllerHub.Run() |
WaitForClientsToConnect() | 1 method | Microsoft.AspNet.SignalR.Crank .ControllerHub.WaitForClientsToConnect() |
WaitForLastSamples() | 1 method | Microsoft.AspNet.SignalR.Crank .ControllerHub.WaitForLastSamples() |
BlockWhilePhase(ControllerEvents,Func <Boolean>) | 1 method | Microsoft.AspNet.SignalR.Crank .ControllerHub.BlockWhilePhase (ControllerEvents,Func<Boolean>) |
<StartSampleLoop>b__9(Object) | 1 method | Microsoft.AspNet.SignalR.Crank .ControllerHub.<StartSampleLoop>b__9 (Object) |
MultipleCalls() | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.MultipleCalls() |
<GetValue>b__0() | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.<GetValue>b__0() |
MakeHttpRequest(String,Int32,Int32) | 1 method | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .MakeHttpRequest(String,Int32,Int32) |
ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) | 1 method | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation .ExecuteReaderWithUpdates(Action <IDataRecord,DbOperation>) |
SqlDependency_OnChange (SqlNotificationEventArgs,Action <IDataRecord,DbOperation>) | 1 method | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation .SqlDependency_OnChange (SqlNotificationEventArgs,Action <IDataRecord,DbOperation>) |
Initialize(Object) | 1 method | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus.Initialize(Object) |
<StartReceiving>b__6(AggregateException) | 1 method | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus+<>c__DisplayClass7. <StartReceiving>b__6(AggregateException) |
Run() | 1 method | Microsoft.AspNet.SignalR.Stress.RunBase .Run() |
BrodcastFromServer() | 1 method | Microsoft.AspNet.SignalR.Stress .StressRuns.BrodcastFromServer() |
Run() | 1 method | Microsoft.AspNet.SignalR.Stress.Stress .StressRunBase.Run() |
<Start>b__2(Object) | 1 method | Microsoft.AspNet.SignalR.Samples .BackgroundThread.<Start>b__2(Object) |
MultipleCalls() | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.MultipleCalls() |
<GetValue>b__0() | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.<GetValue>b__0() |
SendMessageCountToAll(Int32,Int32) | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.MessageLoops.MessageLoops .SendMessageCountToAll(Int32,Int32) |
SendMessageCountToGroup(Int32,String ,Int32) | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.MessageLoops.MessageLoops .SendMessageCountToGroup(Int32,String ,Int32) |
SendMessageCountToCaller(Int32,Int32) | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.MessageLoops.MessageLoops .SendMessageCountToCaller(Int32,Int32) |
MultipleCalls() | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.MultipleCalls() |
<GetValue>b__0() | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.<GetValue>b__0() |
Statistics
Stat | calls |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
010
System.Globalization |
|
![]() | Rule warning: Float and Date Parsing must be culture aware |
warnif count > 0
from m in ThirdParty.Types.WithFullNameIn(
"System.DateTime",
"System.Single",
"System.Double",
"System.Decimal").ChildMethods()
where m.NbParameters > 0 &&
(m.SimpleName == "Parse" ||
m.SimpleName == "ToString") &&
!m.Name.Contains("IFormatProvider")
select new { m, m.MethodsCallingMe }View Code Query or Rule Body
1 methods matched
method | MethodsCallingMe | Full Name |
---|---|---|
ToString(String) | 1 method | System.DateTime.ToString(String) |
Statistics
Stat | MethodsCallingMe |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
Object Oriented Design
|
![]() | Rule warning: Base class should not use derivatives |
warnif count > 0
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }View Code Query or Rule Body
2 types matched
types | derivedClassesUsed | Full Name |
---|---|---|
HubInvocationProgress | 1 type | Microsoft.AspNet.SignalR.Hubs .HubInvocationProgress |
Shape | 4 types | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Shape |
Statistics
Stat | derivedClassesUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Class shouldn't be too deep in inheritance tree |
warnif count > 0 from t in JustMyCode.Types
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()
// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3
select new { t, baseClasses,
// The metric value DepthOfInheritance takes account
// of third-party base classes
t.DepthOfInheritance }
// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here
// http://www.ndepend.com/Metrics.aspx#DIT
View Code Query or Rule Body
16 types matched
types | baseClasses | Depth of inheritance | Full Name |
---|---|---|---|
AdminAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
AuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthHub |
IncomingAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | 4 types | 5 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
UserAndRoleAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
AuthenticatedEchoHub | 3 types | 4 | Microsoft.AspNet.SignalR.Tests.Common .Hubs.AuthenticatedEchoHub |
HubInvocationRun | 3 types | 4 | Microsoft.AspNet.SignalR.Stress .HubInvocationRun |
ClientServerMemoryRun | 3 types | 4 | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun |
AuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthHub |
AdminAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
InheritAuthHub | 4 types | 5 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
IncomingAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
UserAndRoleAuthHub | 3 types | 4 | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
HubFacts+MultGroupHub2 | 3 types | 4 | Microsoft.AspNet.SignalR.Tests .HubFacts+MultGroupHub2 |
DefaultActionResolverFacts+TestDerivedHu b | 3 types | 4 | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts+TestDerivedH ub |
LongPollingTransportFacts+TestLongPollin gTransport | 3 types | 4 | Microsoft.AspNet.SignalR.Tests.Server .Transports .LongPollingTransportFacts+TestLongPolli ngTransport |
Statistics
Stat | baseClasses | Depth of inheritance |
---|---|---|
Sum: | 0 | 66 |
Average: | 0 | 4.12 |
Minimum: | 0 | 4 |
Maximum: | 0 | 5 |
Standard deviation: | 0 | 0.33 |
Variance: | 0 | 0.11 |
![]() | Rule warning: Class with no descendant should be sealed if possible |
warnif count > 0 from t in JustMyCode.Types where
t.IsClass &&
t.NbChildren ==0 &&
!t.IsSealed &&
!t.IsStatic
// && !t.IsPublic <-- You might want to add this condition
// if you are developing a framework
// with classes that are intended to be
// sub-classed by your clients.
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }View Code Query or Rule Body
507 types matched
types | # lines of code (LOC) | Full Name |
---|---|---|
ForeverTransportFacts | 239 | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts |
HubAuthFacts | 201 | Microsoft.AspNet.SignalR.Tests .HubAuthFacts |
MessageBusFacts | 201 | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts |
Chat | 180 | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat |
HubDispatcherFacts | 169 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts |
HubDispatcher | 161 | Microsoft.AspNet.SignalR.Hubs .HubDispatcher |
ServerRequestFacts | 145 | Microsoft.AspNet.SignalR.Tests.Owin .ServerRequestFacts |
ScaleoutStoreFacts | 133 | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStoreFacts |
ObservableDbOperation | 131 | Microsoft.AspNet.SignalR.SqlServer .ObservableDbOperation |
StringMinifierFacts | 127 | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts |
ServiceBusConnection | 124 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnection |
ScaleOutMessageBusFacts | 123 | Microsoft.AspNet.SignalR.Tests.Server .ScaleOutMessageBusFacts |
Connection | 120 | Microsoft.AspNet.SignalR.Infrastructure .Connection |
DefaultActionResolverFacts | 118 | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts |
TransportFacts | 115 | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts |
ScaleoutStreamFacts | 113 | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts |
ControllerHub | 112 | Microsoft.AspNet.SignalR.Crank .ControllerHub |
DiffSetFacts | 112 | Microsoft.AspNet.SignalR.Tests.Server .DiffSetFacts |
SiteManager | 109 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager |
Cursor | 108 | Microsoft.AspNet.SignalR.Messaging .Cursor |
DefaultDependencyResolver | 107 | Microsoft.AspNet.SignalR .DefaultDependencyResolver |
DefaultSubscription | 95 | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription |
ScaleoutStream | 92 | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream |
TransportHeartbeat | 92 | Microsoft.AspNet.SignalR.Transports .TransportHeartbeat |
DefaultJavaScriptProxyGenerator | 91 | Microsoft.AspNet.SignalR.Hubs .DefaultJavaScriptProxyGenerator |
Client | 81 | Microsoft.AspNet.SignalR.Client40 .Samples.Client |
DefaultHubManagerFacts | 80 | Microsoft.AspNet.SignalR.Tests.Core .DefaultHubManagerFacts |
GenerateHubProxyCommand | 79 | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand |
PerformanceCounterManager | 72 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
RedisMessageBus | 70 | Microsoft.AspNet.SignalR.Redis .RedisMessageBus |
ConfigurationManagerFacts | 69 | Microsoft.AspNet.SignalR.Tests .ConfigurationManagerFacts |
ConnectionFacts | 68 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts |
HubProxyFacts | 68 | Microsoft.AspNet.SignalR.Client.Tests .HubProxyFacts |
PersistentConnectionFacts+GetConnectionI d | 68 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GetConnection Id |
CursorFacts | 66 | Microsoft.AspNet.SignalR.Tests .CursorFacts |
ConnectionFacts+Start | 65 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
ScaleoutSubscription | 64 | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription |
PerformanceCounterManager | 63 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
DemoHub | 62 | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
DemoHub | 62 | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
PersistentConnectionFacts+ProcessRequest | 61 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+ProcessReques t |
XamlUserType | 59 | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType |
ServerConnectionFacts+PopulateResponseSt ate | 59 | Microsoft.AspNet.SignalR.Tests .ServerConnectionFacts+PopulateResponseS tate |
DemoHub | 57 | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
SqlReceiver | 56 | Microsoft.AspNet.SignalR.SqlServer .SqlReceiver |
BufferTextWriterFacts | 56 | Microsoft.AspNet.SignalR.Tests .BufferTextWriterFacts |
RawConnection | 51 | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection | 51 | Microsoft.AspNet.SignalR.Samples .RawConnection |
ShapeShare | 51 | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare |
RawConnection | 51 | Microsoft.AspNet.SignalR.Samples .RawConnection |
ObservableSqlOperationFacts | 49 | Microsoft.AspNet.SignalR.Tests.SqlServer .ObservableSqlOperationFacts |
ConnectionFacts | 48 | Microsoft.AspNet.SignalR.Tests .ConnectionFacts |
Program | 46 | Microsoft.AspNet.SignalR.Utils.Program |
HubFacts | 46 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubFacts |
Message | 45 | Microsoft.AspNet.SignalR.Messaging .Message |
HighFrequencyTimer | 45 | Microsoft.AspNet.SignalR .HighFrequencyTimer |
HighFrequencyTimer | 45 | Microsoft.AspNet.SignalR .HighFrequencyTimer |
SubscriptionFacts | 44 | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts |
SqlMessageBus | 42 | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus |
ServiceBusConnectionContext | 41 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusConnectionContext |
KeepAliveFacts | 40 | Microsoft.AspNet.SignalR.Client.Tests .KeepAliveFacts |
XamlTypeInfoProvider | 40 | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlTypeInfoProvider |
Client | 39 | Microsoft.AspNet.SignalR.Crank.Client |
PersistentConnectionFacts+OnConnectedAsy nc | 39 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync |
TypedClientBuilderFacts | 39 | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts |
ForeverFrameTransport | 38 | Microsoft.AspNet.SignalR.Transports .ForeverFrameTransport |
HubProxyFacts | 38 | Microsoft.AspNet.SignalR.Tests .HubProxyFacts |
ConnectionFacts+Start | 38 | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
ForeverFrameTransportFacts | 38 | Microsoft.AspNet.SignalR.Tests.Core .ForeverFrameTransportFacts |
ServiceBusMessageBus | 37 | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus |
CommonNuGet | 37 | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.CommonNuGet |
HubMethodDispatcherFacts | 37 | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts |
ReflectedMethodDescriptorProvider | 36 | Microsoft.AspNet.SignalR.Hubs .ReflectedMethodDescriptorProvider |
LongPollingTransportFacts | 36 | Microsoft.AspNet.SignalR.Tests.Server .Transports.LongPollingTransportFacts |
BufferTextWriter+ChunkedWriter | 35 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter+ChunkedWriter |
ConcurrentCallsRun | 35 | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun |
TestHub | 35 | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.TestHub |
WebSocketTransport | 34 | Microsoft.AspNet.SignalR.Transports .WebSocketTransport |
DynamicDictionary | 32 | Microsoft.AspNet.SignalR.Hubs .DynamicDictionary |
ReflectedHubDescriptorProvider | 32 | Microsoft.AspNet.SignalR.Hubs .ReflectedHubDescriptorProvider |
DataClass | 32 | Microsoft.AspNet.SignalR.StressServer .Hubs.DataClass |
CommonCommandLine | 32 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.CommonCommandLine |
PersistentResponseFacts | 32 | Microsoft.AspNet.SignalR.Tests .PersistentResponseFacts |
DefaultHubResolverFacts | 32 | Microsoft.AspNet.SignalR.Tests .DefaultHubResolverFacts |
AckHandler | 31 | Microsoft.AspNet.SignalR.Infrastructure .AckHandler |
DefaultHubManager | 31 | Microsoft.AspNet.SignalR.Hubs .DefaultHubManager |
LongPollingFacts | 31 | Microsoft.AspNet.SignalR.Tests .LongPollingFacts |
HubFacts | 31 | Microsoft.AspNet.SignalR.Tests.HubFacts |
StringMinifier | 30 | Microsoft.AspNet.SignalR.Infrastructure .StringMinifier |
IISExpressTestHost | 30 | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IISExpressTestHost |
SipHashBasedDictionaryConverter | 29 | Microsoft.AspNet.SignalR.Json .SipHashBasedDictionaryConverter |
DefaultWebSocketHandler | 29 | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler |
TaskQueueFacts | 29 | Microsoft.AspNet.SignalR.Tests .TaskQueueFacts |
GroupManager | 28 | Microsoft.AspNet.SignalR.GroupManager |
ServerSentEventsTransport | 28 | Microsoft.AspNet.SignalR.Transports .ServerSentEventsTransport |
CrankArguments | 28 | Microsoft.AspNet.SignalR.Crank .CrankArguments |
Dashboard | 28 | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard |
PersistentConnectionFacts+VerifyGroups | 28 | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+VerifyGroups |
TaskAsyncHelperFacts | 28 | Microsoft.AspNet.SignalR.Tests .TaskAsyncHelperFacts |
Topic | 27 | Microsoft.AspNet.SignalR.Messaging.Topic |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 9 260 |
Average: | 18.26 |
Minimum: | 0 |
Maximum: | 239 |
Standard deviation: | 31.73 |
Variance: | 1 006 |
![]() | Rule warning: Overrides of Method() should call base.Method() |
// Overrides of Method() should refine the behavior of base.Method().
// If base.Method() is not called, the base behavior is not refined but it is replaced.
// Violations of this rule are a sign of design flaw,
// especially if the design provides valid reasons
// that advocates that the base behavior must be replaced and not refined.
//
// Discussions on this topic are available here:
// http://stackoverflow.com/questions/1107022/should-i-call-the-base-class-implementation-when-overriding-a-method-in-c-sharp
// http://stackoverflow.com/questions/2945147/make-sure-base-method-gets-called-in-c-sharp
warnif count > 0
from t in Types // Take account of third-party types too
// Bother only classes with descendant
where t.IsClass && t.NbChildren > 0
from mBase in t.InstanceMethods
where mBase.IsVirtual &&
!mBase.IsThirdParty &&
!mBase.IsAbstract &&
!mBase.IsExplicitInterfaceImpl
from mOverride in mBase.OverridesDirectDerived
where !mOverride.IsUsing(mBase)
select new { mOverride, shouldCall = mBase, definedInBaseClass = mBase.ParentType }
View Code Query or Rule Body
110 methods matched
methods | shouldCall | definedInBaseClass | Full Name |
---|---|---|---|
UserAuthorized(IPrincipal) | UserAuthorized(IPrincipal) | AuthorizeAttribute | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute .UserAuthorized(IPrincipal) |
UserAuthorized(IPrincipal) | UserAuthorized(IPrincipal) | AuthorizeAttribute | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AuthorizeClaimsAttribute .UserAuthorized(IPrincipal) |
get_Trace() | get_Trace() | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.get_Trace() |
get_GroupPrefix() | get_GroupPrefix() | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.get_GroupPrefix() |
GetSignals(String,String) | GetSignals(String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.GetSignals(String,String) |
AuthorizeRequest(IRequest) | AuthorizeRequest(IRequest) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .AuthorizeRequest(IRequest) |
AuthorizeRequest(IRequest) | AuthorizeRequest(IRequest) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .UnusableProtectedConnection .AuthorizeRequest(IRequest) |
AuthorizeRequest(IRequest) | AuthorizeRequest(IRequest) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .AuthorizeRequest(IRequest) |
OnRejoiningGroups(IRequest,IList<String> ,String) | OnRejoiningGroups(IRequest,IList<String>,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnRejoiningGroups (IRequest,IList<String>,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnConnected(IRequest ,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .AsyncOnConnectedConnection.OnConnected (IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnectionThrows .OnConnected(IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection .OnConnected(IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems.OnConnected (IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnection .OnConnected(IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .MyGroupEchoConnection.OnConnected (IRequest,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .MyReconnect.OnConnected(IRequest,String ) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnConnected(IRequest ,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnConnected(IRequest ,String) |
OnConnected(IRequest,String) | OnConnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnConnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnReconnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ExamineReconnectPath.OnReconnected (IRequest,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReconnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReconnected(IRequest ,String) |
OnReconnected(IRequest,String) | OnReconnected(IRequest,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnReconnected(IRequest ,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.LoadTestHarness .TestConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.EchoConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ExamineHeadersConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.PreserializedJsonConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .BroadcastConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .SyncErrorConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.StressServer .Connections.StressConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .SendingConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .TestConnection.OnReceived(IRequest ,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+MyConnection.OnReceived (IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+MyConnection2 .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+TransportResponse .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+MyAuthenticatedConnecti on.OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.Tests .DisconnectFacts+FarmConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.SecurityFacts+MyConnection .OnReceived(IRequest,String,String) |
OnReceived(IRequest,String,String) | OnReceived(IRequest,String,String) | PersistentConnection | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs .SecurityFacts+MyGroupConnection .OnReceived(IRequest,String,String) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Hubs .HubDispatcher.OnDisconnected(IRequest ,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems.OnDisconnected (IRequest,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnDisconnected(IRequest ,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnDisconnected(IRequest ,String,Boolean) |
OnDisconnected(IRequest,String,Boolean) | OnDisconnected(IRequest,String,Boolean) | PersistentConnection | Microsoft.AspNet.SignalR.Samples .RawConnection.OnDisconnected(IRequest ,String,Boolean) |
TryGetMember(GetMemberBinder,Object&) | TryGetMember(GetMemberBinder,Object&) | SignalProxy | Microsoft.AspNet.SignalR.Hubs .StatefulSignalProxy.TryGetMember (GetMemberBinder,Object&) |
GetInvocationData(String,Object[]) | GetInvocationData(String,Object[]) | SignalProxy | Microsoft.AspNet.SignalR.Hubs .StatefulSignalProxy.GetInvocationData (String,Object[]) |
get_Parameters() | get_Parameters() | MethodDescriptor | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor.get_Parameters() |
get_Invoker() | get_Invoker() | MethodDescriptor | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor.get_Invoker() |
get_Attributes() | get_Attributes() | MethodDescriptor | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor.get_Attributes() |
BuildRejoiningGroups(Func<HubDescriptor ,IRequest,IList<String>,IList<String>>) | BuildRejoiningGroups(Func<HubDescriptor,IRequest,IList<String>,IList<String>>) | HubPipelineModule | Microsoft.AspNet.SignalR.Tests .HubFacts+LogRejoiningGroupsModule .BuildRejoiningGroups(Func<HubDescriptor ,IRequest,IList<String>,IList<String>>) |
OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) | OnIncomingError(ExceptionContext,IHubIncomingInvokerContext) | HubPipelineModule | Microsoft.AspNet.SignalR.Tests .HubFacts+SuppressErrorModule .OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) |
OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) | OnIncomingError(ExceptionContext,IHubIncomingInvokerContext) | HubPipelineModule | Microsoft.AspNet.SignalR.Tests .HubFacts+WrapErrorModule .OnIncomingError(ExceptionContext ,IHubIncomingInvokerContext) |
Publish(Message) | Publish(Message) | MessageBus | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessageBus.Publish(Message) |
CreateSubscription(ISubscriber,String ,Func<MessageResult,Object,Task<Boolean> >,Int32,Object) | CreateSubscription(ISubscriber,String,Func<MessageResult,Object,Task<Boolean>>,Int32,Object) | MessageBus | Microsoft.AspNet.SignalR.Messaging .ScaleoutMessageBus.CreateSubscription (ISubscriber,String,Func<MessageResult ,Object,Task<Boolean>>,Int32,Object) |
CreateTopic(String) | CreateTopic(String) | MessageBus | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts+TestMessageBus .CreateTopic(String) |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.FakeScaleoutBus .get_StreamCount() |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus.get_StreamCount() |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus.get_StreamCount() |
get_StreamCount() | get_StreamCount() | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Tests.Server .ScaleOutMessageBusFacts+TestScaleoutBus .get_StreamCount() |
Send(IList<Message>) | Send(IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Stress .StressRuns+DelayedMessageBus.Send(IList <Message>) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.FakeScaleoutBus.Send (Int32,IList<Message>) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.Redis .RedisMessageBus.Send(Int32,IList <Message>) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.SqlServer .SqlMessageBus.Send(Int32,IList<Message> ) |
Send(Int32,IList<Message>) | Send(Int32,IList<Message>) | ScaleoutMessageBus | Microsoft.AspNet.SignalR.ServiceBus .ServiceBusMessageBus.Send(Int32,IList <Message>) |
BeforeInvoke(Object) | BeforeInvoke(Object) | Subscription | Microsoft.AspNet.SignalR.Messaging .ScaleoutSubscription.BeforeInvoke (Object) |
BeforeInvoke(Object) | BeforeInvoke(Object) | Subscription | Microsoft.AspNet.SignalR.Messaging .DefaultSubscription.BeforeInvoke(Object ) |
OnMessage(String) | OnMessage(String) | WebSocketHandler | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler.OnMessage (String) |
OnError() | OnError() | WebSocketHandler | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler.OnError() |
OnClose() | OnClose() | WebSocketHandler | Microsoft.AspNet.SignalR.WebSockets .DefaultWebSocketHandler.OnClose() |
get_MaxMessages() | get_MaxMessages() | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.get_MaxMessages() |
ProcessRequest(ITransportConnection) | ProcessRequest(ITransportConnection) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .WebSocketTransport.ProcessRequest (ITransportConnection) |
Send(Object) | Send(Object) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.Send(Object) |
Send(Object) | Send(Object) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .WebSocketTransport.Send(Object) |
ProcessSendRequest() | ProcessSendRequest() | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.ProcessSendRequest () |
OnMessageReceived(PersistentResponse) | OnMessageReceived(PersistentResponse) | ForeverTransport | Microsoft.AspNet.SignalR.Transports .LongPollingTransport.OnMessageReceived (PersistentResponse) |
Get(String) | Get(String) | TracingTestHost | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.MemoryTestHost.Get (String) |
Post(String,IDictionary<String,String>) | Post(String,IDictionary<String,String>) | TracingTestHost | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.MemoryTestHost.Post (String,IDictionary<String,String>) |
get_Endpoint() | get_Endpoint() | SendReceiveRun | Microsoft.AspNet.SignalR.Stress .HubInvocationRun.get_Endpoint() |
CreateReceiver(Int32) | CreateReceiver(Int32) | SendReceiveRun | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun .CreateReceiver(Int32) |
Send(Int32,String) | Send(Int32,String) | SendReceiveRun | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun.Send (Int32,String) |
CreateMessageBus() | CreateMessageBus() | MessageBusRun | Microsoft.AspNet.SignalR.Stress .Performance.ServiceBusMessageBusRun .CreateMessageBus() |
CreateMessageBus() | CreateMessageBus() | MessageBusRun | Microsoft.AspNet.SignalR.Stress .Performance.RedisMessageBusRun .CreateMessageBus() |
CreateMessageBus() | CreateMessageBus() | MessageBusRun | Microsoft.AspNet.SignalR.Stress .Performance.SqlMessageBusRun .CreateMessageBus() |
InitializePerformanceCounters() | InitializePerformanceCounters() | HostedRun | Microsoft.AspNet.SignalR.Stress .SendReceiveRun .InitializePerformanceCounters() |
get_MediaUrlRegex() | get_MediaUrlRegex() | EmbedContentProvider | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders .CollegeHumorContentProvider .get_MediaUrlRegex() |
ExtractParameters(Uri) | ExtractParameters(Uri) | EmbedContentProvider | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.ContentProviders .YouTubeContentProvider .ExtractParameters(Uri) |
Login(HubFacts+User) | Login(HubFacts+User) | HubFacts+MultGroupHub | Microsoft.AspNet.SignalR.Tests .HubFacts+MultGroupHub2.Login (HubFacts+User) |
get_BaseType() | get_BaseType() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_BaseType() |
get_ContentProperty() | get_ContentProperty() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_ContentProperty() |
GetMember(String) | GetMember(String) | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.GetMember(String) |
get_IsArray() | get_IsArray() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_IsArray() |
get_IsCollection() | get_IsCollection() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_IsCollection() |
get_IsConstructible() | get_IsConstructible() | XamlSystemBaseType | Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples .Microsoft_AspNet_SignalR_Client_Windows StoreCSharp_Samples_XamlTypeInfo .XamlUserType.get_IsConstructible() |
Statistics
Stat | shouldCall | definedInBaseClass |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Do not hide base class methods |
// To fix a violation of this rule, remove or rename the method, or change the parameter signature
// so that the method does not hide the base method.
// More on hiding vs. virtual usefulness here:
// http://www.artima.com/intv/nonvirtual.html
// http://blogs.msdn.com/b/ericlippert/archive/2008/05/21/method-hiding-apologia.aspx
warnif count > 0
// Define a lookup table indexing methods by their name including parameters signature.
let lookup = Methods.Where(m => !m.IsConstructor && !m.IsStatic && !m.IsGeneratedByCompiler)
.ToLookup(m1 => m1.Name)
from t in Application.Types
where !t.IsStatic && t.IsClass &&
// Discard classes deriving directly from System.Object
t.DepthOfInheritance > 1
where t.BaseClasses.Any()
// For each methods not overriding any methods (new slot),
// let's check if it hides by name some methods defined in base classe.
from m in t.InstanceMethods
where m.IsNewSlot && !m.IsExplicitInterfaceImpl && !m.IsGeneratedByCompiler
// Notice how lookup is used to quickly retrieve methods with same name as m.
// This makes the query 10 times faster than iterating each base methods to check their name.
let baseMethodsHidden = lookup[m.Name].Where(m1 => m1 != m && t.DeriveFrom(m1.ParentType))
where baseMethodsHidden.Count() > 0
select new { m, baseMethodsHidden }View Code Query or Rule Body
No methods matched
![]() | Rule warning: A stateless class or structure might be turned into a static type |
// This rule indicates stateless types that might
// eventually be turned into static classes.
warnif count > 0 from t in JustMyCode.Types where
!t.IsStatic &&
!t.IsGeneric &&
t.InstanceFields.Count() == 0 &&
// Don't match:
// --> types that implement some interfaces.
t.NbInterfacesImplemented == 0 &&
// --> or classes that have sub-classes children.
t.NbChildren == 0 &&
// --> or classes that have a base class
((t.IsClass && t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1) ||
t.IsStructure)
select t
View Code Query or Rule Body
96 types matched
types | Full Name |
---|---|
Program | Microsoft.AspNet.SignalR.Client.Samples .Program |
PerformanceCounterInstaller | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller |
Program | Microsoft.AspNet.SignalR.Utils.Program |
TopicState | Microsoft.AspNet.SignalR.Messaging .TopicState |
ControllerHub+Startup | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup |
Client | Microsoft.AspNet.SignalR.Crank.Client |
Startup | Microsoft.AspNet.SignalR.LoadTestHarness .Startup |
Program | Microsoft.AspNet.SignalR.Stress.Program |
Startup | Microsoft.AspNet.SignalR.Samples.Startup |
Program | Microsoft.AspNet.SignalR.Client40 .Samples.Program |
MyProject+MyWebServices | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+MyWebServices |
LongPollingFacts | Microsoft.AspNet.SignalR.Tests .LongPollingFacts |
CustomHttpClient | Microsoft.AspNet.SignalR.Tests .CustomHttpClient |
PersistentConnectionFacts | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts |
GetHubContextFacts | Microsoft.AspNet.SignalR.Tests .GetHubContextFacts |
ConnectionFacts | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts |
SecurityFacts | Microsoft.AspNet.SignalR.FunctionalTests .Server.Hubs.SecurityFacts |
ChunkBufferFacts | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts |
ChunkBufferFacts+ReadLine | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine |
ConnectionFacts+Start | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts+Start |
HubProxyFacts | Microsoft.AspNet.SignalR.Client.Tests .HubProxyFacts |
KeepAliveFacts | Microsoft.AspNet.SignalR.Client.Tests .KeepAliveFacts |
TransportFacts | Microsoft.AspNet.SignalR.Client.Tests .TransportFacts |
TransportFacts | Microsoft.AspNet.SignalR.Client .Transports.TransportFacts |
CommonNuGet | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.CommonNuGet |
OwinFacts | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.OwinFacts |
SignalRFacts | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.SignalRFacts |
SignalRLocFacts | Microsoft.AspNet.SignalR.FunctionalTests .NuGet.SignalRLocFacts |
Startup | Microsoft.AspNet.SelfHost.Samples .Startup |
Program | Microsoft.AspNet.SelfHost.Samples .Program |
ObservableSqlOperationFacts | Microsoft.AspNet.SignalR.Tests.SqlServer .ObservableSqlOperationFacts |
SqlScaleoutConfigurationFacts | Microsoft.AspNet.SignalR.SqlServer.Tests .SqlScaleoutConfigurationFacts |
ArrayTextReaderFacts | Microsoft.AspNet.SignalR.Tests .ArrayTextReaderFacts |
ConfigurationManagerFacts | Microsoft.AspNet.SignalR.Tests .ConfigurationManagerFacts |
GroupManagerFacts | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts |
GroupManagerFacts+Add | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Add |
GroupManagerFacts+Remove | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Remove |
GroupManagerFacts+Send | Microsoft.AspNet.SignalR.Tests .GroupManagerFacts+Send |
PersistentConnectionFactoryFacts | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFactoryFacts |
PersistentConnectionFactoryFacts+CreateI nstance | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFactoryFacts+Create Instance |
PersistentConnectionFacts | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts |
PersistentConnectionFacts+ProcessRequest | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+ProcessReques t |
PersistentConnectionFacts+VerifyGroups | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+VerifyGroups |
PersistentConnectionFacts+GetConnectionI d | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+GetConnection Id |
PersistentResponseFacts | Microsoft.AspNet.SignalR.Tests .PersistentResponseFacts |
BufferTextWriterFacts | Microsoft.AspNet.SignalR.Tests .BufferTextWriterFacts |
ServerConnectionFacts | Microsoft.AspNet.SignalR.Tests .ServerConnectionFacts |
ServerConnectionFacts+PopulateResponseSt ate | Microsoft.AspNet.SignalR.Tests .ServerConnectionFacts+PopulateResponseS tate |
CursorFacts | Microsoft.AspNet.SignalR.Tests .CursorFacts |
DefaultHubResolverFacts | Microsoft.AspNet.SignalR.Tests .DefaultHubResolverFacts |
DefaultActionResolverFacts | Microsoft.AspNet.SignalR.Tests .DefaultActionResolverFacts |
StringMinifierFacts | Microsoft.AspNet.SignalR.Tests .StringMinifierFacts |
TaskAsyncHelperFacts | Microsoft.AspNet.SignalR.Tests .TaskAsyncHelperFacts |
TaskQueueFacts | Microsoft.AspNet.SignalR.Tests .TaskQueueFacts |
CookieFacts | Microsoft.AspNet.SignalR.Tests.Hosting .CookieFacts |
ResponseExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Hosting .ResponseExtensionsFacts |
JsonFacts | Microsoft.AspNet.SignalR.Tests.Json .JsonFacts |
JsonSerializerExtensionFacts | Microsoft.AspNet.SignalR.Tests.Json .JsonSerializerExtensionFacts |
ServerRequestFacts | Microsoft.AspNet.SignalR.Tests.Owin .ServerRequestFacts |
WebSocketFacts | Microsoft.AspNet.SignalR.Tests.Owin .WebSocketFacts |
TraceManagerFacts | Microsoft.AspNet.SignalR.Tests.Tracing .TraceManagerFacts |
ConnectionExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Core .ConnectionExtensionsFacts |
HubManagerExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Core .HubManagerExtensionsFacts |
HubTypeExtensions | Microsoft.AspNet.SignalR.Tests.Core .HubTypeExtensions |
MethodExtensionsFacts | Microsoft.AspNet.SignalR.Tests.Core .MethodExtensionsFacts |
DefaultHubManagerFacts | Microsoft.AspNet.SignalR.Tests.Core .DefaultHubManagerFacts |
HubDescriptorFacts | Microsoft.AspNet.SignalR.Tests.Core .HubDescriptorFacts |
HubMethodDispatcherFacts | Microsoft.AspNet.SignalR.Tests.Core .HubMethodDispatcherFacts |
ForeverFrameTransportFacts | Microsoft.AspNet.SignalR.Tests.Core .ForeverFrameTransportFacts |
DefaultJavaScriptProxyGeneratorFacts | Microsoft.AspNet.SignalR.Tests.Core.Hubs .DefaultJavaScriptProxyGeneratorFacts |
HubConnectionContextFacts | Microsoft.AspNet.SignalR.Tests.Core.Hubs .HubConnectionContextFacts |
HubContextFacts | Microsoft.AspNet.SignalR.Tests.Core.Hubs .HubContextFacts |
NotAHub | Microsoft.AspNet.SignalR.Tests.Core.Hubs .NotAHub |
AckHandlerFacts | Microsoft.AspNet.SignalR.Tests.Server .AckHandlerFacts |
ProtocolResolverFacts | Microsoft.AspNet.SignalR.Tests.Server .ProtocolResolverFacts |
ScaleoutStreamManagerFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamManagerFacts |
ServiceBusConfigurationFacts | Microsoft.AspNet.SignalR.Tests.Server .ServiceBusConfigurationFacts |
DiffSetFacts | Microsoft.AspNet.SignalR.Tests.Server .DiffSetFacts |
ConnectionFacts | Microsoft.AspNet.SignalR.Tests.Server .ConnectionFacts |
DisposerFacts | Microsoft.AspNet.SignalR.Tests.Server .DisposerFacts |
MessageBusFacts | Microsoft.AspNet.SignalR.Tests.Server .MessageBusFacts |
ScaleOutMessageBusFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleOutMessageBusFacts |
ScaleoutStoreFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStoreFacts |
ScaleoutStreamFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutStreamFacts |
ScaleoutConfigurationFacts | Microsoft.AspNet.SignalR.Tests.Server .ScaleoutConfigurationFacts |
SubscriptionFacts | Microsoft.AspNet.SignalR.Tests.Server .SubscriptionFacts |
TopicFacts | Microsoft.AspNet.SignalR.Tests.Server .TopicFacts |
HubFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubFacts |
HubProgressFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubProgressFacts |
HubProgressFacts+ProgressData | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubProgressFacts+ProgressData |
TypedClientBuilderFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.TypedClientBuilderFacts |
TypedClientBuilderFacts+NotAnInterface | Microsoft.AspNet.SignalR.Tests.Server .Hubs .TypedClientBuilderFacts+NotAnInterface |
HubDispatcherFacts | Microsoft.AspNet.SignalR.Tests.Server .Hubs.HubDispatcherFacts |
ForeverTransportFacts | Microsoft.AspNet.SignalR.Tests.Server .Transports.ForeverTransportFacts |
LongPollingTransportFacts | Microsoft.AspNet.SignalR.Tests.Server .Transports.LongPollingTransportFacts |
WebSocketTransportFacts | Microsoft.AspNet.SignalR.Tests.Server .Transports.WebSocketTransportFacts |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Non-static classes should be instantiated or turned to static |
// Notice that classes only instantiated through reflection, like plug-in root classes
// are matched by this rules.
warnif count > 0
from t in JustMyCode.Types
where t.IsClass &&
//!t.IsPublic && // if you are developing a framework,
// you might not want to match public classes
!t.IsStatic &&
!t.IsAttributeClass && // Attributes class are never seen as instantiated
!t.DeriveFrom("System.MarshalByRefObject".AllowNoMatch()) // Types instantiated through remoting infrastructure
// find the first constructor of t called
let ctorCalled = t.Constructors.FirstOrDefault(ctor => ctor.NbMethodsCallingMe > 0)
// match t if none of its constructors is called.
where ctorCalled == null
select new { t, t.Visibility }View Code Query or Rule Body
279 types matched
types | Visibility | Full Name |
---|---|---|
Program | Internal | Microsoft.AspNet.SignalR.Client.Samples .Program |
PerformanceCounterManager | Public | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager |
Program | Internal | Microsoft.AspNet.SignalR.Utils.Program |
ListHelper<T> | Internal | Microsoft.AspNet.SignalR.Infrastructure .ListHelper<T> |
SafeSet<T> | Internal | Microsoft.AspNet.SignalR.Infrastructure .SafeSet<T> |
HubRequestParser | Internal | Microsoft.AspNet.SignalR.Hubs .HubRequestParser |
HubRequestParser+HubInvocation | Private | Microsoft.AspNet.SignalR.Hubs .HubRequestParser+HubInvocation |
HubDispatcher+ClientHubInfo | Private | Microsoft.AspNet.SignalR.Hubs .HubDispatcher+ClientHubInfo |
TopicState | Internal | Microsoft.AspNet.SignalR.Messaging .TopicState |
HubDispatcherMiddleware | Public | Microsoft.AspNet.SignalR.Owin.Middleware .HubDispatcherMiddleware |
PersistentConnectionMiddleware | Public | Microsoft.AspNet.SignalR.Owin.Middleware .PersistentConnectionMiddleware |
ControllerHub | Public | Microsoft.AspNet.SignalR.Crank .ControllerHub |
ControllerHub+Startup | Public | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup |
Client | Public | Microsoft.AspNet.SignalR.Crank.Client |
CrankArguments | Internal | Microsoft.AspNet.SignalR.Crank .CrankArguments |
Basic | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Basic |
QueryString | Public | Microsoft.AspNet.SignalR.LoadTestHarness .QueryString |
Default | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Default |
Startup | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Startup |
TestConnection | Public | Microsoft.AspNet.SignalR.LoadTestHarness .TestConnection |
Dashboard | Public | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard |
TestHub | Public | Microsoft.AspNet.SignalR.LoadTestHarness .TestHub |
RawConnection | Public | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection+Message | Private | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
StressConnection | Public | Microsoft.AspNet.SignalR.StressServer .Connections.StressConnection |
ConcurrentCallsHub | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.ConcurrentCallsHub |
SimpleEchoHub | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.SimpleEchoHub |
HubWithGroups | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.HubWithGroups |
OnConnectedOnDisconnectedHub | Public | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub |
AdminAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
HeaderAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
IncomingAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.IncomingAuthHub |
InheritAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
InvokeAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InvokeAuthHub |
UserAndRoleAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.UserAndRoleAuthHub |
Status | Public | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Status |
DemoHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub |
PreSendRequestHeadersModule | Public | Microsoft.AspNet.SignalR.Tests.Common .PreSendRequestHeadersModule |
AsyncOnConnectedConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .AsyncOnConnectedConnection |
FallbackToLongPollingConnectionThrows | Public | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnectionThrows |
ExamineHeadersConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .ExamineHeadersConnection |
ExamineReconnectPath | Public | Microsoft.AspNet.SignalR.Tests.Common .ExamineReconnectPath |
StartIISTask | Public | Microsoft.AspNet.SignalR.Tests.Common .StartIISTask |
AddGroupOnConnectedConnection | Internal | Microsoft.AspNet.SignalR.Tests.Common .AddGroupOnConnectedConnection |
ConnectionThatUsesItems | Public | Microsoft.AspNet.SignalR.Tests.Common .ConnectionThatUsesItems |
FallbackToLongPollingConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .FallbackToLongPollingConnection |
BroadcastConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .BroadcastConnection |
MyBadConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MyBadConnection |
MyGroupEchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MyGroupEchoConnection |
MyRejoinGroupsConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MyRejoinGroupsConnection |
MySendingConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .MySendingConnection |
SyncErrorConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .SyncErrorConnection |
UnusableProtectedConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .UnusableProtectedConnection |
AuthenticatedEchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
EchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.EchoConnection |
PreserializedJsonConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.PreserializedJsonConnection |
RedirectionConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.RedirectionConnection |
StatusCodeConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.StatusCodeConnection |
AuthenticatedEchoHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.AuthenticatedEchoHub |
ChatWithGroups | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ChatWithGroups |
ClientCallbackHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ClientCallbackHub |
ConnectionDataVerifierHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ConnectionDataVerifierHub |
DelayedOnConnectedHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DelayedOnConnectedHub |
DateAsStringHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.DateAsStringHub |
ExamineHeadersHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ExamineHeadersHub |
GroupJoiningHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.GroupJoiningHub |
InvalidTypedHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.InvalidTypedHub |
MyItemsHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.MyItemsHub |
ProgressHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub |
ValidTypedHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ValidTypedHub |
OnConnectedBufferHub | Public | Microsoft.AspNet.SignalR.Tests.Common .Hubs.OnConnectedBufferHub |
RequestItemsResponse | Public | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.RequestItemsResponse |
ConnectionRun | Public | Microsoft.AspNet.SignalR.Stress .ConnectionRun |
HubInvocationRun | Public | Microsoft.AspNet.SignalR.Stress .HubInvocationRun |
EmptyProtectedData | Public | Microsoft.AspNet.SignalR.Stress .EmptyProtectedData |
Program | Internal | Microsoft.AspNet.SignalR.Stress.Program |
Program+StressArguments | Private | Microsoft.AspNet.SignalR.Stress .Program+StressArguments |
StressRuns+MyRejoinGroupConnection | Public | Microsoft.AspNet.SignalR.Stress .StressRuns+MyRejoinGroupConnection |
ClientServerMemoryRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.ClientServerMemoryRun |
SimpleEchoHubRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun |
ServiceBusMessageBusRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.ServiceBusMessageBusRun |
RedisMessageBusRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.RedisMessageBusRun |
SqlMessageBusRun | Public | Microsoft.AspNet.SignalR.Stress .Performance.SqlMessageBusRun |
ConcurrentCallsRun | Public | Microsoft.AspNet.SignalR.Stress.Stress .ConcurrentCallsRun |
AuthenticatedEchoConnection | Public | Microsoft.AspNet.SignalR.Tests.Common .Connections.AuthenticatedEchoConnection |
Startup | Public | Microsoft.AspNet.SignalR.Samples.Startup |
Startup+ClaimsMiddleware | Private | Microsoft.AspNet.SignalR.Samples .Startup+ClaimsMiddleware |
_Default | Public | Microsoft.AspNet.SignalR.Samples ._Default |
Global | Public | Microsoft.AspNet.SignalR.Samples.Global |
RawConnection | Public | Microsoft.AspNet.SignalR.Samples .RawConnection |
RawConnection+Message | Private | Microsoft.AspNet.SignalR.Samples .RawConnection+Message |
SendingConnection | Public | Microsoft.AspNet.SignalR.Samples .SendingConnection |
TestConnection | Public | Microsoft.AspNet.SignalR.Samples .TestConnection |
SignalRMaster | Public | Microsoft.AspNet.SignalR.Samples .SignalRMaster |
StreamingConnection | Public | Microsoft.AspNet.SignalR.Samples .StreamingConnection |
Default | Public | Microsoft.AspNet.SignalR.Samples.Raw .Default |
Default | Public | Microsoft.AspNet.SignalR.Samples .Streaming.Default |
AdminAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.AdminAuthHub |
HeaderAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.HeaderAuthHub |
InheritAuthHub | Public | Microsoft.AspNet.SignalR.Samples.Hubs .Auth.InheritAuthHub |
Statistics
Stat | Visibility |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods should be declared static if possible |
warnif count > 0
// When an instance method can be safely declared as static you should declare it as static.
// Since it doesn't use any instance data and method of its type and base-types,
// you should consider if such a method could be moved to a static utility class
// or if it is strongly related enough to its current declaring type to stay in it.
//
// Turning an instance method into a static method is a micro performance optimization
// since a static method is a bit cheaper to invoke than an instance method.
from t in JustMyCode.Types.Where(t =>
!t.IsStatic && !t.IsInterface &&
!t.IsEnumeration && !t.IsDelegate &&
!t.IsGeneratedByCompiler)
let methodsThatCanBeMadeStatic =
from m in t.InstanceMethods
// An instance method can be turned to static if it is not virtual,
// not using the this reference and also, not using
// any of its class or base classes instance fields or instance methods.
where !m.IsAbstract && !m.IsVirtual &&
!m.AccessThis && !m.IsExplicitInterfaceImpl &&
// Optimization: Using FirstOrDefault() avoid to check all members,
// as soon as one member is found
// we know the method m cannot be made static.
m.MembersUsed.FirstOrDefault(
mUsed => !mUsed.IsStatic &&
(mUsed.ParentType == t ||
t.DeriveFrom(mUsed.ParentType))
) == null
select m
from m in methodsThatCanBeMadeStatic
let staticFieldsUsed = m.ParentType.StaticFields.UsedBy(m).Where(f => !f.IsGeneratedByCompiler)
select new { m, staticFieldsUsed }View Code Query or Rule Body
471 methods matched
methods | staticFieldsUsed | Full Name |
---|---|---|
GenerateProxy(String,String,Action <String>) | 0 field | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator.GenerateProxy(String,String,Action <String>) |
UninstallCounters() | 0 field | Microsoft.AspNet.SignalR.Utils .PerformanceCounterInstaller .UninstallCounters() |
get_RequireOutgoing() | 0 field | Microsoft.AspNet.SignalR .AuthorizeAttribute.get_RequireOutgoing( ) |
Mark(Int32,Int32[]) | 0 field | Microsoft.AspNet.SignalR.Crank .ControllerHub.Mark(Int32,Int32[]) |
Configuration(IAppBuilder) | 0 field | Microsoft.AspNet.SignalR.Crank .ControllerHub+Startup.Configuration (IAppBuilder) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.LoadTestHarness .Default.Page_Load(Object,EventArgs) |
Configuration(IAppBuilder) | 0 field | Microsoft.AspNet.SignalR.LoadTestHarness .Startup.Configuration(IAppBuilder) |
get__timer() | 1 field | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard.get__timer() |
ForceGC() | 0 field | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard.ForceGC() |
GetUser(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetUser(String) |
GetClient(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetClient(String) |
Echo(String) | 0 field | Microsoft.AspNet.SignalR.StressServer .Hubs.OnConnectedOnDisconnectedHub.Echo (String) |
GetValue() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.GetValue() |
SynchronousException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SynchronousException() |
HubException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.HubException() |
HubExceptionWithoutErrorData() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub .HubExceptionWithoutErrorData() |
CancelledTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledTask() |
CancelledGenericTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledGenericTask() |
NeverEndingTask() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.NeverEndingTask() |
SimpleArray(Int32[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SimpleArray(Int32[]) |
ComplexArray(DemoHub+Person[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ComplexArray (DemoHub+Person[]) |
PassingDynamicComplex(Object) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.PassingDynamicComplex (Object) |
Overload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload() |
Overload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload(Int32) |
InlineScriptTag() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.InlineScriptTag() |
UnsupportedOverload(String) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (String) |
UnsupportedOverload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (Int32) |
ReturnLargePayload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ReturnLargePayload() |
EchoReturn(String) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.EchoHub.EchoReturn(String) |
ReportProgressInt(IProgress<Int32>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressInt (IProgress<Int32>) |
ReportProgressString(IProgress<String>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressString (IProgress<String>) |
ReportProgressTyped(IProgress <ProgressHub+ProgressUpdate>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressTyped (IProgress<ProgressHub+ProgressUpdate>) |
ReportProgressDynamic(IProgress<Object>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Hubs.ProgressHub.ReportProgressDynamic (IProgress<Object>) |
UseMessageBus(MessageBusType ,IDependencyResolver,Int32) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest.UseMessageBus (MessageBusType,IDependencyResolver ,Int32) |
SetReconnectDelay(IClientTransport ,TimeSpan) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest .SetReconnectDelay(IClientTransport ,TimeSpan) |
SetHostData(ITestHost,Dictionary<String ,String>) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest.SetHostData (ITestHost,Dictionary<String,String>) |
GetName(MethodBase) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest.GetName (MethodBase) |
CreateTransport(TransportType ,IHttpClient) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest .CreateTransport(TransportType ,IHttpClient) |
MakeHttpRequest(String,Int32,Int32) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .MakeHttpRequest(String,Int32,Int32) |
EnsureIISExpressCompressionDirectory() | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .EnsureIISExpressCompressionDirectory() |
OnIISExpressExit(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.IIS.SiteManager .OnIISExpressExit(Object,EventArgs) |
RecordAggregates(String,Int64[]) | 0 field | Microsoft.AspNet.SignalR.Stress.RunBase .RecordAggregates(String,Int64[]) |
Configuration(IAppBuilder) | 0 field | Microsoft.AspNet.SignalR.Samples.Startup .Configuration(IAppBuilder) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples ._Default.Page_Load(Object,EventArgs) |
GetUser(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetUser(String) |
GetClient(String) | 1 field | Microsoft.AspNet.SignalR.Samples .RawConnection.GetClient(String) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples .SignalRMaster.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Raw .Default.Page_Load(Object,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples .Streaming.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .ConnectDisconnect.Default.Page_Load (Object,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Counting.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DrawingPad.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .HubConnectionAPI.Default.Page_Load (Object,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .MesssagesLoops.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking.Default.Page_Load(Object ,EventArgs) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .SimultaneousConnections.Default .Page_Load(Object,EventArgs) |
GetShapes() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare.GetShapes() |
FindShape(String) | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.ShapeShare.FindShape(String) |
Set() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .Test.LongRunningHub.Set() |
Reset() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .Test.LongRunningHub.Reset() |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Test.Default.Page_Load(Object,EventArgs ) |
Page_Load(Object,EventArgs) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.Default.Page_Load(Object ,EventArgs) |
GetValue() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.GetValue() |
SynchronousException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SynchronousException() |
HubException() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.HubException() |
HubExceptionWithoutErrorData() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub .HubExceptionWithoutErrorData() |
CancelledTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledTask() |
CancelledGenericTask() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.CancelledGenericTask() |
NeverEndingTask() | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.NeverEndingTask() |
SimpleArray(Int32[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.SimpleArray(Int32[]) |
ComplexArray(DemoHub+Person[]) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ComplexArray (DemoHub+Person[]) |
PassingDynamicComplex(Object) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.PassingDynamicComplex (Object) |
Overload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload() |
Overload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.Overload(Int32) |
InlineScriptTag() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.InlineScriptTag() |
UnsupportedOverload(String) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (String) |
UnsupportedOverload(Int32) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.UnsupportedOverload (Int32) |
ReturnLargePayload() | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.DemoHub.ReturnLargePayload() |
GetMD5Hash(String) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.GetMD5Hash(String) |
Transform(String,HashSet<String>&) | 0 field | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.Transform(String,HashSet <String>&) |
ExtractContent(HttpWebResponse) | 1 field | Microsoft.AspNet.SignalR.Samples.Hubs .Chat.Chat.ExtractContent (HttpWebResponse) |
get__timer() | 1 field | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.RealtimeBroadcast.Realtime .get__timer() |
GetType() | 0 field | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+MyWebServices.GetType() |
Dispose__Instance__<T>(T&) | 0 field | Microsoft.AspNet.SignalR.Samples.VB.My .MyProject+MyWebServices .Dispose__Instance__<T>(T&) |
Send(String) | 0 field | Microsoft.AspNet.SignalR.Tests .HubProxyFacts+MyHub2.Send(String) |
PollingRequestHandlerDoesNotPollAfterClo se() | 0 field | Microsoft.AspNet.SignalR.Tests .LongPollingFacts .PollingRequestHandlerDoesNotPollAfterCl ose() |
PollingRequestHandlerDoesNotPollAfterClo seMidRequest() | 0 field | Microsoft.AspNet.SignalR.Tests .LongPollingFacts .PollingRequestHandlerDoesNotPollAfterCl oseMidRequest() |
FailedWriteCompletesRequestAfterDisconne ctTimeout() | 0 field | Microsoft.AspNet.SignalR.Tests .DisconnectFacts .FailedWriteCompletesRequestAfterDisconn ectTimeout() |
ConnectionsWithTheSameConnectionIdSSEClo seGracefully() | 0 field | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .ConnectionsWithTheSameConnectionIdSSECl oseGracefully() |
ConnectionsWithTheSameConnectionIdLongPo llingCloseGracefully() | 0 field | Microsoft.AspNet.SignalR.Tests .PersistentConnectionFacts+OnConnectedAs ync .ConnectionsWithTheSameConnectionIdLongP ollingCloseGracefully() |
HubHasConnectionEvents() | 0 field | Microsoft.AspNet.SignalR.Tests.HubFacts .HubHasConnectionEvents() |
UsingHubAfterManualCreationThrows() | 0 field | Microsoft.AspNet.SignalR.Tests.HubFacts .UsingHubAfterManualCreationThrows() |
GetCircular() | 0 field | Microsoft.AspNet.SignalR.FunctionalTests .Server.Transports .WebSocketFacts+ReturnsUnserializableObj ectHub.GetCircular() |
ReturnsNullIfNoNewLineIfBuffer() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .ReturnsNullIfNoNewLineIfBuffer() |
ReturnsTextUpToNewLine() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .ReturnsTextUpToNewLine() |
CanReadMultipleLines() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .CanReadMultipleLines() |
WillCompleteNewLine() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ChunkBufferFacts+ReadLine .WillCompleteNewLine() |
NegotiatePassesClientProtocolCorrectly (String,String) | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .NegotiatePassesClientProtocolCorrectly (String,String) |
ConnectionStateChangedEventIsCalledWithA ppropriateArguments() | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .ConnectionStateChangedEventIsCalledWith AppropriateArguments() |
VerifyThatChangingTheJsonSerializerWorks () | 0 field | Microsoft.AspNet.SignalR.Client.Tests .ConnectionFacts .VerifyThatChangingTheJsonSerializerWork s() |
Statistics
Stat | staticFieldsUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Constructor should not call a virtual methods |
// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.
warnif count > 0
from t in Application.Types where
t.IsClass &&
!t.IsGeneratedByCompiler &&
!t.IsSealed
from ctor in t.Constructors
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
where mCalled.IsVirtual &&
(mCalled.ParentType == t ||
t.DeriveFrom(mCalled.ParentType))
select mCalled
where virtualMethodsCalled.Count() > 0
select new { ctor ,
virtualMethodsCalled,
// If there is no derived type, it might be
// an opportunity to mark t as sealed.
t.DerivedTypes }View Code Query or Rule Body
12 methods matched
methods | virtualMethodsCalled | DerivedTypes | Full Name |
---|---|---|---|
.ctor() | 6 methods | 0 type | Microsoft.AspNet.SignalR.Configuration .DefaultConfigurationManager..ctor() |
.ctor(HubDescriptor,String,IEnumerable <MethodDescriptor>) | 1 method | 0 type | Microsoft.AspNet.SignalR.Hubs .NullMethodDescriptor..ctor (HubDescriptor,String,IEnumerable <MethodDescriptor>) |
.ctor(JRaw) | 1 method | 0 type | Microsoft.AspNet.SignalR.Json.JRawValue. .ctor(JRaw) |
.ctor(IStringMinifier,ITraceManager ,IPerformanceCounterManager ,IConfigurationManager,Int32) | 1 method | 8 types | Microsoft.AspNet.SignalR.Messaging .MessageBus..ctor(IStringMinifier ,ITraceManager ,IPerformanceCounterManager ,IConfigurationManager,Int32) |
.ctor() | 1 method | 3 types | Microsoft.AspNet.SignalR.Messaging .ScaleoutConfiguration..ctor() |
.ctor() | 1 method | 0 type | Microsoft.AspNet.SignalR.Messaging .Command..ctor() |
.ctor(RunData) | 1 method | 0 type | Microsoft.AspNet.SignalR.Stress .Performance.SimpleEchoHubRun..ctor (RunData) |
.ctor() | 2 methods | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Rectangle..ctor() |
.ctor() | 1 method | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Square..ctor() |
.ctor() | 1 method | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Circle..ctor() |
.ctor() | 2 methods | 0 type | Microsoft.AspNet.SignalR.Samples.Hubs .ShapeShare.Picture..ctor() |
.ctor(IList<String>) | 1 method | 0 type | Microsoft.AspNet.SignalR.Tests.Server .TestSubscriber..ctor(IList<String>) |
Statistics
Stat | virtualMethodsCalled | DerivedTypes |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Avoid the Singleton pattern |
warnif count > 0
from t in Application.Types
where !t.IsStatic && !t.IsAbstract && (t.IsClass || t.IsStructure)
// All ctors of a singleton are private
where t.Constructors.Where(ctor => !ctor.IsPrivate).Count() == 0
// A singleton contains one static field of its parent type, to reference the unique instance
let staticFieldInstances = t.StaticFields.WithFieldType(t)
where staticFieldInstances.Count() == 1
select new { t, staticFieldInstance = staticFieldInstances.First() }
// The Singleton pattern consists in syntactically enforcing that a class
// has just one unique instance.
// At first glance, this pattern looks appealing and it is widely used.
// However, we discourage you from using singleton classes because experience
// shows that singletons often result in less testable and less maintainable code.
// More details available in these discussions:
// http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members/
// http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/
View Code Query or Rule Body
No types matched
![]() | Rule warning: Don't assign static fields from instance methods |
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where
f.IsStatic &&
!f.IsLiteral &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
// Contract API define such a insideContractEvaluation static field
f.Name != "insideContractEvaluation"
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }View Code Query or Rule Body
17 fields matched
fields | assignedBy | Full Name |
---|---|---|
_initializeDrainTask | 1 method | Microsoft.AspNet.SignalR.Messaging .ScaleoutStream._initializeDrainTask |
ClientsConnected | 2 methods | Microsoft.AspNet.SignalR.Crank .ControllerHub.ClientsConnected |
ControllerConnection | 1 method | Microsoft.AspNet.SignalR.Crank.Client .ControllerConnection |
ControllerProxy | 1 method | Microsoft.AspNet.SignalR.Crank.Client .ControllerProxy |
_broadcastSize | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastSize |
_broadcastCount | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastCount |
_broadcastSeconds | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._broadcastSeconds |
_batchingEnabled | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._batchingEnabled |
_actualFps | 1 method | Microsoft.AspNet.SignalR.LoadTestHarness .Dashboard._actualFps |
_id | 8 methods | Microsoft.AspNet.SignalR.Tests.Common .Infrastructure.HostedTest._id |
instanceId | 1 method | Microsoft.AspNet.SignalR.Hosting.Memory .MemoryHost.instanceId |
Connections | 2 methods | Microsoft.AspNet.SignalR.Samples.Hubs .Benchmark.HubBench.Connections |
_id | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .MouseTracking.MouseTracking._id |
_invokeCount | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub._invokeCount |
_id | 1 method | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.DrawingPad.DrawingPad._id |
counter | 1 method | Microsoft.AspNet.SignalR.Hosting.AspNet .Samples.Hubs.Test.NodeEvent.counter |
_invokeCount | 1 method | Microsoft.AspNet.SignalR.Samples.Hubs .DemoHub.TypedDemoHub._invokeCount |
Statistics
Stat | assignedBy |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Avoid empty interfaces |
warnif count > 0 from t in JustMyCode.Types where
t.IsInterface &&
t.NbMethods == 0
select new { t, t.TypesThatImplementMe }
// Interfaces define members that provide a behavior
// or usage contract. The functionality described by
// the interface can be adopted by any type,
// regardless of where the type appears in the
// inheritance hierarchy. A type implements an
// interface by providing implementations for the
// interface's members. An empty interface does not
// define any members, and as such, does not define
// a contract that can be implemented.
// If your design includes empty interfaces that
// types are expected to implement, you are probably
// using an interface as a marker, or a way of
// identifying a group of types. If this identification
// will occur at runtime, the correct way to accomplish
// this is to use a custom attribute. Use the presence
// or absence of the attribute, or the attribute's
// properties, to identify the target types. If the
// identification must occurs at compile time, then using
// an empty interface is acceptable.View Code Query or Rule Body
No types matched
![]() | Avoid types initialization cycles |
warnif count > 0
// The class constructor (also called static constructor, and named cctor in IL code)
// of a type, if any, is executed by the CLR at runtime, the first time the type is used.
// A cctor doesn't need to be explicitely declared in C# or VB.NET, to exist in compiled IL code.
// Having a static field inline initialization is enought to have
// the cctor implicitely declared in the parent class or structure.
//
// If the cctor of a type t1 is using the type t2 and if the cctor of t2 is using t1,
// some type initialization unexpected and hard-to-diagnose buggy behavior can occur.
// Such a cyclic chain of initialization is not necessarily limited to two types
// and can embrace N types in the general case.
// More information on types initialization cycles can be found here:
// http://msmvps.com/blogs/jon_skeet/archive/2012/04/07/1808561.aspx
// The present code rule enumerates types initialization cycles.
// Some false positives can appear if some lambda expressions are defined
// in cctors or in methods called by cctors. In such situation, this rule
// considers these lambda expressions as executed at type initialization time,
// while it is not necessarily the case.
// Types initialization cycle can only happen between types of an assembly.
from assembly in Application.Assemblies
let cctorSuspects = assembly.ChildMethods.Where(
m => m.IsClassConstructor &&
// Optimization: types involved in a type cycle necessarily don't have type level.
m.ParentType.Level == null)
where cctorSuspects.Count() > 1
let typesSuspects = cctorSuspects.ParentTypes().ToHashSet()
//
// dicoTmp associates to each type suspect T, a set of types from typesSuspects
// that contains at least a method or a field used directly or indirectly by the cctor of T.
//
let dicoTmp = cctorSuspects.ToDictionary(
cctor => cctor.ParentType,
cctor => ((IMember)cctor).ToEnumerable().FillIterative(
members => from m in members
from mUsed in (m is IMethod) ? (m as IMethod).MembersUsed : new IMember[0]
where mUsed.ParentAssembly == assembly
select mUsed)
.DefinitionDomain
.Select(m => m.ParentType) // Don't need .Distinct() here, because of ToHashSet() below.
.Except(cctor.ParentType)
.Intersect(typesSuspects)
.ToHashSet()
)
//
// dico associates to each type suspect T, the set of types initialized (directly or indirectly)
// by the initialization of T. This second step is needed, because if a cctor of a type T1
// calls a member of a type T2, not only the cctor of T1 triggers the initialization of T2,
// but also it triggers the initialization of all types that are initialized by T2 initialization.
//
let dico = typesSuspects.Where(t => dicoTmp[t].Count() > 0).ToDictionary(
typeSuspect => typeSuspect,
typeSuspect => typeSuspect.ToEnumerable().FillIterative(
types => from t in types
from tUsed in dicoTmp[t]
select tUsed)
.DefinitionDomain
.Except(typeSuspect)
.ToHashSet()
)
//
// Now that dico is prepared, detect the cctor cycles
//
from t in dico.Keys
// Thanks to the work done to build dico, it is now pretty easy
// to spot types involved in an initialization cyle with t!
let usersAndUseds = from tTmp in dico[t]
where dico.ContainsKey(tTmp) && dico[tTmp].Contains(t)
select tTmp
where usersAndUseds.Count() > 0
// Here we've found type(s) both using and used by the suspect type.
// A cycle involving the type t is found!
let typeInitCycle = usersAndUseds.Append(t)
// Compute methodsCalled and fieldsUsed, useful to explore
// how a cctor involved in a type initialization cycle, triggers other type initialization.
let methodsCalledDepth = assembly.ChildMethods.DepthOfIsUsedBy(t.ClassConstructor)
let fieldsUsedDepth = assembly.ChildFields.DepthOfIsUsedBy(t.ClassConstructor)
let methodsCalled = methodsCalledDepth.DefinitionDomain.OrderBy(m => methodsCalledDepth[m]).ToArray()
let fieldsUsed = fieldsUsedDepth.DefinitionDomain.OrderBy(f => fieldsUsedDepth[f]).ToArray()
// Use the tick box to: Group cctors methods By parent types
select new { t.ClassConstructor,
cctorsCycle= typeInitCycle.Select(tTmp => tTmp.ClassConstructor),
// methodsCalled and fieldsUsed are members used directly and indirectly by the cctor.
// Export these members to the dependency graph (right click the cell Export/Append ... to the Graph)
// and see how the cctor trigger the initialization of other types
methodsCalled,
fieldsUsed
}View Code Query or Rule Body
No methods matched
API Breaking Changes
|
![]() | API Breaking Changes: Types |
// This rule warns if a publicly visible type is
// not publicly visible anymore or if it has been removed.
// Such type can break the code of your clients.
warnif count > 0 from t in codeBase.OlderVersion().Application.Types
where t.IsPubliclyVisible &&
// The type has been removed and its parent assembly hasn't been removed ...
( (t.WasRemoved() && !t.ParentAssembly.WasRemoved()) ||
// ... or the type is not publicly visible anymore
!t.WasRemoved() && !t.NewerVersion().IsPubliclyVisible)
select new { t,
NewVisibility = (t.WasRemoved() ? " " : t.NewerVersion().Visibility.ToString()) }
View Code Query or Rule Body
No types matched
![]() | API Breaking Changes: Methods |
// This rule warns if a publicly visible method is
// not publicly visible anymore or if it has been removed.
// Such method can break the code of your clients.
warnif count > 0 from m in codeBase.OlderVersion().Application.Methods
where m.IsPubliclyVisible &&
// The method has been removed and its parent type hasn't been removed ...
( (m.WasRemoved() && !m.ParentType.WasRemoved()) ||
// ... or the method is not publicly visible anymore
!m.WasRemoved() && !m.NewerVersion().IsPubliclyVisible)
select new { m,
NewVisibility = (m.WasRemoved() ? " " : m.NewerVersion().Visibility.ToString()) }View Code Query or Rule Body
No methods matched
![]() | API Breaking Changes: Fields |
// This rule warns if a publicly visible field is
// not publicly visible anymore or if it has been removed.
// Such field can break the code of your clients.
warnif count > 0 from f in codeBase.OlderVersion().Application.Fields
where f.IsPubliclyVisible &&
// The field has been removed and its parent type hasn't been removed ...
( (f.WasRemoved() && !f.ParentType.WasRemoved()) ||
// ... or the field is not publicly visible anymore
!f.WasRemoved() && !f.NewerVersion().IsPubliclyVisible)
select new { f,
NewVisibility = (f.WasRemoved() ? " " : f.NewerVersion().Visibility.ToString()) }View Code Query or Rule Body
No fields matched
![]() | API Breaking Changes: Interfaces and Abstract Classes |
// This rule warns if a publicly visible interface or abstract class
// has been changed and contains new abstract methods or
// if some abstract methods have been removed.
// This can break the code of clients
// that implement such interface or derive from such abstract class.
warnif count > 0 from tNewer in Application.Types where
(tNewer.IsInterface || tNewer.IsClass && tNewer.IsAbstract) &&
tNewer.IsPubliclyVisible &&
tNewer.IsPresentInBothBuilds()
let tOlder = tNewer.OlderVersion() where tOlder.IsPubliclyVisible
let methodsRemoved = tOlder.Methods.Where(m => m.IsAbstract && m.WasRemoved())
let methodsAdded = tNewer.Methods.Where(m => m.IsAbstract && m.WasAdded())
where methodsAdded.Count() > 0 || methodsRemoved.Count() > 0
select new { tNewer, methodsAdded, methodsRemoved }View Code Query or Rule Body
No types matched
![]() | Broken serializable types |
// Find breaking changes in types marked with SerializableAttribute.
warnif count > 0
from t in Application.Types where
// Collect types tagged with SerializableAttribute
t.HasAttribute("System.SerializableAttribute".AllowNoMatch()) &&
!t.IsDelegate &&
t.IsPresentInBothBuilds() &&
t.HasAttribute(t)
// Find newer and older versions of NonSerializedAttribute
let newNonSerializedAttribute = ThirdParty.Types.WithFullName("System.NonSerializedAttribute").SingleOrDefault()
let oldNonSerializedAttribute = newNonSerializedAttribute == null ? null : newNonSerializedAttribute.OlderVersion()
// Find added or removed fields not marked with NonSerializedAttribute
let addedInstanceField = from f in t.InstanceFields where
f.WasAdded() &&
(newNonSerializedAttribute == null || !f.HasAttribute(newNonSerializedAttribute))
select f
let removedInstanceField = from f in t.OlderVersion().InstanceFields where
f.WasRemoved() &&
(oldNonSerializedAttribute == null || !f.HasAttribute(oldNonSerializedAttribute))
select f
where addedInstanceField.Count() > 0 || removedInstanceField.Count() > 0
select new { t, addedInstanceField, removedInstanceField }
// From http://msdn.microsoft.com/library/system.serializableattribute.aspx :
// All the public and private fields in a type that are marked by the
// SerializableAttribute are serialized by default, unless the type
// implements the ISerializable interface to override the serialization process.
// The default serialization process excludes fields that are marked
// with the NonSerializedAttribute attribute.View Code Query or Rule Body
No types matched
![]() | Avoid transforming immutable types into mutable types |
// Immutability is a strong property on a type.
// Breaking immutability can result in serious problem for an algorithm consummer
// that has been written taking account of the type immutability.
// To visualize changes in code, right-click a matched type and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
warnif count > 0
from t in Application.Types where
t.IsPresentInBothBuilds() &&
!t.IsStatic &&
!t.IsImmutable &&
t.OlderVersion().IsImmutable
let mutableFields = from f in t.InstanceFields where !f.IsImmutable select f
select new { t, mutableFields }
View Code Query or Rule Body
No types matched
![]() | Avoid changing enumerations Flags status |
// Being tagged with the Flags attribute is a strong property for an enumeration.
// Changing the Flags status of an enumeration has significant impact for its client.
warnif count > 0
let oldFlags = codeBase.OlderVersion().ThirdParty.Types.WithFullName("System.FlagsAttribute").SingleOrDefault()
let newFlags = ThirdParty.Types.WithFullName("System.FlagsAttribute").SingleOrDefault()
where oldFlags != null && newFlags != null
from t in Application.Types where
t.IsEnumeration &&
t.IsPresentInBothBuilds()
let isFlags = t.HasAttribute(newFlags)
let wasFlags = t.OlderVersion().HasAttribute(oldFlags)
where isFlags != wasFlags
select new { t, isFlags, wasFlags }
View Code Query or Rule Body
No types matched
![]() | API: New publicly visible types |
// List types that are new in the public surface of your assemblies
from t in Application.Types
where t.IsPubliclyVisible &&
// The type has been removed and its parent assembly hasn't been removed ...
( (t.WasAdded() && !t.ParentAssembly.WasAdded()) ||
// ... or the type existed but was not publicly visible
!t.WasAdded() && !t.OlderVersion().IsPubliclyVisible)
select new { t,
OldVisibility = (t.WasAdded() ? " " : t.OlderVersion().Visibility.ToString()) }View Code Query or Rule Body
No types matched
![]() | API: New publicly visible methods |
// List methods that are new in the public surface of your assemblies
from m in Application.Methods
where m.IsPubliclyVisible &&
// The method has been removed and its parent assembly hasn'm been removed ...
( (m.WasAdded() && !m.ParentType.WasAdded()) ||
// ... or the t existed but was not publicly visible
!m.WasAdded() && !m.OlderVersion().IsPubliclyVisible)
select new { m,
OldVisibility = (m.WasAdded() ? " " : m.OlderVersion().Visibility.ToString()) }View Code Query or Rule Body
No methods matched
![]() | API: New publicly visible fields |
// List fields that are new in the public surface of your assemblies
from f in Application.Fields
where f.IsPubliclyVisible &&
// The method has been removed and its parent assembly hasn'f been removed ...
( (f.WasAdded() && !f.ParentType.WasAdded()) ||
// ... or the t existed but was not publicly visible
!f.WasAdded() && !f.OlderVersion().IsPubliclyVisible)
select new { f,
OldVisibility = (f.WasAdded() ? " " : f.OlderVersion().Visibility.ToString()) }View Code Query or Rule Body
No fields matched
Code Diff Summary
|
![]() | New assemblies |
from a in Application.Assemblies where a.WasAdded()
select new { a, a.NbLinesOfCode }
View Code Query or Rule Body
No assemblies matched
![]() | Assemblies removed |
from a in codeBase.OlderVersion().Application.Assemblies where a.WasRemoved()
select new { a, a.NbLinesOfCode }View Code Query or Rule Body
No assemblies matched
![]() | Assemblies where code was changed |
from a in Application.Assemblies where a.CodeWasChanged()
select new { a, a.NbLinesOfCode,
oldNbLinesOfCode = a.OlderVersion().NbLinesOfCode.GetValueOrDefault() ,
delta = (int) a.NbLinesOfCode.GetValueOrDefault() - a.OlderVersion().NbLinesOfCode.GetValueOrDefault() }View Code Query or Rule Body
No assemblies matched
![]() | New namespaces |
from n in Application.Namespaces where
!n.ParentAssembly.WasAdded() &&
n.WasAdded()
select new { n, n.NbLinesOfCode }
View Code Query or Rule Body
No namespaces matched
![]() | Namespaces removed |
from n in codeBase.OlderVersion().Application.Namespaces where
!n.ParentAssembly.WasRemoved() &&
n.WasRemoved()
select new { n, n.NbLinesOfCode }
View Code Query or Rule Body
No namespaces matched
![]() | Namespaces where code was changed |
from n in Application.Namespaces where n.CodeWasChanged()
select new { n, n.NbLinesOfCode,
oldNbLinesOfCode = n.OlderVersion().NbLinesOfCode.GetValueOrDefault() ,
delta = (int) n.NbLinesOfCode.GetValueOrDefault() - n.OlderVersion().NbLinesOfCode.GetValueOrDefault() }View Code Query or Rule Body
No namespaces matched
![]() | New types |
from t in Application.Types where
!t.ParentNamespace.WasAdded() &&
t.WasAdded()
select new { t, t.NbLinesOfCode }
View Code Query or Rule Body
No types matched
![]() | Types removed |
from t in codeBase.OlderVersion().Application.Types where
!t.ParentNamespace.WasRemoved() &&
t.WasRemoved()
select new { t, t.NbLinesOfCode }
View Code Query or Rule Body
No types matched
![]() | Types where code was changed |
// To visualize changes in code, right-click a matched type and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
from t in Application.Types where t.CodeWasChanged()
//select new { t, t.NbLinesOfCode }
select new { t, t.NbLinesOfCode,
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
delta = (int?) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }
/*from t in Application.Types where t.CodeWasChanged() && t.IsPresentInBothBuild
select new { t, t.NbLinesOfCode,
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
delta = (int) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }*/View Code Query or Rule Body
No types matched
![]() | Heuristic to find types moved from one namespace or assembly to another |
let typesRemoved = codeBase.OlderVersion().Types.Where(t => t.WasRemoved())
let typesAdded = Types.Where(t => t.WasAdded())
from tMoved in typesAdded.Join(
typesRemoved,
t => t.Name,
t => t.Name,
(tNewer, tOlder) => new { tNewer,
OlderParentNamespace = tOlder.ParentNamespace,
OlderParentAssembly = tOlder.ParentAssembly } )
select tMovedView Code Query or Rule Body
No types matched
![]() | Types directly using one or several types changed |
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()
from t in JustMyCode.Types.UsingAny(typesChanged) where
!t.CodeWasChanged() &&
!t.WasAdded()
let typesChangedUsed = t.TypesUsed.Intersect(typesChanged)
select new { t, typesChangedUsed }View Code Query or Rule Body
No types matched
![]() | Types indirectly using one or several types changed |
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()
// 'depth' represents a code metric defined on types using
// directly or indirectly any type where code was changed.
let depth = JustMyCode.Types.DepthOfIsUsingAny(typesChanged)
from t in depth.DefinitionDomain where
!t.CodeWasChanged() &&
!t.WasAdded()
let typesChangedDirectlyUsed = t.TypesUsed.Intersect(typesChanged)
let depthOfUsingTypesChanged = depth[t]
orderby depthOfUsingTypesChanged
select new { t, depthOfUsingTypesChanged, typesChangedDirectlyUsed }View Code Query or Rule Body
No types matched
![]() | New methods |
from m in Application.Methods where
!m.ParentType.WasAdded() &&
m.WasAdded()
select new { m, m.NbLinesOfCode }
View Code Query or Rule Body
No methods matched
![]() | Methods removed |
from m in codeBase.OlderVersion().Application.Methods where
!m.ParentType.WasRemoved() &&
m.WasRemoved()
select new { m, m.NbLinesOfCode }
View Code Query or Rule Body
No methods matched
![]() | Methods where code was changed |
// To visualize changes in code, right-click a matched method and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
from m in Application.Methods where m.CodeWasChanged()
select new { m, m.NbLinesOfCode,
oldNbLinesOfCode = m.OlderVersion().NbLinesOfCode ,
delta = (int?) m.NbLinesOfCode - m.OlderVersion().NbLinesOfCode }View Code Query or Rule Body
No methods matched
![]() | Methods directly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
from m in JustMyCode.Methods.UsingAny(methodsChanged ) where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedCalled = m.MethodsCalled.Intersect(methodsChanged)
select new { m, methodsChangedCalled }View Code Query or Rule Body
No methods matched
![]() | Methods indirectly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
// 'depth' represents a code metric defined on methods using
// directly or indirectly any method where code was changed.
let depth = JustMyCode.Methods.DepthOfIsUsingAny(methodsChanged)
from m in depth.DefinitionDomain where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedDirectlyUsed = m.MethodsCalled.Intersect(methodsChanged)
let depthOfUsingMethodsChanged = depth[m]
orderby depthOfUsingMethodsChanged
select new { m, depthOfUsingMethodsChanged, methodsChangedDirectlyUsed }View Code Query or Rule Body
No methods matched
![]() | New fields |
from f in Application.Fields where
!f.ParentType.WasAdded() &&
f.WasAdded()
select new { f }
View Code Query or Rule Body
No fields matched
![]() | Fields removed |
from f in codeBase.OlderVersion().Application.Fields where
!f.ParentType.WasRemoved() &&
f.WasRemoved()
select new { f }
View Code Query or Rule Body
No fields matched
![]() | Third party types that were not used and that are now used |
from t in ThirdParty.Types where t.IsUsedRecently()
select new { t, t.Methods, t.Fields, t.TypesUsingMe }
View Code Query or Rule Body
No types matched
![]() | Third party types that were used and that are not used anymore |
from t in codeBase.OlderVersion().Types where t.IsNotUsedAnymore()
select new { t, t.Methods, t.Fields, TypesThatUsedMe = t.TypesUsingMe }
View Code Query or Rule Body
No types matched
![]() | Third party methods that were not used and that are now used |
from m in ThirdParty.Methods where
m.IsUsedRecently() &&
!m.ParentType.IsUsedRecently()
select new { m, m.MethodsCallingMe }View Code Query or Rule Body
No methods matched
![]() | Third party methods that were used and that are not used anymore |
from m in codeBase.OlderVersion().Methods where
m.IsNotUsedAnymore() &&
!m.ParentType.IsNotUsedAnymore()
select new { m, MethodsThatCalledMe = m.MethodsCallingMe}View Code Query or Rule Body
No methods matched
![]() | Third party fields that were not used and that are now used |
from f in ThirdParty.Fields where
f.IsUsedRecently() &&
!f.ParentType.IsUsedRecently()
select new { f, f.MethodsUsingMe }View Code Query or Rule Body
No fields matched
![]() | Third party fields that were used and that are not used anymore |
from f in codeBase.OlderVersion().Fields where
f.IsNotUsedAnymore() &&
!f.ParentType.IsNotUsedAnymore()
select new { f, MethodsThatUsedMe = f.MethodsUsingMe }View Code Query or Rule Body
No fields matched
Test and Code Coverage
|
![]() | C.R.A.P method code metric |
// Change Risk Analyzer and Predictor (i.e. CRAP) code metric
// This code metric helps in pinpointing overly complex and untested code.
// Reference: http://www.artima.com/weblogs/viewpost.jsp?thread=215899
// Formula: CRAP(m) = comp(m)^2 * (1 – cov(m)/100)^3 + comp(m)
warnif count > 0
from m in JustMyCode.Methods
// Don't match too short methods
where m.NbLinesOfCode > 10
let CC = m.CyclomaticComplexity
let uncov = (100 - m.PercentageCoverage) / 100f
let CRAP = (CC * CC * uncov * uncov * uncov) + CC
where CRAP != null && CRAP > 30
orderby CRAP descending, m.NbLinesOfCode descending
select new { m, CRAP, CC, uncoveredPercentage = uncov*100, m.NbLinesOfCode }View Code Query or Rule Body
No methods matched
![]() | Complex methods partially covered by tests should be 100% covered |
warnif count > 0 from m in JustMyCode.Methods
where
// These metrics' definitions are available here:
// http://www.ndepend.com/Metrics.aspx#MetricsOnMethods
( m.NbLinesOfCode > 30 ||
m.ILCyclomaticComplexity > 50 ||
m.ILNestingDepth > 4 ||
m.NbVariables > 8) &&
// Take care only of complex methods
// already partially covered, but not completely covered.
m.PercentageCoverage > 0 &&
m.PercentageCoverage < 100
orderby m.NbLinesOfCodeNotCovered ascending,
m.NbLinesOfCode descending
select new { m, m.PercentageCoverage, m.NbLinesOfCode,
m.NbLinesOfCodeCovered, m.NbLinesOfCodeNotCovered,
m.ILCyclomaticComplexity, m.ILNestingDepth, m.NbVariables } View Code Query or Rule Body
No methods matched
![]() | Method changed poorly covered |
from m in Application.Methods where
m.PercentageCoverage < 30 &&
m.CodeWasChanged()
orderby m.NbLinesOfCode descending,
m.NbLinesOfCodeNotCovered ,
m.PercentageCoverage
select new { m, m.PercentageCoverage, m.NbLinesOfCode,
m.NbLinesOfCodeNotCovered }
View Code Query or Rule Body
No methods matched
![]() | Method added poorly covered |
from m in Application.Methods where
m.NbLinesOfCode > 0 &&
m.PercentageCoverage < 30 &&
m.WasAdded()
orderby m.NbLinesOfCode descending,
m.NbLinesOfCodeNotCovered ,
m.PercentageCoverage
select new { m, m.PercentageCoverage, m.NbLinesOfCode,
m.NbLinesOfCodeNotCovered }
View Code Query or Rule Body
No methods matched
![]() | Types 95% to 99% covered |
from t in Application.Types where
t.PercentageCoverage >= 95 &&
t.PercentageCoverage <= 99 &&
!t.IsGeneratedByCompiler
let methodsCulprit = t.Methods.Where(m => m.PercentageCoverage < 100)
orderby t.NbLinesOfCode descending ,
t.NbLinesOfCodeNotCovered ,
t.PercentageCoverage
select new { t, t.PercentageCoverage, t.NbLinesOfCode,
t.NbLinesOfCodeNotCovered, methodsCulprit }
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.
View Code Query or Rule Body
No types matched
![]() | Namespaces 95% to 99% covered |
from n in Application.Namespaces where
n.PercentageCoverage >= 95 &&
n.PercentageCoverage <= 99
let methodsCulprit = n.ChildMethods.Where(m => m.PercentageCoverage < 100)
orderby n.NbLinesOfCode descending ,
n.NbLinesOfCodeNotCovered ,
n.PercentageCoverage
select new { n, n.PercentageCoverage, n.NbLinesOfCode,
n.NbLinesOfCodeNotCovered, methodsCulprit }
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.View Code Query or Rule Body
No namespaces matched
![]() | Types tagged with FullCoveredAttribute should be 100% covered |
warnif count > 0
from t in Application.Types where
t.HasAttribute ("NDepend.Attributes.FullCoveredAttribute".AllowNoMatch()) &&
t.PercentageCoverage < 100
let notFullCoveredMethods = t.Methods.Where(
m => m.NbLinesOfCode> 0 &&
m.PercentageCoverage < 100 &&
!m.HasAttribute("NDepend.Attributes.UncoverableByTestAttribute".AllowNoMatch()))
orderby t.NbLinesOfCodeNotCovered descending
select new { t, t.PercentageCoverage, t.NbLinesOfCodeNotCovered, notFullCoveredMethods,
t.NbLinesOfCode, t.NbLinesOfCodeCovered }
// By using a FullCoveredAttribute, you can signify to developers
// that a class is, and must remain in the future, 100% covered by tests.
// If you don't want to link NDepend.API.dll,
// you can use your own attribute and adapt this rule.
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.
View Code Query or Rule Body
No types matched
![]() | Types 100% covered should be tagged with FullCoveredAttribute |
warnif count > 0 from t in JustMyCode.Types where
!t.HasAttribute ("NDepend.Attributes.FullCoveredAttribute".AllowNoMatch()) &&
t.PercentageCoverage == 100 &&
!t.IsGeneratedByCompiler
select new { t, t.NbLinesOfCode }
// By using a FullCoveredAttribute, you can signify to developers
// that a class is, and must remain in the future, 100% covered by tests.
// If you don't want to link NDepend.API.dll, you can use your own attribute and adapt this rule.
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.
View Code Query or Rule Body
No types matched
![]() | Types not covered at all |
from t in Application.Types where
t.PercentageCoverage == 0
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }
View Code Query or Rule Body
No types matched
![]() | Namespaces not covered at all |
from n in Application.Namespaces where
n.PercentageCoverage == 0
orderby n.NbLinesOfCode descending
select new { n, n.NbLinesOfCode}
View Code Query or Rule Body
No namespaces matched
![]() | Test Methods |
// We advise to not include test assemblies in code analyzed by NDepend.
// But if you wish the current query to run properly,
// you'll need to consider test assemblies in your list of application assemblies analyzed by NDepend..
let testAttr = ThirdParty.Types.WithNameIn("TestAttribute", "TestCaseAttribute")
let testMethods = Methods.TaggedWithAnyAttributes(testAttr)
from m in testMethods
select m
View Code Query or Rule Body
No methods matched
![]() | Methods directly called by test Methods |
// Lists all methods directly called by tests methods.
// Overrides of virtual and absract methods, called through polymorphism, are not listed.
// Methods solely invoked through a delegate are not listed.
// Methods solely invoked through reflection are not listed.
// We advise to not include test assemblies in code analyzed by NDepend.
// But if you wish the current query to run properly,
// you'll need to consider test assemblies in your list of application assemblies analyzed by NDepend..
let testAttr = ThirdParty.Types.WithNameIn("TestAttribute", "TestCaseAttribute")
let testMethods = Methods.TaggedWithAnyAttributes(testAttr).ToHashSet()
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
//let testAssemblies = testMethods.ParentAssemblies().ToHashSet()
from m in Application.Methods.UsedByAny(testMethods)
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
//where !testAssemblies.Contains(m.ParentAssembly)
select new { m ,
calledByTests = m.MethodsCallingMe.Intersect(testMethods ),
// --- Uncomment this line if your project import some coverage data ---
// m.PercentageCoverage
}View Code Query or Rule Body
No methods matched
![]() | Methods directly and indirectly called by test Methods |
// Lists all methods called directly or indirectly by tests methods.
// Overrides of virtual and absract methods, called through polymorphism, are not listed.
// Methods solely invoked through a delegate are not listed.
// Methods solely invoked through reflection are not listed.
// We advise to not include test assemblies in code analyzed by NDepend.
// But if you wish the current query to run properly,
// you'll need to consider test assemblies in your list of application assemblies analyzed by NDepend.
let testAttr = from t in ThirdParty.Types.WithNameIn("TestAttribute", "TestCaseAttribute") select t
let testMethods = Methods.TaggedWithAnyAttributes(testAttr)
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
// let testAssemblies = testMethods.ParentAssemblies().ToHashSet()
let depthOfCalledByTest = Application.Methods.DepthOfIsUsedByAny(testMethods)
from pair in depthOfCalledByTest
where pair.Value > 0
orderby pair.Value ascending
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
//&& !testAssemblies.Contains(pair.CodeElement.ParentAssembly)
select new {
method = pair.CodeElement,
// (depthOfCalledByTests == 1) means that the method is directly called by tests
// (depthOfCalledByTests == 2) means that the method is directly called by a method directly called by tests
// ...
depthOfCalledByTests = pair.Value,
// --- Uncomment this line if your project import some coverage data ---
// m.PercentageCoverage
}View Code Query or Rule Body
No methods matched
Dead Code
![]() | Critical Rule warning: Potentially dead Types |
warnif count > 0
// Filter procedure for types that should'nt be considered as dead
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
t => !t.IsPublic && // Public types might be used by client applications of your assemblies.
t.Name != "Program" &&
!t.IsGeneratedByCompiler &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// Exclude static types that define only const fields
// because they cannot be seen as used in IL code.
!(t.IsStatic && t.NbMethods == 0 && !t.Fields.Where(f => !f.IsLiteral).Any()))
// Select types unused
let typesUnused =
from t in JustMyCode.Types where
t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
select t
// Dead types = types used only by unused types (recursive)
let deadTypesMetric = typesUnused.FillIterative(
types => from t in codeBase.Application.Types.UsedByAny(types).Except(types)
where canTypeBeConsideredAsDeadProc(t) &&
t.TypesUsingMe.Intersect(types).Count() == t.NbTypesUsingMe
select t)
from t in deadTypesMetric.DefinitionDomain
select new { t, t.TypesUsingMe, depth = deadTypesMetric[t] }View Code Query or Rule Body
7 types matched
types | TypesUsingMe | depth | Full Name |
---|---|---|---|
AssemblyMetadataAttribute | 0 type | 0 | System.Reflection .AssemblyMetadataAttribute |
DiffPair<T> | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T> |
UrlDecoder | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder |
SafeSet<T> | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .SafeSet<T> |
TopicState | 0 type | 0 | Microsoft.AspNet.SignalR.Messaging .TopicState |
DisposableAction | 0 type | 0 | Microsoft.AspNet.SignalR.Infrastructure .DisposableAction |
UrlDecoder+DecoderHelper | 1 type | 1 | Microsoft.AspNet.SignalR.Infrastructure .UrlDecoder+DecoderHelper |
Statistics
Stat | TypesUsingMe | depth |
---|---|---|
Sum: | 0 | 1 |
Average: | 0 | 0.14 |
Minimum: | 0 | 0 |
Maximum: | 0 | 1 |
Standard deviation: | 0 | 0.35 |
Variance: | 0 | 0.12 |
![]() | Critical Rule warning: Potentially dead Methods |
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
m => !m.IsPubliclyVisible && // Public methods might be used by client applications of your assemblies.
!m.IsEntryPoint && // Main() method is not used by-design.
!m.IsExplicitInterfaceImpl && // The IL code never explicitely calls explicit interface methods implementation.
!m.IsClassConstructor && // The IL code never explicitely calls class constructors.
!m.IsFinalizer && // The IL code never explicitely calls finalizers.
!m.IsVirtual && // Only check for non virtual method that are not seen as used in IL.
!(m.IsConstructor && // Don't take account of protected ctor that might be call by a derived ctors.
m.IsProtected) &&
!m.IsEventAdder && // The IL code never explicitely calls events adder/remover.
!m.IsEventRemover &&
!m.IsGeneratedByCompiler &&
!m.ParentType.IsDelegate &&
// Methods tagged with these two attributes are called by the serialization infrastructure.
!m.HasAttribute("System.Runtime.Serialization.OnSerializingAttribute".AllowNoMatch()) &&
!m.HasAttribute("System.Runtime.Serialization.OnDeserializedAttribute".AllowNoMatch()) &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()))
// Get methods unused
let methodsUnused =
from m in JustMyCode.Methods where
m.NbMethodsCallingMe == 0 &&
canMethodBeConsideredAsDeadProc(m)
select m
// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
methods => // Unique loop, just to let a chance to build the hashset.
from o in (new object()).ToEnumerable()
// Use a hashet to make Intersect calls much faster!
let hashset = methods.ToHashSet()
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
where canMethodBeConsideredAsDeadProc(m) &&
// Select methods called only by methods already considered as dead
hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
select m)
from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }View Code Query or Rule Body
551 methods matched
methods | MethodsCallingMe | depth | Full Name |
---|---|---|---|
RunHubConnectionAPI(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunHubConnectionAPI(String ) |
RunRawConnection(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunRawConnection(String) |
RunStreaming(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunStreaming(String) |
RunAuth(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunAuth(String) |
RunWindowsAuth(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunWindowsAuth(String) |
RunHeaderAuthHub(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunHeaderAuthHub(String) |
RunPendingCallbacks(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .CommonClient.RunPendingCallbacks(String ) |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Client.Samples .Program..ctor() |
.ctor(String,String) | 0 method | 0 | System.Reflection .AssemblyMetadataAttribute..ctor(String ,String) |
get_Key() | 0 method | 0 | System.Reflection .AssemblyMetadataAttribute.get_Key() |
set_Key(String) | 1 method | 1 | System.Reflection .AssemblyMetadataAttribute.set_Key (String) |
get_Value() | 0 method | 0 | System.Reflection .AssemblyMetadataAttribute.get_Value() |
set_Value(String) | 1 method | 1 | System.Reflection .AssemblyMetadataAttribute.set_Value (String) |
set_Name(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.set_Name (String) |
set_Description(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_Description(String) |
set_CounterType(PerformanceCounterType) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_CounterType(PerformanceCounterType) |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute..ctor() |
set_ConnectionsConnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsConnected (IPerformanceCounter) |
set_ConnectionsReconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsReconnected (IPerformanceCounter) |
set_ConnectionsDisconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsDisconnected (IPerformanceCounter) |
set_ConnectionsCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsCurrent (IPerformanceCounter) |
set_ConnectionMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedTotal (IPerformanceCounter) |
set_ConnectionMessagesSentTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentTotal (IPerformanceCounter) |
set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) |
set_ConnectionMessagesSentPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentPerSec (IPerformanceCounter) |
set_MessageBusMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedTotal (IPerformanceCounter) |
set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) |
set_ScaleoutMessageBusMessagesReceivedPe rSec(IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutMessageBusMessagesReceivedP erSec(IPerformanceCounter) |
set_MessageBusMessagesPublishedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesPublishedTotal (IPerformanceCounter) |
set_MessageBusMessagesPublishedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesPublishedPerSec (IPerformanceCounter) |
set_MessageBusSubscribersCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusSubscribersCurrent (IPerformanceCounter) |
set_MessageBusSubscribersTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusSubscribersTotal (IPerformanceCounter) |
set_MessageBusSubscribersPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusSubscribersPerSec (IPerformanceCounter) |
set_MessageBusAllocatedWorkers (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusAllocatedWorkers (IPerformanceCounter) |
set_MessageBusBusyWorkers (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusBusyWorkers (IPerformanceCounter) |
set_MessageBusTopicsCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusTopicsCurrent (IPerformanceCounter) |
set_ErrorsAllTotal(IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsAllTotal(IPerformanceCounter) |
set_ErrorsAllPerSec(IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsAllPerSec(IPerformanceCounter ) |
set_ErrorsHubResolutionTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubResolutionTotal (IPerformanceCounter) |
set_ErrorsHubResolutionPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubResolutionPerSec (IPerformanceCounter) |
set_ErrorsHubInvocationTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubInvocationTotal (IPerformanceCounter) |
set_ErrorsHubInvocationPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsHubInvocationPerSec (IPerformanceCounter) |
set_ErrorsTransportTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsTransportTotal (IPerformanceCounter) |
set_ErrorsTransportPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ErrorsTransportPerSec (IPerformanceCounter) |
set_ScaleoutStreamCountTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutStreamCountTotal (IPerformanceCounter) |
set_ScaleoutStreamCountOpen (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutStreamCountOpen (IPerformanceCounter) |
set_ScaleoutStreamCountBuffering (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutStreamCountBuffering (IPerformanceCounter) |
set_ScaleoutErrorsTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutErrorsTotal (IPerformanceCounter) |
set_ScaleoutErrorsPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutErrorsPerSec (IPerformanceCounter) |
set_ScaleoutSendQueueLength (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ScaleoutSendQueueLength (IPerformanceCounter) |
get_Error() | 0 method | 0 | Microsoft.AspNet.SignalR.Utils.Command .get_Error() |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Utils .GenerateHubProxyCommand+JavaScriptGener ator..ctor() |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Utils.Program. .ctor() |
FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync(Func<AsyncCallback,Object ,IAsyncResult>,Action<IAsyncResult> ,Object) |
FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromAsync<T>(Func<AsyncCallback,Object ,IAsyncResult>,Func<IAsyncResult,T> ,Object) |
ContinueWithNotComplete(Task,Action) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWithNotComplete(Task,Action) |
ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .ContinueWith<T>(Task<T> ,TaskCompletionSource<T>) |
Then(Task,Action) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then(Task,Action) |
Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,Task <TResult>>) |
Then<T,TResult>(Task<T>,Func<T,TResult>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,TResult>(Task<T>,Func<T,TResult> ) |
Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<T,T1,TResult>(Task<T>,Func<T,T1 ,TResult>,T1) |
Then<TResult>(Task<TResult>,Action <TResult>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Action <TResult>) |
Then<TResult>(Task<TResult>,Func<TResult ,Task>) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult>(Task<TResult>,Func <TResult,Task>) |
Then<TResult,T1>(Task<TResult>,Func<Task <TResult>,T1,Task<TResult>>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Then<TResult,T1>(Task<TResult>,Func <Task<TResult>,T1,Task<TResult>>,T1) |
RunSynchronously(Task,Action) | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .RunSynchronously(Task,Action) |
FromMethod(Action) | 2 methods | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod(Action) |
FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,Task <TResult>>,T1) |
FromMethod<T1,TResult>(Func<T1,TResult> ,T1) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,TResult>(Func<T1,TResult> ,T1) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,Task<TResult>>,T1,T2) |
FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) | 1 method | 1 | Microsoft.AspNet.SignalR.TaskAsyncHelper .FromMethod<T1,T2,TResult>(Func<T1,T2 ,TResult>,T1,T2) |
Canceled() | 0 method | 0 | Microsoft.AspNet.SignalR.TaskAsyncHelper .Canceled() |
RunTask(Task<T>,Action<T>) | 1 method | 1 | Microsoft.AspNet.SignalR .TaskAsyncHelper+TaskRunners<T,TResult> .RunTask(Task<T>,Action<T>) |
ThenWithArgs(Task,Func<T1,TResult>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,TResult>,T1) |
ThenWithArgs(Task,Func<T1,T2,TResult>,T1 ,T2) | 0 method | 0 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task ,Func<T1,T2,TResult>,T1,T2) |
ThenWithArgs(Task<T>,Func<T,T1,TResult> ,T1) | 1 method | 1 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<T,T1,TResult>,T1) |
ThenWithArgs(Task<T>,Func<T,T1,Task <TResult>>,T1) | 0 method | 0 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<T,T1,Task<TResult>>,T1) |
ThenWithArgs(Task<T>,Func<Task<T>,T1 ,Task<T>>,T1) | 1 method | 1 | Microsoft.AspNet.SignalR .TaskAsyncHelper+GenericDelegates<T ,TResult,T1,T2,T3>.ThenWithArgs(Task<T> ,Func<Task<T>,T1,Task<T>>,T1) |
ReadAsync(Stream,Byte[]) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.ReadAsync(Stream ,Byte[]) |
WriteAsync(Stream,Byte[]) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.WriteAsync(Stream ,Byte[]) |
WrapEndWrite(Stream) | 1 method | 1 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.WrapEndWrite(Stream) |
FromAsync<T>(Func<AsyncCallback ,IAsyncResult>,Func<IAsyncResult,T>) | 2 methods | 1 | Microsoft.AspNet.SignalR.Infrastructure .StreamExtensions.FromAsync<T>(Func <AsyncCallback,IAsyncResult>,Func <IAsyncResult,T>) |
.ctor(IWebSocket) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .BufferTextWriter..ctor(IWebSocket) |
get_AnyChanges() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .DiffPair<T>.get_AnyChanges() |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .ListHelper<T>..ctor() |
set_Name(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute.set_Name (String) |
get_Description() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_Description() |
set_Description(String) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_Description(String) |
get_CounterType() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .get_CounterType() |
set_CounterType(PerformanceCounterType) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute .set_CounterType(PerformanceCounterType) |
.ctor() | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterAttribute..ctor() |
set_ConnectionsConnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsConnected (IPerformanceCounter) |
set_ConnectionsReconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsReconnected (IPerformanceCounter) |
set_ConnectionsDisconnected (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsDisconnected (IPerformanceCounter) |
set_ConnectionsCurrent (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionsCurrent (IPerformanceCounter) |
set_ConnectionMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedTotal (IPerformanceCounter) |
set_ConnectionMessagesSentTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentTotal (IPerformanceCounter) |
set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesReceivedPerSec (IPerformanceCounter) |
set_ConnectionMessagesSentPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_ConnectionMessagesSentPerSec (IPerformanceCounter) |
set_MessageBusMessagesReceivedTotal (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedTotal (IPerformanceCounter) |
set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) | 0 method | 0 | Microsoft.AspNet.SignalR.Infrastructure .PerformanceCounterManager .set_MessageBusMessagesReceivedPerSec (IPerformanceCounter) |
Statistics
Stat | MethodsCallingMe | depth |
---|---|---|
Sum: | 0 | 162 |
Average: | 0 | 0.29 |
Minimum: | 0 | 0 |
Maximum: | 0 | 3 |
Standard deviation: | 0 | 0.53 |
Variance: | 0 | 0.28 |
![]() | Critical Rule warning: Potentially dead Fields |
warnif count > 0
from f in JustMyCode.Fields where
f.NbMethodsUsingMe == 0 &&
!f.IsPublic && // Although not recommended, public fields might be used by client applications of your assemblies.
!f.IsLiteral && // The IL code never explicitely uses literal fields.
!f.IsEnumValue && // The IL code never explicitely uses enumeration value.
f.Name != "value__" && // Field named 'value__' are relative to enumerations and the IL code never explicitely uses them.
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
!f.IsGeneratedByCompiler
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select fView Code Query or Rule Body
4 fields matched
fields | Full Name |
---|---|
HeadContent | Microsoft.AspNet.SignalR.Samples .SignalRMaster.HeadContent |
MainContent | Microsoft.AspNet.SignalR.Samples .SignalRMaster.MainContent |
Scripts | Microsoft.AspNet.SignalR.Samples .SignalRMaster.Scripts |
login | Microsoft.AspNet.SignalR.Samples.Hubs .Auth._Default.login |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Wrong usage of IsNotDeadCodeAttribute |
// This IsNotDeadCodeAttribute can be used to signify that
// despite a member could be removed without provoking any syntax error
// (we also say it is dead code), your intention is to not remove this member.
// Default 'Dead Code' code rules take account of this attribute.
// IsNotDeadCodeAttribute is defined in NDepend.API.dll
// If you don't want to link NDepend.API.dll, you can use
// your own IsNotDeadCodeAttribute and adapt this rule.
warnif count == 1
let tAttr = Types.WithFullName("NDepend.Attributes.IsNotDeadCodeAttribute").FirstOrDefault()
where tAttr != null
// Get types that do a wrong usage of IsNotDeadCodeAttribute
let types = from t in Application.Types where
t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
( // types used don't need to be tagged with IsNotDeadCodeAttribute!
t.NbTypesUsingMe > 0 ||
// Static types that define only const fields cannot be seen as used in IL code.
// They don't need to be tagged with IsNotDeadCodeAttribute.
(t.IsStatic && t.NbMethods == 0 && !t.Fields.Where(f => !f.IsLiteral).Any())
)
select t
// Get methods that do a wrong usage of IsNotDeadCodeAttribute
let methods = from m in Application.Methods where
m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
m.NbMethodsCallingMe > 0
select m
// Get fields that do a wrong usage of IsNotDeadCodeAttribute
let fields = from f in Application.Fields where
f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
f.NbMethodsUsingMe > 0
select f
where types.Count() > 0 || methods.Count() > 0 || fields.Count() > 0
select new { tAttr, types , methods, fields }View Code Query or Rule Body
No types matched
Trend Charts
Lines of Code
Rules Violated
Rules Violations
Percentage Coverage by Tests

Max
Average
Third-Party Usage
Assemblies Dependencies
Assembly | Depends on | Is referenced by |
---|---|---|
Microsoft.AspNet.SignalR.Client.Samples v2.1.1.0 | mscorlib v4.0.0.0 ; System.Net.Http v4.0.0.0 ; System v4.0.0.0 ; | - |
Microsoft.AspNet.SignalR.Client.JS v2.1.1.0 | mscorlib v4.0.0.0 ; | - |
signalr v2.1.1.0 | mscorlib v4.0.0.0 ; System v4.0.0.0 ; System.Core v4.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; | - |
Microsoft.AspNet.SignalR.Core v2.1.1.0 | mscorlib v4.0.0.0 ; System.Core v4.0.0.0 ; Microsoft.Owin v2.0.1.0 ; System v4.0.0.0 ; Microsoft.Owin.Security v2.0.1.0 ; Owin v1.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; System.Security v4.0.0.0 ; | crank v2.1.1.0 ; Microsoft.AspNet.SignalR.LoadTestHarness v1.0.0.0 ; Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 ; Microsoft.AspNet.SignalR.Stress v2.1.1.0 ; Microsoft.AspNet.SignalR.StressServer v1.0.0.0 ; Microsoft.AspNet.SignalR.Samples v2.1.1.0 ; Microsoft.AspNet.SignalR.FunctionalTests v1.0.0.0 ; Microsoft.AspNet.SignalR.Redis v2.1.1.0 ; Microsoft.AspNet.SignalR.SqlServer v2.1.1.0 ; Microsoft.AspNet.SignalR.ServiceBus v2.1.1.0 ; Microsoft.AspNet.SignalR.SystemWeb v2.1.1.0 ; Microsoft.AspNet.SignalR.Samples.VB v1.0.0.0 ; Microsoft.AspNet.SelfHost.Samples v1.0.0.0 ; Microsoft.AspNet.SignalR.Tests v2.1.1.0 ; |
crank v2.1.1.0 | mscorlib v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; System v4.0.0.0 ; Owin v1.0.0.0 ; System.Core v4.0.0.0 ; Microsoft.Owin.Hosting v2.0.1.0 ; Microsoft.CSharp v4.0.0.0 ; CmdLine v1.0.7.509 ; | - |
Microsoft.AspNet.SignalR.LoadTestHarness v1.0.0.0 | mscorlib v4.0.0.0 ; System.Web v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; Owin v1.0.0.0 ; System.Core v4.0.0.0 ; Microsoft.Owin v2.0.1.0 ; System v4.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; | - |
Microsoft.AspNet.SignalR.StressServer v1.0.0.0 | Microsoft.AspNet.SignalR.Core v2.1.1.0 ; mscorlib v4.0.0.0 ; System.Core v4.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; | Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 ; Microsoft.AspNet.SignalR.Stress v2.1.1.0 ; |
Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 | Microsoft.AspNet.SignalR.Core v2.1.1.0 ; mscorlib v4.0.0.0 ; System.Web v4.0.0.0 ; Microsoft.Build.Utilities.v4.0 v4.0.0.0 ; System.Net.Http v4.0.0.0 ; Owin v1.0.0.0 ; Microsoft.Build.Framework v4.0.0.0 ; System v4.0.0.0 ; Microsoft.Owin.Testing v2.0.1.0 ; System.Core v4.0.0.0 ; Microsoft.Owin v2.0.1.0 ; Microsoft.CSharp v4.0.0.0 ; System.Configuration v4.0.0.0 ; Microsoft.Owin.Security.Cookies v2.0.1.0 ; Microsoft.Owin.Cors v2.0.1.0 ; Microsoft.Owin.Security v2.0.1.0 ; Microsoft.AspNet.SignalR.StressServer v1.0.0.0 ; xunit v1.9.1.1600 ; xunit.extensions v1.9.1.1600 ; System.Management v4.0.0.0 ; Microsoft.Owin.Hosting v2.0.1.0 ; | Microsoft.AspNet.SignalR.Stress v2.1.1.0 ; Microsoft.AspNet.SignalR.FunctionalTests v1.0.0.0 ; Microsoft.AspNet.SignalR.Client.Tests v1.0.0.0 ; Microsoft.AspNet.SignalR.DailyTests v1.0.0.0 ; Microsoft.AspNet.SignalR.Tests v2.1.1.0 ; |
Microsoft.AspNet.SignalR.ServiceBus v2.1.1.0 | mscorlib v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; Microsoft.ServiceBus v2.1.0.0 ; System v4.0.0.0 ; System.Core v4.0.0.0 ; System.Configuration v4.0.0.0 ; | Microsoft.AspNet.SignalR.Stress v2.1.1.0 ; Microsoft.AspNet.SignalR.Tests v2.1.1.0 ; |
Microsoft.AspNet.SignalR.Redis v2.1.1.0 | mscorlib v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; BookSleeve v1.3.31.0 ; System v4.0.0.0 ; System.Core v4.0.0.0 ; | Microsoft.AspNet.SignalR.Stress v2.1.1.0 ; |
Microsoft.AspNet.SignalR.SqlServer v2.1.1.0 | mscorlib v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; System.Data v4.0.0.0 ; System v4.0.0.0 ; System.Core v4.0.0.0 ; | Microsoft.AspNet.SignalR.Stress v2.1.1.0 ; Microsoft.AspNet.SignalR.SqlServer.Tests v1.0.0.0 ; |
Microsoft.AspNet.SignalR.Stress v2.1.1.0 | mscorlib v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; System v4.0.0.0 ; Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 ; System.Core v4.0.0.0 ; System.Numerics v4.0.0.0 ; System.ComponentModel.Composition v4.0.0.0 ; Microsoft.AspNet.SignalR.StressServer v1.0.0.0 ; Microsoft.AspNet.SignalR.ServiceBus v2.1.1.0 ; Microsoft.AspNet.SignalR.Redis v2.1.1.0 ; Microsoft.AspNet.SignalR.SqlServer v2.1.1.0 ; CmdLine v1.0.7.509 ; Owin v1.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; | - |
Microsoft.AspNet.SignalR.Samples v2.1.1.0 | Microsoft.AspNet.SignalR.Core v2.1.1.0 ; mscorlib v4.0.0.0 ; Microsoft.Owin v2.0.1.0 ; System.Web v4.0.0.0 ; Owin v1.0.0.0 ; System.Core v4.0.0.0 ; System v4.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; Microsoft.Owin.Security.Cookies v2.0.1.0 ; Microsoft.Owin.Cors v2.0.1.0 ; Microsoft.Owin.Security v2.0.1.0 ; | - |
Microsoft.AspNet.SignalR.Client40 .Samples v2.1.1.0 | mscorlib v4.0.0.0 ; System v4.0.0.0 ; | - |
Microsoft.AspNet.SignalR.Client.JS.Tests v2.1.1.0 | mscorlib v4.0.0.0 ; | - |
Microsoft.AspNet.SignalR.Samples.VB v1.0.0.0 | mscorlib v4.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; System.Xml.Linq v4.0.0.0 ; System v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; System.Core v4.0.0.0 ; | Microsoft.AspNet.SignalR.FunctionalTests v1.0.0.0 ; |
Microsoft.AspNet.SignalR.FunctionalTests v1.0.0.0 | Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; mscorlib v4.0.0.0 ; Owin v1.0.0.0 ; xunit.extensions v1.9.1.1600 ; xunit v1.9.1.1600 ; Microsoft.Owin v2.0.1.0 ; System v4.0.0.0 ; Moq v4.0.10827.0 ; System.Core v4.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; Microsoft.AspNet.SignalR.Samples.VB v1.0.0.0 ; | - |
Microsoft.AspNet.SignalR.Client.Tests v1.0.0.0 | mscorlib v4.0.0.0 ; System v4.0.0.0 ; xunit v1.9.1.1600 ; xunit.extensions v1.9.1.1600 ; Moq v4.0.10827.0 ; System.Core v4.0.0.0 ; Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 ; | - |
Microsoft.AspNet.SignalR.SystemWeb v2.1.1.0 | mscorlib v4.0.0.0 ; System.Web v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; Owin v1.0.0.0 ; | - |
Microsoft.AspNet.SignalR.DailyTests v1.0.0.0 | mscorlib v4.0.0.0 ; System v4.0.0.0 ; Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 ; xunit.extensions v1.9.1.1600 ; | - |
Microsoft.AspNet.SelfHost.Samples v1.0.0.0 | Microsoft.AspNet.SignalR.Core v2.1.1.0 ; mscorlib v4.0.0.0 ; Owin v1.0.0.0 ; System.Core v4.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; Microsoft.Owin.Cors v2.0.1.0 ; Microsoft.Owin.Diagnostics v2.0.1.0 ; Microsoft.Owin v2.0.1.0 ; System v4.0.0.0 ; Microsoft.Owin.Hosting v2.0.1.0 ; | - |
Microsoft.AspNet.SignalR.Client .WindowsStoreCSharp.Samples v1.0.0.0 | System.Runtime v4.0.0.0 ; Windows v255.255.255.255 ; System.IO v4.0.0.0 ; System.Threading.Tasks v4.0.0.0 ; System.Threading v4.0.0.0 ; System.Text.Encoding v4.0.0.0 ; System.Collections v4.0.0.0 ; System.Diagnostics.Debug v4.0.0.0 ; System.Net.Http v4.0.0.0 ; System.Net.Primitives v4.0.0.0 ; System.Runtime.InteropServices .WindowsRuntime v4.0.0.0 ; System.Diagnostics.Tools v4.0.0.0 ; System.Runtime.Extensions v4.0.0.0 ; | - |
Microsoft.AspNet.SignalR.SqlServer.Tests v1.0.0.0 | mscorlib v4.0.0.0 ; Microsoft.AspNet.SignalR.SqlServer v2.1.1.0 ; Moq v4.0.10827.0 ; System.Data v4.0.0.0 ; xunit.extensions v1.9.1.1600 ; System.Core v4.0.0.0 ; System v4.0.0.0 ; xunit v1.9.1.1600 ; | - |
Microsoft.AspNet.SignalR.Tests v2.1.1.0 | mscorlib v4.0.0.0 ; Microsoft.AspNet.SignalR.Core v2.1.1.0 ; Moq v4.0.10827.0 ; System v4.0.0.0 ; System.Core v4.0.0.0 ; xunit v1.9.1.1600 ; xunit.extensions v1.9.1.1600 ; Microsoft.AspNet.SignalR.Tests.Common v1.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; Microsoft.AspNet.SignalR.ServiceBus v2.1.1.0 ; | - |
Assemblies Build Order
- Microsoft.AspNet.SignalR.Client.Samples
- Microsoft.AspNet.SignalR.Client.JS
- signalr
- Microsoft.AspNet.SignalR.Core
- crank
- Microsoft.AspNet.SignalR.LoadTestHarness
- Microsoft.AspNet.SignalR.StressServer
- Microsoft.AspNet.SignalR.Tests.Common
- Microsoft.AspNet.SignalR.ServiceBus
- Microsoft.AspNet.SignalR.Redis
- Microsoft.AspNet.SignalR.SqlServer
- Microsoft.AspNet.SignalR.Stress
- Microsoft.AspNet.SignalR.Samples
- Microsoft.AspNet.SignalR.Client40.Samples
- Microsoft.AspNet.SignalR.Client.JS.Tests
- Microsoft.AspNet.SignalR.Samples.VB
- Microsoft.AspNet.SignalR.FunctionalTests
- Microsoft.AspNet.SignalR.Client.Tests
- Microsoft.AspNet.SignalR.SystemWeb
- Microsoft.AspNet.SignalR.DailyTests
- Microsoft.AspNet.SelfHost.Samples
- Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples
- Microsoft.AspNet.SignalR.SqlServer.Tests
- Microsoft.AspNet.SignalR.Tests
Assemblies Build Order
- Microsoft.AspNet.SignalR.Client.Samples
- Microsoft.AspNet.SignalR.Client.JS
- signalr
- Microsoft.AspNet.SignalR.Core
- crank
- Microsoft.AspNet.SignalR.LoadTestHarness
- Microsoft.AspNet.SignalR.StressServer
- Microsoft.AspNet.SignalR.Tests.Common
- Microsoft.AspNet.SignalR.ServiceBus
- Microsoft.AspNet.SignalR.Redis
- Microsoft.AspNet.SignalR.SqlServer
- Microsoft.AspNet.SignalR.Stress
- Microsoft.AspNet.SignalR.Samples
- Microsoft.AspNet.SignalR.Client40.Samples
- Microsoft.AspNet.SignalR.Client.JS.Tests
- Microsoft.AspNet.SignalR.Samples.VB
- Microsoft.AspNet.SignalR.FunctionalTests
- Microsoft.AspNet.SignalR.Client.Tests
- Microsoft.AspNet.SignalR.SystemWeb
- Microsoft.AspNet.SignalR.DailyTests
- Microsoft.AspNet.SelfHost.Samples
- Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples
- Microsoft.AspNet.SignalR.SqlServer.Tests
- Microsoft.AspNet.SignalR.Tests
Analysis Log : Information and Warnings
The Warnings can reveal potential flaws concerning the health of the build process.
A particular warn can be disabled through the NDepend interactive UI, panel Error List, tick the checkbox Disabled corresponding to the warn to disable.
Message | |
---|---|
![]() | Begin full analysis with NDepend v5.2.1.8320 |
![]() | No Baseline for Comparison loaded. |
![]() | Can't load the assembly {Microsoft.AspNet.SignalR.Client.Silverlight.Samples}: Can't find the .NET assembly {Microsoft.AspNet.SignalR.Client.Silverlight.Samples} in specified folders. Has it been compiled properly? Is the NDepend project missing the containing folder of the .NET assembly? |
![]() | Can't load the assembly {Microsoft.AspNet.SignalR.Client.WP8.Samples}: Can't find the .NET assembly {Microsoft.AspNet.SignalR.Client.WP8.Samples} in specified folders. Has it been compiled properly? Is the NDepend project missing the containing folder of the .NET assembly? |
![]() | Can't load the assembly {Newtonsoft.Json}: Several .NET assemblies have the name {Newtonsoft.Json} but they are different. - C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.Samples\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Client.JS.Tests\bin\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\bin\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.FunctionalTests\artifacts\Debug\bin\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Crank\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.SqlServer.Tests\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\bin\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client40.Samples\bin\Debug\Newtonsoft.Json.dll v0.0 429 056 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples\bin\Debug\Newtonsoft.Json.dll v0.0 403 456 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Client.Tests\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.SystemWeb\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.DailyTests\bin\Debug\Newtonsoft.Json.dll v0.0 430 592 bytes |
![]() | Can't load the assembly {Microsoft.AspNet.SignalR.Client}: Several .NET assemblies have the name {Microsoft.AspNet.SignalR.Client} but they are different. - C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.Samples\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Client.JS.Tests\bin\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.FunctionalTests\artifacts\Debug\bin\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes - C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Crank\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client40.Samples\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 133 632 bytes - C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 122 368 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Client.Tests\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes - C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.DailyTests\bin\Debug\Microsoft.AspNet.SignalR.Client.dll v0.0 144 896 bytes |
![]() | Can't load the assembly {Microsoft.Web.Administration}: Can't find the .NET assembly {Microsoft.Web.Administration} in specified folders. Has it been compiled properly? Is the NDepend project missing the containing folder of the .NET assembly? |
![]() | Concurrent mode |
![]() | Assembly {Microsoft.AspNet.SignalR.Client.JS} doesn't contain any type. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client.JS.Tests} doesn't contain any type. |
![]() | Assembly {System.Runtime} doesn't contain any type. |
![]() | Assembly {System.IO} doesn't contain any type. |
![]() | Assembly {System.Threading.Tasks} doesn't contain any type. |
![]() | Assembly {System.Threading} doesn't contain any type. |
![]() | Assembly {System.Text.Encoding} doesn't contain any type. |
![]() | Assembly {System.Collections} doesn't contain any type. |
![]() | Assembly {System.Diagnostics.Debug} doesn't contain any type. |
![]() | Assembly {System.Net.Primitives} doesn't contain any type. |
![]() | Assembly {System.Runtime.InteropServices.WindowsRuntime} doesn't contain any type. |
![]() | Assembly {System.Diagnostics.Tools} doesn't contain any type. |
![]() | Assembly {System.Runtime.Extensions} doesn't contain any type. |
![]() | .NET Assemblies loaded from {C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Core\bin\Debug} Microsoft.AspNet.SignalR.Core.dll v2.1.1.0 Microsoft.Owin.dll v2.0.1.0 Microsoft.Owin.Security.dll v2.0.1.0 Owin.dll v1.0.0.0 |
![]() | .NET Assemblies loaded from {C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Stress\bin\Debug} Microsoft.AspNet.SignalR.Tests.Common.dll v1.0.0.0 Microsoft.AspNet.SignalR.Stress.exe v2.1.1.0 Microsoft.AspNet.SignalR.StressServer.dll v1.0.0.0 Microsoft.AspNet.SignalR.Redis.dll v2.1.1.0 Microsoft.AspNet.SignalR.SqlServer.dll v2.1.1.0 Microsoft.AspNet.SignalR.ServiceBus.dll v2.1.1.0 CmdLine.dll v1.0.7.509 BookSleeve.dll v1.3.31.0 Microsoft.ServiceBus.dll v2.1.0.0 xunit.extensions.dll v1.9.1.1600 xunit.dll v1.9.1.1600 Microsoft.Owin.Hosting.dll v2.0.1.0 Microsoft.Owin.Testing.dll v2.0.1.0 Microsoft.Owin.Security.Cookies.dll v2.0.1.0 Microsoft.Owin.Cors.dll v2.0.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.Samples\bin\Debug} Microsoft.AspNet.SignalR.Client.Samples.exe v2.1.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Client.JS\bin} Microsoft.AspNet.SignalR.Client.JS.dll v2.1.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Client.JS.Tests\bin} Microsoft.AspNet.SignalR.Client.JS.Tests.dll v2.1.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.LoadTestHarness\bin} Microsoft.AspNet.SignalR.LoadTestHarness.dll v1.0.0.0 |
![]() | .NET Assemblies loaded from {C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.FunctionalTests\artifacts\Debug\bin} Microsoft.AspNet.SignalR.FunctionalTests.dll v1.0.0.0 Microsoft.AspNet.SignalR.Samples.VB.dll v1.0.0.0 Moq.dll v4.0.10827.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Utils\bin\Debug} signalr.exe v2.1.1.0 |
![]() | .NET Assemblies loaded from {C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.Crank\bin\Debug} crank.exe v2.1.1.0 Microsoft.Owin.Diagnostics.dll v2.0.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.SqlServer.Tests\bin\Debug} Microsoft.AspNet.SignalR.SqlServer.Tests.dll v1.0.0.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Samples\bin} Microsoft.AspNet.SignalR.Samples.dll v2.1.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SelfHost.Samples\bin\Debug} Microsoft.AspNet.SelfHost.Samples.exe v1.0.0.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client40.Samples\bin\Debug} Microsoft.AspNet.SignalR.Client40.Samples.exe v2.1.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples\bin\Debug} Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples.exe v1.0.0.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Tests\bin\Debug} Microsoft.AspNet.SignalR.Tests.dll v2.1.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.Client.Tests\bin\Debug} Microsoft.AspNet.SignalR.Client.Tests.dll v1.0.0.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\src\Microsoft.AspNet.SignalR.SystemWeb\bin\Debug} Microsoft.AspNet.SignalR.SystemWeb.dll v2.1.1.0 |
![]() | .NET Assembly loaded from {C:\projects\SignalR-master\SignalR-master\tests\Microsoft.AspNet.SignalR.DailyTests\bin\Debug} Microsoft.AspNet.SignalR.DailyTests.dll v1.0.0.0 |
![]() | .NET Assemblies loaded from {C:\Windows\Microsoft.NET\Framework\v4.0.30319} mscorlib.dll v4.0.0.0 System.Core.dll v4.0.0.0 System.dll v4.0.0.0 Microsoft.CSharp.dll v4.0.0.0 System.Security.dll v4.0.0.0 System.Numerics.dll v4.0.0.0 System.ComponentModel.Composition.dll v4.0.0.0 System.Net.Http.dll v4.0.0.0 System.Data.dll v4.0.0.0 System.Configuration.dll v4.0.0.0 System.Web.dll v4.0.0.0 Microsoft.Build.Utilities.v4.0.dll v4.0.0.0 Microsoft.Build.Framework.dll v4.0.0.0 System.Management.dll v4.0.0.0 System.Runtime.dll v4.0.0.0 System.IO.dll v4.0.0.0 System.Threading.Tasks.dll v4.0.0.0 System.Threading.dll v4.0.0.0 System.Text.Encoding.dll v4.0.0.0 System.Collections.dll v4.0.0.0 System.Diagnostics.Debug.dll v4.0.0.0 System.Net.Primitives.dll v4.0.0.0 System.Runtime.InteropServices.WindowsRuntime.dll v4.0.0.0 System.Diagnostics.Tools.dll v4.0.0.0 System.Runtime.Extensions.dll v4.0.0.0 Microsoft.VisualBasic.dll v10.0.0.0 System.Xml.Linq.dll v4.0.0.0 |
![]() | No application or third party assembly found in directory {C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF} |
![]() | .NET Assembly loaded from {C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral} Windows.winmd v255.255.255.255 |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {Microsoft.AspNet.SignalR.Client.Samples} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.Core} but is not found. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {crank} but is not found. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {Microsoft.AspNet.SignalR.Tests.Common} but is not found. |
![]() | Assembly {Microsoft.Web.Administration} is referenced by {Microsoft.AspNet.SignalR.Tests.Common} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.Tests.Common} but is not found. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {Microsoft.AspNet.SignalR.Stress} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.Stress} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.StressServer} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.Samples} but is not found. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {Microsoft.AspNet.SignalR.Client40.Samples} but is not found. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {Microsoft.AspNet.SignalR.FunctionalTests} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.FunctionalTests} but is not found. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {Microsoft.AspNet.SignalR.Client.Tests} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.Client.Tests} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SelfHost.Samples} but is not found. |
![]() | Assembly {Microsoft.AspNet.SignalR.Client} is referenced by {Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples} but is not found. |
![]() | Assembly {Newtonsoft.Json} is referenced by {Microsoft.AspNet.SignalR.Tests} but is not found. |
![]() | The source file {c:\projects\SignalR-master\SignalR-master\samples\Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples\obj\Debug\XamlTypeInfo.g.cs} (last modified 7/27/2014 4:12:30 PM) and the PDB file of the assembly {Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples} (last modified 7/27/2014 4:12:30 PM) are not in-sync. |
![]() | 620 source files parsed ; all source files found ; 1 source file not in-sync with PDB |
![]() | 0 code rule has been extracted from code. |
![]() | No dependency cycle detected in assemblies referencement graph. |
![]() | 07/27/2014 16:13:13 Analyse dependencies of your application. |
![]() | 07/27/2014 16:13:15 Log trend metrics values. |
![]() | 07/27/2014 16:13:15 Execute queries and rules |
![]() | 9 critical rules are violated. - Methods too complex - critical - Methods with too many parameters - critical - Avoid namespaces mutually dependent - Potentially dead Types - Potentially dead Methods - Potentially dead Fields - Constructors of abstract classes should be declared as protected or private - Don't assign a field from many methods - Avoid having different types with same name |
![]() | 07/27/2014 16:13:16 NDepend analysis done. Duration: 00:06 |
![]() | 07/27/2014 16:13:16 Building the report (standard). |