本文會做爲一個系列,分爲如下部分來介紹:數據庫
(1)見識一下這個界面框架;架構
(2)界面框架如何進行開發;框架
(3)輔助開發支持:Demo、模板、VsPackage製做。模塊化
框架源碼以下所示。post
本文介紹第(1)部分。ui
1 安裝編碼
如今咱們就先來見識一下這個界面框架。首先,你能夠經過如下連接來下載到這個框架的VS插件安裝包:下載地址。下載解壓後,文件以下:插件
雙擊這個文件,進行安裝(目前只支持VS2012和VS2013,拋棄了VS2010,I am sorry)。xml
點擊安裝,便可完成。blog
2 建立主程序
接着打開Visual Studio 2013,新建項目,選擇默認iOpenWorksExtension。
這裏面有兩個模板,一個是主程序、一個是插件。在這裏,咱們先建立一個主程序,你能夠發現主程序已經包含了一些通用的功能插件,好比界面框架、配置服務、數據庫服務、權限管理等。在編譯主程序以前,須要確保已經安裝了iOpenWorksSDK和Nuget。
這裏編譯時須要OSGi.NET框架支持,並使用Nuget去下載一些第三方庫。編譯經過後,能夠直接運行主程序。
首先是一個SplashWindow。
接着是一個Login窗體,輸入默認管理員admin/admin。
登陸成功後,顯示以下主界面,左邊是可擴展導航欄、右邊是可擴展顯示區域、底下是狀態欄,右上角有可擴展的系統菜單。
3 建立插件
接着,咱們在項目中來添加一個新建插件。須要注意的是:插件目錄必須位於主程序的bin/Plugins目錄。
插件建立完成後,其項目結構以下所示。
這是一個使用MVVM架構開發的典型的應用。Model表示數據庫模型、DataAccessor表示數據庫訪問類、ViewModel表示視圖模型。接着咱們來運行項目。你能夠發現界面多了一個功能模塊。
插件定義了一個CourseManagementUserControl.xaml頁面,當點擊「課程管理」菜單時,便在右邊顯示區域動態展現出 來。點擊「增長/編輯」時,在右邊彈出一個輸入框,加載了AddOrEditCourseUserControl.xaml控件。在插件的 Manifest.xml文件,你能夠看到,插件是經過如下配置將菜單和現實內容註冊到界面框架的。
另外,在插件的BundleActivator裏面定義了以下服務供插件直接調用。
服務即通用功能,有:
(1)PermissionService權限檢測服務:編碼方式來判斷當前用戶是否具備某個權限;
(2)ConfigurationService配置服務:持久化保存界面位置、大小、顏色等個性化信息;
(3)DbConnectionFactoryService數據庫鏈接工廠:獲取數據庫鏈接;
(4)MainWindowService主窗體服務:用於關閉當前顯示區域和打開/關閉側邊框。
在插件開發過程當中,咱們能夠直接來寫模型、數據庫訪問、視圖模型、視圖代碼,若是須要使用框架功能,你就調用上述4個服務便可,再也不須要與任何框架 打交道。下面咱們能夠嘗試來添加一個新的XAML頁面ContactsManagementUserControl.xaml,並更改 Manifest.xml作以下配置。
此時,運行後,新頁面即可以加載到內容區域了。
下來就能夠在這個頁面上根據業務來編寫頁面顯示、ViewModel等代碼了。
4 框架體驗總結
經過上述簡單演示,你能夠發現這樣的框架有以下好處:
(1)高複用:界面可服用、通用功能可服用;
(2)標準化:每個插件都是用標準的架構、標準的代碼來進行開發,容易維護;
(3)模塊化:能夠將一個大軟件分紅不一樣模塊,由不一樣人開發不一樣插件來組合;
(4)分層:強制將基礎插件與業務插件分爲不一樣層次,不至於出現基礎插件調用業務插件的功能;
(5)一致的用戶體驗:框架提供標準化UI,使整個系統有了一致的展現。
此外,在OSGi.NET基礎上,還能夠支持動態模塊化(動態安裝、啓動、中止、更新、卸載模塊)、自動化部署與更新功能。