Mono、Unity和Xamarin三者关系

时间:2022-04-15 00:24:06

1、Mono:

.net是微软出的标准。如果站在Mono的角度来说,这套标准能规定编译器产生一些符合一定条件的文件出来,这些中间文件最后在目标平台上被解析成跟机器相关的东西。问题是,开始只有Windows上才能运行.net标准的代码。因为其他如Linux之类的机器上没有相应的基础库和相关的执行文件来解析这种标准下的东西。所以,就产生了Mono。Mono的目标是在尽可能多的平台上使.net标准的东西能正常运行的一套工具,叫framework也好,叫库也好,核心在于“跨平台的让.net代码能运行起来“。

目前来说,Mono支持这么多的平台:

Operating Systems
Linux
Mac OS X, iPhone OS
Sun Solaris
BSD - OpenBSD, FreeBSD, NetBSD
Microsoft Windows
Nintendo Wii
Sony PlayStation 3
支持这么多的语言:

1.1 C#
1.2 F#
1.3 Java
1.4 Scala
1.5 Boo
1.6 Nemerle
1.7 Visual Basic.NET
1.8 Python
1.9 JavaScript
1.10 Oberon
1.11 PHP
1.12 Object Pascal
1.13 LUA
1.14 Cobra
1.15 Other languages

看到上面的Boo和C#和JavaScript了,就是Unity目前选用的三种语言。

其他参考:

Mono Project (由Novell公司主持)_中文C#技术站

2、Unity:
这是一个3D引擎,用来给行业(游戏、教育、仿真等需要大量使用三维数字表现的地方)快速的制作互动式的3D数字产品(主要是3d游戏)的工具。在用到编程的地方,Unity采用C#、JavaScript(官方可能叫UnityScript)、Boo,这些语言的编译支持需要上面的Mono的支持。Unity默认的开发IDE,也是Mono提供的MonoDevelop。Unity的跨平台能力,主要是架构在Mono这个基础上。

3、Xamarin

跟Mono有千丝万缕的关系,Mono现在就应该是它赞助的。跟Mono之间的关系在我了解的资料上,是“Mono是开源的,商业化的Mono就是Xamarin”,但是这句话可能不对,仅供参考。