使用Mono进行.NET开源编程 [转]

 

使用Mono进行.NET开源编程
作者: Tony Patton
2005-05-30 11:0 AM

Mono是一种基于.NET Framework的开放源代码平台。本文介绍了该平台如何提供在Windows、OS X 和多种UNIX/Linux下灵活的开发机制。

 

什么是Mono?

Mono的诞生基于这样一个事实:C#语言和CLI(Command Language Infrastructure即通用语言构架)已经为ECMA作为标准而接受。Mono库包括了.NET兼容库(包括ADO.NET、System.Windows.Forms和ASP.NET)以及Mono所指定的第三方类库。用户还可以将Mono运行时(runtime)嵌入到应用程序中,使得程序的打包和发布更为简便。此外,Mono提供了一个IDE,一个调试器,还有一个文档浏览器。

如何安装Mono

Mono可以从该项目的Web站点中免费获取(http://www.mono-project.com/Downloads),你可以选择下载Linux(通用安装版本,支持SUSE和Red Hat)、Windows和OS X下的不同版本。你可以下载全部的源代码并对其进行编译(如果你的平台不支持以上三种版本,这将是唯一的办法),或者是直接下载合适的安装包。本文中我们按照下载安装包的方式进行叙述。

一旦根据你使用的平台下载了所需的安装包后,安装过程将随操作系统不同而有所不同。在编写本文时,我将Mono安装在了运行Windows XP和SUSE Linux 9.2的两台计算机上。在Windows环境下,安装过程非常简单,只需要下载安装包然后在系统上运行就可以了。而另一种操作系统处理起来则有些麻烦。Linux环境下的安装包括多个单独的文件,这些文件同Mono平台的不同方面功能相关。这里是Mono针对SUSE的部分软件包:

* mono-devel- 1.0.6-1.ximian.9.1.i586.rpm—Mono核心包和C#编译器

* mono-core- 1.0.6-1.ximian.9.1.i586.rpm—Mono核心运行时

* mono-data- 1.0.6-1.ximian.9.1.i586.rpm—数据库核心

列表中的每一个文件都是RPM(Red Hat Package Manager)文件。这些文件需要在Linux环境下使用rpm命令行工具进行安装。例如,使用如下命令就可以安装Mono运行时:

rpm – i mono-core- 1.0.6-1.ximian.9.1.i586.rpm

在安装结束之后,你需要立即将相关目录添加到系统目录中去,这样就可以无需指定完整路径来使用相关命令。在Windows下你需要通过控制面板来实现,Linux中则是使用PATH命令。注意:如果在安装过程中遇到任何问题,我建议你访问Got Mono? Web站点(http://www.gotmono.com/)。它能够为你排除故障提供很好的参考。

Mono工具集

在安装完Mono之后,你或许会用到它的各种工具。以下就是这些工具的一部分:

* mono—Mono解释器。允许在没有JIT的情况下执行应用程序。这一工具允许从命令行中运行应用程序。在微软.NET Framework下没有相关的工具。

* mcs—C#编译器。该编译器接受的命令行选项同微软C#编译器完全相同。

* monodies—该工具允许将应用程序转换为IL(Intermediate Language即中间语言)。它的功能类似于微软的ildasm.exe。

如果要获取工具的完整列表,请参阅Mono文档。该文档对每一种命令的选项都进行了描述。

创建Mono应用程序

现在我们来通过创建一个简单的应用程序来看看如何使用这些工具。如下代码将向控制台输出一条简单的信息:

 

using System;

namespaceBuilder.Samples {

public class MonoDemo {

public static void Main(string[] args)

{Console.WriteLine("Check out 

Builderau.com.au");

} } }

我们将以上代码保存为MonoDemo.cs,随后使用Mono的C#编译器:

mcsMonoDemo.cs

 编译结果是生成了MonoDemo.exe文件。该文件的.exe扩展名在Windows环境下而言非常常见,但对Linux系统则不是。

因此,我们通过命令行解释器来运行我们的例子程序:mono MonoDemo.exe。这一例子的关键在于我们可以在Windows、Linux、Mac OS X等任何能运行Mono或the Windows .NET Framework的平台上运行编译之后的文件。这是因为Mono编译器将代码编译为人们熟知的IL中间形式。微软的C#编译器也完成相同的工作,但Mono并没有完整的安装.NET的类库,它安装了额外的Mono指定库。因此,并不是所有通过Mono开发的应用程序都可以在微软.NET Framework下运行,反之亦然。

因此,在确定目标平台和以后对兼容性的需求时,你必须把上面这点考虑在内。你还应当经常访问Mono站点。由于该站点经常会提供一些新的功能(例如类库),你可以使自己的项目保持随时更新。对微软产品而言同样如此。

你可能感兴趣的:(编程,.net,linux,windows,工具,编译器)