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均正常,且已在生产环境使用。