|
最近研究了fxcop,有些心得,寫出來分享一下。
FxCop介紹:
FxCop是一個(gè)代碼分析工具,它依照微軟.NET框架的設(shè)計(jì)規(guī)范對(duì)托管代碼assembly進(jìn)行檢查。它使用基于規(guī)則的引擎,來檢查出你代碼中不合規(guī)范的部分;你也可以定制自己的規(guī)則加入到這個(gè)引擎。
還有一款很流行的代碼檢測(cè)工具叫做StyleCop。之所以選擇使用FxCop有兩個(gè)原因,首先是StyleCop不支持VB.NET,而我們用VB.NET做后臺(tái)開發(fā)的。第二是FxCop有非常強(qiáng)大的定制規(guī)則引擎的能力,這方面的能力StyleCop不如FxCop。
FxCop使用:
1、下載FxCop
最新版本的是FxCop 10.0。我是使用FxCop 1.36版的。FxCop 10.0可以到微軟的官網(wǎng)下載。FxCop 1.36可以到床上等你上下載。微軟的1.36這個(gè)版本的下載鏈接好像失效了。
2、安裝:略
3、運(yùn)行界面:
1)、打開FxCop程序,單擊“Project”|“Add Targets”命令,添加待檢查的程序集,可添加多個(gè)。
2)、打開FxCop程序,單擊“Project”|“Add Rules”命令,添加自定義的規(guī)則,可添加多個(gè)。
3)、單擊工具欄上的“Analyze”按鈕,F(xiàn)xCop將自動(dòng)執(zhí)行檢測(cè),檢測(cè)完畢后,結(jié)果將在右側(cè)的列表中顯示。單擊某個(gè)列表項(xiàng),F(xiàn)xCop下方將顯示該結(jié)果的詳細(xì)信息。如圖上圖所示。
這里使用的都是微軟自帶的規(guī)則,你還可以自定義規(guī)則,見下一節(jié)。
FxCop自定義引擎:
FxCop能實(shí)現(xiàn)自定義的引擎規(guī)則,這里我用個(gè)例子來說明。例子是參數(shù)命名使用Camel命名規(guī)范,格式為:對(duì)象類型+對(duì)象描述。
1、用vs2008創(chuàng)建一個(gè) class library。fxcop還需要一個(gè)定義規(guī)則的XML文件。TypeName表示定義一規(guī)則的類名。Description表示錯(cuò)誤信息。將此xml定義成嵌入的資源。
<?xml version="1.0" encoding="utf-8"?>
<Rules FriendlyName="自定義規(guī)則">
<Rule TypeName="FunctionParametersCheck" Category="參數(shù)命名規(guī)范" CheckId="C10001">
<Name>參數(shù)命名請(qǐng)采用Camel命名規(guī)范</Name>
<Description>
參數(shù)命名請(qǐng)采用Camel命名規(guī)范,格式為:對(duì)象類型+對(duì)象描述。
</Description>
<Url>www.cnblogs.com/zhuqil</Url>
<Resolution>
函數(shù){0}的參數(shù){1}命名不符合Camel命名規(guī)范,格式為:對(duì)象類型+對(duì)象描述。
Integer int intQuantity
String str strFname
</Resolution>
<Email>zhuqi0@126.com</Email>
<MessageLevel Certainty="80">Warning</MessageLevel>
<FixCategories>NonBreaking</FixCategories>
<Owner>skylin</Owner>
</Rule>
</Rules>
NET技術(shù):通過FxCop來驗(yàn)證.NET編碼規(guī)范,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。