Visual Studio 2008 Managed Code Analysis

Published on Monday, August 27, 2007

Source

Visual Studio 2008 Managed Code Analysis

I had a quick look at the managed code analysis (FxCop) rules the other day to see what's new and what's been removed. Unfortunately, one of the analysis engines wasn't able to be "resurrected" in time for the release, so there's a few really useful rules that haven't stayed with Beta 2 the reslease of Visual Studio 2008. Fortunately, there have been some additions too. Fortunately, there is not a deficit, we're up by 12 new rules.

Following are the new rules:

  • DoNotRaiseExceptionsInUnexpectedLocations

  • NormalizeStringsToUppercase

  • SpecifyMarshalingForPInvokeStringArguments

  • SpecifyStringComparison

  • UseOrdinalStringComparison

  • AvoidUnmaintainableCode

  • ReviewMisleadingFieldNames

  • AvoidExcessiveClassCoupling

  • IdentifiersShouldBeCasedCorrectly

  • IdentifiersShouldBeSpelledCorrectly

  • IdentifiersShouldDifferByMoreThanCase

  • IdentifiersShouldNotContainTypeNames

  • OnlyFlagsEnumsShouldHavePluralNames

  • ResourceStringCompoundWordsShouldBeCasedCorrectly

  • ResourceStringsShouldBeSpelledCorrectly

  • MarkAssembliesWithNeutralResourcesLanguage

  • RemoveEmptyFinalizers

  • CatchNonClsCompliantExceptionsInGeneralHandlers

  • TestForNaNCorrectly

  • AttributeStringLiteralsShouldParseCorrectly

  • SecurityTransparentAssembliesShouldNotContainSecurityCriticalCode

  • SecurityTransparentCodeShouldNotAssert

  • SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode

  • CatchNonClsCompliantExceptionsInGeneralHandlers

And following are the rules that were removed:

  • ProvideCorrectArgumentsToFormattingMethods

  • DisposeMethodsShouldCallBaseClassDispose

  • DoNotCallPropertiesThatCloneValuesInLoops

  • DoNotDisposeObjectsMultipleTimes

  • SpecifyMarshalingForPInvokeStringArguments

  • DoNotPassLiteralsAsLocalizedParameters

  • LongAcronymsShouldBePascalCased

  • ShortAcronymsShouldBeUppercase

  • AvoidUnnecessaryStringCreation

  • DoNotConcatenateStringsInsideLoops

  • SecureGetObjectDataOverrides

  • AssembliesShouldDeclareMinimumSecurity

comments powered by Disqus