使用Visual Studio.NET和.NET framework进行软件开发的不足之处之一是其缺乏对跨平台开发的支持,虽然在几年以前就引入了.NET framework以及通用运行语言,然而却很少由能够在其它开发平台,包括Linux和Unix开发.NET framework的程序。
我们在以前曾经对这一话题进行探讨,即我们文摘的Using Mono for .NET Linux Development。而在本文中,我们将讨论另一其它方法,即使用将.NET引用到其它的开发平台。
DotGNU project被声称为“.NET的可使用性免费软件”,其包括多个软件工程,比如DotGNU Portable .NET,其可用于编译和运行多平台中的C#和C程序,包括GNU/Linux, FreeBSD, Mac OS X,以及Windows平台。
这一产品的主要特性是与ECMS标准的兼容性,ECMS是专用于C# and the Common Language Infrastructure (CLI)的标准,这一特性使得DotGNU正如微软.NET framework自己的CLI标准。
DotGNU工程遵循“虚拟机器”的规则,即将字节码转换为一套简单的子令集,然后被传递到一个“被转换的虚拟机器”,之后被一个编译程序执行。这一方法不同于其它的开放源.NET标准,但提供了更多的灵活性,尤其是当将工程引入到其它平台的时候。
DotGNU工程的核心是运行时间引擎(ilrun)以及执行System.Windows.Forms的编译器(cscc),而cscc能够使得跨平台的开发变得更加容易,而无需通过其它工具箱或者工具集进行转换。
在本篇文章中,我们将讨论如何启动DotGNU Portable .NET和运行于Red Hat Linux之中,然后讲解如何使用DotGNU工程实现一些范例程序运行在Red Hat Linux平台。
开始
我们需要下载DotGNU的source code或者binaries以满足特定的操作系统。由于我们需要在Red Hat中执行DotGNU,我从http://phillip.compton.name/pnet/下载正确的RPM,如下图1所示。
图1. DotGNU的 RPM
为了能够启动和启动DotGNU Portable .NET,还需要按以下顺序安装3个组件:
treecc
pnet
pnetlib