从.NET确定SLOC和C#和C ++的复杂性
我已经在项目上使用SourceMonitor两年了,以记录Cand C ++组件的源代码复杂性和基本SLOC(包括注释)。这些用于向我们的客户进行外部报告,因此我无法争论他们的优缺点。
我一直在使用资源库分析工具,该工具能够在任何日期/时间为我提供项目的快照视图。我要添加的下一个阶段是对指定文件和修订版的指标进行缓存。
我知道SourceMonitor可以编写脚本,以允许我提供要测试的文件,并从结果文件CSV或者XML中获取指标。
.NET中是否有一个本机库,我可以用它来做同样的事情-例如。避免产生外部过程并解析结果。
我只需要以下指标:
- SLOC
- 评论行数
- 最复杂方法的复杂性
- 最复杂方法的名称
我需要在Ccode和普通C ++代码上运行它。
编辑:由于我已经有了提供我想要的GUI和报告的工具,因此需要使用库/ API编写脚本或者生成指标,而无需手动操作。理想情况下,我想获取指定文件/修订(而不是整个项目)的指标,我的实用程序将从版本控制中自动拖动该指标。
注意:我为此创建了一个赏金,并且在它过期时正在放假... NDepends的答案并不令我满意,因为它不查看源代码而是汇编本身!
解决方案
依赖
这不会给我们带来功能上的复杂性,并且无法编写脚本(据我所知),但是VS的SlickEdit小工具具有出色的SLOC报告工具,我们可以在解决方案资源管理器中使用它,并会在文件中提供详细的报告,项目或者解决方案级别。
我们可以在这里获得它:http://www.slickedit.com/content/view/441
我们可以在此处找到CSLOC的开源代码和注释:http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics
尽管我从未找到过可以平等地解析Cand C ++的.NET产品,但确实设法找到了一种易于使用的产品CODECOUNT,它支持这些语言以及更多其他语言。
它有一个简单的命令行,与SourceMonitor不同的是,在CodeCOUNT替换它之前,我的项目一直使用SourceMonitor。