随笔分类 - 技术----Discuz!NT
摘要:Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示 Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程 Discuz!NT代码阅读笔记(3)--网站安装也能自动化--DNT安装时使用到的几个函数解析 Discuz!NT论坛程序具有强大的配置功能 :从论坛的标题到论坛各个地方的显示,论坛模板的使用等等。1、ASP.NET页面事件执行过程要弄明白DNT页面的显示过程,首先应知道ASP.NET页面事件的引发顺序。今天刚到手一本书:《ASP.NET3.5SP1高级编程》,上边是这么列的:(1)PreInit(2)Init(3)InitCo.
阅读全文
摘要:相关链接: Discuz!NT代码阅读笔记(1)--从HttpModule开始二、网站安装自动化--论坛程序安装及初始化过程 论坛的安装文件位于Discuz.Web中的Instal文件夹中。该文件夹中的文件index.aspx为安装的起始页。 论坛程序的安装过程同样也要经过ReUrl_BeginRequest的处理。只是,ReUrl_BeginRequest没有对对页面/install/index.aspx的请求进行任何操作,因此我们在浏览器中看到的地址是:http://localhost:1543/install/index.aspx这种样式的。安装起始页中没有进行什么操作可以简单地当作一个
阅读全文
摘要:Discuz是一个开源的ASP.NET论坛程序,从http://www.discuz.com/可以下载源代码。我是从3.0就开始看他的代码的,最新版本是3.1.我拿到它的代码也有一段时间了,每天没事干就看看。以前没做过ASP.NET的东西,刚看见代码简直是一头露水。看了段时间,大概有些眉目了,于是乎,按老赵的说法:写出来,有收获。比较菜鸟,有不对的地方或者语言组织不好没说清楚的还望各位达人多的指正.一、从HttpModule开始:首页的显示 解压下载来的代码包,打开Discuz_vs08解决方案文件,可以看见这个解决方案有24个项目。最后生成网站输出的项目是Discuz.Web。展开这个项目,
阅读全文
摘要:前一段时间负责负责论坛的迁移工作,对其架构进行了简单的整理。前几天看到有人说discuz的介绍很少,因此整理了一下,发布出来。 也是第一次发表文章,大侠们手下留情。 Discuz整体架构如下图所示:横向表示 同一层次中涉及的各个模块(项目)纵向表示 不同层次之间模块的关系,某些关系是如何在各层次中传递(穿越) Discuz架构上采用了比较流行的三层架构,即表现层,业务逻辑层,数据访问层来进行设计,并结合自己的情况进行了特殊处理。表现层: 表现层即为上图中蓝色虚线表示,主要包括:Web,Services,UI,Control。各项目主要功能为:UI 定义各种页面基类,提供Ajax访问访问接口。C
阅读全文
摘要:大约在两年前我写过一篇关于Discuz!NT缓存架构的文章,在那篇文章的结尾介绍了在IIS中如果开启多个应用程序池会造成多个缓存实例之间数据同步的问题。虽然给出了一个解决方案,但无形中却把压力转移到了磁盘I/O上(多个进程并发访问cache.config文件)。其实从那时起我就开始关注有什么更好的方案,当然今天本文中所说的Memcached,以及Velocity等这类的分布式缓存方案之前都考虑过,...
阅读全文
摘要:作为一个社区类型软件,大并发支持和高效稳定运行永远是“硬道理”,而有效安全的使用缓存恰恰能起到事倍功半的效果。而.NET本身所提供的缓存机制又显得过于“单薄”,比如说订制不太灵活方便, 缓存对象之间层次感不强, 使用时缺乏统一的管理等等。 Discuz!NT缓存产生背景: 在去年五月份我加入Discuz!NT项目组时,发现这个项目当时还未使用缓存机...
阅读全文
摘要:在以前的两篇文章(Discuz!NT 缓存设计简析, Discuz!NT中集成Memcached分布式缓存)中,介绍了Discuz!NT中的缓存设计思路以及如何引入Memcached,当然前者是IIS进程的缓存(本地缓存),后者是分布式内存对象缓存系统。 两者通过Discuz!NT中的memcached.config文件中的ApplyMemCached结点的值来决定使用哪一种缓存方式。不过在之后...
阅读全文
摘要:前一段时间负责负责论坛的迁移工作,对其架构进行了简单的整理。前几天看到有人说discuz的介绍很少,因此整理了一下,发布出来。 也是第一次发表文章,大侠们手下留情。Discuz整体架构如下图所示:横向表示 同一层次中涉及的各个模块(项目)纵向表示 不同层次之间模块的关系,某些关系是如何在各层次中传递(穿越) Discuz架构上采用了比较流行的三层架构,即表现层,业务逻辑层,数据访问层来进行设计,并...
阅读全文
摘要:缘起:以前写过一篇文章《Discuz!NT持续集成实战》介绍CruiseControl.net 来做Discuz!NT项目的持续集成 。最近喜欢上了 Powershell ,由于本人向来懒惰,遂将日常工作中一些琐碎的,重复的事情用 powershell 来做了。为此某不才,读了 PowerShell 自带的 《GettingStarted》和《UserGuide》 ,基本的东西也就差不多了。在实践...
阅读全文
摘要:来当前公司2个多月,因为公司需要用到开源Discuz!nt进行二次开发,所以自己有机会学习Discuz!nt一些架构,设计模式,自定义控件,模板机制等技术,除了看开源源码外,当然主要还是要参考代震军BLOG写的一些文章,这里非常感谢代震军BLOG这里本文主要做些链接方便自己查找方便 控件类: Discuz!NT控件剖析 之 Button [原创: 附源码] Discuz!NT控件剖析 之 Te...
阅读全文
摘要:用户权限表 cdb_access 会员的UID编号 uid 版块的ID号 fid 是否允许查看贴子 allowview 是否允许发贴 allowpost 是否允许回复 allowreply 是否允许下载附件 allowgetattach 是否允许上传附件 allowpostattach 管理员 adminuser 时间 dateline 活动帖 cdb_activities 标题i...
阅读全文
摘要:webconfig中 <globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/>gb2312的好像没出现这个问题!
阅读全文
摘要:Discuz!NT模板中用到的语法是很少的, 我们的目的就是为了让没有程序语言基础的人也可以快速掌握. 基本语句如下: 语法 含义 举例 <%template tplname%> 包含某个已存在的模板文件 <%template _header%> {varname} 显示变量 {username} {var[...]} 显示数据变量里的指定字段的值 {forum[name]...
阅读全文
摘要:<%template _head%><body> {cc} <%csharp%> dd(); <%/csharp%> <%loop (UserInfo) userinfo listUsers%>//实体列表 <li> <a href="#">{userinfo.Name} {userinfo.dd()} <!...
阅读全文
摘要:作为产品中的一大特色,模板机制一经推出,就引来了大家特别是站长们的关注。但它所饱受的风风雨雨也成了那时不少人关注的话题。而今天本人将结合在产品组中的开发经历,介绍一下模板机制在设计使用时的一些体会心得。希望借此陋文,使模板机制揭开“神秘”面纱,为大家在实际设计中提供一些有价值的参考和建议。 好了,开始今天的话题:) 首先阐述一下模板设计的目标,因为这对于它最终要实现的功能非...
阅读全文

浙公网安备 33010602011771号