discuz!nt论坛模板基本原理

程序的界面与业务逻辑的分离是现在大家的共识, 即所谓的MVC, 应该说, ASP.net中的控件模式已经为MVC模式做了实现, 但Discuz!NT还是选择了另外一种方式. 这主要是基于以下考虑:

1 模板制作者的接受度. Discuz!NT是一个通用型产品, 用户为广大论坛站长, 各个论坛都有自己的界面个性化需求, 因此界面模板的制作必须容易被各个普通站长学习掌握, 而ASP.net的ascx文件对于没有学习过ASP.net或对其开发模式没有了解的人来说, 是存在难度的. Discuz!NT使得用户了解html基本就可以制作ASP.net论坛界面, 站长可以轻松掌握如何修改和设计界面.

2 一般情况下, 前台程序不使用控件模式, 性能都得到了提升. 控件的开发方式比较有利于提高开发效率, 提高模块的重用性, 但缺陷是性能上会有一些损失, 例如不用数据绑定, 显然也就不必判断数据来源和转换数据类型, 不用页面控件和控件事件等, 也就避免了使用ViewState, 此外控件往往追求功能齐全, 当你只需要一部分功能时, 大量无用的代码同样会拖累性能.

这两点简单归纳起来就是提高了易用性和性能.

Discuz!NT使用的界面模板方式与一些其它Web程序有相似之处, Discuz! (php)采用的方式是将模板html文件转换为php文件, 然后在相应php程序文件中#include进来, 另一个国外ASP.net程序DNN则是将html文件翻译为了ascx文件. Discuz!NT采用的模式可以认为是对前者的模式又进行了层次的划分(界面与业务分离), 也可以认为是后者的更进一步(既然那些ascx也是自动生成了, 何不干脆aspx化让第一次执行前的编译更简单?)

Discuz!NT的前台页面层次如下:

如果还是不太清楚, 则以文件类型可以直观描述如下:

用户的html模板文件在后台选择生成模板时被转换为aspx文件, 负责进行Discuz!NT前台的页面显示(例如showuser.htm被转换为showuser.aspx)

aspx.cs文件为页面类, 负责接收用户提交, 获取页面所需要的各种变量并"交付"给aspx文件, 这里是实现论坛功能的主要部分(例如showuser.aspx.cs为showuser.aspx提供变量具体数据)

对于一些常用的论坛对象, 又进行了业务对象封装以方便使用(例如对用户的信息封装为UserInfo类, 用户常用操作封装于UserFactory类)

当然, 除了显示层外, 其它层次的代码最后都被编译进DLL文件中, 对于纯粹只是使用的站长来说, 你一般只需要修改显示层即可满足你的界面修改要求.

以上所讲述的是大概的层次结构, 具体细节会在后面的章节中逐步提到.

时间: 2024-11-03 19:00:36

discuz!nt论坛模板基本原理的相关文章

动网.NET论坛和DISCUZ!NT论坛哪个好?

问题描述 动网.NET论坛和DISCUZ!NT论坛哪个好?感觉上动网.NET论坛速度更快一些? 解决方案 解决方案二:看个人喜好解决方案三:如果就这两个程序之间比较的话,竹子举双手双脚赞成DISCUZ好,动网的,说句不好听的,整个就垃圾,不过竹子只用过ASP版的,.NET版的动网论坛不好做评价.解决方案四:DISCUZ!NT的速度很慢,但是相关的资源丰富,如模板等.而动网的.NET版是1.1版本的,所以没用过,个人推荐http://www.dxbbs.com/或http://www.cnvery

Discuz!NT论坛整合ASP程序论坛教程

程序|教程|论坛|discuz|整合 本教程所需文件包下载: http://www.alixixi.com/download/dll.rar 1.在你的论坛bin目录里新建一个目录,名称如DLL(不一定建立在bin目录里,不过推荐在此建立) 2.把DLL目录里的所有文件上传到你论坛的bin/DLL目录里 3.用记事本打开"注册DLL组件.bat"文件,编辑里面的D:\DiscuzNT\bin\DLL\RegAs为你的网站绝对路径 4.修改后保存文件,退出记事本,然后双击该文件即注册成功

Discuz!NT 论坛整合ASP程序论坛_应用技巧

复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!--#include virtual="/inc/MD5.asp"--> <!--#include virtual="/Inc/conn.asp" --> <% '16 md5 1234656789 323b453885f5181f ' discuz 25f9e794323b4

Discuz!NT 论坛整合ASP程序论坛

复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!--#include virtual="/inc/MD5.asp"--> <!--#include virtual="/Inc/conn.asp" --> <% '16 md5 1234656789 323b453885f5181f ' discuz 25f9e794323b4

Discuz!NT论坛发贴时提示“帖子保存出现异常 ”请高手帮忙

问题描述 论坛发贴后提示"帖子保存出现异常",今日发贴总数显示不准确,这是什么原因呢?请高手帮忙! 解决方案 解决方案二:你是有源码的还是直接装的

discuz!nt论坛后台WebForm

在浏览器窗口的左下角,出现黄色的叹号,双击打开,显示如题的错误信息:"WebForm_PostBackOptions未定义" 系统本来用得好好的,忽然有用户报错,说点按钮不顶用了: 我试了一下,果然,而且大多数的服务器控件都不能用了:在浏览器窗口的左下角,出现黄色的叹号,双击打开,显示如题的错误信息:"WebForm_PostBackOptions未定义": 这是一个javascript的错误提示,按道理说是客户端脚本错误,与.net应该无关,但是稍了解一下asp.

discuz!nt 论坛整合问题 发帖问题

问题描述 在发表帖子时,插入数据库报:不能在具有唯一索引'list'的对象'dbo.dnt_topics'中插入重复键的行.有大牛知道问题在哪吗,求指点 解决方案 解决方案二:唯一索引不允许插入的数据含有和当前表中一样的list值,简明的说就是list这一列不允许有重复值解决方案三:向这个数据库dbo.dnt_topics中插入记录的时候list这个字段重复了解决方案四:这错误不是很明显了嘛

Discuz!NT 论坛整合ASP程序论坛教程

复制代码 代码如下: 登陆时记录cookies页面代码 <!--#include file="md5.asp"--> //32位md5加密文件,一定得调用,该文件到处有,我就不提供了 <% dim Username,Password,Question,Answer,Expires,Verify Username=replace(trim(Request.form("Username")),"'","''")

Discuz!NT 和SiteServer CMS整合安装图文教程

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 提供给需要将SS与DZ整合的站长,此方法在本地经过不下50次的测试,才最终成功整合.我是菜鸟,喜欢自己一个人瞎琢磨,但我没有学过这些语言,也没有学过数据库,也能整合成功.所以有技术难题不要怕,终会解决的. 运行环境:winxp+SQL2000 本地本虚拟目录:D:\www.actsun.com 论坛安装目录:bbs 通过企业管理器生成