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