分享一個漂亮WPF界面框架創作過程及其源碼(轉)


本文會作為一個系列,分為以下部分來介紹:

(1)見識一下這個界面框架;

(2)界面框架如何進行開發;

(3)輔助開發支持:Demo、模板、VsPackage制作。

框架源碼如下所示。

本文介紹第(1)部分。

 

1 安裝

現在我們就先來見識一下這個界面框架。首先,你可以通過以下鏈接來下載到這個框架的VS插件安裝包:下載地址。下載解壓后,文件如下:

image_thumb1

雙擊這個文件,進行安裝(目前只支持VS2012和VS2013,拋棄了VS2010,I am sorry)。

image_thumb3

點擊安裝,即可完成。

2 創建主程序

接着打開Visual Studio 2013,新建項目,選擇默認iOpenWorksExtension。

image_thumb5

這里面有兩個模板,一個是主程序、一個是插件。在這里,我們先創建一個主程序,你可以發現主程序已經包含了一些通用的功能插件,比如界面框架、配置服務、數據庫服務、權限管理等。在編譯主程序之前,需要確保已經安裝了iOpenWorksSDK和Nuget。

image_thumb8

這里編譯時需要OSGi.NET框架支持,並使用Nuget去下載一些第三方庫。編譯通過后,可以直接運行主程序。

首先是一個SplashWindow。

image_thumb9

接着是一個Login窗體,輸入默認管理員admin/admin。

image_thumb11

登錄成功后,顯示如下主界面,左邊是可擴展導航欄、右邊是可擴展顯示區域、底下是狀態欄,右上角有可擴展的系統菜單。

image_thumb13

3 創建插件

接着,我們在項目中來添加一個新建插件。需要注意的是:插件目錄必須位於主程序的bin/Plugins目錄。

image_thumb16

插件創建完成后,其項目結構如下所示。

image_thumb18

這是一個使用MVVM架構開發的典型的應用。Model表示數據庫模型、DataAccessor表示數據庫訪問類、ViewModel表示視圖模型。接着我們來運行項目。你可以發現界面多了一個功能模塊。

image_thumb20

插件定義了一個CourseManagementUserControl.xaml頁面,當點擊“課程管理”菜單時,便在右邊顯示區域動態展示出 來。點擊“增加/編輯”時,在右邊彈出一個輸入框,加載了AddOrEditCourseUserControl.xaml控件。在插件的 Manifest.xml文件,你可以看到,插件是通過以下配置將菜單和現實內容注冊到界面框架的。

image_thumb22

另外,在插件的BundleActivator里面定義了如下服務供插件直接調用。

image_thumb24

服務即通用功能,有:

(1)PermissionService權限檢測服務:編碼方式來判斷當前用戶是否具有某個權限;

(2)ConfigurationService配置服務:持久化保存界面位置、大小、顏色等個性化信息;

(3)DbConnectionFactoryService數據庫連接工廠:獲取數據庫連接;

(4)MainWindowService主窗體服務:用於關閉當前顯示區域和打開/關閉側邊框。

在插件開發過程中,我們可以直接來寫模型、數據庫訪問、視圖模型、視圖代碼,如果需要使用框架功能,你就調用上述4個服務即可,不再需要與任何框架 打交道。下面我們可以嘗試來添加一個新的XAML頁面ContactsManagementUserControl.xaml,並更改 Manifest.xml做如下配置。

image_thumb26

此時,運行后,新頁面便可以加載到內容區域了。

image_thumb28

下來就可以在這個頁面上根據業務來編寫頁面顯示、ViewModel等代碼了。

4 框架體驗總結

通過上述簡單演示,你可以發現這樣的框架有如下好處:

(1)高復用:界面可服用、通用功能可服用;

(2)標准化:每一個插件都是用標准的架構、標准的代碼來進行開發,容易維護;

(3)模塊化:可以將一個大軟件分成不同模塊,由不同人開發不同插件來組合;

(4)分層:強制將基礎插件與業務插件分為不同層次,不至於出現基礎插件調用業務插件的功能;

(5)一致的用戶體驗:框架提供標准化UI,使整個系統有了一致的展示。

此外,在OSGi.NET基礎上,還可以支持動態模塊化(動態安裝、啟動、停止、更新、卸載模塊)、自動化部署與更新功能。

 

Creative Commons License 有任何技術問題,可以加入iOpenWorks插件倉庫平台QQ交流群: 121369588。

本文基於 Creative Commons Attribution 2.5 China Mainland License發布,歡迎轉載,演繹或用於商業目的,但是必須保留本文的署名 道法自然(包含鏈接)。如您有任何疑問或者授權方面的協商,請給我留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM