您现在的位置: 365建站网 > 365学习 > Discuz!NT 系统架构的讨论

Discuz!NT 系统架构的讨论

文章来源:365jz.com     点击数:263    更新时间:2009-09-16 11:53   参与评论

 

(一)分析

DIscuz!NT 支持2种数据源,SQLServer和MSAccess,但其数据库访问层实际上已经支持了 MySQL,只是安装程序还未提供基于 MySQL  的。

 Discuz!NT采用了"页面类 -> 业务类 -> 数据库访问类 -> DbHelper -> 数据库"这样的分层方式。数据库访问类有1个大接口3个大实现。所谓大接口就是 IDataProvider 接口,定义了900 多个方法。3个大类实现了 IDataProvider 方法,用 partial class 的方式共分了7 个文件。这种大粒度的类设计方式本人觉得不利于以后维护。

3个大类分别为 MySql SqlServer Access 对 IDataProvider 的实现,输出3个DLL。在配置文件 DNT.config 里可以设置采用哪个实现。

总体来说分层还是比较严谨清晰的,但也有一些不合理之处:
    1)接口层都集中在一个接口类里面,不便于维护,而且很容易引起重名
    2)所有表结构都放在一个数据库中不是很合理,能否像discuz PHP版本那样拆分成多个数据库

  

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (263人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------