2009-01-30 69 views
9

我只是在寻找灵感。特别是在性能和​​安全性方面,命名惯例很重要,但并不“酷”;)有没有人为FxCop/StyleCop创建过很酷的规则?

即使您的规则仅适用于您的域名/项目,但表明规则有多强大,请让我知道。

我使用C#,但我对任何语言的规则感兴趣。

回答

7

根据我的经验,开始为FxCop创建自定义规则集的开发人员在拔出大量头发后通常会放弃。这似乎是一个好主意,但痛苦只是不值得。

3

替代乱七八糟的书写FxCop自定义规则将是使用商业工具NDepend。有了这个工具,人们可以通过写代码规则在LINQ查询(namely CQLinq)免责声明:我是在默认情况下被提出的工具

200 code rules更多的开发者之一,这其中就包括命名约定设计架构代码质量代码演变死代码.NET Fx的使用 ...

CQLinq致力于编写代码的规则,可以是verified live in Visual Studio,或者可以是verified during build process and reported in an HTML/javascript report

CQLinq超过FxCop的API或其它工具的强度,是它是直接写代码规则,并获得立即结果。建议设施浏览匹配的代码元素。具体来说,这看起来像:

CQLinq code rule

+0

确实看起来确实很强大。无需从用户名称中说明您对此工具有“偏好”,但它非常相关且当然有效,而且答案写得很好,所以+1。 – 2012-03-26 09:14:17

1

我的FxCop的目录

ConfigKeyExistsInConfig(请务必在得到了与2条规则一个很好的运作基础,到目前为止在breusable.codeplex.com与一个魔法ConfigurationManager中的任何引用字符串键实际存在的配置文件。

NoUnderscoresInProperties

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.FxCop.Sdk; 

namespace RulesByImaginaryDevelopment 
{ 
    public class NoUnderscoresInProperties : BaseRule 
    { 
    public NoUnderscoresInProperties() : base("NoUnderscoresInProperties") { } 

    public override ProblemCollection Check(Member member) 
    { 
     var prop = member as PropertyNode; 
     if(prop==null) 
      return Problems; 
     if(prop.Name.Name.Contains("_")) 
     { 
      Problems.Add(new Problem(new Resolution("Remove any '_' from name "+prop.Name.Name))); 
     } 
     return Problems; 
    } 
    } 
} 

另外http://msdn.microsoft.com/en-us/magazine/cc163930.aspx

相关问题