当前位置:首页 > 综合

动易SiteFactory

第一次接触动易SiteFactory是动易在2013年,一个地级市政府的动易门户网站项目。客户点名要用这套系统,动易理由很简单——之前那套CMS被黑客拖了库,动易而SiteFactory号称"政府级安全"。动易我当时心里犯嘀咕,动易ASP.NET的动易东西,能好到哪去?动易

结果部署那天就给我上了一课。安装包不到80MB,动易解压、动易配数据库、动易跑安装向导,动易前后不到十分钟。动易后台界面朴素得有点过分,动易但功能树一拉出来,动易节点权限、字段自定义、内容模型、工作流,该有的全有。最让我意外的是它的节点权限体系——可以精确到某个栏目下某篇文章对某个用户组是否可见,还能设置IP段访问限制。这在当时的开源CMS里几乎见不到。

它到底解决了什么问题

政府网站有个绕不开的痛点:多部门、多层级、多站点。市委宣传部要发通知,下属十几个局委各有自己的栏目,有些内容还要同步到省里的平台。SiteFactory的"站群"概念就是冲着这个来的。一套后台,可以管几十个子站,每个子站独立域名、独立模板,但共享用户体系和内容库。子站管理员只能管自己的一亩三分地,总站管理员能看到全部。

我印象很深的一个细节:它的"签收"功能。发一篇文章,可以要求指定部门在规定时间内确认阅读。超时未签收,系统自动发催办通知。这个功能放在今天不算什么,但在2013年,很多单位还在用电话通知"你去看一下网站上的文件"。

技术上的取舍

SiteFactory基于ASP.NET WebForms,这在今天看是有点过时的技术栈。但它的架构设计有可取之处——数据访问层做了缓存抽象,支持内存缓存和分布式缓存切换。模板引擎是自定义的标签解析,类似{ PE.Label id="..."}这种写法,学习成本不高,但灵活度有限。想搞复杂的条件判断和循环嵌套,标签写起来会很别扭。

数据库方面,官方推荐SQL Server,也支持Access和MySQL。但实际用下来,Access版本在数据量超过10万条后明显卡顿,MySQL版本则有些功能阉割。这算是商业软件的通病——核心功能绑定在特定数据库上。

实际项目中的坑

2016年做一个区级门户,栏目结构改了三次。SiteFactory的节点移动功能有个问题:移动后,原来绑定的模板和权限设置会部分丢失。官方论坛上有人反馈过,但回复是"设计如此"。后来我们养成了一个习惯——改结构前先导出节点配置,改完再手动比对恢复。

另一个问题是它的全文检索。内置的搜索功能基于SQL Server的全文索引,中文分词效果一般。搜"社会保障"能搜到,搜"社保"就未必。后来我们外挂了Elasticsearch,通过API对接,才算解决。

现在还有人用吗

去年路过一个县级政府网站,底部还挂着"Powered by SiteFactory"。查了下版本号,是2018年的。动易后来推出了基于.NET Core的新版本,但市场声量已经大不如前。开源CMS和SaaS建站工具两头挤压,这类传统商业CMS的生存空间越来越窄。

不过话说回来,对于需要私有化部署、有等保要求、又不想从头开发的单位,SiteFactory仍然是个省事的选择。它的代码质量谈不上优雅,但胜在稳定——我见过跑了七八年没重启过的实例。这大概就是"政府级"三个字的真正含义:不追求技术先进,只求不出事。

分享到: