Genesis-3D中的Mono(一)

在这部分系列文章中我将想大家介绍两部分内容,第一是关于Mono的一些基础知识,另外一部分则是Genesis-3D中所使用的Mono。下面我们来详细了解一下有关Mono的基本内容。      Mono自诞生以来就带有大量Microsoft的影子,为何这么说?因为Mono起初的目的就是将Microsoft的C#语言搬到Linux操作系统中。我不得不承认C#是一门不错的语言,虽然讨论编程语言很容易引起开发者的热烈讨论,但我这里不否认python,Go也是很棒的编程语言。我无意追捧或者批评某些语言。还是回到Mono,经过几年的发展,Mono不仅仅可以在Linux中使用,其他操作系统也得到了发展。例如你可以使用C#语言来开发iOS应用,也可以使用C#来编写Mac OS X桌面软件。由于Mono的一些特殊性,在Windows操作系统中我们可以使用原生的.net framework,也可以通过Mono的runtime来运行Mono项目。这里我要介绍一下Mono最重要的两部分。 C# Compliler

     在Mono中,我们使用的是Mono提供的编译器来编译C#源码。由于C#语言也一直处于发展状态,目前Microsoft官方最新版本为C#5.0,但Mono对于C#5.0的支持处于预览版本状态。当你安装了Mono的SDK后,你可以使用命令行来编译你的Mono项目。由于版本的缘故,Mono的编译器提供了四个版本。通过不同的命令我们可以加以区分。 gmcs :  这是旧版本的编辑器,对应编译的目标是mscorlib 2.0 smcs :  这个版本我并没有在最新的SDK中找到,他的编译目标对应mscorib 2.1。不过这个版本中有个特殊的东西,可以编译出Moonlight应用。所谓Moonlight应用就是跨平台的Silverlight。 dmcs :  这个编译器可支持mscorlib 4.0      我想大家看到这里已经感觉非常混乱了,开发者通常不希望为不同版本还需要选择不同的编译器来使用。作为一个跨平台的工具,我们尽量减少各个版本之间的差异为了统一这些编译器,你现在可以使用一个新的命令。 mcs : 目前我们常用的编译器,他实现了ECMA-334的语言实现规范。在这个新的编译器中兼容了C#1、2、3、4版本。但是大家在实际使用的时候需要注意的是,默认mcs仅仅引用了mscorlib、System和system.xml三个库,如果你想使用其他功能,需要在命令行中手动引用。具体功能说明可以使用  “man mcs”命令(仅限于Mac OSX和Linux系统,Windows请查看官方网站说明) 或者你也可以使用 “mcs -help”命令来查看相关命令参数说明。  Mono Runtime