有哪些免费的便携式.Net工具?

时间:2009-07-14 17:02:50

标签: c# .net build build-automation

我正在开始一个新的.Net项目,我想知道您对使用工具的建议。

总的来说,我希望得到以下内容:

  • 有人应该能够检查项目并使用单声道或.Net安装
  • 进行构建
  • 它应该建立在尽可能多的平台上(或者至少是Windows和Linux)
  • 有人应该能够自动构建(例如,使用nant)或者从IDE
  • 构建它
  • 自动构建应至少运行以下内容:
    • 代码应该全部编译(显然)
    • 应运行单元测试并报告任何故障
  • 以下也不错,但可选:
    • 提供测试覆盖率数据(如果可能,在易于阅读的报告中)
    • 构建API文档
    • 提供代码指标分析(如果可能,再次提供报告)
    • 检查常见的编码错误和风格问题(类似于FxCop或checkstyle所做的。再次,如果可能,请附上报告)

在过去的项目中,我总是倾向于使用以下内容:

  • 自动构建: nant
  • 单元测试: nunit
  • 测试模拟: Moq (这是一个很棒的库)
  • API文档: Sandcastle (不知道这是否适用于除Windows之外的任何内容)
  • 指标: sourcemonitor (我不认为这适用于除Windows之外的任何内容)
  • 测试覆盖率: ncover (这是一个非常古老的开源版本。除了Windows之外,它是否可以工作?)
  • 代码检查: fxcop (这适用于除Windows之外的任何内容吗?)

我面临的问题是:

  • 我必须将所有这些软件与代码捆绑在一起,仅给我近100MB的工具。它要么是要么要求用户在构建项目之前安装和配置所有这些,这是不可取的。你怎么解决这个问题?
  • 许多工具很难与nant集成,例如ncover和source monitor
  • 许多工具在没有修改的情况下无法在64位版本的Windows上运行(我正在看着你,nCover)
  • 某些工具仅在Windows上运行
  • 有些工具非常陈旧
  • 我无法从许多工具中获得非常漂亮的报告(如果有的话),当然也无法使它们看起来彼此一致
  • 我必须手动更改一些Visual Studio生成的项目文件以添加特殊配置(否则自动和集成构建步骤相互重叠)

不幸的是,免费工具的选择是Java绝对胜过.Net的东西。有大量的测试覆盖工具,代码分析工具,报告工具,API文档工具,测试工具,构建工具等可用于Java,但我很难找到任何.Net。

那么,是否有更好的,仍可免费的替代方案可以在所有支持单声道的平台上使用这些工具?

你有什么建议?

2 个答案:

答案 0 :(得分:1)

我不是故意粗鲁,但这个问题看起来更像是一个Java vs .Net咆哮,而不是一个有效的问题,因为你似乎已经知道这些工具是什么了。是的,有很多open source projectspeople在Java上工作而不是.Net(其原因超出了这个问题的范围)。这就是现在的情况。

更改此方法的方法是 执行 实际的开源工作。 参与。如果您想要一些开源工具在Mono上工作,请首先尝试向项目作者提出建议。有可能他们从未在Mono上尝试过他们的代码或者让它在Mono上工作对他们来说是一个低优先级的问题。如果你能让他们这样做,那很好。否则,您可以获取代码并自行完成,也可以聘请其中一个项目成员为您完成。

这里的关键点是:你需要采取行动

我现在尝试回答你提出的一些更具体的问题:

答案 1 :(得分:0)

我不能做一个很长的帖子,但你看看TeamCity。它是一个CI环境,它汇集了您提到的大多数工具,并且构建在java之上,但在.net项目中运行良好。但它不能解决你提到的所有问题!