anchor.diff:  CA1708,IdentifiersShouldDifferByMoreThanCase,Microsoft.ApiDesignGuidelines,Microsoft.AnalyzerPowerPack,Identifiers should differ by more than case,"Identifiers for namespaces, types, members, and parameters cannot differ only by case because languages that target the common language runtime are not required to be case-sensitive.",Yes,240275,455,0.001893664,2841.428034,Naming,,High,Ported,,,
   CA1716,IdentifiersShouldNotMatchKeywords,Microsoft.ApiDesignGuidelines,#N/A,Identifiers should not match keywords,A namespace name or a type name matches a reserved keyword in a programming language. Identifiers for namespaces and types should not match keywords that are defined by languages that target the common language runtime.,Yes,563948,2635,0.004672417,1230.891752,Naming,,High,,,See if StyleCop has implemented it,Valid rule?
   CA1717,OnlyFlagsEnumsShouldHavePluralNames,Microsoft.ApiDesignGuidelines,#N/A,Only FlagsAttribute enums should have plural names,Naming conventions dictate that a plural name for an enumeration indicates that more than one value of the enumeration can be specified at the same time.,Yes,389307,875,0.002247584,2487.245589,Naming,,High,,,See if StyleCop has implemented it,None
  -CA1718,#N/A,Microsoft.ApiDesignGuidelines,#N/A,Avoid language specific type names in parameters,"Each concatenated word in the parameter name is checked against language-specific type names, in a case-insensitive manner",,4,0,0,,Naming,,Low,???,,See if StyleCop has implemented it,
  +CA1718,#N/A,Microsoft.ApiDesignGuidelines,#N/A,Avoid language specific type names in parameters,"Each concatenated word in the parameter name is checked against language-specific type names, in a case-insensitive manner",,4,0,0,,Naming,,Low,,,See if StyleCop has implemented it,
   CA1719,ParameterNamesShouldNotMatchMemberNames,Microsoft.ApiDesignGuidelines,#N/A,Parameter names should not match member names,A parameter name should communicate the meaning of a parameter and a member name should communicate the meaning of a member. It would be a rare design where these were the same. Naming a parameter the same as its member name is unintuitive and makes the library difficult to use.,Yes,96386,394,0.004087731,1219.261851,Naming,,Low,,,See if StyleCop has implemented it,None
   CA1715,IdentifiersShouldHaveCorrectPrefix,Microsoft.ApiDesignGuidelines,Microsoft.AnalyzerPowerPack,Identifiers should have correct prefix,"The name of an externally visible interface does not start with an uppercase """"I"""". The name of a generic type parameter on an externally visible type or method does not start with an uppercase """"T"""".",Yes,163866,1290,0.007872286,662.3856049,Naming,,High,Ported,,,
   CA1721,PropertyNamesShouldNotMatchGetMethods,Microsoft.ApiDesignGuidelines,#N/A,Property names should not match get methods,"The name of a public or protected member starts with """"Get"""" and otherwise matches the name of a public or protected property. """"Get"""" methods and properties should have names that clearly distinguish their function.",Yes,622332,1854,0.002979117,1944.878847,Naming,,High,,,See if StyleCop has implemented it,None
  
positive.code: CA1819,PropertiesShouldNotReturnArrays,Microsoft.ApiDesignGuidelines,#N/A,Properties should not return arrays,"Arrays that are returned by properties are not write-protected, even when the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property.",Yes,866343,7145,0.008247311,719.9546614,Performance,,High,Yes,,,None
  CA2227,CollectionPropertiesShouldBeReadOnly,Microsoft.ApiDesignGuidelines,#N/A,Collection properties should be read only,A writable collection property allows a user to replace the collection with a different collection. A read-only property stops the collection from being replaced but still allows the individual members to be set.,Yes,1479039,18904,0.012781272,482.7359551,Usage,,High,Ported,,,None
  CA1821,RemoveEmptyFinalizers,System.Runtime,Microsoft.AnalyzerPowerPack,Remove empty finalizers,"Whenever you can, avoid finalizers because of the additional performance overhead that is involved in tracking object lifetime. An empty finalizer incurs added overhead and delivers no benefit.",Yes,39675,3102,0.078185255,58.81565423,Performance,,Low,Yes,,Sri thinks we've already implemented this.,
  CA1822,MarkMembersAsStatic,System.Runtime,#N/A,Mark members as static,"Members that do not access instance data or call instance methods can be marked as static (Shared in Visual Basic). After you mark the methods as static, the compiler will emit nonvirtual call sites to these members. This can give you a measurable performance gain for performance-sensitive code.",Yes,3382541,37372,0.011048499,590.9620138,Performance,,Low,Yes,,"Doesn't depend on IOperation, but would be language-agnostic if it did use IOperation.",IOperation
  CA1823,AvoidUnusedPrivateFields,Microsoft.Maintainability,#N/A,Avoid unused private fields,Private fields were detected that do not appear to be accessed in the assembly.,Yes,2037563,18054,0.008860585,712.0422748,Performance,,High,Yes,,,None
  CA1824,MarkAssembliesWithNeutralResourcesLanguage,System.Resources.ResourceManager,#N/A,Mark assemblies with NeutralResourcesLanguageAttribute,The NeutralResourcesLanguage attribute informs the ResourceManager of the language that was used to display the resources of a neutral culture for an assembly. This improves lookup performance for the first resource that you load and can reduce your working set.,Yes,807994,798,0.000987631,5981.39139,Performance,,High,Yes,,,None
  CA1900,ValueTypeFieldsShouldBePortable,System.Runtime,#N/A,Value type fields should be portable,This rule checks that structures that are declared by using explicit layout will align correctly when marshaled to unmanaged code on 64-bit operating systems.,Yes,21717,139,0.006400516,677.5703737,Portability,,Low,Yes,,,
  
negative.code: CA1601,DoNotUseTimersThatPreventPowerStateChanges,System.Runtime,#N/A,Do not use timers that prevent power state changes,Higher-frequency periodic activity will keep the CPU busy and interfere with power-saving idle timers that turn off the display and hard disks.,Yes,61232,189,0.003086621,1550.879704,Mobility,,Low,Yes,,,
  CA1700,DoNotNameEnumValuesReserved,Microsoft.ApiDesignGuidelines,#N/A,Do not name enum values 'Reserved',"This rule assumes that an enumeration member that has a name that contains """"reserved"""" is not currently used but is a placeholder to be renamed or removed in a future version. Renaming or removing a member is a breaking change.",Yes,17591,143,0.008129157,522.2301097,Naming,,Low,Yes,,,
  CA1701,ResourceStringCompoundWordsShouldBeCasedCorrectly,Microsoft.ApiDesignGuidelines,#N/A,Resource string compound words should be cased correctly,"Each word in the resource string is split into tokens based on the casing. Each contiguous two-token combination is checked by the Microsoft spelling checker library. If recognized, the word produces a violation of the rule.",Yes,2530287,18776,0.007420502,862.9024959,Naming,,High,No,,Belongs in BinSkim. The resx is not part of the compilation.,NamingService
  CA1702,CompoundWordsShouldBeCasedCorrectly,Microsoft.ApiDesignGuidelines,#N/A,Compound words should be cased correctly,Avoid creating compound words from terms which exist in the dictionary as discrete terms. Do not create a compound word such as 'StopWatch' or 'PopUp'. These terms are recognized in the dictionary and should be cased as 'Stopwatch' and 'Popup'.,Yes,,,,,,,#N/A,No,,Deprecated rule (replaced by 1709),
  CA1703,ResourceStringsShouldBeSpelledCorrectly,Text,#N/A,Resource strings should be spelled correctly,A resource string contains one or more words that are not recognized by the Microsoft spelling checker library.,Yes,247983,8213,0.033119206,162.8789636,Naming,,Low,No,,Belongs in BinSkim. The resx is not part of the compilation.,WordParser
  CA1704,IdentifiersShouldBeSpelledCorrectly,Text,#N/A,Identifiers should be spelled correctly,The name of an externally visible identifier contains one or more words that are not recognized by the Microsoft spelling checker library.,Yes,4050045,134475,0.033203335,198.9998864,Naming,High,Low,Yes,,See if StyleCop has implemented it,NamingService
  CA1705,LongAcronymnsShouldBePascalBased,Microsoft.ApiDesignGuidelines,#N/A,Long acronyms should be pascal-cased,"This rule assumes it has found an acronym when the name contains four uppercase letters in a row, or at the end of the name, three uppercase letters in a row. By convention, two-letter acronyms use all uppercase letters, and acronyms of three or more characters use Pascal casing. The following examples conform to this naming convention: 'DB', 'CR', 'Cpa', and 'Ecma'. The following examples violate the convention: 'Io', 'XML', and 'DoD', and for non-parameter names, 'xp' and 'cpl'. Naming conventions provide a common look for libraries that target the common language runtime. This reduces the learning curve required for new software libraries, and increases customer confidence that the library was developed by someone with expertise in developing managed code.",,2574,90,0.034965035,97.54340432,Naming,,Low,No,,Deprecated rule (replaced by 1709),
  CA1706,ShortAcronymsShouldBeUpperCase,Microsoft.ApiDesignGuidelines,#N/A,Short acronyms should be uppercase,"This rule splits the name into words based on the casing and checks any two-letter words against a list of common two-letter words, such as ""In"" or ""My"". If a match is not found, the word is assumed to be an acronym. For parameters, the first word is ignored due to the camel casing convention used for parameter names. By convention, two-letter acronyms use all uppercase letters, and acronyms of three or more characters use Pascal casing. The following examples conform to this naming convention: 'DB', 'CR', 'Cpa', and 'Ecma'. The following examples violate the convention: 'Io', 'XML', and 'DoD', and for non-parameter names, 'xp' and 'cpl'. 'ID' is special-cased to cause a violation of this rule. 'Id' is not an acronym but is an abbreviation for 'identification'. Naming conventions provide a common look for libraries that target the common language runtime. This reduces the learning curve required for new software libraries, and increases customer confidence that the library was developed by someone with expertise in developing managed code.",,470,2,0.004255319,627.9429966,Naming,,Low,No,,Deprecated rule (replaced by 1709),
  CA1707,IdentifiersShouldNotContainUnderscores,Microsoft.ApiDesignGuidelines,#N/A,Identifiers should not contain underscores,"By convention, identifier names do not contain the underscore (_) character. This rule checks namespaces, types, members, and parameters.",Yes,1216136,42995,0.035353776,172.1168937,Naming,High,Low,,,See if StyleCop has implemented it,None
  CA1060,MovePInvokesToNativeMethodsClass,Microsoft.ApiDesignGuidelines,System.Runtime.InteropServices.Analyzers,Move pinvokes to native methods class,"Platform Invocation methods, such as those that are marked by using the System.Runtime.InteropServices.DllImportAttribute attribute, or methods that are defined by using the Declare keyword in Visual Basic, access unmanaged code. These methods should be of the NativeMethods, SafeNativeMethods, or UnsafeNativeMethods class.",Yes,377447,2739,0.007256648,768.5168157,Design,,High,Ported,,,
  CA1709,IdentifiersShouldBeCasedCorrectly,Microsoft.ApiDesignGuidelines,#N/A,Identifiers should be cased correctly,"By convention, parameter names use camel casing and namespace, type, and member names use Pascal casing.",Yes,3261791,137633,0.04219553,154.3636525,Naming,,Low,Yes,,See if StyleCop has implemented it,NamingService
  