考虑到用户的实际应用需求和面向未来的软件开发理念,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 系统架构分析】 Discuz!NT 是一个基于.NET框架的社区论坛系统,其系统架构采用了典型的三层架构设计,包括表现层、业务逻辑...对于需要整合Discuz!NT的开发者来说,主要关注的将是业务逻辑层的接口调用。
NT是基于.NET平台开发的一款开源社区软件,它提供了丰富的功能和高度的可定制性,被广泛应用于各类网站的互动交流板块。 一、安装与配置 在开始使用Discuz!NT之前,首先要进行安装。手册将详细介绍如何下载安装包,...
【Discuz!NT 论坛源码】是一个基于ASP.NET技术构建的社区论坛软件,它为网站管理员提供了构建和管理在线社区的强大工具。这个源码是 Discuz!NT 的核心组成部分,允许用户深入理解其工作原理,并进行自定义开发以满足...
NT3.1整合 单点登录"涉及的是互联网社区论坛软件Discuz!NT的版本3.1与其它系统的单点登录(Single Sign-On, SSO)集成技术。Discuz!NT是一款基于.NET平台的开源社区论坛系统,广泛应用于各类网站,提供互动交流功能...
NT模板集"是一个专为基于ASP.NET架构的Discuz!NT论坛系统设计的一系列模板集合。这些模板集旨在提供多样化的界面风格,满足不同用户和社区的需求,提升论坛的用户体验和视觉吸引力。 【描述】中提到的几个关键知识...
《Discuz!NT2.5:C#构建的开源论坛系统》 Discuz!NT V2.5是一款基于VS2008和C#开发的开源论坛程序,它以其强大的功能和灵活的扩展性,深受广大开发者和网站管理员的喜爱。这款论坛系统不仅提供了基本的讨论区、主题...
NT 3.0的API进行了全面开放,发帖、回复、创建用户、修改用户资料积分、创建版块、获取版块列表、获取帖子列表等功能可以让开发者很轻松的二次开发或者系统整合。3.0版本API取消了2.6版本中API许多功能受到session的...
NT 正式版源代码_C#论坛社区程序.rar" 提供的是 Discuz!NT 的一个正式版本源代码,这是一款基于 C# 编程语言开发的论坛社区软件。Discuz!NT 是 Discuz! 系列产品的一个分支,主要面向.NET 平台,为用户提供了一个...
NT3.0数据字典》是针对Discuz! NT3.0这款知名的社区论坛软件的数据结构和数据库管理的详细文档。这个CHM(Compiled HTML Help)格式的资料,提供了关于Discuz! NT3.0核心数据库表、字段、以及相关功能的深入解析,...
源码的提供对于开发者来说极具价值,因为它允许他们深入理解系统的工作原理,并进行二次开发。 【压缩包子文件的文件名称列表】"dnt3"可能是这个压缩包的主文件名,可能包含了一系列的子文件夹和文件,如安装文件、...
NT是由Comsenz公司开发的一款开源的论坛软件,它是Discuz!系列的一部分,主要面向.NET平台。 【描述】"Discuz!NT v2.5 MYSQL For .Net2.0 beta_dnt_25_n2_mysql" 描述了这个软件的版本号、所使用的数据库类型以及...
NT与ASP网站的整合登陆需要对两个系统的身份验证机制有深入了解,并且能够编写相应的代码来处理Cookie和Session的交互。通过源码学习和实践,我们可以掌握这一技术,为用户提供更为便捷、一致的登录体验。在实际应用...
NT3.0 非安装源码" 描述了这是一个针对Discuz!NT3.0版本的源代码包,而它并非预装或配置好的版本,意味着用户需要自行进行安装和配置。Discuz!NT是Discuz!系列的一款基于微软.NET框架开发的社区论坛软件,特别适用于...
【Discuz!NT开源代码】是一款基于ASP.NET和SQL Server技术构建的社区论坛软件,它以其高度可定制性、易用性和强大的管理功能在互联网上得到了广泛应用。Discuz!NT是Discuz!系列产品的其中一个版本,专为.NET平台设计...
NT 2.0 用户整合说明文档》,开发者和网站管理员可以深入理解用户整合的原理,掌握如何在DISCUZ!NT 2.0平台上实现与其他系统的高效协同,从而提升整个网络社区的互动性和用户粘性。这份文档对于那些希望打造多元化...
通过这些资源,读者可以学习到如何在实际项目中有效地将ASP.NET的动态网站开发能力与Discuz!NT的社区管理功能结合。 【标签】"c#"暗示了大部分代码示例和教程可能使用C#语言,这是ASP.NET开发的常用语言。C#的面向...
NT-3.6.711-繁体"指的是Discuz!NT的一个特定版本,这是由Comsenz公司开发的一款基于ASP.NET技术的论坛软件。 Discuz!NT是针对Windows服务器环境设计的,它提供了一个功能丰富的社区论坛平台,支持多语言,包括繁体...
NT 2.0 ,Discuz!NT 2.1 升级到 Discuz!NT 2.5 正式版 空间和相册的升级 1 需要上传覆盖论坛目录中 admin/xml/ 目录下的 navmenu.config ,navmenu.js 文件。 2 根据插件包内 album 目录下《Discuz!NT 2.x 版本...
NT2.0数据字典》是理解与分析Discuz!NT论坛系统的重要参考资料,对于初学者和开发者来说,它提供了深入洞察论坛架构的基石。Discuz!NT是一款基于.NET平台的企业级社区软件,它继承了Discuz!系列在社区管理方面的丰富...
DISCUZ!NT 2.0 用户整合说明文档