我想大家也许都已经知道DotNetNuke 5.0 在(2008年)圣诞前夕发布了, 也就是之前一直在高调宣传的Cambrain版本, 在大家来说这的确是一个不错的消息, 鼓舞人心. 在DNNMix和m2land的博客中也分别列举了一些DNN 5.0巨大的的特色和变化, 现在此也列举了一下并对此作些评论, 一些个人的观点仅供参考:
DotNetNuke 5.0主要更新
1) 核心框架增加jQuery支持, 在安装系统时集成安装jQuery,同时模块开发可以直接使用jQuery。
评论:这的确是一个明智的选择, 想想asp.net MVC Framework都拥抱了JQuery, 这足以肯定JQuery的价值, 其实我一直对DNN本身自带的ClientAPI并没有太多的好感, ClientAPI最初版本的确实现了一些与众不同的功能,后来因为兼容MicrosoftAjax进行了一次大调整, 如今又因为整合JQuery会做出什么的更改呢? 但愿模块开发者可以更随心所欲利用ClientAPI.
2) 增加对IE 8 源剪辑(Web Slices) 的支持, 管理员可以设置任何模块使用IE 8的源剪辑功能, 包括设置保存的时间。
评论: 看来因为DNN纯粹是Microsoft平台下的开源产品, 寻求支持并兼容IE 8也是情理之中, 但愿不要过分亲热而忘了标准, 这里可以用DNN在
CodePlex.com上部署下载点看出一点端倪.
3) DotNetNuke 5.0 中消除了管理员模块和普通模块的界限,现在管理员可以给任意一个管理模块分配角色权限。
评论: 这是一大进步, 之前的版本存在管理模块和一般模块分离过度的情景, 有时客户需求需要赋予某一用户特定的管理权限则是不容易做到的, 比如需要分配给某一个网管查看网站日志的权限, 但不需要具备管理员的全部权限。
4) 全面升级安装服务,之前我们在不同的地方上传并管理皮肤,模块,语言包, 新版本中dnn后缀的安装文件将支持所有的扩展类型,皮肤,容器,模块,语言包,Provider 现在都可以通过统一的安装界面安装和卸载。
评论: 我觉得这是DNN 5.0最大的亮点, 也就是真正的实现插件式的机制, 除了核心之外所有的皮肤,容器,模块,语言包,Provider 都视作为插件, 可随时卸载或安装而不影响核心机制的运行, 并统一安装,统一部署,统一管理. 这无疑将让DNN的产品线完全扩展出来, 而不再局限于之前的皮肤和模块这两大块, 相应的DNN服务领域也将扩大化, 这对于DNN应用和DNN产品本身都将起到积极的推动作用.
5) 增加了XHTML, WCAG and ADA 的扩展支持, 以及对老版本非XHTML皮肤的兼容。
评论: 这对于皮肤开发者来说是个不错的消息, 可以完全的设计纯CSS和XHTML的Skin. 看来我上边提到"但愿不要过分亲热而忘了标准."有失偏颇, :)
6) 重构核心构架并提升对单元测试(Unit Testing)的支持, 重构了一些核心类使用了接口并且增加了简单的原件工厂模式以提供依赖注入(dependency injection)的支持。
评价: 这也算是DNN核心一大改进, 如今TDD不断被大家所推崇, 足于说明测试对于开发的重要性, 任何一个成熟的产品必须尽得起重构的考验, 而好的测试将是重构的成功与否的关键部分.
7) 权限设置单元中增加了拒绝(deny)选项,这个新功能扩展了权限系统并赋予管理员更加灵活的权限设置能力。
评价: 这将赋予DNN更多的灵活性, 拍手欢迎。
8) 增添了Widget框架(其实翻译过来叫"小部件", 觉得很是别扭, 翻译为"插件"也不大合适),这一Widget框架使得我们可以快速地添加某一小段特殊用途的JavaScript/html widget到网站而无需大费周折。Widget框架支持基于标签的描述,这意味着即使你不是很懂javascript也可以简单的添加Widget。
评价: 很好的借鉴方式, 如今也算是一个Widget时代了, 各种各样的Widget层出不穷, 其实Widget也是我们理解的插件模式, 不过它更多的是独立性和灵活性. 这对于需要定制的服务需要无疑是一个不错的选择.
9) 皮肤对象(skin object)增加了新的用法,现在设计皮肤再不需要附加单独的skin.xml文件定义皮肤对象的属性,你也不会看到杂乱无章的 [SKINOBJECT] 标签,取而代之的是新的皮肤对象标示法, 它极大简化了制作皮肤的的过程,如果想在皮肤里引用某一个简单的javascript 文件你甚至可以在设计皮肤的同时所见即所得(WYSIWYG )。
评价: 这也是对于皮肤开发的改进, 我想如果能完全的做到所见即所得(WYSIWYG )还需要一定时间吧, 但愿以后可以实现.
10) 安全性的提升,修复了所有4.x版本安全漏洞.
评价: 安全性对于CMS的重要性毋庸置疑的, 此次的安全性改进将让更多的客户选择DNN, 这是我们这些DNN工作者无疑也是一种福分. :)
以上10点算是DNN 5.0(Cambrain)最大的亮点. 更多更新记录:
DNN 5.0(Cambrain) ChangeLog 最后我想总结一下我个人对DNN 5.0(Cambrain)的一些整体性看法和观点, 目前Cambrain从beta版本到release版本总体觉得改进了很多, 可以用"翻天覆地或转折点"来形容也不为过, 但同时也暴露了不少了Bug和问题, 总共不下几百处, 到这篇文章发布之时, DNN 5.1已经跟随其后发布了, 这无疑也是为了修改bugs而更新的版本. 如此看来, DNN 5.0(Cambrain)甚至DNN 5.1也不至于是一个稳定的版本, 其实理由很简单, DNN核心架构调整了不少, 难免出现冲突和意想不到的Bugs, 就我本人而言不推荐大家马上升级到Cambrain, 需要观望一段时间(至少半年的时间), 当然学习那就无所谓了. 不妨看看国外的一些同样观点的评论
" I think should be mentioned that DNN 5, although out of beta, does not seem to be ready for production. There are some serious issues reported at the official DNN forums especially from those who tried an upgrade. I spent some time with a clean install locally and even that has several issues. So we better wait for the next release before we try DNN 5 for production. "
最后祝愿大家2009年在DNN旅程得到更多的乐趣和成就. :)