Discuz!NT 系统架构的讨论
2009-09-08 10:16
239 查看
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = clipboardData.getData("text");
if (text && text.length>300) {
text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href;
clipboardData.setData("text", text);
}
}, 100);
}
}
function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}
(一)分析
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 系统架构分析
- Discuz!NT 系统架构分析
- Discuz!NT 系统架构分析
- Discuz!NT 系统架构分析
- Discuz!NT 系统架构分析 (转)
- Discuz!NT 系统架构分析(以前的)
- Discuz!NT 系统架构分析
- Discuz!NT 系统架构分析
- Discuz!NT 系统架构分析 (转)
- Mac OS 和 iOS系统架构的对比和讨论
- 管理支撑办公系统技术架构选型对比讨论(J2EE与SOA对比)
- Discuz!NT前台模型架构(MVC)
- 一款SNS战略休闲游戏开发笔记01——分布式系统逻辑架构设计的补充与讨论
- 转:Discuz!NT前台模型架构(MVC)
- Discuz!NT 中的LLServer架构设计
- Discuz!X集群部署的系统方案和改造方式讨论
- Discuz!NT中的Redis架构设计
- 关于银行系统中SOA架构实施的一些讨论
- 表现层系列:Discuz!NT前台模型架构(MVC)
- [导入]亲密接触Discuz!NT之架构篇:优良架构 方便网站整合与二次开发