[项目过程中所遇到的各种问题记录]学习篇——对工作以来的学习过的开源项目进行总结—DiscuzNt-阿里云开发者社区

开发者社区> zting科技> 正文

[项目过程中所遇到的各种问题记录]学习篇——对工作以来的学习过的开源项目进行总结—DiscuzNt

简介:
+关注继续查看

     前篇文章记录了动软代码生成工具,这篇则是针对B/S上的BBS论坛——DiscuzNT,DiscuzNT是由于今年的项目需要。客户需要在B2C网站中集成DiscuzNt,实现一站式服务,有关整合DiscuzNt我也碰到了一些问题,同时也记录了下来,可以看下这篇文章:

[DiscuzNt]整合DiscuzNt论坛目前所发现的小BUG及个人简单解决办法

 

DiscuzNT

      DiscuzNt应该可以算的上是目前国内做的最好的.NET开源BBS论坛了(非开源的应该也没有那款比的上DiscuzNT),其本身脱胎于Discuz!PHP版本,采用.NET编写,并且开源,而且整个论坛很符合目前国内网友的需求,拥有可以自由定制板块、论坛博客、商城、以及强大的兼容性(可以和许多目前主流的商业项目集成)、公开源代码以及相互访问的API等,网站截图:

pic112

 

对于DiscuzNT,我的定位还是和动软代码生成器一样,去了解其内部是怎么实现的,有哪些东西可以学习。相比动软仅仅服务于开发者,DiscuzNT的受众面就广多了,由于其定位是一个BBS论坛,其交互功能就很强,需要运用到.NET许多相关技术,这些都是可以学习借鉴的,下面列举下我认为DiscuzNT很不错并值得学习的地方(想详细了解DiscuzNT的朋友可以去代震军BLOG查看其写的有关DiscuzNT的文章:点我进入):

 

1、插件机制,论坛作为一个互动性很强的网站应用,是由许多模块功能组成的,使用者可以自由选择其所需的功能,如:商城、博客、邮件等,而这些DiscuzNT的开发团队已经做好了,但是对于一个论坛的使用者或者运营者如果想在此基础上进行扩展,一般来说都会比较苦难,而DiscuzNT引入了插件机制,想扩展的开发者可以了解其插件机制的运作来进行有针对性的开发。

 

2、开放性及易用的API,由于DiscuzNT是一个论坛,是WEB应用中一个不可或缺的部分,很多网站都需要包含这个部分,而对于网站的开发者来说做一款成熟的并且符合国内用户需求的论坛太难、太费时间了,所以需要一款成熟的、好用的论坛,DiscuzNT就是为这个而生的,DiscuzNT可以独立存在,也可以做为网站的一部分存在,但是现实情况是不同的网站是不同的公司开发的,而DiscuzNT则是由一个公司开发的,为了能将DiscuzNT可以很好的整合进各种网站当中,DiscuzNT就提供了一个可供其他网站开发者使用的DiscuzToolkit及API文档,其他网站的开发者不需要了解DiscuzNT内部是怎么实现的,只要了解DiscuzToolkit是如何使用的即可。

(对于需要做DiscuzNT整合的朋友可以仔细看下DiscuzToolkit及DiscuzToolkit附带的Samples)

 

3、页面静态化及个性化,在没看过DiscuzNT的源码前我是从来没想过原来页面静态化可以这么做(请原谅我的无知),在我以往的认知范围中静态化总是生成静态页面,访问者直接访问这些静态化的页面,这种方式虽然快,但是动态性太差,如果想要与服务端进行交互则需要大量的JS脚本,或者在页面嵌套iframe,还有就是直接生成静态化对于页面的样式及个性化就很难处理,而DiscuzNT则很好的解决了这个问题,其采用了模板页的方式,美工可以根据设计制作一个个模板页,只需要在其中需要填充内容的地方预留占位符既可,而后台则只需要选择美工制作的模板页生成相应的页面既可,不过这生成的页面也并不是纯静态的页面,其采用了拼字符串的方式将静态化的页面拼接起来,其中数据部分则从数据库获取,然后直接Response.Write输出到具体的页面,这样既保证了效率又解决了个性化的问题。

 

下面几点主要是我从中学习到的一些知识点,以及我认为是个不错的学习范例

4、配置文件,在我开发的过程中也经常碰到一个问题,就是配置信息太多不好管理,DiscuzNT的解决方法让我受益匪浅,有兴趣的朋友可以看这篇文章:Discuz!NT之配置文件类[discuz.config]

 

5、地址重写,在web开发中,地址重写已经不是什么新鲜事了,目前有关地址重写的解决方案也很多,但是DiscuzNT的这块应该是个不错学习范例了,有需要的朋友可以学习下其内部的源码。

 

6、在线用户获取、缓存设计、web项目的安装等等

 

话说,各位看过的朋友如果觉得本文对您还有点用,或者觉得本文还有价值的话,麻烦将鼠标移到【推荐】上,帮我点击下,非常非常的感谢!

 

项目过程中所遇到的各种问题记录

编辑器篇:

        FCKeditor相关知识及各种常见使用问题

        FCKeditor自定义上传路径配置

        使用FCKeditor生成静态分页HTML

图表篇:

        有关MSChart的一些小技巧

        asp.net上不错的图表选择—FunsionCharts

ORM篇:

        使用NHibernate配置对象实体的一些小问题

        有关NHibernate查询封装

部署篇:

        项目部署过程中那些纠结的问题-IIS

        项目部署过程中那些纠结的问题-SQLServer

工具篇:

        .NET开发时常用的工具类库

学习篇:

        对工作以来的学习过的开源项目进行总结—动软代码生成工具

        对工作以来的学习过的开源项目进行总结—DiscuzNt



本文转自kyo-yo博客园博客,原文链接:http://www.cnblogs.com/kyo-yo/archive/2010/12/28/Problem-Record-Study-Open-Source-Projects-DiscuzNT.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux学习笔记之档案权限与目录配置
Linux学习笔记之档案权限与目录配置一. 档案权限与目录配置用户的属性信息: /etc/passwd用户的密码信息: /etc/shadow组的信息:    /etc/group 每个用户都有唯一的UID供系统识别sudo -i      输入密码切换到root s...
594 0
Linux学习笔记之目录配置
Linux学习笔记之目录配置一.目录配置相关目录说明 /bin   二进制文件 /boot    系统启动文件(内核的初始化文件等) /dev    设备文件(硬盘等) /etc    配置文件 /home    用户家目录 /lib    链接库文件(相当于windows里的.
757 0
Git之Eclipse提交项目到Github并实现多人协作
一.Eclipece提交项目到Github     见  eclipse提交项目到github   二.利用github组织实现多人协作 1.新建组织: New organization 1.
902 0
在GitHub上删除项目后,在Android Studio上传项目依然提示project is already on github
描述: 在GitHub上面上传项目,但是感觉有些问题,就想删除了重新上传。 但是在Android Studio重新上传项目时,遇到了问题,一直提示“project is already on github”   解决方案: 1、关闭Android Studio项目;   2、进入到本地项目目录,找到隐藏文件夹.
1217 0
笔试题目记录
32位机器上,以下结构的sizeof(P)为 struct A { int a; char b; int c; char d; } struct P { struct A w[2]; short b; struct A* p; } /*考察结构体对齐和填充: 结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如果不是,编译器会自动在成员间填充。
681 0
适合入门的8个趣味机器学习项目
还在为找不到机器学习入门练手项目而感到无奈吗?本指南中,将给大家带来8个适合初学者学习的有趣的机器学习项目,简单易学,相信会增添大家学习机器学习的信心。
2430 0
深度学习项目实战——“年龄预测”
学了那么多深度学习的基本知识,还在发愁没有地方展示自己学过的知识?来试试这个简单的实际问题吧!
3667 0
+关注
3441
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载