电脑技术学习

优秀的社区软件Discuz!之NT版本教程

dn001

  作为Comsenz公司开辟.NET领域的开山力作,一直备受大家的期待。在此我们特别向广大用户朋友提供“第一次亲密接触”系列文章,为大家简要的剖析这个全新的论坛产品。

  说起Discuz!NT,就不得不先提起同为COMSENZ旗下的另一款引领国内社区论坛软件市场的权威产品Discuz!。Discuz! 拥有六年发展历史,全球用户超过三十万。其代码质量、运行效率、负载能力、安全等级、功能可操控性和权限严密性等方面都在广大用户中有良好的口碑。

  Discuz!NT借鉴了Discuz!的丰富开发经验,并且继承了Discuz!的优良血统,与之一脉相承。下面让我们来看看Discuz!NT传承了Discuz!PHP哪些领先优势吧。

  性能:

  Discuz!系列产品的传统优势之一就是优秀的负载能力,能够轻松应付如落伍者、55bbs、BT之家等大型论坛的超大访问量,万人在线,轻松自如。

  Discuz!NT很好的继承了Discuz!的高负载特性。产品研发伊始便仿照Discuz!在数据库设计中所采用的分表策略,避免帖子表过大造成的检索缓慢,同时参照了Discuz!成功的缓存策略,大大增强服务器负载能力,而且与Discuz!一样采用多线程异步处理邮件发送和短消息群发,提高了论坛信息的发送效率。应该说,Discuz!NT与生俱来就是个“大力士”,是一个性能优越的高效论坛程序。

  功能:

  Discuz!绝大多数站长关心的功能,Discuz!NT都直接传承或者借鉴引用。具体如下:

  1、Discuz!NT提供了丰富的逻辑结构(分支、循环),语法简洁灵活,拥有和Discuz!一样优秀的模版方案。新手只需要了解简单html和css,就可以自定义模版风格。同时特别为高级用户提供了强大的模版设计机制,百变风格,皆出您手。

  2、延用了Discuz!强大的广告管理系统,Discuz!NT第一个版本就具有头部横幅、尾部横幅、页内文字、帖内、浮动、对联、六种广告布局模式,并且支持代码、文字、图片、flash四种内容形式。这大大方便了站长发布与管理广告,让访问量变成真实收益。

  3、Discuz!NT在参考了Discuz!传统的板块分类策略基础之上,利用自身的特点首次实现了无限级板块分类,极大的方便了站长划分内容;无限级子版横排,减少页面面积,清晰展现多级内容。

  4、Discuz!NT同样实现了伪静态url,让虚拟主机用户也可正常使用,从而大幅度提高搜索引擎收录。

  5、Discuz!NT同样拥有强大的积分策略设置,站长可以自定义积分公式,轻松完成复杂的积分逻辑。

  6、Discuz!NT同样采用了web2.0的Div+CSS布局,从而使页面代码量更少,结构更良好,如此便提高了搜索引擎友好程度,方便SEO (搜索引擎优化)。

  7 、与Discuz!一样,Discuz!NT也提供“后台直接数据库备份”功能,让站长能够轻松备份。

  相信这些丰富强大的功能,能够很好的满足大家对.NET论坛的需求。

  安全:

  论坛安全一直是广大站长关心的重中之重,Discuz!NT延用了Discuz!的超强安全机制,而且结合.NET平台自身的优良特性加以完善,让广大的ASP、ASP.NET用户能够同样的放心使用。比如Discuz!NT增加了论坛创始人设置,设置创始人后,将后台管理操作中最具威胁的设置限制为创始人才可执行,避免了一些人为的安全隐患。

  值得一提的是,Discuz!NT不仅在防御机制和解决理念上高瞻远瞩,在细节上也同样进行了一些独具特色的处理。如它提供了优秀的防刷新机制,可以有效抵制垃圾信息,保障论坛信息的安全。

  用户体验:

  Discuz!在用户体验方面拥有6年多的经验积累,这些经验被全面的应用到了Discuz!NT的开发和软件设置中,因此Discuz!NT的用户可以拥有异常优秀的使用体验。同时 ,Discuz!NT自身加入了一些有特色的人性化设计:如无刷新快速回复,回帖更方便;如flickr式的主题图片附件缩略图,使用户在浏览文章标题时即可轻松预览到主题内的图片。

  总而言之,Discuz!NT 团队积极汲取了Discuz!在发展过程中的丰富经验,吸收精华,并在其基础之上充分挖掘ASP.NET平台的强大特性进行创新,无论是性能、功能、安全还是用户体验等诸方面均实现了1.0版本所能达到的高水平,大大超越了国内同类.NET论坛软件产品,成为令人瞩目的开山力作。

  很多用户就Discuz!NT是否开源的问题展开了激烈的讨论,不少人希望官方能够将新产品开源。现在我们再次给关心开源问题的朋友一个明确的答案:Discuz!NT将于正式版完善后免费开放源代码,并将逐步发布源代码配套说明文档和二次开发范本,帮助用户根据自己的喜好添加自己个性化的功能。官方也将根据用户的反馈,整合以及开发各种新功能发布在新的版本中。

  顺应全球潮流 走在开源前端

  开源共享是当今整个软件行业的发展潮流,世界上很多知名的大公司(比如IBM、SUN) 都开始支持和实施开源项目。作为这一领域的先行者,Comsenz一直在国内倡导和推广开源运动,本身更是以实际行动走在了国内开源的前端。Discuz!产品完全免费和开源,不仅大力推进了PHP在国内的普及,公司本身也找到了一个开源的商业模式。

  Discuz!产品的成功坚定了我们对开源的信心,Discuz!NT所以也将完全开源。在Discuz!NT全体开发人员的共同努力之下,Discuz!NT的开源工作目前正在火热准备中。为二次开发用户和.NET技术学习者准备的配套说明文档以及用户期待度最高的二次开发范本文档,已经基本进入后续整理阶段。Discuz!NT正式版完善后,这一切都将伴随源代码为您免费提供。

  用户参与开发  产品更安全稳定

  有更多的用户看到Discuz!NT的源代码,就会有更多的用户来跟我们一起修正Discuz!NT。Discuz!NT的开源将让我们更加快捷的反映用户的需求,从而更快速的完善产品,永远走在同类产品的最前头。在安全性方面,开源软件由于在全球进行使用和开发,所以能够更及时的了解到产品存在的漏洞并进行修补增强,站在安全的最前沿。

  预留更多技术接口 方便资源整合

  开源的Discuz!NT将预留更多的技术接口,增加软件扩展自由度,让用户能够很容易的调试出适合自己论坛平台的接口,与其他网站程序进行共同协作,从而方便资源之间的整合,降低运营成本。

  优秀架构独创机制 提供学习范本

  Discuz!NT是数位资深.NET程序员的心血之作,凝聚了众人的思维火花。Discuz!NT研发小组负责人著名程序员雪人(原雪人论坛作者)不仅是一位尖端的程序员,而且还是一位经验丰富的产品构架师,他在这次Discuz!NT开发中创造了很有特色的“模糊机制”和“双缓存机制”,这些在源代码开放之后都将为部分.NET技术爱好者提供一个学习的范本。

  总之,Discuz!NT作为Comsenz在.NET领域力推的新产品,将贯彻公司长期主张的开源理念,以开放的心态欢迎广大用户一起来加以完善,共同成长,迎接未来。

  让知识和技术能够更好地共享和传播,让更多的朋友能够充分发挥创造力,Comsenz愿意继续为您营造一个自由发展的空间。
  网络技术日新月异,正所谓长江后浪推前浪,多年前微软公司所发布的ASP(Active Server Page),如今也面临着被微软现在所力推的ASP.NET代替的窘境。事实上,自Windows2003开始,系统自带的IIS6就已经默认开启ASP.NET而禁止ASP,这证明了微软已经停止了ASP的开发,转而大力发展和推广ASP.NET。

  Comsenz在启动Discuz!NT时舍弃了ASP而直接选择ASP.NET,正是为了顺应Windows平台技术发展的主流趋势,以便为广大用户长期提供最前沿的论坛软件技术应用,保障未来拥有更广阔的发展空间

  具体而言,选择ASP.NET平台是因为其具备了以下优势:

  编译执行语言 让你的论坛速度更快

  相对于ASP等翻译执行脚本语言,ASP.NET则是编译执行,其全新理念的“code-behind页面” 使HTML页面受自身编译的程序化指令进行驱动,这就意味着Discuz!NT生成的Web页面的运行速度将比ASP类产品有非常大的提高。

  支持多种开发语言 论坛功能更丰富

  与ASP不同的是ASP.NET广泛的支持目前几乎所有的流行编程语言,这其中包括Vb.NET、C#、J#、C++、Java、Python等20多种计算机语言。有了如此多的语言支持,再加上Discuz!NT主推的开源政策,您就可以用自己熟悉的开发语言随心所欲地添加自己喜欢的个性化功能,无障碍地丰富论坛功能。

  ASP.NET先天优势  让论坛更安全

  ASP.NET实现了代码和页面内容的分离,与ASP相比漏洞更少,所以Discuz!NT先天就具有极高的安全性。此外ASP.NET基于托管代码和垃圾收集机制,都让我们的开发人员不必把主要精力放在内存的控制上,从而有更多的精力投入到 Discuz!NT的安全加强,让她成为您放心的安全产品。

  兼容各种浏览器及设备  提高用户体验

  ASP.NET为不同的浏览器和设备提供优良的支持,用户无论使用的是什么浏览器和设备都能轻松如意地浏览用Discuz!NT程序建立的论坛,防止“无法访问”或者“内容错乱”等情况的出现。

  IDC广泛兼容 方便您无成本升级

  自Windows Server 2003开始,系统已经自带.net框架1.1,且默认开启ASP.net而禁止ASP,另据调查显示,目前国内80%的IDC服务商都提供了支持ASP.NET的虚拟主机服务,而且其中大多数都是同时支持ASP的,也就是说如果您现在用的ASP论坛,可以不需要花费任何空间费用就能升级到基于ASP.NET平台的Discuz!NT。

  总之, ASP.NET平台的时代已经到来,而基于ASP.NET平台的Discuz!NT,将大大冲击并逐步取代ASP论坛软件。
  Discuz!NT继承了Discuz!产品的传统优势,并在此基础之上充分挖掘了ASP.net平台的特殊潜能,进行了更加完善的设计。Discuz!NT v1.0除了具备了完善的界面设置、浏览、回复、发贴、后台权限设置、积分设置等论坛软件所应有的全部基本功能之外,还加入了众多功能创新和贴心设置,让人眼睛一亮。下面我们对部分功能进行简单的介绍:

  Web2.0规范+无限级板块分类 浏览更快速展现更清晰晰

  Discuz!NT首次实现了无限级板块分类,方便内容划分;无限级子版横排,减少页面面积,清晰展现多级内容。采用符合Web2.0规范的先进Div+CSS布局,使页面代码量更少、结构更良好,从而加快了页面访问速度,提高了搜索引擎友好程度,方便SEO(搜索引擎优化)。

  在细节方面,像贴近用户的“只看楼主”功能,可以屏蔽不需要的帖子,让您直击重点。像主题直接查看附件缩略图功能,只要将鼠标移动到主题的标题上,就可以显示出该主题附件图片的缩略图,特别适合一些摄影、设计类等经常发布图片的论坛。

  特别值得一提的是:Discuz!NT面向未来的互联网世界,在前台、后台设计时都直接采用了兼容性最好的UTF8编码,数据库存储论坛信息采用Unicode类型,从而保证了多国语言、字符同时存储和显示都能正常,避免了用户遭受乱码之苦。

  

  主题附件缩略图预览

  后台伪静态url功能  让复杂的地址简单起来

  Discuz!NT后台的伪静态url重写功能,可将带有参数信息的复杂地址转换成自定义ASP.net级别的url格式的简单地址。转换成简单url后的页面,不但能方便用户访问,同时也能方便搜索引擎收录。之前虚拟主机用户无法使用此项功能只能望而兴叹,现在只要使用Discuz!NT,就可以轻松拥有这个“特权”了。

  板块、分组双重控制  让站长轻松设置权限

  Discuz!NT在用户权限设置方面,充分贴近用户体验,吸取用户反馈意见,让站长或管理员方便实现复杂的用户权限管理。Discuz!NT v1.0版由于采用了先进的用户组和子论坛权限双重控制,站长可以灵活设置不同用户组在不用子板块的不同权限。另外,还可给用户组分别设置主题、附件阅读权限,方便站长对论坛整体设置。

  

  用户组管理功能

  丰富、易编辑的模板方案 论坛 轻松“变脸”

  Discuz!NT支持多套皮肤模板,系统本身附带了许多优秀的模版方案,用户可以自由选择。这个功能提供了能够丰富模板编辑的逻辑结构(分支,循环),语法简洁灵活,新手只要简单了解html和css就可以自定义模版风格。此外,针对高级用户我们还提供了强大的模版设计机制,百变风格,自己作主,站长可以轻松给论坛“变脸”。

  

  完善发贴功能  方便用户轻松编辑个性化帖子

  Discuz!NT v1.0版本的发贴编辑器支持“UBB(代码模式)”和“所见即所得”两种编辑模式,方便用户轻松编辑个性化的帖子。另外,在发贴编辑器中,从注重用户体验角度而开发的图文自动混排功能和覆盖插入附件功能,都更加丰富和完善了用户的发贴形式。

  

  所见即所得编辑器

  

  方便的上传附件功能

  灵活积分管理功能 轻松作到“赏罚分明”

  Discuz!N在后台特别设有灵活的积分管理功能,站长可以轻松自定义积分策略,实现灵活的用户奖惩机制,再配合人性化的向导功能,就算菜鸟也能轻松作到“赏罚分明”。

  

  Ajax技术 体验快感回复

  Discuz!NT v1.0采用了最新的Ajax技术,支持无刷新快速回复,让您有聊天室般的快感体验。

  总之,Discuz!NT无论是前台用户体验,还是后台站长管理,都有着出色的表现。更多的功能有待您去亲身体验和发掘,也欢迎广大用户给我们提出更多的改进意见,我们将更加努力,不断的进行产品完善。
  考虑到用户的实际应用需求和面向未来的软件开发理念,Discuz!NT在设计和开发之初就构建了优良的架构,大大提高了软件的伸缩性、可扩展性和重用性。本架构除了使Discuz!NT自身结构更为清晰和更易于维护以外,也为用户进行二次开发和完善论坛个性化提供了极大的方便。

  Discuz!NT采用了如下的四层结构,让我们简单介绍一下:

  (一)显示层

  显示层可由用户自行进行设计和修改,用以显示最终的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,从而大大提高了页面性能。此外控件模式往往追求功能齐全,而当你只需要其中一部分功能时,大量无用的代码则会拖累页面性能。

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

  (二) 页面数据处理层

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

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

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

  (三) 业务对象封装层

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

  (四)数据库访问层

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

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

  另外,无论开发者使用的是c#、vb.net还是其它任何支持.net的语言,都可以直接调用上述四个层中的公开方法,来实现对Discuz!NT的调用。随着Discuz!NT完善后的开源,必将有越来越多的开发者参与开发,相信在我们共同的努力之下,Discuz!NT将会愈加完善。
  为了庆祝公司基于ASP.net平台的社区软件发布第一个正式版本,我们还特地为站长准备了一个Windows下的桌面客户端工具软件,这也是目前已知的全球第一个专门给社区站长使用的社区专用管理客户端工具,它让使用Discuz!NT软件搭建论坛的站长可以更快捷的设置和管理自己的论坛,并能随时了解自己论坛的最新状况。

  这个小巧实用的桌面软件用Viscual C++开发,可以运行在Windows系统下,不需要.net Framework支持。运行后,会在任务栏最右侧的托盘区产生一个小图标,右击该图标可以弹出菜单,如图:

  

  第一次运行该软件时,会提示站长自己的Discuz!NT论坛的地址,站长也可以同时设置一些其它选项,例如弹出提示的间隔时间等等。设置了弹出提示后,会根据设置的时间定时弹出提示窗口,来告诉站长当前的论坛状态,如图:

  

  当然,站长也可以选中菜单的“暂停提示”功能来暂时的停止提示窗口弹出。

  提示的信息包括了站长所需要的论坛当前主要运行情况,包括在线量、当前的服务器CPU占用等,这样站长不需要经常打开浏览器去自己的论坛查看,也能及时了解自己论坛的最新状况了,大大减轻了站长管理论坛的负担。如图:

  

  从快捷菜单里选择“主窗口”,或者双击托盘区图标,都可以打开主窗口,主窗口中可进行站长的一些设置和操作。

  软件左侧是一个类似大家常用的国产聊天工具QQ的一个滚动窗口,选择左边的不同功能,窗口右边即显示相应的功能界面,简洁方便。

  

  这个客户端工具的功能会根据站长的反馈做逐步的改进和增强,相信它可以让更多站长方便快捷的管理维护自己的社区论坛。