我想問你是否知道一些免費的C#庫(dll)來計算CK指標(主要是Cyclomatic Complexity)。免費的C#度量計算庫(DLL)
我需要爲我打算做的項目。我知道已經有一些完成的解決方案可以計算CK度量標準並以各種形式顯示給您,但我需要的是我可以在我的應用程序中使用的解決方案。所以在開始寫作之前,我首先想問你。
感謝
我想問你是否知道一些免費的C#庫(dll)來計算CK指標(主要是Cyclomatic Complexity)。免費的C#度量計算庫(DLL)
我需要爲我打算做的項目。我知道已經有一些完成的解決方案可以計算CK度量標準並以各種形式顯示給您,但我需要的是我可以在我的應用程序中使用的解決方案。所以在開始寫作之前,我首先想問你。
感謝
DrivenMetrics是一個開源的C#命令行工具。核心功能作爲庫與命令行控制檯客戶機隔離(核心項目可用here)。
即使很簡單,它也可以滿足您的需求:它是免費的,計算行數並計算方法的圈複雜度(潛在代碼路徑的數量)。
這是通過直接分析IL得到的,這要歸功於Mono.Cecil(與NDepend依賴的庫相同)。這樣就可以從C#編寫,VB.Net,代碼生成的程序集進行分析......
UPDATE:
另一種選擇將是驚人的憲兵,從單項目的靜態分析工具。
作爲使用示例,下面的代碼顯示程序集中每個方法的圈複雜度。
ModuleDefinition module = ModuleDefinition.ReadModule(fullPathToTheAssembly);
foreach (var type in module.Types)
{
foreach (var me in type.Methods)
{
if (!me.HasBody || me.IsGeneratedCode() || me.IsCompilerControlled)
continue;
var r = AvoidComplexMethodsRule.GetCyclomaticComplexity(me);
Console.WriteLine("{0}: {1}", me.ToString(), r);
}
}
我使用SourceMonitor,這是一個很好的免費應用程序,衡量代碼的複雜性和其他指標的各種語言,包括C#。我們從命令行驅動它來生成XML輸出,然後我們使用LINQ to XML來提取和分類我們感興趣的數據。然後,我們使用NVelocity創建HTML報告。
我知道它不是託管的圖書館,但您可能會發現它可以滿足您的需求。
With 82 code metrics支持NDepend是用於.NET開發人員(但是它是商業工具)的Roll Royce工具的代碼指標。
它不是沒有免費的,但是我對NCover有很好的體驗的東西。他們也很好地與很多CI工具集成在一起。
有一個來自Microsoft的工具,我正在使用它來計算C#程序集的代碼度量標準。
它包括環複雜性,可維護性指數等等。
詳情點擊這裏:
http://blogs.msdn.com/b/camerons/archive/2011/01/28/code-metrics-from-the-command-line.aspx
這裏下載:
http://www.microsoft.com/en-us/download/details.aspx?id=9422
你有沒有發現一個圖書館嗎?或者你是如何解決這個問題的? – RoflcoptrException 2010-10-21 21:41:48
不,這是我的程序想法的一部分,但不幸的是我目前的時間不允許我繼續並創建應用程序。因此,我也沒有調查任何進一步的搜索適當的圖書館 – Juri 2010-10-22 05:46:38
好的謝謝。所以我不得不進一步搜索;) – RoflcoptrException 2010-10-22 09:02:55