• 沒有找到結果。

4.3 EzShow 功能模組與實做

4.3.2 使用者端編輯器實做

4.3.2.1. 程式架構設計

考慮到編輯器各功能由鬆散低相依性的模組組成,並樣板視為是編輯器功能 的一部分,在編輯器執行時動態載入所需功能或樣板模組,也就是說將一個應用 程式封裝檔載入到另外一個應用程式封裝檔中執行。程式撰寫採用複合應用程式 設計架構與其程式庫協助開發 (Composite Application Library; CAL) 。其 好處為系統可以更容易演進,隨著系統需求的變更,新模組新增至系統時所面臨 的阻力,會比在非模組系統中更少,現有的模組可以更獨立地發展,因而提升可 測詴性。模組可由不同團隊來開發、測詴及維護 [9]。主要程式各主要模組互通 抽象概念如下圖:

圖 41:編輯器與樣板程式架構抽象概念圖

Shell 如同作業系統裡的觀念一樣,為編輯者與各編輯器功能及模組的界接。

應用程式啟動器為將預定使用的模組先註冊至編輯器當中。各樣版模組在編輯器 一開啟動時並不載入,等待使用者下命令後才將所需樣板載入。Client 端編輯 器與樣板複合應用程式更細節的互通模式如下圖:

圖 42:Client 端編輯器與樣板元件間溝通圖

EzShow 在 Shell 檔案裡面規劃出兩個 Region,一個為 MenuRegiony 做 為存放主選單。另一個為 WorkRegion,將要執行的頁面或樣版載入於此,如 下圖所示。

圖 43:Client 端編輯器之 MenuRegion 與 WorkRegion

Registry 為上張圖應用程式啟動器的動作。這個檔案裡只描述未來有甚麼 模組可以被載入,並不是實行載入檢視頁動作的地方。複合檢視 (Composite View) 是在說明 shell 與每個模組的檢視頁都可以由多個 Region 組成。他們的 Region 中可以載入其他模組的檢視頁,所以稱複合檢視。我們將每個模組 (module) 的內容又分為檢視 (View) 與模式 (Model),如下圖所示:

圖 44:Client 端編輯器樣版瀏覽頁程式架構圖

CAL 包含 ModuleLoader,它會載入每一個模組的組件,然後加以初 始化。模組可對其他模組指定相依性。ModuleLoader 將建置相依性 樹狀結構,並根據這些規格,依正確順序將模組初始化。

後續持續擴充系統功能的方法:

1. 製作出所需功能的模組 2. 將模組載入至系統 3. 啟動模組,呈現使用

圖 45:將新功能模組載入至編輯器中實做順序說明

4.3.2.2.編輯器分頁呈現

為了降低使用者下載模組與啟動編輯的時間,於是我們將程式模組個別封裝 成應用程式封裝檔 (.xap),並將檔案較大的圖片獨立於應用程式封裝檔之外,

讓網頁上的文字相關資料可以快速立即呈現,而圖片在接著動態載入。實做編輯 器以下載資料流的方式動態載入所需模組達到分頁呈現。

編輯操作過程中,當使用者切換至編輯頁時,編輯器會動態將編輯頁的檢視 頁面載入至欲顯示的 WorkRegion 區域。在擇定樣版後,將樣板模組動態載入 至編輯器中欲顯示的區域,架構如下圖所示:

圖 46:複合檢視實做例子架構圖

相關文件