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

本文會做爲一個系列,分爲如下部分來介紹:數據庫

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

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

(3)輔助開發支持:Demo、模板、VsPackage製做。模塊化

框架源碼以下所示。post

本文介紹第(1)部分。ui

 

1 安裝編碼

如今咱們就先來見識一下這個界面框架。首先,你能夠經過如下連接來下載到這個框架的VS插件安裝包:下載地址。下載解壓後,文件以下:插件

image_thumb1

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

image_thumb3

點擊安裝,便可完成。blog

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發佈,歡迎轉載,演繹或用於商業目的,可是必須保留本文的署名 道法天然(包含連接)。如您有任何疑問或者受權方面的協商,請給我留言。
相關文章
相關標籤/搜索