iaspcms论坛插件开发完成

公告 未结 精帖
0 102
站长
站长 2020-05-17
悬赏:20飞吻
编辑

开发心得


popasp20166月份开始开发,到现在基本上有四周岁了,中间经历了几十个版本。以popasp为基础开发的系统、网站有一些吧,具体多少,我也不清楚。2018.12.10iaspcms正式发布,借助iaspcms这个利器popasp的优势得到了极大的发挥,使用iaspcms搭建的网站就很多了。时间一晃到了2020年的619日,在iaspcms基础上开发的论坛aspbbs投入测试,这又是popasp一个里程碑的发展,相信随着时间的推移,项目需要的驱动,popasp的前途会越来越好。


1. 利用了iaspcms的多语言功能,将bbs作为一门语言添加,入口文件使用bbs.asp访问,有效利用现有资源,减少开发环节,降低了开发成本。


2. 由于论坛巧妙地使用了多语言,那么现有的用户管理模块、网站栏目模块等就可以直接使用,原有的iaspcms标签也可以直接使用,开发难度进一步降低。


3. 利用iaspcms强大的插件开发功能,巧妙地将论坛作为一个插件模块,对原有的代码与数据库的修改降到了最低程度。同时在开发论坛插件的同时,不断扩展iaspcms的二开功能。


4. 插件拆卸方便,在保持原有CMS主题架构不变的同时,开发了另一个功能强大的组件。大家知道,CMSBBS有很大的不同,有专做bbs的如discuz,也有专做cms的,由于各类CMS不胜枚举,造成竞争压力大,总体上来说CMSBBS多,用CMS扩展BBS的少。


5. BBS不必像cms那样每篇都要亲自去细读发布,这点与CMS有很大的不同,leadbbs作为一款早期bbs,多年来一直想开发CMS,直至现在还没有完成。cms偏重于展示,而bbs偏重于活跃。二者的侧重点不同,也反映到了代码的实现上。


6. 在网友推荐下,使用了成熟的layui前端模板,实践证明这个选择是正确的,从而避免了将太多的时间耗费在前端上,加速了项目的开发。


7. 在开发时,没有使用popasp的模板引擎技术,而使用了iaspcms的标签技术,使用后者的好处是后期更换模板方便,由于原有标签功能的不足,就要增加一些新标签,扩展一些新功能,比如增了looprs  looparr等新标签,扩展了iaspcms:func:   iaspcms:execute 等这样一些新功能。开发这些新功能虽然耗费了不少时间精力,但是相比较iaspcms二开功能的极大提升,这些付出还是值得的,为今后iaspcms二开新项目奠定了坚实基础。


8. 论坛的首页与列表页的前几个页面,因访问频繁,可以使用aspapplication来缓存,只能缓存未登录状态的页面,登录后因页面有用户信息,不宜缓存。如果有新加的帖子或者删除的帖子,则要及时清空缓存。


. 为了开发aspbbsiaspcms增加了几个数据表

a. 配置分类表 self_GuestConfigGroup

b.配置表 self_GuestConfig

c. 帖子表 self_GuestTopic

d. 回帖表self_GuestReply

e. 赞踩 收藏 签到用的表self_GuestDigg

f. 消息表self_GuestMessage

就这几个表结合iaspcms原有的十几个表,就撑起了aspbbs功能。


10. 关于配置

popasp框架由于不涉及数据库,配置使用Dictionary对象来存储,读取配置可以使用POP_MVC.config(“配置标识符”)或者C_(“配置标识符”)来读取,读取的时候要使用()与“”,而且区分大小写,比较麻烦。

iaspcms又扩展使用了两种配置,一种是将一条记录转化成类对象,将字段名作为公共变量名,这样可以使用

类似setting.key来读取,比如Language表,通过db.getObject读取并构造这样的数据。

另一种是设计一个表,其中一列字段值不能重复,用来作为标识符,另一列是值,表Config就是这种构造,通过db.getObjct2来构造数据,同样是设计成类对象,还是通过config.key来读取。

后两种都不区分大小写,也可以赋值,快速开发的时候优势明显。

对于论坛来说,配置项就更多了。它的设计我觉得使用类似Config表构造配置更合理,也更方便。通过此次实践也表明,这种使用体验更佳。


11. 关于插件的开发

iaspcms有个核心插件plugin,用plugin再开发别的插件,这个思路是突然窜进脑海的,后来用代码把这个思路实现后,觉得使用起来异常方便。其实从出发点上来说,也是不想将插件即便是论坛这样的大型插件改变iaspcms作为cms的更本性质。抓住了主要矛盾与矛盾的主要方面后,剩下的工作无非是将思路进行代码的转化了。

通过此次实践,如果想在iaspcms基础上扩展别的项目,那么依托目前的插件功能与aspbbs的成功经验,实现起来也不会是难事。

回帖
  • 消灭零回复
验证码
本月热议
没有相关数据
心级赞助商我要加入
layui

赞赏 POPASP/iAspCms,助力ASP发展