亲密接触Discuz!NT之架构篇:优良架构 方便网站整合与二次开发

考虑到用户的实际应用需求和面向未来的软件开发理念,Discuz!NT在设计和开发之初就构建了优良的架构,大大提高了软件的伸缩性、可扩展性和重用性。本架构除了使Discuz!NT自身结构更为清晰和更易于维护以外,也为用户进行二次开发和完善论坛个性化提供了极大的方便。Discuz!NT采用了如下的四层结构,让我们简单介绍一下:

Www.Chinaz.com

 

(一)显示层 Www.Chinaz.com

显示层可由用户自行进行设计和修改,用以显示最终的web页面界面和论坛数据。特别值得一提的是,Discuz!NT在前台没有选择绝大多数ASP.net程序所使用的控件模式,而是另外实现了一套方便好用的模板机制。本模板机制使站长可以用html(或xhtml)来制作模板,然后由Discuz!NT的模板转换功能转换为Asp.net页面程序(即aspx)文件,这样做的好处有两点:

[中国站长站]

 

1)提高了易用性:ASP.net的ascx文件对于没有学习过ASP.net或对其开发模式没有了解的人来说,是存在难度的,而Discuz!NT的模板机制使得用户只需要简单了解html就可以制作ASP.net的论坛界面,站长可以轻松、自由地设计和修改界面了。

站.长站

 

2)提高了性能:一般情况下,前台程序不使用控件模式,而使用Discuz!NT的模板转换功能,性能将会得到显著提升。例如Discuz!NT的模板转换功能不用数据绑定,不必判断数据来源和转换数据类型,不用页面控件,避免了使用ViewState,从而大大提高了页面性能。此外控件模式往往追求功能齐全,而当你只需要其中一部分功能时,大量无用的代码则会拖累页面性能。

Www^Chinaz^com

 

更为突出的是,Discuz!NT显示层的灵活性很高,支持在模板中定义导入的命名空间和插入c#代码,从而使显示层可以方便的插入其它程序集的数据。

Chinaz.com

 

(二) 页面数据处理层

Chinaz^com

 

Discuz!NT的页面数据处理层主要负责web页面的数据输入与输出处理,包括检测用户数据提交的有效性校验,以及为页面程序所需要的数据源。本层实现了论坛的主要需求,完成了前台各个页面的功能流程,例如用户发贴时,页面数据处理层首先判断用户权限,然后校验用户提交的数据是否合法,最后调用对应业务对象封装类中的方法,将用户的数据实际存储。 中国.站长站

如果站长希望用户在前台输入、输出时,能同时与其它程序进行交互,那么就可以在该层进行处理,例如:一个钓鱼爱好者网站想在Discuz!NT用户个人资料中增加鱼竿类别的选项,并存储到主网站用户信息数据库,那么就可以在前面的显示层增加鱼竿类别,然后在页面数据处理层中,调用将该数据存储入主网站用户信息数据库的方法,完成存储。 中.国.站.长.站

Discuz!NT的页面数据处理层可以访问数据库,但并不推荐开发者增加在该层与数据库进行交互,数据库的访问在下面要介绍的业务对象封装层中。 Www.Chinaz.com

(三) 业务对象封装层

站长.站

 

以论坛来说,用户、主题、帖子、版块、用户组等都属于业务对象的范畴,Discuz!NT将业务对象描述为对象类,并提供了实现对这些对象进行各种操作的丰富方法。以主题对象来说,对主题的封装方法里就实现了创建、修改、删除、更新等操作,Discuz!NT内部是采用这些方法来处理主题的,同样,开发者也可以直接调用这些方法来实现对Discuz!NT的具体操作,而不必自己操作数据库。

中国站长.站

 

(四)数据库访问层

Chinaz@com

 

数据库访问层提供了对不同数据库访问方法的封装,目前Discuz!NT分别拥有对Access和SQLServer数据库的访问封装,对于SQLServer用户来讲,还可以通过修改Discuz!NT的数据库存储过程来高效地实现一些特定的需求。 中.国.站.长.站

上面简单介绍了Discuz!NT的四层结构,总体而言,论坛就像是一个饭店,论坛访问者是客人;显示层则是饭店餐桌和大厅,使客人的就餐场所;页面数据处理层为服务员,负责接收客人的点菜和向厨师下单;业务对象封装层是厨师,负责制作菜肴并返回给服务员,数据库访问层是采购员,用来购置厨师所需要的原材料;架构就作为饭店流程或规章制度,通过完善布置各个成员的分工、协作,从而给客人一个良好的就餐环境和服务。

站.长站

 

另外,无论开发者使用的是c#、vb.net还是其它任何支持.net的语言,都可以直接调用上述四个层中的公开方法,来实现对Discuz!NT的调用。随着Discuz!NT完善后的开源,必将有越来越多的开发者参与开发,相信在我们共同的努力之下,Discuz!NT将会愈加完善。

站长.站

 

系列文章: 中.国.站.长.站

亲密接触Discuz!NT之管理篇: 社区专用桌面客户端 站长管理新利器

Chinaz

 

亲密接触Discuz!NT之开源篇:免费开放源代码   与用户共同成长 中国站.长.站

亲密接触Discuz!NT之平台篇:顺应ASP.NET平台 取代ASP论坛软件

Chinaz

 

亲密接触Discuz!NT之传承篇:传承Discuz!优势 .NET论坛开山力作

中国.站长站

 

亲密接触Discuz!NT之功能篇:功能强大而新颖 细节设计更加贴心 Chinaz 

该源码是Discuz!NT官方版下载 v3.9 beta,源码系统Discuz!NT具有安全、高效、易用等特点,产品开放源代码下载三年的时间,受到了国内众多ASP.net项目用户的欢迎,成为国内ASP.net社区论坛产品的标杆。Discuz!NT全面支持Windows server 2008 R2系统,并且支持集成模式。免费为商业用户提供64位编译版本。Discuz!NT 为项目用户专门开发了负载均衡、数据库读写分离、分布式缓存和检测工具一系列套件,为超大型社区建设提供了完美的技术解决方案。 Discuz!NT v3.9 带来了多达百项的变动: 云平台基础和QQConnect 后台集成帖子调用生成器,提供js和模板标签2类方式 升级程序改进 主题鉴定后增加鉴定提示 快速编辑器中增加图片(附件?)上传功能 改进编辑器对Word的支持 强制新用户验证激活邮箱改进:先验证,后注册 积分相关的代码重构 管理组设置不允许编辑后,提示逻辑不友好 开启远程附件后程序获取地址有误 2000数据库下收藏翻页出错 高级编辑器中选择翻白眼表情,会自动转为别的表情 子目录安装后启用IIS的URL重写后报404 后台主题分类调整显示顺序没用 当开启伪静态后showforum-2.aspx&cedit=yes参数带不过来 后台编辑版块里添加主题分类导致前台出现两个相同的主题分类 3.0版本升级上来的论坛缺少清理邀请链接的计划任务 IE7下后台编辑版块里新增主题分类的弹层错位 后台批量发送短消息前台用户短消息数没有增加 引用只有图片的帖子,引用后并为有任何的引用内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值