9

我只是在寻找一些灵感。尤其是在性能和​​安全性方面,命名约定很重要,但并不“酷”;)

即使您的规则仅适用于您的域/项目,但展示了规则的强大功能,请告诉我。

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

4

3 回答 3

7

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

于 2009-01-30T09:50:47.003 回答
3

编写 FxCop 自定义规则的混乱的替代方法是使用商业工具 NDepend。使用此工具,可以在 LINQ 查询 (即 CQLinq)上编写代码规则。免责声明:我是该工具的开发人员之一

默认提出超过200 条代码规则,包括命名约定设计架构代码质量代码演化死代码.NET Fx 使用...

CQLinq 致力于编写可以在 Visual Studio 中实时验证的代码规则,或者可以在构建过程中验证并在 HTML/javascript 报告中报告的代码规则。

CQLinq 优于 FxCop API 或其他工具的优势在于,它可以直接编写代码规则,并立即获得结果。建议使用设施来浏览匹配的代码元素。具体来说是这样的:

CQLinq 代码规则

于 2010-10-19T12:36:08.710 回答
1

到目前为止,我在 fxcop 目录下的 breusable.codeplex.com 上有一个很好的功能基础,有 2规则

ConfigKeyExistsInConfig(确保对 ConfigurationManager 的任何引用都存在于配置文件中。

NoUnunderscoresInProperties

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

于 2012-09-21T18:32:29.040 回答