在上篇RIAWork的簡(jiǎn)要介紹篇中,已經(jīng)提及RIAWork的重要目標(biāo)之一就是為界面和交互的靈活變化提供支撐,在這里來看看界面和交互在實(shí)際項(xiàng)目中的變化情況以及RIAWork是如何提供對(duì)于其變化的支撐的。
界面變化
在實(shí)際的項(xiàng)目中,即使是同類的項(xiàng)目,在各個(gè)企業(yè)甚至各個(gè)部門都有對(duì)于不同界面的需求,例如有些企業(yè)喜歡藍(lán)色、有些喜歡淡藍(lán)色等等的,有些則關(guān)注是國字形布局抑或其他各類布局,總之是各種各樣的需求都在不斷的產(chǎn)生,稍微的總結(jié)有以下幾種情況:
1、界面風(fēng)格的變化需求
體現(xiàn)出來的有界面顏色、界面中元素的顏色、樣式等的要求。
2、界面布局的變化需求
體現(xiàn)出來的有對(duì)于界面的布局的要求。
在實(shí)際的項(xiàng)目中,當(dāng)發(fā)生之上的兩種變化的時(shí)候,通常都要耗費(fèi)極大的精力去做界面的集成,特別是象以前采用jsp的那種系統(tǒng),在重新進(jìn)行界面的集成時(shí)還得非常小心,才能避免重新集成界面后造成功能的影響,當(dāng)然,一些做的比較好的公司能夠通過完全用css來控制界面風(fēng)格、布局的方式來減少這兩種變化帶來的影響,但其實(shí)很多情況下僅僅通過css還無法完全做到足夠靈活的控制來支撐用戶對(duì)于界面的需求,RIAWork致力于解決這兩種變化帶來的集成的工作量,同時(shí)保證對(duì)于原有功能的無影響,那么RIAWork是怎么做的呢?
在RIAWork中第一種方式也是采用css的方式來控制界面風(fēng)格以及布局;
另外一種方式則是RIAWork的特點(diǎn),RIAWork強(qiáng)調(diào)對(duì)于html的無污染性,其實(shí)這只是一個(gè)很模糊的說法,準(zhǔn)確的說是RIAWork強(qiáng)調(diào)對(duì)于界面html的無污染性,這里的區(qū)別在于界面html指的是用系統(tǒng)原型圖切割形成的html,而不是還需要手工編輯修改的html,這點(diǎn)體現(xiàn)了RIAWork和JSF+Facelets以及Tapestry的不同點(diǎn),Tapestry以及JSF+Facelets也非常強(qiáng)調(diào)對(duì)于html的無污染性,但它仍然需要在html的元素上增加自定義的屬性,如jcwid這樣的屬性,而在RIAWork中則不需要,這樣的話就完全沒有了html的手工編輯的必要性,自然就將界面集成的工作幾乎降為了零,在RIAWork中可以直接采用類似riawork?page=index.htm這樣的方式來訪問index.htm,即時(shí)的看到系統(tǒng)的新的界面效果;這里其實(shí)也體現(xiàn)了RIAWork強(qiáng)調(diào)的靜態(tài)以及動(dòng)態(tài)處理的分離上,保持了html的靜態(tài)性質(zhì),將其動(dòng)態(tài)性質(zhì)進(jìn)行了剝離,我將這種方式稱為對(duì)于無侵入性的decorator方式,而Tapestry、JSF+Facelets的方式我稱為帶有侵入性的decorator方式,而采用tag的方式我認(rèn)為根本就不是decorator的方式,而是徹底的替換方式,后兩種方式都讓html純靜態(tài)的性質(zhì)被污染,導(dǎo)致了靜態(tài)和動(dòng)態(tài)的變化產(chǎn)生的互相影響。
對(duì)于RIAWork本身提供的基礎(chǔ)設(shè)施控件,如豐富的表格、Grid則可通過css甚至替換其html的方式來形成新的風(fēng)格、布局的控件。
交互變化
交互變化在實(shí)際的項(xiàng)目中也經(jīng)常出現(xiàn),而這點(diǎn)是很頭疼的一點(diǎn),因?yàn)榻换サ淖兓ǔ碇v帶來的還不僅僅是象界面變化那樣的靜態(tài)性質(zhì)的變化,有些時(shí)候還會(huì)帶來系統(tǒng)處理的變化,典型的如將一頁填表的方式變化為多頁向?qū)У奶畋矸绞?,這種交互變化在系統(tǒng)中發(fā)生時(shí)往往會(huì)很麻煩,需要對(duì)頁面、代碼通通做改變,又如用戶希望將界面上的一個(gè)下拉選擇變成彈出選擇,這也需要花費(fèi)你一點(diǎn)時(shí)間去做到,而在RIAWork中,這些交互的變化也會(huì)變得很方便就進(jìn)行調(diào)整,在RIAWork對(duì)于交互的變化一律歸入動(dòng)態(tài)變化性質(zhì),對(duì)于動(dòng)態(tài)變化性質(zhì)的東西,均通過管理端進(jìn)行調(diào)整,在管理端中可選擇界面元素的交互行為,如向?qū)降慕换バ袨?、下拉交互、彈出交互、鏈接式交互等等,?dāng)然,RIAWork不可能能夠提供對(duì)于所有交互行為的支撐,這就需要通過實(shí)踐來不斷的提煉交互模式,不斷的充實(shí)到RIAWork中,關(guān)于RIAWork的擴(kuò)充在后續(xù)的介紹中再詳細(xì)描述。
通過對(duì)于RIAWork對(duì)于界面以及交互變化的介紹,突出了RIAWork的一個(gè)重要特征,就是靜態(tài)性質(zhì)以及動(dòng)態(tài)性質(zhì)的分離,不再支持象以前asp、jsp這些服務(wù)端腳本語言提供的靜態(tài)和動(dòng)態(tài)一起綁定的形式,一個(gè)基本的職責(zé)分離的原則。
對(duì)于界面以及交互變化的支撐,是RIAWork的核心目標(biāo),也是RIAWork把用戶當(dāng)上帝,重界面和交互原則的重要體現(xiàn)。
后續(xù)文章預(yù)告:
RIAWork介紹之二:靜態(tài)以及動(dòng)態(tài)性質(zhì)的分離處理
RIAWork介紹之三:RIAWork的擴(kuò)充以及擴(kuò)展
RIAWork介紹之四:RIAWork的開放性
RIAWork介紹之五:RIAWork的靈活性以及智能性
RIAWork介紹之六:RIAWork的動(dòng)態(tài)部件
RIAWork進(jìn)展
進(jìn)行中:Velocity for js;Roadmap。
計(jì)劃中:成員的確定以及討論;RIAWork網(wǎng)站的建立;開發(fā)、部署以及演示環(huán)境的搭建;M1工作的開展。