基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架

          在現(xiàn)在的軟件業(yè)界,我認(rèn)為很大的問題是開發(fā)人員甚至是公司從來都沒有真正的把用戶當(dāng)成上帝,當(dāng)然,這和目前業(yè)界的項(xiàng)目有很大的關(guān)系,例如項(xiàng)目通常都是時(shí)間非常的緊張,N多開發(fā)人員投入只能盡量去保證功能、需求的實(shí)現(xiàn),在界面以及交互上往往不是那么的重視,但其實(shí)業(yè)界很多成功的產(chǎn)品都證明,功能往往不是決定性的因素,界面和交互才是用戶最為重視的,而且通常也是打敗對手的重要地方,為什么項(xiàng)目中不在重視功能的同時(shí)去重視界面和交互呢,大都是因?yàn)楝F(xiàn)在的框架在界面和交互變化的支撐上都不是很好,導(dǎo)致了每次界面的改動都要花費(fèi)很大的成本,而交互上則一方面是現(xiàn)在交互設(shè)計(jì)師急為的缺少,另一方面是還沒引起企業(yè)足夠的重視,所以其實(shí)我覺得在web應(yīng)用開發(fā)框架上最大的目標(biāo)就是為“把用戶當(dāng)上帝”提供足夠的支持。
          遵循“把用戶當(dāng)上帝,重界面和交互”的原則,本文從愿景角度闡述對于Web應(yīng)用開發(fā)框架的期望,同時(shí)從框架角度的基礎(chǔ)設(shè)施以及非功能性需求上對整個Web應(yīng)用開發(fā)框架給予說明,最后簡要的說說在架構(gòu)層次的關(guān)注點(diǎn)以及可選擇的技術(shù)體系。
          1. 愿景?
          ?? ★ Html的純潔性?
          ???? 這點(diǎn)就是體現(xiàn)“把用戶當(dāng)上帝,重界面和交互”的原則,在保證了Html的純潔性的情況下,就可以在功能和頁面交互未改變的情況下無需編碼直接使用UI Design形成的html,形象的一個例子就是可以在用戶僅僅需要改變頁面的顯示樣式、布局的情況下,只需要直接讓UI工程師設(shè)計(jì)然后切割形成html放到系統(tǒng)中就可以直接用了,^_^
          ?? ★ 無編碼的實(shí)現(xiàn)CRUD型的應(yīng)用
          ??? 可以直接通過簡單的配置生成CRUD形式的應(yīng)用,這點(diǎn)還是從一個快速開發(fā)的角度來考慮的。
          2. 基礎(chǔ)設(shè)施?
          ? 基礎(chǔ)設(shè)施是框架的重要組成部分,作為框架就需要提供一定程度的基礎(chǔ)設(shè)施。
          ? 從愿景角度去看,Web應(yīng)用開發(fā)框架應(yīng)提供可綁定數(shù)據(jù)源的Web控件、對綁定的數(shù)據(jù)的操作的支持、頁面元素交互行為的支持、IDE/Web管理端。
          ? 首先說下幾個概念,數(shù)據(jù)源是指持久化性質(zhì)的源,如數(shù)據(jù)庫、文件;頁面元素大可以是頁面,小則可以到頁面上的任意域,如文本框;交互則是指用戶與界面產(chǎn)生的互動。
          ? ★ 提供基礎(chǔ)的可綁定數(shù)據(jù)源web控件?
          ????? 在這點(diǎn)上至少要提供樹控件、豐富的表格控件、Tab頁控件以及菜單控件,這些控件綁定的數(shù)據(jù)源既可是文件、也可以是jdbc形式的數(shù)據(jù)源、同樣還可以是ORM形式的數(shù)據(jù)源。???
          ? ★ 提供對綁定的數(shù)據(jù)源的操作的支持
          ????? 提供對綁定的數(shù)據(jù)源的通用操作的支持,減少重復(fù)勞動,如支持新增、編輯、刪除、分頁、查詢、統(tǒng)計(jì)分析、數(shù)據(jù)校驗(yàn)以及數(shù)據(jù)實(shí)例的權(quán)限控制。?
          ? ★ 提供基礎(chǔ)的頁面元素交互行為的實(shí)現(xiàn)?
          ????? 提供對頁面元素交互行為的支持,如下拉時(shí)需要下拉出綁定了數(shù)據(jù)源的web控件等等,根據(jù)之上定義的一個觀點(diǎn),元素可大至一個頁面,小至一個文本框,也就是說可以隨意定義頁面中的交互行為,在交互行為上至少支持下拉、彈出、鏈接以及Continuation四種形式。??
          ?? ★ 提供IDE/Web管理端?
          ???? IDE/Web管理端的提供主要是為了提高框架的可用性,通過管理端可導(dǎo)入一個html,對html中元素進(jìn)行動態(tài)元素的綁定設(shè)置以及交互定義的設(shè)置。
          ? 在提供了這些基礎(chǔ)設(shè)施后就可以通過這套框架的快速的將UI Design產(chǎn)生html轉(zhuǎn)化為具備一定功能的系統(tǒng)運(yùn)行界面,并且不對HTML產(chǎn)生任何的污染。
          3. 非功能需求?
          ? 作為框架而言,非功能需求也是非常重要的部分,尤其是象框架的擴(kuò)展性、開放性、智能性、穩(wěn)定性以及高效性方面。
          ? ★ 擴(kuò)展性?
          ??? 在擴(kuò)展性上采用插件以及擴(kuò)展點(diǎn)兩種策略來提供足夠的支撐,插件為框架的基礎(chǔ)設(shè)施的擴(kuò)充提供支撐,擴(kuò)展點(diǎn)為基礎(chǔ)設(shè)施本身的擴(kuò)展以及靈活提供支撐。
          ? ★ 開放性
          ???? 在系統(tǒng)的開放性上一方面采取提供AOP的機(jī)制,使得對于系統(tǒng)的流程過程可控。
          ???? 另一方面由于元數(shù)據(jù)表達(dá)往往容易造成信息不完整的情況,在擴(kuò)展性上特別要保證系統(tǒng)各層次的可替換性,這樣即使在框架無法支撐的應(yīng)用中也是可以在使用框架的基礎(chǔ)設(shè)施的同時(shí)自主開發(fā)部分的功能。
          ? ★ 智能性?
          ??? 智能性主要在元數(shù)據(jù)的智能性上以及框架擁有學(xué)習(xí)和記憶的功能上。智能性已經(jīng)逐步的成為了框架的重要考評點(diǎn),越智能的框架用起來必然也就最為方便,而擁有學(xué)習(xí)和記憶能力的框架就更強(qiáng)了,^_^
          ? ★ 穩(wěn)定性?
          ??? 在穩(wěn)定性上采用微核機(jī)制來提供保證,在插件崩潰的情況下仍然保證系統(tǒng)核心的穩(wěn)定運(yùn)行。?
          ? ★ 高效性?
          ??? 高效性方面主要采用緩存機(jī)制加以實(shí)現(xiàn),同時(shí)需要考慮框架在可伸縮性方面的支持。?
          4. 架構(gòu)關(guān)注點(diǎn)?
          ? 根據(jù)框架的基礎(chǔ)設(shè)施以及非功能需求的簡單描述,在框架的架構(gòu)層次最需要解決的是這么一些問題:
          ? ★ 微核機(jī)制?
          ???? 微核機(jī)制在目前已經(jīng)有N多的方案,在目前考察的情況下決定采用eclipse的equinox。
          ? ★ 插件策略
          ???? 在采用equinox的情況下這個問題自然解決。?
          ? ★ 擴(kuò)展點(diǎn)策略?
          ???? 在采用equinox的情況下這個問題自然解決,只是在設(shè)計(jì)時(shí)也仔細(xì)的考慮基礎(chǔ)設(shè)施的擴(kuò)展點(diǎn)的定義。?
          ? ★ 元數(shù)據(jù)的定義
          ???? 元數(shù)據(jù)的定義需要圍繞基礎(chǔ)設(shè)施而進(jìn)行,同時(shí)重點(diǎn)在于保持元數(shù)據(jù)的可擴(kuò)充性,另外在系統(tǒng)的層次的開放上也需要定義到元數(shù)據(jù)級別,也就是說假設(shè)現(xiàn)在系統(tǒng)的層次為command--service,那么開發(fā)人員可以選擇在某個模塊中替換command或者service的實(shí)現(xiàn)。?
          ? ★ 緩存機(jī)制策略?
          ???? 緩存機(jī)制著眼于前端的頁面緩存、后端的處理緩存和數(shù)據(jù)緩存。
          ? ★ Html無污染實(shí)現(xiàn)策略?
          ???? Html無污染的實(shí)現(xiàn)策略采用Decorator Html的方式,采用xml描述html中元素的方式,引擎解析形成最后的頁面的形式。
          ? ★ 控件綁定數(shù)據(jù)源的策略?
          ???? 控件在綁定數(shù)據(jù)源上著眼于提供對于數(shù)據(jù)獲取形式的支持,文件形式、jdbc形式、orm形式等等,另外則是在控件對于數(shù)據(jù)源的展現(xiàn)以及控件本身的交互控制上,同時(shí)要特別注意控件的擴(kuò)展性以及開放性。
          ? ★ 數(shù)據(jù)源操作統(tǒng)一實(shí)現(xiàn)的策略
          ???? 形成統(tǒng)一實(shí)現(xiàn)的策略,同樣的需要考慮擴(kuò)展性和開放性。?
          ? ★ 交互行為實(shí)現(xiàn)的策略?
          ???? 在下拉、彈出、鏈接以及Continuation的實(shí)現(xiàn)上考慮采用適當(dāng)?shù)牟呗?,同樣的要重點(diǎn)考慮擴(kuò)展性以及開放性。

          這個框架有人感興趣嗎?如有志同道合的人的話準(zhǔn)備拉起隊(duì)伍,^_^

          posted on 2006-04-26 21:06 BlueDavy 閱讀(2845) 評論(16)  編輯  收藏 所屬分類: @RIAWork

          評論

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-26 21:38 garnoopy

          問一個問題,Web控件采用哪種方式?服務(wù)器端解析還是客戶端解析?  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-26 21:47 BlueDavy

          準(zhǔn)備采用客戶端解析的方式,就象我以前的一篇blog說的,客戶端解析唯一的焦點(diǎn)問題只是提供類似velocity for js的東西..  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-26 23:05 JC

          和我現(xiàn)在的一個項(xiàng)目MetaDrivenUI很相似 ^_^
          非常有興趣加入。  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-26 23:15 sharkmao

          留名  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-27 01:38 garnoopy

          yeah!我一直都想做的。
          準(zhǔn)備隊(duì)伍吧  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-27 10:11 Harryson

          支持,希望中國也有更多更好的框架出來.  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-27 10:38 郁也風(fēng)

          強(qiáng),這東西看著還真挺暈的,要不你也帶俺學(xué)學(xué)?  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-27 12:47 BlueDavy

          ^_^,成立了專門的群,暫時(shí)命名為RIAWork,歡迎大家申請加入討論關(guān)于RIAWork的一切:
          QQ群號: 20881998  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-27 16:29 IUSR

          Wow, cool~
          我原以為你會做一個基于Equinox的東西~  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-27 16:45 BlueDavy

          ^_^,這東西就是基于eclipse的equinox...  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-04-27 20:26 IUSR

          ft,沒仔細(xì)看后半部分……
          好強(qiáng)的項(xiàng)目~關(guān)注。  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-05-11 19:25 貝隆夫人

          支持  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-06-12 11:12 綠色使者、綠色心情

          挺好的想法,現(xiàn)在進(jìn)展如何了?  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-06-12 13:10 BlueDavy

          正在進(jìn)行網(wǎng)站的建設(shè)!  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-08-15 21:05 robbie

          但從你對“基礎(chǔ)設(shè)施”的描述來看,我?guī)缀跽J(rèn)為是在描述JSF,呵呵,開個玩笑,對eclipse的osgi實(shí)現(xiàn)一直很感興趣,RCP方面的應(yīng)用就不用討論了,一直在關(guān)注equinox在server端的發(fā)展,雖然提供了serlvet及jsp的支持,但仍不太理想,希望能釋放出更多的關(guān)于riawork的架構(gòu)性信息,因?yàn)槿绻旧砘趀quinox的話,這個框架的成功與否其實(shí)不在于Framework的底層了,而是在equinox之上,能提供什么樣的組件?構(gòu)件?界面復(fù)用單元?功能利用單元?因?yàn)閺那暗胶竽壳岸家呀?jīng)有可取的框架了,ssh 很想知道riawork的進(jìn)展:)  回復(fù)  更多評論   

          # re: 基于元數(shù)據(jù)和RIA的Web應(yīng)用開發(fā)框架 2006-08-16 10:30 BlueDavy

          @robbie
          說的沒錯,呵呵,RIAWork基于Equinox,必然會在其之上首先構(gòu)造出B/S的基礎(chǔ)框架,對于RIAWork的具體介紹在后續(xù)將會逐步推出,在下個月會推出關(guān)于RIAWork的網(wǎng)站、規(guī)劃、架構(gòu)以及相關(guān)的一些建設(shè)情況的通報(bào)。

          目前正在完成一個基于Equinox的軟件管理框架,這個框架將在不久之后開源,雖然沒有什么很強(qiáng)的功能,但主要是希望做為一個Equinox的practice的展示,希望能引起國內(nèi)更多的人使用Equinox。

          多謝大家的關(guān)注,目前www.riawork.org網(wǎng)站正在建設(shè)中,期待大家的意見!  回復(fù)  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          統(tǒng)計(jì)

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安义县| 云梦县| 阿拉善盟| 盐亭县| 赣州市| 合水县| 兴国县| 安徽省| 沂水县| 昭通市| 广宁县| 云阳县| 仪陇县| 平乐县| 长岛县| 长沙市| 乐都县| 和平县| 中方县| 浮山县| 田阳县| 萨嘎县| 西和县| 乌拉特后旗| 莱西市| 格尔木市| 奉新县| 康定县| 勃利县| 南郑县| 桦川县| 桐城市| 宣化县| 许昌市| 大姚县| 聂拉木县| 台东县| 宁乡县| 武强县| 霍州市| 赞皇县|