C#在Linux上的开发指南(续)
续之前的一篇开发指南http://www.cnblogs.com/RainbowInTheSky/p/5496777.html
部分人在部署的时候经常出现dll兼容问题(其实可以看小蝶惊鸿的文章,蝶神早已踩过了坑http://www.cnblogs.com/xiaodiejinghong/tag/mono/)
站点部署后建议使用webbench进行压力测试
1.Microsoft.Web.Infrastructure.dll不用上传,mono已经实现(MS的dll有api依赖的问题),Mono的dll可以在安装后去它的目录里面找,参考:http://www.cnblogs.com/xiaodiejinghong/archive/2013/05/23/3092181.html
2.System.ComponentModel.DataAnnotations.dll,这个dll是做组件模型的标示,很多ORM都有用到,有必要添加引用并上传(注意版本)
3.System.Drawing.dll,这个dll不用上传,但是使用上有一些要点(GDI+相信在安装mono的时候已经安装了),大家在生成验证码的时候会用到字体,但是很多字体linux系统本身是不带的(本身就没有windows那么多的资源),
导致在调用的时候会报字体未找到引用的错误,解决方法也简单,尽量使用Linux有的字体(没有就找替代),这个问题所有编程语言都一样,属于系统环境问题。
项目的dll引用很重要,不相干的dll建议都去掉(太多引用无用的dll,加载或者初始化都会变慢的),保持项目的功能一致性。(如果还有什么dll有问题,在累列出。)
4.最近很多人用MVC5,然后在Linux部署遇到一些问题,大致是DLL的大小写问题(WebPage和Webpage),然后建议建项目的时候选Empty项目,防止添加各种无关紧要的东西。(09-17更新)
当前的.NET Core已经很成熟,我已经用2和3的版本,可以在linux完美运行,当然开发的注意点还是上面文章提到的,一句话就是“注意平台的特征”。库的安装可以参考微软官网的例子,对新上的项目我都推荐,后续的.NET5也可以从3进行升级(2020-11-9)