跳到主要內容

發表文章

目前顯示的是有「WebDynpro」標籤的文章

Web Dynpro 前後端資料流動機制 (Dataflow)

在Web Dynpro中提供3種資料流機制[1],只要適當地設定,可以不用寫程式就將畫面、中間層控制器(controller)到後端模型物件的資料自動化地、牢靠地綁在一起,使得不管前後端某一方有資料變動,變動部份都會自動地流動來保持一致性,使得前後端都能存取到同一份資料。 context 關鍵元件是 context,每個controller都有一份屬於自己的context,它扮演MVC架構中的M (model),web dynpro的實做方式比較像是該controller的「資料空間」,它由node(資料節點)與attribute(資料屬性)組成,controller可以透過wdContext這個預先產生好的 shortcut variable(捷徑變數)去取得context的資料內容。 context中必須要建立node才可以儲存資料,一個node代表一個collection(集合物件)裡面仍可以含有node, attribute,node裡面的一份資料實體就是一個element,一個node可以有一個或多個element(這部份可以透過cardinality property設定),其結構就是該node所包含的結構。 data binding 此種機制可以將UI元件的資料跟context中的某個node或attribute綁定在一起,context中的改變會自動 更新到UI元件上,UI元件的改變也會自動寫入到綁定的context node(or attribute)中。通常UI元件所綁定的node(attribute)是由component controller對應過來的。 context mapping 每一個controller都有屬於自己的context(資料空間)如果要達到彼此共享資料,則要透過context mapping機制,一旦mapping設定好,則會在另一個context產生一個同樣的結構的node,兩邊的controller會存取到的是同一分資料,任何一邊的資料更動都會散佈到設定好mapping的node。 不過在web dynpro裡,只允許將custom controller or component controller的node對應到view controller去,不允許從view controller對應回來,主因是嚴格遵守MVC...

SAP Web Dynpro 的優缺點

特長: 清晰的MVC架構 自動化建立模型類別(model class) 透過3種data model機制(model binding, context mapping, data binding)可以很容易保持資料模組化與前後端一致性 利用context node機制抽象化、統一化對後端各種不同model的存取方式 各種重用性高、可設定的UI元件,只要拖拉即可快速建立畫面 UI元件可與office、Adobe flex作某種程度整合 各種工具類別提高開發效率(ex: Window Manager, Message Manager) 畫面可以重複使用在不同的client裝置(web browser, pocket pc, blackberry),無須重新開發 缺點: 沒有提供使用者輸入驗證的架構(要自行實做) UI元件無法客製 必須使用NetWeaver server,是SAP獨有技術 必需要用NetWeaver Development Studio開發,雖然是基於eclipse的IDE,但是許多好用的功能與快速鍵都被改掉,反而較不好用 不易與其他third party framework整合,如Hibernate