Подмножество списка правил FxCop для веб-приложения ASP.NET

Мы находимся в процессе интеграции FxCop с VS 2010 professional для анализа кода с использованием расширения FxCop Integration VS Extension. Мы видели, что со всеми наборами правил по умолчанию, которые настроены в FxCop, мы получаем отчет о целом ряде моментов, которые приятно иметь, но не обязательно в строгом нарушении лучших практик или в большинстве случаев можно обойтись без них. Есть ли какой-либо список правил, по сути, подмножество всех правил в FxCop, которые люди обычно используют для анализа кода для веб-проектов, которые можно считать обязательными. Мы слегка погуглили, но не смогли получить единственный (дискуссии об игнорировании конкретных правил, основанные на индивидуальном выборе, распространяются по всему Интернету) ресурс, в котором перечислены предпочтительные подмножества правил, которым обычно следует сообщество для веб-сайтов asp.net/C# проекты.


person koder    schedule 10.05.2012    source источник


Ответы (2)


На самом деле я использую это с помощью интеграции TeamCity, но правила должны быть такими же. Попробуйте один раз ниже:

<?xml version="1.0" encoding="utf-8"?>
<FxCopProject Version="1.36" Name="testApplication">
 <ProjectOptions>
  <SharedProject>True</SharedProject>
  <Stylesheet Apply="False">\tools\fxcop\Xml\FxCopReport.xsl</Stylesheet>
  <SaveMessages>
   <Project Status="Excluded" NewOnly="False" />
   <Report Status="Active" NewOnly="False" />
  </SaveMessages>
  <ProjectFile Compress="True" DefaultTargetCheck="True" DefaultRuleCheck="True" SaveByRuleGroup="" Deterministic="True" />
  <EnableMultithreadedLoad>True</EnableMultithreadedLoad>
  <EnableMultithreadedAnalysis>True</EnableMultithreadedAnalysis>
  <SourceLookup>True</SourceLookup>
  <AnalysisExceptionsThreshold>10</AnalysisExceptionsThreshold>
  <RuleExceptionsThreshold>1</RuleExceptionsThreshold>
  <Spelling Locale="en-GB" />
  <OverrideRuleVisibilities>False</OverrideRuleVisibilities>
  <CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" />
  <SearchGlobalAssemblyCache>False</SearchGlobalAssemblyCache>
  <DeadlockDetectionTimeout>120</DeadlockDetectionTimeout>
  <IgnoreGeneratedCode>False</IgnoreGeneratedCode>
 </ProjectOptions>
 <Targets>
    <Target Name="$(ProjectDir)/../../solution/PrecompiledWeb/application/bin/App_Code.dll" Analyze="True" AnalyzeAllChildren="True" />
 </Targets>
 <Rules>
  <RuleFiles>
   <RuleFile Name="$(FxCopDir)\Rules\DesignRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\GlobalizationRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\InteroperabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\MobilityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\NamingRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\PerformanceRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\PortabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\SecurityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\UsageRules.dll" Enabled="True" AllRulesEnabled="True" />
  </RuleFiles>
  <Groups />
  <Settings />
 </Rules>
 <FxCopReport Version="1.36" />
</FxCopProject>
person AnkTech Devops    schedule 10.05.2012
comment
Я искал более глубокую фильтрацию правил. Например, правило CA1014 Отметить сборки с помощью CLSCompliantAttribute в наборе правил Microsoft.Design можно игнорировать. На самом деле я искал список правил, которые можно игнорировать из каждого набора правил FxCop по умолчанию, что должно привести к списку правил, которые обычно использует сообщество разработчиков. - person koder; 10.05.2012

Нет, такого зверя нет. И даже если бы это было так, как вы могли быть уверены, что решения, принятые тем, кто создал список, действительно соответствуют вашей ситуации?

Есть только 200 или около того правил. Почему бы просто не сесть на час или два, чтобы выяснить, какие из них вы считаете важными? Вы можете даже сократить путь и просто посмотреть на те, которые в настоящее время вызывают нарушения. Это, вероятно, сократит усилия по просмотру до менее чем 1/2 часа.

person Nicole Calinoiu    schedule 10.05.2012