RIAWork介绍之一:关注界面和交互的灵活变化

在上篇RIAWork的简要介绍篇中,已经提及RIAWork的重要目标之一就是为界面和交互的灵活变化提供支撑,在这里来看看界面和交互在实际项目中的变化情况以及RIAWork是如何提供对于其变化的支撑的。
界面变化
在实际的项目中,即使是同类的项目,在各个企业甚至各个部门都有对于不同界面的需求,例如有些企业喜欢蓝色、有些喜欢淡蓝色等等的,有些则关注是国字形布局抑或其他各类布局,总之是各种各样的需求都在不断的产生,稍微的总结有以下几种情况:
1、界面风格的变化需求
      体现出来的有界面颜色、界面中元素的颜色、样式等的要求。
2、界面布局的变化需求
      体现出来的有对于界面的布局的要求。
在实际的项目中,当发生之上的两种变化的时候,通常都要耗费极大的精力去做界面的集成,特别是象以前采用jsp的那种系统,在重新进行界面的集成时还得非常小心,才能避免重新集成界面后造成功能的影响,当然,一些做的比较好的公司能够通过完全用css来控制界面风格、布局的方式来减少这两种变化带来的影响,但其实很多情况下仅仅通过css还无法完全做到足够灵活的控制来支撑用户对于界面的需求,RIAWork致力于解决这两种变化带来的集成的工作量,同时保证对于原有功能的无影响,那么RIAWork是怎么做的呢?
在RIAWork中第一种方式也是采用css的方式来控制界面风格以及布局;
另外一种方式则是RIAWork的特点,RIAWork强调对于html的无污染性,其实这只是一个很模糊的说法,准确的说是RIAWork强调对于界面html的无污染性,这里的区别在于界面html指的是用系统原型图切割形成的html,而不是还需要手工编辑修改的html,这点体现了RIAWork和JSF+Facelets以及Tapestry的不同点,Tapestry以及JSF+Facelets也非常强调对于html的无污染性,但它仍然需要在html的元素上增加自定义的属性,如jcwid这样的属性,而在RIAWork中则不需要,这样的话就完全没有了html的手工编辑的必要性,自然就将界面集成的工作几乎降为了零,在RIAWork中可以直接采用类似riawork?page=index.htm这样的方式来访问index.htm,即时的看到系统的新的界面效果;这里其实也体现了RIAWork强调的静态以及动态处理的分离上,保持了html的静态性质,将其动态性质进行了剥离,我将这种方式称为对于无侵入性的decorator方式,而Tapestry、JSF+Facelets的方式我称为带有侵入性的decorator方式,而采用tag的方式我认为根本就不是decorator的方式,而是彻底的替换方式,后两种方式都让html纯静态的性质被污染,导致了静态和动态的变化产生的互相影响。
对于RIAWork本身提供的基础设施控件,如丰富的表格、Grid则可通过css甚至替换其html的方式来形成新的风格、布局的控件。
交互变化
交互变化在实际的项目中也经常出现,而这点是很头疼的一点,因为交互的变化通常来讲带来的还不仅仅是象界面变化那样的静态性质的变化,有些时候还会带来系统处理的变化,典型的如将一页填表的方式变化为多页向导的填表方式,这种交互变化在系统中发生时往往会很麻烦,需要对页面、代码通通做改变,又如用户希望将界面上的一个下拉选择变成弹出选择,这也需要花费你一点时间去做到,而在RIAWork中,这些交互的变化也会变得很方便就进行调整,在RIAWork对于交互的变化一律归入动态变化性质,对于动态变化性质的东西,均通过管理端进行调整,在管理端中可选择界面元素的交互行为,如向导式的交互行为、下拉交互、弹出交互、链接式交互等等,当然,RIAWork不可能能够提供对于所有交互行为的支撑,这就需要通过实践来不断的提炼交互模式,不断的充实到RIAWork中,关于RIAWork的扩充在后续的介绍中再详细描述。

通过对于RIAWork对于界面以及交互变化的介绍,突出了RIAWork的一个重要特征,就是静态性质以及动态性质的分离,不再支持象以前asp、jsp这些服务端脚本语言提供的静态和动态一起绑定的形式,一个基本的职责分离的原则。
对于界面以及交互变化的支撑,是RIAWork的核心目标,也是RIAWork把用户当上帝,重界面和交互原则的重要体现。

后续文章预告:
RIAWork介绍之二:静态以及动态性质的分离处理
RIAWork介绍之三:RIAWork的扩充以及扩展
RIAWork介绍之四:RIAWork的开放性
RIAWork介绍之五:RIAWork的灵活性以及智能性
RIAWork介绍之六:RIAWork的动态部件

RIAWork进展
进行中:Velocity for js;Roadmap。
计划中:成员的确定以及讨论;RIAWork网站的建立;开发、部署以及演示环境的搭建;M1工作的开展。

posted on 2006-05-10 14:54 BlueDavy 阅读(3064) 评论(3)  编辑  收藏 所属分类: @RIAWork

评论

# re: RIAWork介绍之一:关注界面和交互的灵活变化 2006-05-10 17:12 IUSR

“无污染HTML”。不知道你在这里涉及到的HTML是指以什么角色出现的HTML,是仅仅作为页面展示的一部分的HTML还是其他的?允许不允许这些HTML片断自带控制代码——比如浏览器支持的script?希望能进一步解释一下。
如果仅仅是做页面展示的话,HTML固然可以,但你所说的“侵入性decorator”也没有值得指责的地方,因为大多数时候这些侵入性的decorator起到了绑定的作用,而且如果用在XHTML(Modularization)上,这甚至都谈不上侵入性。
我原先以为RIAWork会走其他RIA框架etc.的路子,使用xml等等定义控件、widgets,看来你有其他理由=) 我觉得如果只有HTML做展示,那如何做到扩展?另加描述信息?也许还是不太明白RIAWork的整体规划,所以提出这样的问题,见谅。
有一个希望就是能不能提供更多有关RIAWork的信息,或者是我太懒了没有注意到你已经列举的信息。//bow  回复  更多评论   

# re: RIAWork介绍之一:关注界面和交互的灵活变化 2006-05-11 09:08 guitarpoet

既然是JavaScript RIA,客户端的JavaScript的重要性也要体会出来,估计楼主看过Rails的AJAX方案,也许那是个比较好的方案。

但是我还是比较看重直接进行客户端JavaScript编程,只要实现了JavaScript的完善的包和引入机制(很遗憾,标准的JavaScript里面没有),那么客户端的编程完全可以采用JavaScript编程的方式进行开发,说句实话,这样子学习曲线不会比自己发明一套框架陡,组件和可重用性也不会差而且工作量较低可测试性也比较高。

我非常赞同非侵入式的动态HTML页面开发,说句不好听的,模板式的动态HTML(比如JSP)根本不适合JavaScript RIA程序的开发,不但组件写起来非常复杂,而且使用起来也是非常复杂,还跟容器密切相关,增加调试和测试的难度。

希望楼主能够细致的讲解一下具体的设计方案,尤其是在非侵入式动态HTML页面开发、怎么与业务逻辑层无缝结合还有怎么进行良好的开发和配置方便的服务端页面流和页面导航上(这一点Tapestry做的就很不错)。

至于页面风格的变化,CSS就已经很强了,还可以通过SiteMesh进行框架的修饰,这个方面应该是比较成熟的了。  回复  更多评论   

# re: RIAWork介绍之一:关注界面和交互的灵活变化 2006-05-11 11:08 BlueDavy

@IUSR
"无污染Html",指的是按照正常软件开发流程,由美工切割系统原型图后形成的html,不允许这些html带有script,要做到这些html只是定义了结构而已,保持web页面的结构、表现、行为的分离。
侵入性decorator我指责的就是侵入性decorator仍然会产生很大量的UI集成工作,这种情况在业务系统中也许碰到的不多,但在一种B/S网站式的系统中会出现很多,可以想像一下如果象sina、taobao这样的大型B/S系统,采用侵入性decorator方式时,如果要替换一下他们的界面是多么耗工作量的事,而无侵入性decorator则可以做到直接将美工切割形成的html替换上去就OK了....
在RIAWork中采用html作为界面,采用附加的对于html的描述来decorator出系统的动态性质,就像我所说的,保持静态性质和动态性质的分离,而在现有的框架中,Tapestry算是一定程度上保持了静态性质和动态性质的分离,但由于它采用的是侵入式的decorator,我还是不怎么满意,另外Tapestry并没有做到RIAWork所期待的交互变化的支持上.....

@guitarpoet
后续文章介绍中会重点讲在RIAWork中如何实现静态性质和动态性质的分离并最终将静态html转变为可运行的动态系统...
Tapestry的实现我也很认同,不过它仍然没有足够的做到对于界面和交互的灵活变化的支撑,它的html手工编写仍然是不可避免的,我的出发点更多的是从界面以及交互的快速变化的支撑上考虑,至于框架的扩充和扩展会在后续章节上专门介绍...
页面风格、布局的变化确实一定程度上都可以通过css去控制,但某些复杂情况下仅仅依靠css也是不够的,这个时候最好是有一种直接替换html的方式,那岂不是更简便和更灵活,^_^   回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2006年5月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜