DotNetNuke Skinning Whitepaper (总揽部分)


DotNetNuke崇尚简单原则,简单在不同的应用领域有不同的解释,在DotNetNuke中,我们的目标是使复杂的皮肤体系有一个人性化的表现——在使用和管理上简易方便。另外,性能是任何web应用程序的一个关键的问题,因此,我们在这个标准中多次强调这一点。好消息是在DotNetNuke 的皮肤体系中兼具优越的性能和简易性,这在一些案例中已经被证明。

  在底层技术上,ASP.NET用户控件明显优越于模版管理。因为用户控件是经过编译的,这在性能上明显高于解释型语言。从后台编码的业务逻辑中提取表现层也是一个关键的特点。

  为了使创建皮肤对web设计者来说尽可能的简单而且灵活,我们决定使用纯粹的HTML来定义皮肤。这样做的好处是设计者可以使用他们习惯的工具来创建和维护皮肤。我们定义了一些占位符来将皮肤对象从静态标记中分离出来,设计者可以在设计完成后插入到他们的皮肤中。占位符就是如[TOKEN] 一样的简单文本,它和皮肤对象是一一对应的。为了减轻在替换过程中的性能损失,我们建立了一套简单的皮肤上传机制来进行这种替换生成可以直接由DotNetNuke表现出来的用户控件。这个预处理仅在皮肤上传过程中执行一次。这个方法让我们享受用户控件在性能上的优势而且满足了web设计者与web开发者独立开发的需求。

  在布局方面,DotNetNuke允许皮肤设计者自由的组织他们想要的页面布局。为了将内容模块插入页面,设计者可以创建任意数量的可以放置模块的内容栏。这种自由的方法提供了在界面设计上的灵活性,但同时也在无缝集成即插即用的皮肤系统上增加了一定的复杂性。为了达到真正的即插即用,每个皮肤的布局,名称,内容栏的数量必须是协调的。

  大多数皮肤解决方案都存在一个弱点,那就是皮肤组件总是去定义他自己的布局和外观表现。在DotNetNuke 中,内容模块向这种体系提出了强有力的挑战,通过复杂的内容模块和大量的函数来表达一个单一的控件,使得控件至少包含了一部分布局特性。这就严格限制了他的使用,必须依赖于皮肤的指定区域 ( 比如他可以仅被插入到一个大的皮肤栏目中)。更糟糕的是如果一个内容模块包含静态的文字,颜色,图片或者样式,这就更限制了他在皮肤解决方案中的作用


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3