easysite 与 Dotnetnuke(DNN)开源系统的关系
作者:小鱼的互联网观察 发布时间:September 15, 2009 分类:互联网观察
EasySite
EasySite 是一款基于 DotNetNuke Web应用。
特征:
1、与DotNetNuke的一致性
a)判断是不是dnn(DotNetNuke的简称)有很多方面比较直观的是通过URL路径规则判断。Dnn使用的路径重写(UrlReWrite),EasySite很好的继承了。
形如:/default.aspx?tabid=60 被重新成/tabid/60/default.aspx
b)通过对样式的引用判断
Dnn的模板引擎中有一套模板的加载规则,以及引用样式的模式。
在页面的Head部分可以看到_default/default.css ,skin.css,container.css,module.css等样式文件。
c)ViewState的位置
Dnn的早期版本为了对搜索引擎的优化把页面的__VIEWSTATE隐含域放到页面的底部。
d)页面的注释
Dnn的每个模块开始位置都会有<!-- Start_Module_[ModuleID] -->
模块结束位置<!-- End_Module_[ModuleID]-->
通过以上几个特征可以判定EasySite是一款DotNetNuke的本地化应用,当然熟悉Dnn的人可以通过更多的特征判断。如繁琐的频道管理模式,蹩脚的Drag-drop模块拖动…
2、判定其DNN版本
判定EasySite的dnn版本可以通过其发布的版本号判定,如441,既是dnn4.4.1版本,不过那是一个不大稳定的办法,随后的dnn更新中对那个版本做了很多的调整。
另外可通过查看ess.js(对应于dnn就是dnn.js ).可以看到apiversion的版本,早期的dnn对应的apiversion也是较低的,当前的dnn5.0.1对应的是4.0。
3、版权问题
DotNetNuke 是BSD协议下的开源软件。BSD协议是一个相当宽泛的开源协议,基本上允许对软件本身的任意行为。但是使用DotNetNuke还要遵循其必要的授权。
以上是dnn的授权文件,可以看出dnn的宽泛授权,它对软件的使用,拷贝,修改,合并,发布,传播,重新授权,以及销售都没有限制,但这一授权的条件是必须在发布的软件或使用其框架的软件中包含该授权。该授权默认位于Documentation/License.txt。
如果在使用的dnn相关产品中找不到相应的文件,意味着该软件侵害了Dnn的版权。
虽然版权问题,尤其是侵犯国外版权问题一直不被国人重视,但是对于政府和国企,以及大型企业尊重版权是值得重视的。
4、其他版权问题
Dnn是一个优秀的开源软件,提供了一套良好的程序架构,通过不断完善成熟,其发展过程也很重要自身的版权问题,所以dnn的单纯使用不会给你带来任何问题。问题在于如果使用集成了新的应用的dnn衍生产品中是不是侵害了其他软件的版权。
早期的dnn使用Freetextbox ,随着这个软件由free到收费最终放弃了,也保证了dnn的版权合法性。EasySite不同,使用了一款webhtmleditor 1.7 这是一款国产优秀的在线编辑器,其中使用很多流行技术,不过2006-10-30以后未见更新,并且很多技术来自不同开源社区,很难保证其代码完全没有问题,因为使用GPL一类协议的软件会导致GPL的传播,也就是使用相关技术便要遵循GPL,这个问题需要有机会通过代码分析来知道了。
第三方组件的滥用。Easysite中使用了不少第三方的问题软件,破解的ComponentArt,用来实现树形控件等功能,还有一些图表控件
5、性能问题
Dnn经过不断优化内核的性能得到了很大提升,因为EasySite的dnn版本较老性能相当差,加上部分自行开发的模块问题很多,速度慢的恐怖。所以基本上都采取了静态化处理,但是这只是针对匿名访问,不知道他们的系统维护人员有多痛苦 。
也有简单的测试方法,只要访问中把静态地址用动态地址访问就可以了。比如
Portal0/default932.htm,很明显932 是其频道id只要通过
default.aspx?tabid=932访问专业一点可以通过HTTPWatch 或Fiddler分析一下可以看到缓慢的响应。当然最直接的方法就是构建一个复杂页面,有管理员亲身体验一下。
6、页面兼容性
不可否认DNN的团队中有一大批优秀的功能师,但早期的dnn人员组成部分中没有熟悉w3c标准的工程师,对于页面div布局这种技术都没有提供相应的支持。所以其模板体系存在的兼容性问题,对于xhtml完全没有支持,一直使用传统模式的的页面声明,在他们的客户端代码中也没有充分考虑这样的问题。加上模块的添加管理模式导致基本上不能使用布局制作模板,所以页面的展现速度很慢。
7、其他问题
Easysite自身的安全性来自于三个方面,一个是不可靠的第三方产品,一个是其落后的dnn源码(dnn的众多安全补丁一直没有升级)dnn bug 管理(http://support.dotnetnuke.com/Main.aspx),另外一个就是其自身改造开发后的系统bug。