C#基线资源

时间:2009-12-11 17:11:47

标签: c# mono

有时间向专业人士询问,因为我无法在其他任何地方找到一个好的答案,而且我正冒险进入我正在学习的世界。

我是一家主要开源的商店,最近开始接收大量基于.Net的内部工具和合作伙伴。这让我想到我可以通过在某些空间利用C#/ mono来利用两全其美。在一个小规模,我已经非常成功,它的工作很棒。但是,按下“Build”并将exe文件scp到位并不能很好地扩展。

我想稍微加强它并获得更多资源,所以这是我的问题;我需要什么样的基线资源来建立一个好的开发/测试/暂存环境。 我不需要超级详细的信息,我愿意考虑商业和开源解决方案,我想我更愿意寻找有关资源的好建议。在OS系列的任何一侧开发的99%的项目都是服务。

推荐使用哪种单位/回归测试工具,NUnit是标准?

建议为服务级别软件使用哪种部署机制?

在开发/设计工作中,您发现了哪些有用或必不可少的附加工具?

前两个项目很有意义,因为在我可行,可重复的开发和部署过程之前,它们是我最不缺的东西。

4 个答案:

答案 0 :(得分:1)

您可能需要查看http://go-mono.com/monovs/ 它将使您在Visual Studio中从Linux进行调试。

Visual Studio中的单元测试框架也相当不错, 但如果您使用Visual Studio的标准版或免费版,NUnit也是一个不错的选择 (并且可以选择Visual Studio集成)

除此之外,我非常依赖Refactor Pro(以及该公司的其他产品) http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/

至于将文件scp到你的linux / mac机器上,可能会更容易 配置MSBuild自动为您执行此操作。 这可能会有所帮助:http://bartdesmet.net/blogs/bart/archive/2006/04/13/3896.aspx

可以在此处找到更多msbuild任务:http://msbuildcontrib.codeplex.com/

我希望这会有所帮助。

答案 1 :(得分:0)

对于构建和部署,您可以尝试NAnt。它将处理您的构建,并具有运行测试,执行干净的SVN检出,压缩版本等任务的任务。你也可以嵌入C#。抓住夜莺而不是发布,不要太担心最近缺乏活动。 nant-contrib项目也充满了额外的好处。

另一个选择是尝试msbuild(我相信有一个Mono等价物,虽然我不确定到什么程度)。说实话,这两者之间没有太大区别。

答案 2 :(得分:0)

我已经使用以下内容构建了有效的构建/测试/部署基础架构:

我们还使用subversion来管理源代码控制和部署(用于CMS和网站系统等)

我们使用的一些构建工具是:

当然,任何这些工具都可以替代您喜欢的其他工具(perl,python,ruby,Ant等)。

答案 3 :(得分:0)

这大致是我在工作中设置环境的方式:

  • 我使用NUnit作为单元测试平台
  • 我使用TestDriven.NET作为插件,可以在我的IDE中轻松运行我的单元测试
  • 我已经设置了一台运行CruiseControl.NET
  • 的独立计算机

这个CruiseControl.NET计算机定期检查我的源存储库。当它看到某些内容发生了变化时,它会从source-repository获取最新版本并构建它。它还执行单元测试,并在目标上运行fx-cop。

接下来,我已经对它进行了配置,以便它也可以执行夜间构建。这大致相同:
当某些事情在白天发生变化时:

  • 删除本地存在的所有文件
  • 从源存储库获取最新版本
  • 构建它
  • 运行unittests
  • 运行fxcop
  • 使用sandcastle helpfile builder
  • 创建文档
  • 当构建成功时,将构建输出复制到一个名为“build-yyyymmdd”的单独文件夹。

我已经设置了我的源代码库,以便我可以在项目中保留不同的版本(分支)。 简而言之,我的source-repository看起来像这样:

  • 我有一个名为的文件夹 'devtrunk',其中包含实际内容 代码库。 (我积极参与其中 的深化发展)
  • 我有一个文件夹calles'release'。 每次我发布新版本,我 做一个树干的分支,我把 这个分支在一个新文件夹下 “释放”。这让我可以修复 已经存在的版本中的错误 释放,没有打扰我的 在树干上的实际工作。

由于我在Windows平台上工作,我使用MSBuild创建我的构建脚本(由Cruisecontrol执行),但是,您可以使用NAnt代替。 (我也用过它。)