Mono的诞生基于这样一个事实:C#语言和CLI(Command Language Infrastructure即通用语言构架)已经为ECMA作为标准而接受。Mono库包括了.NET兼容库(包括ADO.NET、System.Windows.Forms和ASP.NET)以及Mono所指定的第三方类库。用户还可以将Mono运行时(runtime)嵌入到应用程序中,使得程序的打包和发布更为简便。此外,Mono提供了一个IDE,一个调试器,还有一个文档浏览器。
一旦根据你使用的平台下载了所需的安装包后,安装过程将随操作系统不同而有所不同。在编写本文时,我将Mono安装在了运行Windows XP和SUSE Linux 9.2的两台计算机上。在Windows环境下,安装过程非常简单,只需要下载安装包然后在系统上运行就可以了。而另一种操作系统处理起来则有些麻烦。Linux环境下的安装包括多个单独的文件,这些文件同Mono平台的不同方面功能相关。这里是Mono针对SUSE的部分软件包:
因此,我们通过命令行解释器来运行我们的例子程序:mono MonoDemo.exe。这一例子的关键在于我们可以在Windows、Linux、Mac OS X等任何能运行Mono或the Windows .NET Framework的平台上运行编译之后的文件。这是因为Mono编译器将代码编译为人们熟知的IL中间形式。微软的C#编译器也完成相同的工作,但Mono并没有完整的安装.NET的类库,它安装了额外的Mono指定库。因此,并不是所有通过Mono开发的应用程序都可以在微软.NET Framework下运行,反之亦然。