版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、利用元數(shù)據(jù)和RIA簡化企業(yè)應(yīng)用程序的開發(fā),曹曉鋼 BEA UG Guangzhou,2006-3-12,Agenda,MVC面臨的用戶體驗困境 構(gòu)件化界面組織- Qooxdoo Rich Browser/Server 所需的Data Transport Data Binding 與metadata的關(guān)系 Demo,Requirment,Hibernate基礎(chǔ)知識 MVC基礎(chǔ)知識 Spring基礎(chǔ)知識,Java Web 編程模型,Servlet規(guī)范 Request Response Session JSP 本質(zhì)上是servlet編譯生成器,MVC,Model 對應(yīng)域模型 View 觀察域模型的不
2、同視角 Controller 真正進(jìn)行對象操作,MVC出現(xiàn)的背景,在JSP中混雜進(jìn)行數(shù)據(jù)庫編程 將數(shù)據(jù)準(zhǔn)備與數(shù)據(jù)展現(xiàn)混雜在一起 將數(shù)據(jù)處理與結(jié)果展現(xiàn)混雜在一起 因為以上的混雜,無法有效的利用OO進(jìn)行對象建模 Struts和WebWork解決了這兩個主要的混雜問題,MVC沒有解決的問題,MVC模型仍然基于request/response,因此需要用多次交互才能完成一次“用戶操作” 保存現(xiàn)場于session 反例:將Hibernate session綁定到http session 使用continuation 仍然是低層協(xié)議,界面建構(gòu)仍然留給程序員完成 界面建構(gòu)時,客戶端界面代碼同時出現(xiàn)在客戶端和
3、服務(wù)器端,新的web框架方向,Continuation解決交互不連貫問題 構(gòu)件化界面開發(fā) Tapestry JSF 以上二者都仍然在服務(wù)器端進(jìn)行界面建構(gòu) 使用純粹客戶端控件進(jìn)行界面建構(gòu) JavaScript RIA,JavaScript RIA,基于IE behaviour的控件封裝 基于XAML/XUL的控件封裝 zk 純粹javascript DHTML的控件封裝 Bindows (付費授權(quán)) Qooxdoo (開放源代碼) 注意:Javascript RIA在激烈演進(jìn)中,仍然需要更多的時間等待其穩(wěn)定,Qooxdoo,http:/qooxdoo.oss.schlund.de/ OpenSo
4、urce 跨瀏覽器平臺 Internet Explorer = 5.5 Mozilla = 1.3 Firefox = 1.0 Opera = 8.0 有對應(yīng)的實際公司(德國) 在實際工程中使用 仔細(xì)的進(jìn)行過內(nèi)存泄露測試,沒有已知的泄露 開發(fā)活躍,基礎(chǔ)設(shè)施較完善,Qooxdoo,對象繼承基礎(chǔ)設(shè)施 QxNative QxExtend 事件基礎(chǔ)設(shè)施 QxEvent Button.addEventListener( “click”, function()xxx) Property event,Qooxdoo Layout,CanvasLayout 使用橫縱座標(biāo)對控件絕對定位 BoxLayout 單方
5、向堆疊式自動對齊控件 FlowLayout 對控件進(jìn)行自動換行 DockLayout 在行列兩個方向均可以自動堆疊 GridLayout 提供類似于HTML Table的定位方式,Qooxdoo Appearence,對CSS和Border的封裝 引入State,分離用于表達(dá)控件狀態(tài)的代碼 引入Theme,用于切換外觀主題 對字體的統(tǒng)一控制尚欠缺,Qooxdoo Widget,Qooxdoo提供: Atom Button Menu Toolbar Spin combobox Listview Treeview Tab control Window .,Qooxdoo 控件擴(kuò)展,實例:擴(kuò)展lis
6、tview的例子,Qooxdoo transport,AJAX enabled Transports: IFrame xmlhttpget,RIA編程,MVC轉(zhuǎn)移到客戶端 通過AJAX與服務(wù)器端的MVC基礎(chǔ)設(shè)施聯(lián)系 用戶在客戶端使用javascript表達(dá)一個連貫的操作,邏輯前移 One page , one operation 客戶端邏輯取代在服務(wù)器端的session/continuation 更好的分離界面邏輯與業(yè)務(wù)邏輯,Browser as a MACHINE?,Browser 作為javascript語言運行的內(nèi)存 HTTP作為數(shù)據(jù)訪問協(xié)議 客戶端Object與服務(wù)器端Object的映
7、射?,需要考慮的問題,界面元素的展現(xiàn)形式 每個界面元素對應(yīng)于域模型的一個POJO 界面元素中的property和POJO property對應(yīng) 是否需要在客戶端了解property的屬性? Validation的需要 Format的需要 Query的需要 是否需要在客戶端了解POJO之間的關(guān)聯(lián)關(guān)系? 在多個界面中維護(hù)同一對象同一屬性一致的外觀和操作 在對象關(guān)聯(lián)的時候,在界面中直接進(jìn)行對象選擇操作,ClientSide MVC,Model層的Cache? Model之間的reference View 的表述方式 XUL/XAML DHTML Widget,在B/S之間傳遞數(shù)據(jù),QxTranspo
8、rt Buffalo(burlap協(xié)議) JSON(自定協(xié)議json-rpc) . Buffalo和JSON使用的協(xié)議較詳盡,適合作為B/S remote call使用 ( /archives/85 )Michael Chen的blog中有較完整說明 傳輸流程圖,Buffalo, MichaelChen(陳金洲)作品 在多個正式系統(tǒng)中使用 使用簡潔明快 服務(wù)器端和spring方便的集成 使用burlap協(xié)議 尚缺乏time out的支持 同步與異步切換的支持,Data Bind,如何把數(shù)據(jù)綁定到客戶端控件 XML Data Island無法跨越瀏覽
9、器 此領(lǐng)域尚未有標(biāo)準(zhǔn)方法 Bind后客戶端控件重新渲染時,利用元數(shù)據(jù)進(jìn)行格式化 對關(guān)聯(lián)類型的綁定 Metadata是Data Bind的最重要來源,metadata,Entity 所需的metadata Property 屬性 Nullable Identity Length Scale Type Entity之間的關(guān)聯(lián) JDBC ResultSet metadata 中內(nèi)容有限 Hibernate metadata和Mapping configuration可以提供 model層的metadata在view層的表現(xiàn)形式 可能被override SDO4JS?,Javascript RIA P
10、ros 邏輯前移,客戶端的MVC模型對應(yīng) Cons 框架在激烈的演進(jìn)中,尚未穩(wěn)定 DataBind需要特別關(guān)注 同步AJAX RPC與異步AJAX RPC的使用場景 Buffalo這點上尚需改進(jìn) 異步AJAX RPC 拓?fù)鋱D 異步競態(tài)問題,Pros & Cons 2,N+1問題:AJAX object lazy loading 注意:客戶端無法使用Cache AJAX Query interface 注意到服務(wù)器端可能不是數(shù)據(jù)庫 Query Fetch Path強制指定 Javascript本身帶來的問題 速度 內(nèi)存泄露,Thats All,Thank You,About us: 滿江紅開放技術(shù)研究組織 OpenDoc Hibernate開發(fā)指南 Spring開發(fā)指南 iBatis開發(fā)指南 WebWork開發(fā)指南 Cruise Control 使用指南 Shift to Dynamic: Smallt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國上市公司所得稅優(yōu)惠的隱性稅收效應(yīng):理論、實證與政策啟示
- 我國上市公司定向增發(fā)對象與盈余管理的內(nèi)在關(guān)聯(lián)及影響研究
- 液晶顯示器件彩膜制造工操作管理知識考核試卷含答案
- 煤礦井下防爆電工復(fù)試競賽考核試卷含答案
- 電線電纜絞制工成果轉(zhuǎn)化強化考核試卷含答案
- 老年癡呆患者家屬溝通策略優(yōu)化
- 2026山東事業(yè)單位統(tǒng)考聊城市茌平區(qū)綜合類招聘16人備考題庫及答案詳解一套
- 云計算架構(gòu)設(shè)計與管理方案
- 數(shù)據(jù)備份與恢復(fù)的操作流程
- 2026江蘇南京大學(xué)智能科學(xué)與技術(shù)學(xué)院技術(shù)管理招聘備考題庫及參考答案詳解1套
- (正式版)DB61∕T 2121-2025 《風(fēng)力發(fā)電場集電線路設(shè)計規(guī)范》
- 疑難病例討論制度落實常見問題與改進(jìn)建議
- 創(chuàng)傷性脾破裂的護(hù)理
- 蓬深102井鉆井工程(重新報批)項目環(huán)境影響報告表
- 大模型金融領(lǐng)域可信應(yīng)用參考框架
- (新教材)2025年人教版七年級上冊歷史期末復(fù)習(xí)常考知識點梳理復(fù)習(xí)提綱(教師版)
- 中國全色盲診療專家共識2026
- 中國地質(zhì)大學(xué)武漢本科畢業(yè)論文格式
- 鋼鐵工藝流程課件
- 自流平地面施工安全方案
- 2025年湖北煙草專賣局考試真題
評論
0/150
提交評論