<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code Analysis Team Blog : Dogfooding</title><link>http://blogs.msdn.com/fxcop/archive/tags/Dogfooding/default.aspx</link><description>Tags: Dogfooding</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>What rules do Microsoft have turned on internally?</title><link>http://blogs.msdn.com/fxcop/archive/2007/08/09/what-rules-do-microsoft-have-turned-on-internally.aspx</link><pubDate>Thu, 09 Aug 2007 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4302873</guid><dc:creator>David M. Kean</dc:creator><slash:comments>22</slash:comments><comments>http://blogs.msdn.com/fxcop/comments/4302873.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fxcop/commentrss.aspx?PostID=4302873</wfw:commentRss><wfw:comment>http://blogs.msdn.com/fxcop/rsscomments.aspx?PostID=4302873</wfw:comment><description>&lt;P&gt;I've&amp;nbsp;recently received a few requests asking about the Code Analysis rules we run internally against Microsoft's own code. While it might come as a surprise, we do not actually run every single rule against our own binaries. There are many reasons for this:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Applicability&lt;/STRONG&gt;. Not every rule is applicable to every project, for example, the Design rules might be turned off if you are writing a Windows Application&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Noise rate&lt;/STRONG&gt;. Some rules have a&amp;nbsp;low signal-to-noise ratio. While we try remove as much noise as possible from a rule,&amp;nbsp;some rules, due to&amp;nbsp;limitations&amp;nbsp;in our analysis engine, still remain to be too noisy to be run regularly over large code bases. For example, some of the performance rules lack real context to make a good judge of whether a particular issue will really affect the performance of an application.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Time.&lt;/STRONG&gt; We have to ship eventually - attempting to fix every single violation, for every single binary is just not feasible nor advisable.&amp;nbsp;Therefore we make calls to turn off some rules that may lack value and do not&amp;nbsp;impact the security of the product.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Please note that the following rule sets&amp;nbsp;are applicable only to the Developer&amp;nbsp;Division (although Windows does actually follow the same bar), other&amp;nbsp;divisions, such as MSN, Office, etc&amp;nbsp;each have their own&amp;nbsp;set of enabled rules&amp;nbsp;that&amp;nbsp;may or may not be match what is shown below.&lt;/P&gt;
&lt;P&gt;There are two rule sets; the first, &lt;EM&gt;Public Rule Set&lt;/EM&gt;, is for assemblies that design for public consumption. That is, assemblies that are designed to have user take a reference to them in their own projects (such as System.Core.dll). The second, &lt;EM&gt;Non-Public Rule Set&lt;/EM&gt;,&amp;nbsp;is for assemblies are not designed to be consumed by users (such as FxCopCmd.exe). Both sets are listed below:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Public Rule Set:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=0 width=1020 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" width="10%"&gt;&lt;B&gt;Design&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1008 &lt;/TD&gt;
&lt;TD class=""&gt;EnumsShouldHaveZeroValue &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1009 &lt;/TD&gt;
&lt;TD class=""&gt;DeclareEventHandlersCorrectly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1011 &lt;/TD&gt;
&lt;TD class=""&gt;ConsiderPassingBaseTypesAsParameters &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1012 &lt;/TD&gt;
&lt;TD class=""&gt;AbstractTypesShouldNotHaveConstructors &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1014 &lt;/TD&gt;
&lt;TD class=""&gt;MarkAssembliesWithClsCompliant &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1017 &lt;/TD&gt;
&lt;TD class=""&gt;MarkAssembliesWithComVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1018 &lt;/TD&gt;
&lt;TD class=""&gt;MarkAttributesWithAttributeUsage &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1019 &lt;/TD&gt;
&lt;TD class=""&gt;DefineAccessorsForAttributeArguments &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1023 &lt;/TD&gt;
&lt;TD class=""&gt;IndexersShouldNotBeMultidimensional &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1025 &lt;/TD&gt;
&lt;TD class=""&gt;ReplaceRepetitiveArgumentsWithParamsArray &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1026 &lt;/TD&gt;
&lt;TD class=""&gt;DefaultParametersShouldNotBeUsed &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1027 &lt;/TD&gt;
&lt;TD class=""&gt;MarkEnumsWithFlags &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1028 &lt;/TD&gt;
&lt;TD class=""&gt;EnumStorageShouldBeInt32 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1030 &lt;/TD&gt;
&lt;TD class=""&gt;UseEventsWhereAppropriate &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1032 &lt;/TD&gt;
&lt;TD class=""&gt;ImplementStandardExceptionConstructors &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1034 &lt;/TD&gt;
&lt;TD class=""&gt;NestedTypesShouldNotBeVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1036 &lt;/TD&gt;
&lt;TD class=""&gt;OverrideMethodsOnComparableTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1038 &lt;/TD&gt;
&lt;TD class=""&gt;EnumeratorsShouldBeStronglyTyped &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1039 &lt;/TD&gt;
&lt;TD class=""&gt;ListsAreStronglyTyped &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1040 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidEmptyInterfaces &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1041 &lt;/TD&gt;
&lt;TD class=""&gt;ProvideObsoleteAttributeMessage &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1043 &lt;/TD&gt;
&lt;TD class=""&gt;UseIntegralOrStringArgumentForIndexers &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1044 &lt;/TD&gt;
&lt;TD class=""&gt;PropertiesShouldNotBeWriteOnly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1045 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotPassTypesByReference &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1046 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotOverloadOperatorEqualsOnReferenceTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1050 &lt;/TD&gt;
&lt;TD class=""&gt;DeclareTypesInNamespaces &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1051 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotDeclareVisibleInstanceFields &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1052 &lt;/TD&gt;
&lt;TD class=""&gt;StaticHolderTypesShouldBeSealed &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1053 &lt;/TD&gt;
&lt;TD class=""&gt;StaticHolderTypesShouldNotHaveConstructors &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1054 &lt;/TD&gt;
&lt;TD class=""&gt;UriParametersShouldNotBeStrings &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1055 &lt;/TD&gt;
&lt;TD class=""&gt;UriReturnValuesShouldNotBeStrings &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1056 &lt;/TD&gt;
&lt;TD class=""&gt;UriPropertiesShouldNotBeStrings &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1057 &lt;/TD&gt;
&lt;TD class=""&gt;StringUriOverloadsCallSystemUriOverloads &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1058 &lt;/TD&gt;
&lt;TD class=""&gt;TypesShouldNotExtendCertainBaseTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1059 &lt;/TD&gt;
&lt;TD class=""&gt;MembersShouldNotExposeCertainConcreteTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Globalization&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1300 &lt;/TD&gt;
&lt;TD class=""&gt;SpecifyMessageBoxOptions &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1301 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidDuplicateAccelerators &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1304 &lt;/TD&gt;
&lt;TD class=""&gt;SpecifyCultureInfo &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1305 &lt;/TD&gt;
&lt;TD class=""&gt;SpecifyIFormatProvider &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1306 &lt;/TD&gt;
&lt;TD class=""&gt;SetLocaleForDataTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1307 &lt;/TD&gt;
&lt;TD class=""&gt;SpecifyStringComparison &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1309 &lt;/TD&gt;
&lt;TD class=""&gt;UseOrdinalStringComparison &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2101 &lt;/TD&gt;
&lt;TD class=""&gt;SpecifyMarshalingForPInvokeStringArguments &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Interoperability&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1401 &lt;/TD&gt;
&lt;TD class=""&gt;PInvokesShouldNotBeVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1402 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidOverloadsInComVisibleInterfaces &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1403 &lt;/TD&gt;
&lt;TD class=""&gt;AutoLayoutTypesShouldNotBeComVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1404 &lt;/TD&gt;
&lt;TD class=""&gt;CallGetLastErrorImmediatelyAfterPInvoke &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1405 &lt;/TD&gt;
&lt;TD class=""&gt;ComVisibleTypeBaseTypesShouldBeComVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1406 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidInt64ArgumentsForVB6Clients &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1408 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotUseAutoDualClassInterfaceType &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1413 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidNonpublicFieldsInComVisibleValueTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Naming&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1700 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotNameEnumValuesReserved &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1701 &lt;/TD&gt;
&lt;TD class=""&gt;ResourceStringCompoundWordsShouldBeCasedCorrectly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1702 &lt;/TD&gt;
&lt;TD class=""&gt;CompoundWordsShouldBeCasedCorrectly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1703 &lt;/TD&gt;
&lt;TD class=""&gt;ResourceStringsShouldBeSpelledCorrectly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1704 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldBeSpelledCorrectly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1707 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldNotContainUnderscores &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1708 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldDifferByMoreThanCase &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1709 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldBeCasedCorrectly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1710 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldHaveCorrectSuffix &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1711 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldNotHaveIncorrectSuffix &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1712 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotPrefixEnumValuesWithTypeName &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1713 &lt;/TD&gt;
&lt;TD class=""&gt;EventsShouldNotHaveBeforeOrAfterPrefix &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1714 &lt;/TD&gt;
&lt;TD class=""&gt;FlagsEnumsShouldHavePluralNames &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1715 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldHaveCorrectPrefix &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1716 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldNotMatchKeywords &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1719 &lt;/TD&gt;
&lt;TD class=""&gt;ParameterNamesShouldNotMatchMemberNames &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1720 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldNotContainTypeNames &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1721 &lt;/TD&gt;
&lt;TD class=""&gt;PropertyNamesShouldNotMatchGetMethods &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1722 &lt;/TD&gt;
&lt;TD class=""&gt;IdentifiersShouldNotHaveIncorrectPrefix &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1724 &lt;/TD&gt;
&lt;TD class=""&gt;TypeNamesShouldNotMatchNamespaces &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Performance&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1811 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidUncalledPrivateCode &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1812 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidUninstantiatedInternalClasses &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1813 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidUnsealedAttributes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1815 &lt;/TD&gt;
&lt;TD class=""&gt;OverrideEqualsAndOperatorEqualsOnValueTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1816 &lt;/TD&gt;
&lt;TD class=""&gt;DisposeMethodsShouldCallSuppressFinalize &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1819 &lt;/TD&gt;
&lt;TD class=""&gt;PropertiesShouldNotReturnArrays &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Portability&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1900 &lt;/TD&gt;
&lt;TD class=""&gt;ValueTypeFieldsShouldBePortable &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1901 &lt;/TD&gt;
&lt;TD class=""&gt;PInvokeDeclarationsShouldBePortable &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp; &lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Reliability&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2001 &lt;/TD&gt;
&lt;TD class=""&gt;AvoidCallingProblematicMethods &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2002 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotLockOnObjectsWithWeakIdentity &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2004 &lt;/TD&gt;
&lt;TD class=""&gt;RemoveCallsToGCKeepAlive &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2006 &lt;/TD&gt;
&lt;TD class=""&gt;UseSafeHandleToEncapsulateNativeResources &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Security&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2102 &lt;/TD&gt;
&lt;TD class=""&gt;CatchNonClsCompliantExceptionsInGeneralHandlers &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2103 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewImperativeSecurity &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2104 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotDeclareReadOnlyMutableReferenceTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2105&amp;nbsp; &lt;/TD&gt;
&lt;TD class=""&gt;ArrayFieldsShouldNotBeReadOnly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2106 &lt;/TD&gt;
&lt;TD class=""&gt;SecureAsserts &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2107 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewDenyAndPermitOnlyUsage &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2108 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewDeclarativeSecurityOnValueTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2109 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewVisibleEventHandlers &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2111 &lt;/TD&gt;
&lt;TD class=""&gt;PointersShouldNotBeVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2112 &lt;/TD&gt;
&lt;TD class=""&gt;SecuredTypesShouldNotExposeFields &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2114 &lt;/TD&gt;
&lt;TD class=""&gt;MethodSecurityShouldBeASupersetOfType &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2115 &lt;/TD&gt;
&lt;TD class=""&gt;CallGCKeepAliveWhenUsingNativeResources &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2116 &lt;/TD&gt;
&lt;TD class=""&gt;AptcaMethodsShouldOnlyCallAptcaMethods &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2117 &lt;/TD&gt;
&lt;TD class=""&gt;AptcaTypesShouldOnlyExtendAptcaBaseTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2118 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewSuppressUnmanagedCodeSecurityUsage &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2119 &lt;/TD&gt;
&lt;TD class=""&gt;SealMethodsThatSatisfyPrivateInterfaces &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2120 &lt;/TD&gt;
&lt;TD class=""&gt;SecureSerializationConstructors &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2121 &lt;/TD&gt;
&lt;TD class=""&gt;StaticConstructorsShouldBePrivate &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2122 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotIndirectlyExposeMethodsWithLinkDemands &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2123 &lt;/TD&gt;
&lt;TD class=""&gt;OverrideLinkDemandsShouldBeIdenticalToBase &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2124 &lt;/TD&gt;
&lt;TD class=""&gt;WrapVulnerableFinallyClausesInOuterTry &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2126 &lt;/TD&gt;
&lt;TD class=""&gt;TypeLinkDemandsRequireInheritanceDemands &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2127 &lt;/TD&gt;
&lt;TD class=""&gt;SecurityTransparentAssembliesShouldNotContainSecurityCriticalCode &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2128 &lt;/TD&gt;
&lt;TD class=""&gt;SecurityTransparentCodeShouldNotAssert &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2129 &lt;/TD&gt;
&lt;TD class=""&gt;SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Usage&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1806 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotIgnoreMethodResults &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2207 &lt;/TD&gt;
&lt;TD class=""&gt;InitializeValueTypeStaticFieldsInline &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2208 &lt;/TD&gt;
&lt;TD class=""&gt;InstantiateArgumentExceptionsCorrectly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2209 &lt;/TD&gt;
&lt;TD class=""&gt;AssembliesShouldDeclareMinimumSecurity &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2211 &lt;/TD&gt;
&lt;TD class=""&gt;NonConstantFieldsShouldNotBeVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2213 &lt;/TD&gt;
&lt;TD class=""&gt;DisposableFieldsShouldBeDisposed &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2214 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotCallOverridableMethodsInConstructors &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2216 &lt;/TD&gt;
&lt;TD class=""&gt;DisposableTypesShouldDeclareFinalizer &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2217 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotMarkEnumsWithFlags &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2218 &lt;/TD&gt;
&lt;TD class=""&gt;OverrideGetHashCodeOnOverridingEquals &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2220 &lt;/TD&gt;
&lt;TD class=""&gt;FinalizersShouldCallBaseClassFinalizer &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2221 &lt;/TD&gt;
&lt;TD class=""&gt;FinalizersShouldBeProtected &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2224 &lt;/TD&gt;
&lt;TD class=""&gt;OverrideEqualsOnOverloadingOperatorEquals &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2225 &lt;/TD&gt;
&lt;TD class=""&gt;OperatorOverloadsHaveNamedAlternates &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2227 &lt;/TD&gt;
&lt;TD class=""&gt;CollectionPropertiesShouldBeReadOnly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2228 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotShipUnreleasedResourceFormats &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2229 &lt;/TD&gt;
&lt;TD class=""&gt;ImplementSerializationConstructors &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2230 &lt;/TD&gt;
&lt;TD class=""&gt;UseParamsForVariableArguments &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2233 &lt;/TD&gt;
&lt;TD class=""&gt;OperationsShouldNotOverflow &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2234 &lt;/TD&gt;
&lt;TD class=""&gt;PassSystemUriObjectsInsteadOfStrings &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2235 &lt;/TD&gt;
&lt;TD class=""&gt;MarkAllNonSerializableFields &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2236 &lt;/TD&gt;
&lt;TD class=""&gt;CallBaseClassMethodsOnISerializableTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2237 &lt;/TD&gt;
&lt;TD class=""&gt;MarkISerializableTypesWithSerializable &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2240 &lt;/TD&gt;
&lt;TD class=""&gt;ImplementISerializableCorrectly &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Non-Public Rule Set:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=0 width=937 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" width="10%"&gt;&lt;B&gt;Globalization&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2101 &lt;/TD&gt;
&lt;TD class=""&gt;SpecifyMarshalingForPInvokeStringArguments &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Portability&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1900 &lt;/TD&gt;
&lt;TD class=""&gt;ValueTypeFieldsShouldBePortable &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA1901 &lt;/TD&gt;
&lt;TD class=""&gt;PInvokeDeclarationsShouldBePortable &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Reliability&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2002 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotLockOnObjectsWithWeakIdentity &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Security&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2100 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewSqlQueriesForSecurityVulnerabilities &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2102 &lt;/TD&gt;
&lt;TD class=""&gt;CatchNonClsCompliantExceptionsInGeneralHandlers &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2103 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewImperativeSecurity &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2104 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotDeclareReadOnlyMutableReferenceTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2105 &lt;/TD&gt;
&lt;TD class=""&gt;ArrayFieldsShouldNotBeReadOnly &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2106 &lt;/TD&gt;
&lt;TD class=""&gt;SecureAsserts &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2107 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewDenyAndPermitOnlyUsage &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2108 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewDeclarativeSecurityOnValueTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2109 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewVisibleEventHandlers &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2111 &lt;/TD&gt;
&lt;TD class=""&gt;PointersShouldNotBeVisible &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2112 &lt;/TD&gt;
&lt;TD class=""&gt;SecuredTypesShouldNotExposeFields &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2114 &lt;/TD&gt;
&lt;TD class=""&gt;MethodSecurityShouldBeASupersetOfType &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2115 &lt;/TD&gt;
&lt;TD class=""&gt;CallGCKeepAliveWhenUsingNativeResources &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2116 &lt;/TD&gt;
&lt;TD class=""&gt;AptcaMethodsShouldOnlyCallAptcaMethods &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2117 &lt;/TD&gt;
&lt;TD class=""&gt;AptcaTypesShouldOnlyExtendAptcaBaseTypes &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2118 &lt;/TD&gt;
&lt;TD class=""&gt;ReviewSuppressUnmanagedCodeSecurityUsage &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2119 &lt;/TD&gt;
&lt;TD class=""&gt;SealMethodsThatSatisfyPrivateInterfaces &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2120 &lt;/TD&gt;
&lt;TD class=""&gt;SecureSerializationConstructors &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2121 &lt;/TD&gt;
&lt;TD class=""&gt;StaticConstructorsShouldBePrivate &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2122 &lt;/TD&gt;
&lt;TD class=""&gt;DoNotIndirectlyExposeMethodsWithLinkDemands &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2123 &lt;/TD&gt;
&lt;TD class=""&gt;OverrideLinkDemandsShouldBeIdenticalToBase &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2124 &lt;/TD&gt;
&lt;TD class=""&gt;WrapVulnerableFinallyClausesInOuterTry &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2126 &lt;/TD&gt;
&lt;TD class=""&gt;TypeLinkDemandsRequireInheritanceDemands &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2127 &lt;/TD&gt;
&lt;TD class=""&gt;SecurityTransparentAssembliesShouldNotContainSecurityCriticalCode &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2128 &lt;/TD&gt;
&lt;TD class=""&gt;SecurityTransparentCodeShouldNotAssert &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2129 &lt;/TD&gt;
&lt;TD class=""&gt;SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Usage&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;CA2233 &lt;/TD&gt;
&lt;TD class=""&gt;OperationsShouldNotOverflow &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Now, while the above rules are set&amp;nbsp;and mandated at the Division-level, individual teams&amp;nbsp;can (and do) add additional rules. For example, most assemblies, whether public or not, at a minimum follow the Public Rule Set.&amp;nbsp;The Code Analysis team itself actually turns on every single rule to run over the binaries that we release.&lt;/P&gt;
&lt;P&gt;Also note that because they are set at the start of a product cycle and are not changed again until the start of the next cycle, rule sets do not include rules that are new to Visual Studio 2008 (with exception to security rules). This is prevent the situation of the introduction of a new rule causing existing code to be no longer be Code Analysis clean (ie moving the basket). &lt;/P&gt;
&lt;P&gt;These rule&amp;nbsp;sets will be revisited for Rosario and beyond.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4302873" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fxcop/archive/tags/Rules/default.aspx">Rules</category><category domain="http://blogs.msdn.com/fxcop/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.msdn.com/fxcop/archive/tags/Code+Analysis/default.aspx">Code Analysis</category><category domain="http://blogs.msdn.com/fxcop/archive/tags/FxCop/default.aspx">FxCop</category><category domain="http://blogs.msdn.com/fxcop/archive/tags/tsbt-dev/default.aspx">tsbt-dev</category><category domain="http://blogs.msdn.com/fxcop/archive/tags/Dogfooding/default.aspx">Dogfooding</category></item></channel></rss>