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