随笔分类 - Discuz!NT
Discuz!NT
摘要: 在上一篇文章中,大略说明了一个商品的添加编辑和删除操作。本文会继承其支付流程来展示如何购买商品以及系统设计。首先打开一个有效的商品,在商品显示页面中单击“立刻购买”按钮,如下:
阅读全文
摘要: 在上一篇文章中,大略说明了一个商品交易插件的一些功能上的东西和具体的文件分布。本文章将会以上文中的“管理商品”用例来说明一下商品的添加,编辑和删除方面的设计。首先看一下商品添加功能。我们打开一个商品添加页面如下:
阅读全文
摘要: 在今年年初,本人接受了商品交易插件设计和开发任务。在开始的那段时间里,主要是开发一系列商品交易的基本功能,包括:商品管理(CUD),在线交易,商品分类管理,定单(交易单)管理等。如下面的图中所示(普通权限用户):
阅读全文
摘要: 大约在去年的12月份,我们开始着手设计和开发这项功能,而该项功能主要是解决类似于一些帖子附件(图片或文件)访问比较频繁,同时附件的体积又比较大,从而造成对主站服务器访问压力过大的问题。而实现了该项功能之后,在一些合作伙伴的站点上使用了一段时间,发现该功能明显的降低了主站服务器的负载,使其可以节省更多的资源(cpu,内存等) 用于处理用户的其它访问请求。
阅读全文
摘要: 在上文(Discuz!NT URL地址重写) 中, 聊到了“在线用户”功能,因为当时介绍的重点不是“在线”那一块,所以没做深入介绍。这就为今天这篇文章埋下了“伏笔”。因为在线这个功能太重要了,大家不妨用VS打开我们产品的最新源码,然后搜索一下“OnlineUsers.”这个内容就会看到它在产品中被使用的“频率”。
好了,言归正传,下面就开始接着上一篇文章中所说的“OnlineUsers.ResetOnlineList();” 方法介绍
一下用户在线功能。
阅读全文
摘要: 在Discuz!NT中的前台页面访问(特别是aspx)是被HttpModule接管的,所以大家在Discuz.Web项目的目录下看到的唯一"aspx文件"是index.aspx,而所有其它前台页面都有“/aspx/”文件夹下的相应的子目录中,而这些子目录名称是与后台所“生成”的模板存在对应关系的。而这种“关系”的绑定是通过dnt_templates(模板数据表)来进行关联的。而有关模板机制的文章详见:
“Discuz!NT 模板机制分析”一文。
阅读全文
摘要: 根据目前官方提供的数据字典(详情见链接)。可以看出数据库中的数据结构:包括表名,字段名,字段类型,含义等。通过这些文档可以让大家对整个数据的表结构有一个基本了解。另外本人觉得,如果用一篇文章去讲解数据库,让人多少有些凑字的嫌疑。所幸目前还有 Discuz.Entity.dll这个项目没有介绍,所以想以这个 dll为主线,“搂草打兔子”,顺便简要介绍一下数据库。因为我们的实体类代码是以数据表为导向( entity大部分类都是与数据库表有着对应关系)。比如:
ForumInfo(版块),TopicInfo(主题), PostInfo(帖子),AttachmentInfo(附件)等等。
阅读全文
摘要: 声明:本文内容纯属个人观点,官方保留最终解释
通过前几个月的“外围清剿”,我介绍了一些在项目中边边角角的类和项目。当然这种介绍只是前期热身准备。因为从这篇文章开始,本人将跟大家聊一聊关于这个产品架构上面的东西,以备大家对这个产品有一个总体上的认识,从而为后面的文章做一下铺垫。费话少说,开始正文吧:) 首先请大家看一下官方提供的“前台页面层次图”如下: http://nt.discuz.net/doc/Default.aspx?cid=4
阅读全文
摘要: 望DUDU见谅,暂放首页一天,呵呵:)
就在昨天(2007.12.24), 公司的discuz!nt 2.0 正式版终于开源了,下面就是链接(开源页面): http://www.discuznt.com/opensource.html
阅读全文
摘要: 作为产品中的一大特色,模板机制一经推出,就引来了大家特别是站长们的关注。但它所饱受的风风雨雨也成了那时不少人关注的话题。而今天本人将结合在产品组中的开发经历,介绍一下模板机制在设计使用时的一些体会心得。希望借此陋文,使模板机制揭开“神秘”面纱,为大家在实际设计中提供一些有价值的参考和建议。
好了,开始今天的话题:)
阅读全文
摘要: 如果大家从官方下载2.0正式版的DLL程序集中会从里面找到discuz.config这个DLL文件。通过reflector 反射加载这个程序集后,后从中找到一些从类名称上非常相似且有一定规律(格式)的类。它们是:
全局配置类
阅读全文
摘要: 其实这个控件的核心基本都在JS上,而相关的数据绑定和显示却非常简单。而需要说明的是在Discuz!NT的1.0和2.0正式版,这个控件做过一些调整,当然改动也基本上是在JS上,今天给大家的源码是1.0正式版的代码,虽然有些“旧”,但程序本身的思想没变,大家只要明白了这里的源码,有了这碗酒垫底,相信再看即将开源的2.0代码,就会一目了然了。好了,废话到此,马上开始今天的话题!
阅读全文
摘要: 自从 9月未开始写关于"ICONIX方法"的系列文章以来,到今天已有两个多月了,当初因为兴趣点的转移才划一段落的Discuz!NT 系列文章,从今天开始又要开始续写了。这写这个系列以来,大家对我写的内容也是包贬不一,其实这也是众口难调所致,我会在接下来的几篇随笔中尽力顾及大家的感受和阅读口味。最后还是希望大家能支持我和我们的这个开源项目。好了,开始今天的话题! 先请大家看一下这个控件运行时的效果图:
阅读全文
摘要: 在7月份中我曾经写过一篇文章,叫".NET2.0 框架中的 AbstractFactory 模式 " 链接如下:http://www.cnblogs.com/daizhj/archive/2007/07/23/828249.html
里面主要说了在2.0框架下的数据库链接工厂中新增的几个类,而这几个类采用的就是 抽象类工厂模式 (Abstract Factory)。因为在Discuz!NT 2。0中使用了这些新的类,所以导致我们的产品dbhelper.cs可以支持几种数据库(目前官方实现的有sqlserver ,access ,mysql)。但同时因为1。0框架下没有这些类,所以我们采用自已简单实现其中主要的类代码来解决这个问题。这就有了今天文章的内容!
阅读全文
摘要: 设计前提:早在RC1之前聚合功能还比较弱化时,系统结构比较简单,只用了一个website页面就聚集了大部分的功能调用。因为快速完成之后陆续又加入了不少新特性,导致类的名称(website) 与所聚合提供的功能已完全不相符 (代码已过度膨胀) ,所以重构的任务已变得非常紧迫了。但用什么方式,因为系统聚合时是按内容类型聚合功能页面并决定显示方式的。而这里的内容类型在大概可分为(论坛主题,相册,图片,空间文章(及最新回复)等)。为了尽量简化系统设计时的复杂度,这里只按内容所属的大类(论坛,空间,相册, 图片)来进行简单的初步规划,这就产生出来上面图片所说的类AggregationData,SpaceAggregationData,
AlbumAggregationData.cs,ForumAggregationData.cs ......
阅读全文
摘要: 继上篇文章之后(链接),大家给了一些反馈和意见,有些BUG和不当之处我已修正,将会在2.0正式版本中提供给大家。希望大家能继续支持我们这个开源项目。
好了,开始今天的话题,首先需要说明的是因为这两个控件都比较简单所以放在一起给大家说一下。
先说一下 ColorPicker 控件 ,贴一张运行效果图让大家看一下:
阅读全文
摘要: 大约还是去年12月份,当时项目中遇到了一个很棘手的问题,就是管理员(或站长)在后台设置了邮箱信息之后,使用注册邮件发送激活验证码时,总有用户反映不能收到激活信息的邮件。
虽然不能收到邮件的情况有很多,甚至我已通过这个邮件发送程序测试过国内大多数知名网站的邮箱(如126,sina ,sohu ,gmail等),但还是有站长或用户隔三差五反映这个问题。甚至到今天我偶尔还会得到技术支持部门有关这方面问题的报怨。因此,今天这篇文章虽然说到了一个有关这个问题的解决方案(但不完善),但还是希望园子里以前处理过这方面问题或有成功经验的朋友指点一二。
好了,不费话了,开始今天的话题。
阅读全文
摘要: 继上篇文章之后(链接),大家给了一些反馈和意见,有些我已动手进行了部分修改,将会在2.0版本中提供给大家。希望大家能继续支持我们这个开源项目。
好了,开始今天的话题,今天就说一下 Tab 控件。
先贴一张运行效果图让大家看一下:
阅读全文
摘要: 作为一个社区类型软件,大并发支持和高效稳定运行永远是“硬道理”,而有效安全的使用缓存恰恰能起到事倍功半的效果。而.NET本身所提供的缓存机制又显得过于“单薄”,比如说订制不太灵活方便, 缓存对象之间层次感不强, 使用时缺乏统一的管理等等。
Discuz!NT缓存产生背景:
在去年五月份我加入Discuz!NT项目组时,发现这个项目当时还未使用缓存机制。主要原因是项目还处于起步阶段,很多东西还只是有想法,但未付诸实施,或还没找到合适的方案, 而缓存就是其中一个到底该不该使用,如果使用的该到底能多大程度缓解数据库压力以及开发成本的东西。
阅读全文
摘要: Discuz!NT在开源之后,还没什么文章来说明 Discuz!NT项目的一些特点。作为这个控件库的设
计者,本人将在接下来的时间里用连载的方式来向大家解释其中一些控件的设计思想,实现功能以及
一些未曾使用过的功能展示(因为管理后台只使用控件的部分功能)。同时因为这组控件开发的周期
很短(当时仅用一个半月,后不断增强功能),有不少思路和控件设计的规范相驳,但当时只考虑为
后台程序开发和订制方便,因此就暂且开发成了这个样子,但本人日后会不断完善和规范这些代码:)
阅读全文