2009-01-30 68 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

相關問題