Mono / C#的文档和构建系统

时间:2011-01-14 04:03:33

标签: c# mono build-automation documentation-generation

我正在开始一个新项目,团队成员决定使用C#作为实现语言。我在C#方面没有太多经验,但简短的阅读表明它非常有能力成为一个完整的跨平台虚拟机。除了语言之外,随着项目的发展,我一直无法选择用于管理代码的工具和工作流程。它应该相当小(<10K行)但我希望能够在项目增长时生成文档,管理我们决定使用的任何外部依赖项,并自动化构建和测试。我想知道什么工具是常用的或被认为是这种语言的最佳实践。

我主要关注构建系统如何在* nix和windows上运行?是否有C#特定工具或更常见?另外,我想使用dvcs,但它看起来不像Visual Studio和MonoDevelop支持相同的。 C#的常见vcs选择是什么?对于测试类型单元测试可用于C#/ Mono?最后,我知道有很好的文档生成器,但是对于构建系统的问题,我真的希望这只是构建中的一个步骤,类似于测试是一个步骤。通常我会自动使用Hudson,但我想知道是否有更具体的平台。

总的来说,我希望看到一个解决方案,在Windows和* nix上提供一个不错的工作流程,而不会造成沉重的管理负担。我很确定这是项目管理的圣杯,所以任何让我走上这条道路的事情都很棒。

5 个答案:

答案 0 :(得分:4)

在我工作的项目中,我们使用Visual Studio 2010,MonoDevelop / XBuild,Git和monodoc。 MonoDevelop和XBuild可以轻松读取Visual Studio 2010创建的项目文件。此外,Git是一个用于分布式开发的优秀VCS(我特别喜欢它的分支)。 Monodoc可以通过调整命令行参数来生成代码中XML注释的文档。

答案 1 :(得分:1)

您可以使用任何您喜欢的dvcs。 MonoDevelop(至少在主干中,不确定它是否已经发布)作为内置的Git支持。有一些Visual Studio的插件也可以为你提供Git。

无论哪种方式,你都不需要将你的源代码控制集成到IDE中,事实上我更喜欢它不是并且如果我在Windows中,或者从OS X上的命令行使用TortoiseGit中的Git(虽然我正在考虑OS X方面的Gitti。)

对于构建,我建议TeamCity,因为它支持最多三个远程代理,允许您使用免费版本在Windows / Linux / Mac上构建。

对于构建我会使用NAnt,虽然单声道下的xbuild可以使用解决方案文件,因此可能更容易,而不是维护两个构建脚本。我喜欢NA的CI,因为我发现它更容易分解为构建,测试,封面,打包,部署等。

我发现MonoDevelop,Git,TeamCity和NAnt的组合为您提供了一些不错的跨平台开发设置。

答案 2 :(得分:1)

我建议您尝试主要使用一个IDE。我想大多数Mono IDE都支持Visual Studio格式。至少是SharpDeveblop。

http://mono-tools.com似乎是仅在Windows(非免费)中为.NET和Mono开发的正确方法。我认为这是最好的选择,如果我在商业环境中认真开发单声道,但不是1005肯定。

http://sharpdevelop.com看起来也很有希望,但仍然像穷人一样堕落。

http://monodevelop.com/是在Linux中开发Mono的方法。

对于DVCS,您可以随时使用Tortoise并且与IDE无关。 git在Linux上运行得很好,而Windows上的TortoiseGit非常好用。然而,它的名气,SVN(当然不是DVCS)仍占主导地位,特别是它的客户端可以通过网桥连接到TFS。 Mercurial和Git开始在C#社区中发生。

答案 3 :(得分:0)

CruiseControl.Net是一个非常好的构建/持续集成系统。它可以将applications的负载集成到构建过程中;我们使用NAnt进行构建,使用NUnit单元测试和FXCop进行代码分析。

答案 4 :(得分:-1)

Cake(C#Make)是一个开源构建自动化系统,具有基于C#的特定于域的语言,可以执行诸如编译代码,复制文件/文件夹,运行单元测试,压缩文件和构建NuGet包之类的操作。它具有大量其他内置功能,可以使用自定义代码轻松扩展。它适用于Windows,Linux和OS X,可与几个持续集成系统一起使用,如AppVeyor,TeamCity,TFS,VSTS或Jenkins。

相关问题