asp.net webform entityframework 部署到 centos mono

自己从事了多年的 asp.net web forms 开发,因酷爱 web forms 模型, 可以不用写 js, 不用写 sql , 甚至一个增删改查页面,只要设计好数据库结构,不用自己写一句代码(当然这个只适用于需求不是很复杂的场景),就可以完成。用它做中小型网站很快(尤其是单个页面逻辑极其复杂的场景),安全性又高。

很多人说它过时了,但我喜欢,只要能又快又好的实现需求,管它呢。 今天我就在 centos7 的 mono 下实验了一下,很不错。

1)vs2010 创建一个web forms站点,创建一个页面,放一个gridview, 从数据库创建一个 EF 实体,通过EF给 gridview 绑定一张表的数据,2分钟搞定。

发布到ftp连接到centos,一键搞定。 运行命令:xsp4 --port 8080,网站启动。打开浏览器,发现报错了。错误是以前没见过的 Non-Web Exception。

经网上查询得知,因为 mono 更新的晚,并不支持 vs2010 默认的 entityframework 4.0,从6.0开始支持。

2)关闭vs2010, 用 vs2017 打开刚才的项目,修改.net framework 为 4.5, 删除之前生成的EF Model,新建 ADO.NET 实体数据模型,保存、编译、发布一键完成。

重新运行命令: xsp4 --port 8080, 刷新浏览器,奇迹出现了,数据出来了,搞定。