首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >免费C#指标计算库(DLL)

免费C#指标计算库(DLL)
EN

Stack Overflow用户
提问于 2009-06-27 07:06:29
回答 5查看 7.2K关注 0票数 13

我想问你是否知道一些计算CK指标(主要是圈复杂度)的免费C#库(dlls)。

我正计划做一个项目,我需要它。我知道已经有一些已完成的解决方案来计算CK指标并以各种形式显示给您,但我需要的是一个我可以在我的应用程序中使用的解决方案。所以在我自己开始写一个之前,我首先想问你。

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-24 01:03:12

DrivenMetrics是一个开源的C#命令行工具。核心功能作为一个库与命令行控制台客户端隔离(核心项目可从here获得)。

即使非常简单,它也可以满足您的需要:它是免费的,可以计算方法的行数和圈复杂度(潜在代码路径的数量)。

这是通过直接分析IL来执行的,这要归功于Mono.Cecil ( NDepend所依赖的同一个库)。这样就可以对使用C#、VB.Net等编写的代码构建的程序集执行分析。

已经宣布了here.

  • The

  • 项目的源代码,可以在github上获得。

  • A packaged也是一个可以在Windows和Mono上运行的版本。

更新:

另一个选择是令人惊叹的Gendarme,这是Mono项目的一个静态分析工具。

作为用法示例,下面的代码显示了程序集中每个方法的圈复杂度。

代码语言:javascript
复制
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);
    }
}

Mono Mono描述了该项目的源代码,可以在github

  • Packaged发行版中找到,也可以在和

上使用

票数 16
EN

Stack Overflow用户

发布于 2009-06-27 08:26:50

我使用的是SourceMonitor,这是一个很好的免费应用程序,可以测量包括C#在内的各种语言的代码复杂性和其他指标。我们从命令行驱动它来生成XML输出,然后我们使用LINQ to XML来提取和排序我们感兴趣的数据。然后我们使用NVelocity来创建超文本标记语言报告。

我知道它不是一个托管库,但你可能会发现它可以做你需要的事情。

票数 3
EN

Stack Overflow用户

发布于 2013-02-23 13:22:55

我正在使用微软的一个工具来计算C#程序集的代码度量。

它包括cyclo、可维护性指数等。

详细信息请查看此处:

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1052269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档