【问题标题】:What free, portable .Net tools are available? [closed]有哪些免费的便携式 .Net 工具可用? [关闭]
【发布时间】:2010-11-10 17:37:24
【问题描述】:

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

总的来说,我希望有以下几点:

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

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

  • 自动构建:nant
  • 单元测试:nunit
  • 测试模拟:Moq(这是一个很棒的库)
  • API 文档:Sandcastle(不知道这是否适用于除 Windows 之外的任何设备)
  • 指标:sourcemonitor(我认为这不适用于 Windows 以外的任何设备)
  • 测试覆盖率:ncover(这是非常古老的开源版本。它可以在 Windows 以外的任何平台上运行吗?)
  • 代码检查:fxcop(这在 Windows 以外的任何地方都有效吗?)

我面临的问题是:

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

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

那么,这些工具中是否有更好且仍然免费的替代品可以在所有支持单声道的平台上运行?

你有什么建议?

【问题讨论】:

  • 要求挺高的 ;) 看看有没有人回答

标签: c# .net build build-automation


【解决方案1】:

我并不是要粗鲁,但这个问题看起来更像是 Java 与 .Net 的争论,而不是一个有效的问题,因为您似乎已经知道这些工具是什么。是的,在 Java 上工作的 open source projectspeople 比在 .Net 上要多得多(原因超出了这个问题的范围)。现在就是这样。

唯一的方法是实际的开源工作。 参与。如果你想要一些开源工具在 Mono 上工作,首先尝试向项目作者推荐它。他们很可能从未在 Mono 上尝试过他们的代码,或者让它在 Mono 上运行对他们来说是一个低优先级的问题。如果你能让他们这样做,那很好。否则,您可以获取代码并自己编写代码,也可以聘请一名项目成员为您编写代码。

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

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

【讨论】:

  • 我曾在其底部的一小段中提到过 Java,诚然,这是一个相当大的问题。因此,我认为将整个事情称为“Java vs .Net”是完全不合理和不公平的。事实上,我什至会说你错了。我已经发现了宪兵并发现它是一个不错的替代品。对于 NDepend,我能看到的最多的是试用版,虽然可以免费用于开源和非商业项目,但会定期定时炸弹,需要新版本或其他东西。与项目一起分发时并不理想。
  • 底线:.Net 不是 Java。如果你试图假装它是,你最终只会失望和沮丧。相反,试着更加务实,像现在这样对待现实。
  • 没有人说它是,也没有人在假装什么,我可以向你保证,我非常生活在现实中。现在你只是在攻击稻草人,这很粗鲁。说实话,与 .Net 相比,我对 Java 更失望。
  • 就像我说的,我从来没有故意粗鲁。如果你觉得我粗鲁,我很抱歉。我在这里想说的是,您永远不会在 .Net 中找到与 Java 中一样多的工具(尤其是免费的)。
【解决方案2】:

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

【讨论】:

  • 这个其实挺好的。我下载了它,并一直在玩它,印象深刻。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多