先简单介绍一下。mono是Novell赞助的一个开源项目,目的是开发跨平台的Microsoft.Net Framework,而且还包括编译器、集成开发环境,目前也和微软同步到3.5版本,可用于Linux/Unix/Mac等非Windows平台。也就是说,Visual Studio编译的exe程序,直接可以在linux/Mac/Unix上运行了,至少目标是这样,不知道微软是会高兴还是担心。mono初期连WinForm都不支持,不过现在除了企业、硬件等一些复杂应用,一般应用程序都能使用。
在http://www.go-mono.com/看了看,直接安装的有Suse/Solaris/Redhat/Mac版本(而且还有windows版本,没敢试),我装的是Ubuntu,只好下载了最新版本1.9.1的source来编译。不愧是Linux,装东西难得一次成功,缺这缺那折腾了2个多小时才装好(最后发现必须用apt-get install libgdiplus)。从http://sharpchess.com/下了个国际象棋游戏,这是个用C#编的程序,运行mono SharpChess.exe,没反应?再按了一下回车才出来界面:
界面上绘图的坐标有点错误
打开文件对话框,基本还算正常
走了一步棋,出了一个老早就担心的错误:除了Microsoft用捺,别人都用撇
Unhandled Exception: System.UnauthorizedAccessException: Access to the path "/home/chaochun\BackupGame.sharpchess" is denied.
获取操作系统信息,写程序的时候把这个考虑进去应该可以避免,最好是mono把这个问题解决了。
希望mono还能不断改进,我也可以不用vim/gcc/QT来编程序了,还是很佩服这些做linux开源的人。