什么工具链适合需要用单声道构建C#/ F#项目的Java开发人员?

时间:2011-10-14 16:17:20

标签: f# nunit continuous-integration nant jenkins

我正在与一个开发Java应用程序的团队合作,使用以下完善的工具链进行自动构建,测试和持续集成:

  • 操作系统:Ubuntu
  • IDE:Eclipse
  • 构建工具:Ant
  • 测试框架:JUnit
  • 源代码管理:Subversion
  • CI服务器:Jenkins

典型的Jenkins作业将从Subversion获取Java源代码,并运行Ant目标来构建代码,运行自动化测试并创建部署工件。

我们正在考虑为Windows客户端编写.Net插件,以便从MS Excel访问我们的应用程序API。我们可能会使用C#或F#编写它 - 它是早期的,我们还没有确定一种语言,但F#似乎可以提供一些好处,能够使用基于组合器的表达API动作DSL。

我们希望在Linux上使用Mono尽可能多地完成这项工作,并使用我们现有的CI基础架构来构建和测试我们的软件。

我的第一印象是工具链看起来像这样:

  • 操作系统:Linux
  • IDE:Monodevelop / VIM(Eclipse支持Mono,尤其是F#,似乎缺乏)
  • 构建工具:NAnt
  • 测试框架:NUnit
  • 源代码管理:Subversion
  • CI服务器:Jenkins,带有NAnt插件

有没有人有使用这种工具链开发的经验?我想回答的两个问题是:

  • 对于习惯于Java生态系统的开发人员来说,这种方法存在哪些主要缺陷?
  • 是否有更好的NAnt和NUnit替代方案来构建和运行自动化测试,特别是对于F#?

2 个答案:

答案 0 :(得分:2)

如果您正在开发可在Linux上开发的跨平台或服务器端应用程序(偶尔在Mac / Win上测试),那么在Linux上使用F#和MonoDevelop似乎是可行的方法。

但是,如果你的目标是Windows用户,我认为你不能在Linux上开发Excel插件。您肯定需要在Windows上运行Excel并进行测试,您可能还需要在Windows上进行(部分)开发(我认为集成是棘手的 - 尽管您可以开发和测试一些Linux上的核心功能。)

在Windows上,您可以使用free Visual Studio Shell with F#。 F#的MonoDevelop集成(希望)相当不错,但是Visual Studio可能会给你带来更好的体验,你需要使用Windows来完成很多任务无论如何 ......

答案 1 :(得分:1)

  

对于习惯于Java生态系统的开发人员来说,这种方法存在哪些主要缺陷?

您正在使用Linux操作系统开发Excel的扩展程序,主要是Windows。 Mono平台非常出色 - 但你可以遇到错误 - 无论是C#还是F#。它不像几年前那么大,但值得考虑。如果您决定坚持使用Mono / Linux平台 - MonoDevelop是您的最佳选择。

  

是否有更好的NAnt和NUnit替代方案来构建和运行自动化测试,特别是对于F#?

如果您计划使用F#,请查看FsUnit。它有一些很好的语法断言等等。它对NUnit是免费的,所以你不会处于未知的水域。