我想问你是否知道一些免费的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