在2013年的十月份有幸接觸了osgi.net和iopenworks的創始人,了解和學習的插件式開發,開始了后台數據的處理生涯。
第一個有圖形界面的系統——智能農業的環境監測系統,其實在這個系統中所有的通信處理都是現有的,但是當時是由一個沒有多線程處理的同事開發的,缺點就如果這個果園中如果有十個攝像頭,就需要部署在十台機器上實時監控不同的位置、還有自動滴管和土壤信息的數據采集,這兩個是一個單獨的程序。我的任務就是在一周之內整合程序,評估時間極不准確,因為我不了解業務邏輯,在開發的過程中,我不斷的遇到問題,主要是業務邏輯的實現,因為以前有過多線程開發的經驗,所以構建服務框架很快,多線程通信還是可以完全把控風險大的,我使用了OSGI.Net的插件是開發框架, 讓我的開發省心省力,因為我使用了很多公共插件,例如:
1、 Outlook 風格 WinForm界面框架
2、 NLog日志插件
上圖是服務端(后台)的界面,前台(Web)的處理是另外一個同事的處理,雙方的通信通過消息隊列實現前台和后台的交互,后台將相關命令下發給對應的實體,同時將實時上報的數據存儲在數據庫中,提供給前台訪問顯示。這個程序大部分是移植的處理做了整合而已。
第二個基於OSGI.Net的程序是去年的八九月份幫一個朋友的忙,自己開發的系統是Web端,現在已近開始使用了。使用的插件,例如:
1、 Win7風格的Web界面框架
2、 NOPI庫插件
3、 NLog日志插件
等等,同時還有數據庫訪問的插件,在開發的過程中各個插件互不影響,每一個插件就是一個獨立的項目,可以相互引用,非常方便。下面是我第二個系統的幾張截圖,
登陸
默認頁面
我的接觸很皮毛,只是向大家介紹一下這種編程思想和方式,如果感興趣可以訪問OSGI.net的官網:http://www.iopenworks.com同時也可以關注創始人的博客:http://www.cnblogs.com/baihmpgy。
本人對.Net屬於趕鴨子上架式的用多少學多少,並沒有系統的學習語法及其編程方式,對異步處理理解不深,只有明確的概念,但沒有實際的操作機會。但是在兩個圖形界面的程序中了解了很多新的知識和思想,本人認為值得借鑒和分享。