在Windows系统,最常见的就是Windows Forms程序(以下简称WinForm程序),也就是窗体应用程序,比如MS Office,媒体播放器软件等,WinForm程序比起Web应用程序,明显在实时性,用户亲和度和操作便捷能力方面强很多。在Linux系统下,虽然也有桌面窗体应用程序,但应用很少。
能否将WinForm程序移植到Linux系统上面呢?
目前,Novell公司的开源项目mono提供了将.NET程序运行在各种非Windows平台的能力,例如控制台程序,WinForm程序和ASP.NET等,下面我们对各Linux系统进行一下实验,由于Liunx系统有不同的发行版,我们分别进行实验。
1,在Redhat 5.5企业版运行WinForm程序
首先在Redhat上安装一个mono运行时,如果要运行WinForm程序,还必须安装mono-winforms插件,如果你下载了最新的mono 2.8.1版本,已经内置支持了。
下面我们看看一个简单的WinForm程序在Redhat的运行效果:
显示效果不错,跟在Windows下面的VS2008中的设计界面一致,但有一个致命Bug,就是窗体无法接收键盘事件,尽管使用鼠标没有任何问题,但是一敲击键盘,窗体就失去了响应,在网上查了很多资料,也没有找到原因。
理论上,在Redhat也可以运行一个mono+Gtk#的窗体界面,无赖我的Redhat先是装的mono 2.8.1,我当前使用的monodeveloper开发的Gtk程序必须使用mono 2.8.2的库。
2,在OpenSUSE 上运行WinForm程序
OpenSUSE 是一个很漂亮的Linux发行版,我在
http://www.go-mono.com/mono-downloads/download.html