王斌,賀興,趙海
(1.中國人民解放軍91413部隊,秦皇島 066001;2.東北大學秦皇島分校計算機與通信工程學院,秦皇島 066004;3.中國人民解放軍65631部隊60分隊,錦州 121300;4.中國人民解放軍65037部隊,葫蘆島 125001; 5.東北大學信息科學與工程學院,沈陽 110819)
基于.NET和AJAX的凈水處理監(jiān)控系統(tǒng)開發(fā)
王斌1,2,賀興3,趙海4,5
(1.中國人民解放軍91413部隊,秦皇島 066001;2.東北大學秦皇島分校計算機與通信工程學院,秦皇島 066004;3.中國人民解放軍65631部隊60分隊,錦州 121300;4.中國人民解放軍65037部隊,葫蘆島 125001; 5.東北大學信息科學與工程學院,沈陽 110819)
介紹一套基于B/S架構的凈水處理監(jiān)控系統(tǒng)的開發(fā)過程。該系統(tǒng)采用Microsoft.NET Framework 4.0框架,使用主流的C#語言進行編碼,應用ASP.NETAJAX架構,使得頁面可以無刷新定時更新數(shù)據(jù),實現(xiàn)對凈水監(jiān)控系統(tǒng)狀態(tài)的實時顯示功能,用戶體驗良好。通過ADO.NET技術訪問數(shù)據(jù)庫,實現(xiàn)對凈水監(jiān)控系統(tǒng)的實時控制以及動態(tài)生成數(shù)據(jù)報表功能。
ASP.NET;AJAX;C#;凈水處理監(jiān)控系統(tǒng)
近年來,已出現(xiàn)了多種自動化凈水處理監(jiān)控系統(tǒng),但大多數(shù)是基于C/S架構開發(fā)。這種系統(tǒng)的缺點是用戶界面不夠友好、客戶端需安裝配置、數(shù)據(jù)冗余度大、升級維護困難。本文介紹的是基于B/S架構的同類系統(tǒng)開發(fā)。B/S架構具有分布性特點,可以隨時隨地進行查詢、瀏覽等業(yè)務處理。維護簡單方便,只需要改變網(wǎng)頁,即可實現(xiàn)所有用戶的同步更新。且開發(fā)簡單,共享性強。
1.1 功能需求
(1)用戶管理:用戶登錄和注銷、已登錄用戶修改登錄密碼;
(2)凈水設備狀態(tài)實時顯示:可以實時查看到每套凈水設備的狀態(tài);
(3)進入設備間查看所有設備狀態(tài):進入設備間頁面后,系統(tǒng)會呈現(xiàn)一個模擬的設備間平面圖,在該圖上,所有設備的實時狀態(tài)都被顯示出來;
(4)根據(jù)水位自行調整閥門開閉:當系統(tǒng)處于設備間頁面時,系統(tǒng)可以根據(jù)每套凈水設備的水位,自行調節(jié)進水閥門和緩沖閥門的開閉狀態(tài);
(5)動態(tài)生成數(shù)據(jù)報表:系統(tǒng)可以根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)動態(tài)完成一張凈化水流量的數(shù)據(jù)報表,其中數(shù)據(jù)是實時更新的。
1.2 數(shù)據(jù)庫需求
系統(tǒng)主要數(shù)據(jù)庫表及內容如下:
(1)管理員信息表:存儲系統(tǒng)管理員的用戶名、密碼等信息;
(2)系統(tǒng)設置信息表:存儲水位上限、下限閾值,系統(tǒng)自動刷新時間間隔等信息;
(3)水泵信息表:存儲提升泵、反沖泵的壓力等信息;
(4)凈水設備信息表:存儲每臺凈水設備(當前為4臺)的參數(shù),主要有包括設備狀態(tài)是否正常、水位、水壓、進水閥門和反沖閥門狀態(tài)等。
2.1 開發(fā)調試環(huán)境
軟件開發(fā)環(huán)境選擇了Windows 7 Ultimate系統(tǒng)平臺。為實現(xiàn)ASP.NET和AJAX的快速開發(fā),集成環(huán)境使用Microsoft Visual Studio 2010,開發(fā)語言選用C#。
2.2 主要類和方法
(1)公共類
作為面向對象的C#語言,開發(fā)時最好將所需用到的資源等抽象為類。因此開發(fā)了以下公共類。
①WaterEquipment類,用于描述水處理設備,其中成員包括設備編號、狀態(tài)、水位、水壓、進水閥門和緩沖閥門狀態(tài)等信息(表1);
表1 Water Equipment類描述
②TPump類,用于描述水泵狀態(tài),其中成員包括水泵號、名稱、壓力等信息(表2)。
表2 TPump類描述
(2)公共方法
這里的公共方法用來讀取公共資源、設置格式等。
①LoadRefreshTime方法:用于讀取自定義的刷新時間間隔,返回值為int型;
②LoadThresholdDwon方法:用來讀取數(shù)據(jù)庫中存放的水位下限閾值,返回值為double型;
③gdStyle方法:用于設置頁面中出現(xiàn)的GridView控件的格式,無返回值。
以上公共方法,均封裝在CommonClass類中,且方法均為靜態(tài)方法,這樣無須將CommonClass類實例化即可調用。
由于篇幅所限,這里只介紹系統(tǒng)核心功能模塊的開發(fā)以及所應用的關鍵技術。
3.1 導航功能
為便于操作,功能頁面實現(xiàn)為上+左右模式,其中上部顯示公共信息,左側顯示導航功能按鈕,右側為具體功能實現(xiàn)。這里采用.NET的母版頁技術,避免冗余代碼出現(xiàn)。
圖1 使用了母版頁的導航窗口及功能頁面
3.2 設備狀態(tài)顯示及閥門自動控制功能
通過設備間頁面來實現(xiàn)。此頁面可以動態(tài)顯示所有設備的各項參數(shù),通過此頁面可以動態(tài)控制閥門狀態(tài)。由于此頁面功能比較復雜,需要顯示的元素比較多,因此需要通過層次結構來實現(xiàn)各種圖片、控件的布局,這里選擇了CSS盒子模型進行頁面布局。
實現(xiàn)實時顯示和自動控制功能,用到了.NET的AJAX技術。實現(xiàn)方法是首先插入UpdatePanel以及Timer控件。根據(jù)布局需求,需要6個UpdatePanel控件,兩個Timer控件分別控制泵狀態(tài)和凈水設備狀態(tài)。這里需要將每個UpdatePanel的Triggers屬性均正確設置,才能保證Timer控件的Ticks事件能夠正確控制刷新。
程序流程及關鍵代碼如下:
(1)首先讀取數(shù)據(jù)庫中的水位上限和下限,建立兩個數(shù)組,分別對應4套凈水設備和其要顯示的參數(shù)控件。然后初始化數(shù)據(jù)庫連接。
(2)通過循環(huán)控制各設備的狀態(tài)。由于定義了兩組數(shù)組,其顯示是通過數(shù)組下標關聯(lián)的。循環(huán)體中核心代碼如下:
(3)通過讀取的水位信息來設置和顯示閥門開關。核心代碼如下:
(4)最后將存儲在實例化類中的信息存入數(shù)據(jù)庫并關閉數(shù)據(jù)庫連接。核心代碼如下:
該頁面的最終狀態(tài)如圖2所示。
3.3 參數(shù)報表自動生成功能
參數(shù)報表功能實現(xiàn)使用了ASP.NET 2.0中新增的GridView控件。為實現(xiàn)定時刷新,仍需要使用UpdatePanel以及Timer控件。此處完全使用前臺模式開發(fā),無需在后臺輸入代碼。數(shù)據(jù)庫連接使用Access-DataSource控件。
(1)首先在頁面中插入ScriptManager控件,然后依次插入兩個UpdatePanel、一個Timer、兩個AccessData-Source控件、兩個GridView控件。設置AccessData-Source控件的屬性如表3所示。
圖2 設備狀態(tài)頁面
表3 Access Data Source控件屬性
(2)然后將兩個GridView數(shù)據(jù)源分別設置為兩個AccessDataSource控件,其屬性如表4所示:
表4 Grid View控件屬性
最終的參數(shù)報表頁面見圖3。
4.1 部署
系統(tǒng)最終部署在Windows Server 2008上,采用IIS 7.0作為Web服務器,具體過程不再贅述。
圖3 數(shù)據(jù)參數(shù)表頁面
4.2 測試
對本系統(tǒng)來說,需要對照需求分析中所列出的功能需求逐一檢查系統(tǒng)功能是否正確實現(xiàn)。為了驗證刷新功能實現(xiàn)的正確性,特地開發(fā)了配套測試程序,用于定時向數(shù)據(jù)庫中寫入隨機數(shù)據(jù),模擬水處理設備狀態(tài)的變化。如圖4所示。
經(jīng)功能測試、人機交互界面測試、性能測試,系統(tǒng)的功能、性能等符合軟件需求規(guī)定。
本系統(tǒng)開發(fā)過程中所采用的關鍵技術和技術優(yōu)勢包括:
①使用微軟成熟的.NET和AJAX整合架構,使得開發(fā)過程大大簡化,后期維護、修改變得容易;
②使用CSS盒子模型進行頁面布局,將顯示層和數(shù)據(jù)層分離,使得較復雜的設備間頁面布局層次清晰;
③充分利用了C#語言的優(yōu)勢,將各設備抽象為類進行管理,真正做到了面向對象開發(fā);
④使用ADO.NET訪問數(shù)據(jù)庫,引用成熟的類庫,訪問效率和安全性較傳統(tǒng)技術有進一步的提升。
圖4 配套測試程序界面
當然,系統(tǒng)開發(fā)中還存在著一些不足之處。例如網(wǎng)絡安全方面考慮不充分、系統(tǒng)配置還不夠靈活、系統(tǒng)安裝部署略顯繁瑣等,期望在后續(xù)的開發(fā)實踐中加以解決。
[1] 朱志偉.小型水廠智能化水處理監(jiān)控系統(tǒng)的應用[J].中國給水排水,2013,16(29):87~89
[2] 周銳.紅興隆污水處理監(jiān)控系統(tǒng)設計[D].哈爾濱:哈爾濱工業(yè)大學,2013
[3] 黃桂金,宋強.ASP.NET AJAX網(wǎng)站開發(fā)從入門到精通[M].北京:清華大學出版社,2008
[4] Christian Wenz著.ASP.NETAJAX編程指南[M].唐學韜等譯.北京:機械工業(yè)出版社,2008
[5] 鐘大利,黃宗正.三層架構下ADO.NET數(shù)據(jù)庫訪問技術的應用探究[J].電腦知識與技術.2013,9(5):961~962
Development of Water Treatment Monitoring System Based on.NET and AJAX
WANG Bin1,2,HE Xing3,ZHAO Hai4,5
(1.No.91413 Troops of PLA,Qinhuangdao 066001; 2.School of Computer and Communication Engineering,Northeastern University at Qinhuangdao,Qinhuangdao 066004; 3.Unit60,No.65631 Troops of PLA,Jinzhou 121300;4.No.65037 Troops of PLA,Huludao 125100;5.College of Information and Engineering,Northeastern University,Shenyang 110819)
Describes the development process on a set of water treatmentmonitoring system based B/S structure.The system is using Micros of t.NET Framework 4.0 framework,using C#languagemainstream encodes,applying ASP.NET AJAX framework,making pages can be updated regularly without refreshing the data,to achieve real-time watermonitoring system status display function,and user experience is good. Access to the database through ADO.NET technology,water purification dynamically generated data reporting capabilities.
ASP.NET;AJAX;C#;Water TreatmentMonitoring System
1007-1423(2015)07-0073-05
10.3969/j.issn.1007-1423.2015.07.020
王斌(1981-),男,河北昌黎人,在讀碩士研究生,工程師,研究方向為軍用軟件測評
賀興(1984-),男,河北衡水人,本科,研究方向為通信對抗
2015-01-13
2015-02-10