您现在的位置是:首页 > cms教程 > discuz教程discuz教程
Discuz的NT系统架构分析
寻雁2025-06-25 21:11:43discuz教程已有4人查阅
导读DIscuz的NT支持2种数据源,SqlServer和MSAccess,但其数据库访问层实际上已经支持了MySQL,只是安装程序还未提供基于MySQL的。
(一)分析
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版本那样拆分成多个数据库
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版本那样拆分成多个数据库
本文标签:
很赞哦! (1)
上一篇:discuz伪静态设置步骤教程
下一篇:Discuz二次开发手册整理
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
discuz怎么添加广告位?discuz自定义广告位的方法
自定义广告位方法可以在页面的任意位置添加广告位,系统广告位位于 source/class/adv/ 目录中,插件广告位位于 source/plugin/插件目录/adv/ 目录中。Discuz二次开发手册整理
Discuz文件说明,有助于discuz爱好者,进行自己的开发,在这里提供方便admincp.php--后台系统设置主程序文件,一般只处理菜单的显示的访问权限,不处理管理控制。discuz的MVC结构分析
Discuz软件经解压后产生的三个文件夹中的一个叫upload的成为网站的根目录。里面的内容可以在某些网站上在线阅读。也可以离线在本地阅读,如用VS.Php for Visual Studio。Discuz nt插件开发教程
1 新建一个空白项目,引入Discuz.Cache.dll(缓存),Discuz.Common.dll(公用类)Discuz.Config.dll(文件配置类),Discuz.Data.dll(数据访问类),Discuz.Entity.dll(实体类),
留言与评论 (共有 0 条评论) |