您的位置:首页 > 其它

对DNN在国内的影响及其弊端的思考

2009-03-27 16:54 435 查看
http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/5/DNNs-Influence-In-China-And-Its-Drawback.aspx

接触过DNN的国内朋友,我想你都能稍微了解DNN的一些情况。
1) DNN是一个免费、开源、可扩展、几近完美的内容管理系统。可广泛应用于商务网站、企业内网(Intranet)和外网网站、在线内容发布网站。
2) DNN是建立在微软ASP.NET平台之上的一套Web应用框架。
3) DNN是微软第一次向开源说”Yes”的里程碑。
4) DNN是门户网站的未来。
DNN的特色主要表现在:
通用性: 几乎可以用来构建任何Web 2.0应用:商务网站,企业内网/外网,在线内容发布。
用户友好性: 其设计考虑非常周全,借助站点向导,无处不在的帮助图标等等,用户能够很容易的控制项目的各个方面。
多网站支持: 可以支持多个网站。每个网站都有各自的管理员和独特页面布局。
技术支持: DNN有一个核心开发团队和国际化的支持社团。DNN的用户组、论坛、资源网站以及专注与DNN技术的很多公司,全方位的提供支持和帮助。
安装简单: 按照安装指导的步骤,只需要几分钟就可以完成。
本地化: 到目前为止已经有27个语言包,能很轻松的把您的网站转换成几乎任何语言。语言包也是可扩展的,您可以很容易的创建自己的特色语言包。
开放源代码: DNN是免费、开放源代码项目,采用类BSD风格的授权方式。容许任何人按自己的想法,商业和非商业的使用DNN.。BSD开源协议是一个给予使用者很大自由的协议。基本上使用者可以"为所欲为",可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。你只需要源代码中带有原来代码中的BSD协议。
高扩展性: DNN内建的功能已经足够构建一个非常复杂的内容管理系统。DNN提供了全新的在线式功能块扩展,无论是第三方模块还您自己开发的模块,都能很容易的加入到正在运行的网站中。
被广泛认同:DNN已经是一个商标,得到了开源社区的广泛认同和尊重。
毋容置疑,DNN是在微软社区下的一个最大(牛)的开源社区,DNN也是Nuke系列里感觉做的最好用,最方便的一个,目前正处于蓬勃发展阶段。相对于最初的IBuySpy Portal原型,无论在应用和性能,都已经有了一个质的飞跃。但在国内DNN似乎处于一个比较尴尬的局面,刚开始挺有热情,觉得似乎这是一个无所不能的Web 2.0产品, 但接触了一段时间就对此诟病不已。我想不妨在此列举一些DNN在国内突出的弊端,个人观点,仅供参考:
(一) 使用习惯:我想这应该是大家最有体会的一点吧,在此我不妨给一个例子,一个客户很看重DNN,觉得用DNN搭建社区会很方便,以后升级增加功能还极其方便,无非就是增加一个类似插件的Module ( Plus)。但我们给客户把社区和论坛搭建起来之后,光是论坛测试修改就让客户觉得焦头烂额,比如没有论坛斑竹(因为国外只有Moderator的概念),没有积分功能,没有论坛短信功能等等,而这是国内任何一个成品的论坛都具有的。最终客户放弃了DNN,转而使用其他国内的论坛产品。是的,因为不管是DNN本身还是其核心模块都是国外理念的产物,存在如此迥异的使用习惯在内,这样我们如果只是纯粹的照搬过来的话,那是让客户感觉很别扭
(二) 入门的门槛:DNN整个工程是如此的庞大,新手如果想一下对DNN开发模块或皮肤,那必须得了解很多DNN引进的概念,那可不是通用的,而是DNN自己的设计理念。而你想选择DNN作为你的开发平台,这些是必须深入研究的。比如DNN核心框架,皮肤概念,DAL+ 等等,光是DNN官方网站的文档就有几十份,光是看也很费事而费劲(因为是All English ),没有几个月你恐怕还是对DNN懵懵懂懂。就举skin为例,如果你想制作skin,没问题,你可以在原来基础(或免费skin)上修改,可能1-2小时就能制作出你想要的效果,但如果你想开发专业的skin,你至少得理解DNN皮肤机制,最好还得懂得一些编程,而这是美工所不愿的。
可移植性: 官方版本只支持MS SQL,而且MS SQL存储过程绑定,这些需要做大量的工作才能扩展的它的可移植性。本身DNN可扩展在各个数据库下使用,可目前我尚未看到存在所谓其他数据库的DataProvider。(似乎有Access DataProvider,我记不清了)
(三) 社区氛围:我想这也是DNN在国内如此受到冷淡的原因吧。我想这个是大家都明白的。
(四) 性能:这是DNN的最大瓶颈,也是大家会抛弃DNN的主要原因。因为DNN引入了skin机制,动态加载页面元素,页面中每个模块所在的容器都可以有自己的skin,页面也有自己的skin,设想一下,最极端的做法,一个平常的首页存在10个模块,每个模块有自己的skin,页面也有一个skin,那就是加载该首页时,DNN需要寻找到11个skin的文件,然后把对应的skin标签(mark-up)替代为页面显示的元素,如此一个遍历过程就能让你的页面可能在2分钟之内都是一片空白(在国内的带宽情况的设想), 这种情况下还没包括你模块可能需要处理的业务逻辑处理。当然值得安慰的是,DNN一直在性能优化上付出很多的尝试和努力,比如缓存机制,HttpCompression, skin的CSS化等等。但这瓶颈的解决还需要更好解决方案的出台,比如页面静态化处理等等
(五) 所谓Web 2.0的应用:是的,这是DNN所标榜的,也实现了一些超酷的效果,比如模块插件式开发,skin主题的应用,页面拖拽等等。但当你深入了解DNN核心模块,你会发现里边全是Table的堆积,全然没有Web 2.0所推崇的CSS控制。而且数据大部分都在页面绑定,充斥着类似的代码:

<%# Databinder.Eval(Container.DataItem, "Name") %>

写到这,大家是不是觉得我对DNN也很唾弃,可相反,我很钟情DNN,我也很看好DNN,DNN将来会有一个辉煌的时期并会成为一个成熟的Web 2.0宠儿.
最后,我附加一下对DNN的用户在线统计模块的修改,这其间有些误解,比如所谓[今日新增]指的是现在(Now)往后24小时之内的数目统计,[昨日新增]指的是现在(Now)往后24小时到现在(Now)往后48小时之间的数目统计,这显然是不符合我们的理解习惯的。修改完的版本就是应该是[今日新增]指的是本日24小时之内的数目统计,[昨日新增]指的是昨日24小时之内的数目统计。文件下载地址如下: UsersOnline_03.02.00_Install PA
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: