我只是在寻找灵感。特别是在性能和安全性方面,命名惯例很重要,但并不“酷”;)有没有人为FxCop/StyleCop创建过很酷的规则?
即使您的规则仅适用于您的域名/项目,但表明规则有多强大,请让我知道。
我使用C#,但我对任何语言的规则感兴趣。
我只是在寻找灵感。特别是在性能和安全性方面,命名惯例很重要,但并不“酷”;)有没有人为FxCop/StyleCop创建过很酷的规则?
即使您的规则仅适用于您的域名/项目,但表明规则有多强大,请让我知道。
我使用C#,但我对任何语言的规则感兴趣。
根据我的经验,开始为FxCop创建自定义规则集的开发人员在拔出大量头发后通常会放弃。这似乎是一个好主意,但痛苦只是不值得。
替代乱七八糟的书写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或其它工具的强度,是它是直接写代码规则,并获得立即结果。建议设施浏览匹配的代码元素。具体来说,这看起来像:
我的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;
}
}
}
确实看起来确实很强大。无需从用户名称中说明您对此工具有“偏好”,但它非常相关且当然有效,而且答案写得很好,所以+1。 – 2012-03-26 09:14:17