Convert .Net Program To Mono

1. 文件路径

这个当属最明显的改动,因Windows与Linux文件系统及路径的差异,建议使用.NET下的System.IO.Path.Combine来构造路径,平台无关。

 

2. 使用的第三方程序集,尽量使用其Mono版本

即使有些可以使用win版本,但可能会有问题(如Mysql.Data.dll, Nlog.dll等win版可以用,但都有mono版本)

有些控件或程序集不支持mono的,需另找解决办法(如AspNetPager在mono asp.net上我没运行成功)

 

3. asp.net尽量使用web application方式,这也是官方推荐的(MonoDevelop里就不支持WebSite),其实website方式在mono上是可以直接运行的,但Global.asax好像不会生效。

 

4. Url大小写

Linux本身区分大小写,文件系统也如此,但url这样做不友好,Apache默认也是区分大小写的,可更改配置忽略大小写。(页面中的超链接如css,js可能因此问题无法加载)

 

4. 关于编译

其实你在visual studio里创建项目、编译、发布,最后到Mono上运行,是完全没有问题的。无需到Linux上再用MonoDevelop编译,但用VS编译成功可能会在Mono上运行出错(因为你在windows上编译),特殊情况可在MonoDevelop编译调试能看到详细的异常信息。

 

参考:

http://www.mono-project.com/Start

http://www.mono-project.com/ASP.NET

 

我用的Linux为Ubuntu 12发行版,在Mono上运行控制台程序、Service、asp.net均正常,且已在生产环境使用。

posted @ 2012-06-14 15:43  chy710  阅读(495)  评论(0编辑  收藏  举报