何 紅,許建梅,黃民慧,李海驥,肖澤豪
海南醫(yī)學院教育技術中心 信息技術部,???571101
近年來,隨著教學規(guī)模及教學內容的擴大與深入,海南醫(yī)學院在多媒體教學、實驗室建設和校園網(wǎng)建設等方面投入了大量經(jīng)費,教學和實驗室設備越來越多。目前,學校的實驗室設備采用Excel表格管理,工作量大,設備管理的很多功能不能實現(xiàn),信息檢索與統(tǒng)計不便。因而,充分利用校園網(wǎng)絡平臺,開發(fā)基于B/S架構的設備管理信息系統(tǒng),通過使用校園網(wǎng)上的任何一臺電腦即可實現(xiàn)設備的管理及查詢統(tǒng)計功能,及時方便地了解實驗室設備的運行情況,將有利于合理分配有限的教學資源,提高設備利用率,實現(xiàn)設備資源共享。下面就實驗室設備管理系統(tǒng)的總體設計思想、系統(tǒng)功能、系統(tǒng)的前臺表現(xiàn)層、業(yè)務邏輯層及數(shù)據(jù)層的設計與實現(xiàn)予以介紹。
對比C/S和B/S架構:C/S架構具有結構簡單、速度快,但維護較為困難[1]的特點。系統(tǒng)的安裝、修改、升級維護需要在客戶端、服務器端都進行。B/S架構只需瀏覽器即可運行程序,系統(tǒng)的安裝、修改、升級維護只需在服務器端進行,無需在客戶端進行,維護方便。同時業(yè)務邏輯層有效隔離了客戶端與數(shù)據(jù)庫端的聯(lián)系,提高了數(shù)據(jù)管理的安全性。雖然B/S架構數(shù)據(jù)處理功能要弱于C/S架構、速度要慢于C/S架構,但綜合各種因素,選用B/S架構較為合理。系統(tǒng)總體架構如圖1所示。
圖1 系統(tǒng)總體架構圖
搭建一個良好的系統(tǒng)開發(fā)環(huán)境可以使網(wǎng)站建設者快速、方便地建立網(wǎng)絡管理信息系統(tǒng),更加有效地實現(xiàn)各種系統(tǒng)功能,滿足用戶的設計要求[2]。
海南醫(yī)學院校園計算機都已聯(lián)入校園網(wǎng),都可以作為客戶端使用。服務器端操作系統(tǒng)選用Windows 2003網(wǎng)絡操作系統(tǒng)。開發(fā)工具的選擇,因學校計算機操作系統(tǒng)基本上選用Windows系列操作系統(tǒng),且開發(fā)人員熟悉C#與VB2005開發(fā)語言,比較J2EE與.Net開發(fā)的適用范圍與性能,決定采用.Net技術進行開發(fā)。開發(fā)環(huán)境選用微軟的Visual Studio 2005,開發(fā)語言選用C#。數(shù)據(jù)庫選用 SQL Server 2005關系數(shù)據(jù)庫。SQL Server 2005具有可靠性、可用性、可編程性、易用性等特點,并能實現(xiàn)與Windows 2003的無縫集成。
經(jīng)調研,學校使用設備管理系統(tǒng)的用戶可分為各部門設備管理員、各部門設備維護人員及一般查詢用戶。另外,為維護部門信息及部門管理員用戶信息,增加了超級管理員用戶。各類用戶的功能如圖2所示。
圖2 系統(tǒng)功能UML用例圖
表示層又稱用戶界面層,是系統(tǒng)的UI(用戶接口)。除了UI外,表示層也承擔了許多功能性職責。如對用戶輸入數(shù)據(jù)的驗證、Session的管理以及頁面的跳轉邏輯等[3]。表示層的設計既要美觀,又要方便用戶使用。該系統(tǒng)頁面布局采用表格對頁面進行統(tǒng)一布局,采用了母版頁、頁面導航、運用主題文件等技術。
為保持頁面的一致性,頁面采用母版頁構建網(wǎng)站的整體風格。將每個頁面都包含的頁頭、頁尾、頁面導航控件封裝在母版頁里[4]。
3.1.1 創(chuàng)建站點地圖文件 ASP.NET為我們提供了網(wǎng)站導航。讓我們把網(wǎng)站路徑存放在文件當中。當我們需要修改路徑時,只需要修改站點地圖文件就可以了。由于系統(tǒng)包含四類用戶,四類用戶的權限不同,實現(xiàn)的功能不同,每類用戶都應有自己的導航。因此,在應用程序的根目錄下為每類用戶創(chuàng)建了sitmap類型的站點地圖文件。同時在配置文件web.config中添加SitMap的設置與之對應。
3.1.2 頁面導航 采用了TreeView導航控件及Site MapDataSource站點地圖數(shù)據(jù)源控件,并將TreeView控件綁定到SiteMapDataSource數(shù)據(jù)源。母版頁頁頭加入SiteMapPath導航路徑控件,顯示導航路徑。母版頁設計如圖3所示。
3.2.1 頁面設計 采用通常方式輸入用戶名、密碼以進行身份驗證,頁面加入RadioButtonList控件(單選按鈕列表控件),并綁定到數(shù)據(jù)庫的用戶類型字典表。讓用戶選擇用戶類型登錄系統(tǒng)。
圖3 母版頁設計圖
3.2.2 登錄頁面的后臺處理程序 對用戶進行身份驗證,驗證成功則將用戶編碼信息、所屬部門編碼、用戶類型信息、SiteMapDataSource數(shù)據(jù)源控件的提供程序名稱屬性SiteMapProvider等保存在Session對象中,以實現(xiàn)頁面跳轉時保存必要的信息。并根據(jù)用戶類型不同選擇不同的SiteMap站點地圖類型文件,使母版頁的SiteMapDataSource數(shù)據(jù)源對應該用戶類型的站點地圖文件,從而使TreeView控件顯示對應用戶類型的頁面導航。登錄頁面設計圖如圖4所示。
圖4 登錄頁面設計圖
3.3.1 主要控件
①文本框TextBox控件:用于接受用戶輸入的搜索信息。
②下拉列表DropDownList控件:根據(jù)TextBox控件的內容模糊查詢數(shù)據(jù)庫相應表的記錄字段信息并綁定到DropDownList控件中。
③數(shù)據(jù)綁定GridView控件:根據(jù)DropDownList控件的內容查詢數(shù)據(jù)庫相應設備表的記錄信息并綁定到GridView控件中。
④數(shù)據(jù)綁定DetailsView控件:和GridView控件組合使用,根據(jù)GridView控件中被選擇行的Selected DataKey鍵值在DetailsView控件上顯示該設備記錄的詳細信息。同時在DetailsView控件上啟用新增、編輯、刪除操作,完成對記錄的增加、修改與刪除操作。
⑤多個數(shù)據(jù)源SqlDataSource控件:利用這些控件配置數(shù)據(jù)源,然后使 DropDownList、GridView、Details View等控件綁定到這些數(shù)據(jù)源。
3.3.2 技術實現(xiàn)
①使用了DetailsView重要的列類型Template Field,使用模板完全定制列的內容。編輯Insert Template插入記錄模板和EditTemplate編輯修改記錄模板,解決新增和修改記錄中特殊字段的輸入或修改模式。
②對DetailsView的主要事件進行編程實現(xiàn)各功能。對DetailsView中的ItemInserting、ItemUpdating、ItemDeleting事件進行各類檢查驗證等功能,進行創(chuàng)建、修改或刪除記錄前的檢查工作并給出有錯誤時的提示信息。
對DetailsView 中的 ItemInserted、ItemUpdated、Item-Deleted事件給出成功創(chuàng)建、修改或刪除記錄操作完成后的提示信息,并重新對GridView、Details View控件進行數(shù)據(jù)綁定,保持與數(shù)據(jù)庫信息同步。設備字典維護設計圖如圖5所示。
圖5 設備字典維護設計圖
主題由一組元素組成:外觀、級聯(lián)樣式表(CSS)、圖像和其他資源。主題將至少包含外觀。主題是在網(wǎng)站或Web服務器上的特殊目錄中定義的。外觀文件是主題的核心內容,用于定義頁面中服務器控件的外觀[4],包含用戶對各個控件(例如 Button、Label、TextBox或GridView等控件)的屬性設置。主題還可以包括級聯(lián)樣式表,級聯(lián)樣式表包含用戶對一些控件(例如GridView等控件)的樣式屬性設置。為保持頁面外觀的統(tǒng)一,避免對頁面的控件進行重復設計,在應用系統(tǒng)的App_Themes目錄下創(chuàng)建了外觀文件skinfile.skin和級聯(lián)樣式表文件stylesheet.css。
業(yè)務邏輯層主要完成對應用系統(tǒng)相關業(yè)務規(guī)則和邏輯的封裝。在為用戶表示層訪問提供功能調用的同時,它又通過調用數(shù)據(jù)訪問層所提供的功能來訪問數(shù)據(jù)庫。業(yè)務邏輯層主要根據(jù)系統(tǒng)設計的需要,通過構建系統(tǒng)的關鍵對象類,實現(xiàn)系統(tǒng)的大部分邏輯控制功能[5]。在應用程序的App_code目錄下創(chuàng)建一些公共類,包括數(shù)據(jù)訪問類和業(yè)務規(guī)則類。
對數(shù)據(jù)庫的共性操作抽象封裝成數(shù)據(jù)操作類(例如DbHelperSQL),以便更好地復用和使代碼簡潔[6]。在應用程序的App_code目錄下“添加新項”→選擇類,創(chuàng)建dataprocess數(shù)據(jù)訪問類,定義SqlConnection、SqlCommand、SqlCommand []、DataSet、DataTable、SqlDataAdapter、SqlTransaction 等類型的私有變量。為了更安全地連接數(shù)據(jù)庫,采用從應用程序的配置文件web.config中取得數(shù)據(jù)庫連接字符串。定義了數(shù)據(jù)庫的打開連接、關閉連接等方法。dataprocess類的方法說明如下表1所示:
建立了inputcheck類,用來對設備數(shù)據(jù)進行檢查驗證,如字符串長度檢查、數(shù)據(jù)類型檢查、設備價格和數(shù)量檢查等。
在Sql Server 2005數(shù)據(jù)庫平臺上,建立device_manager數(shù)據(jù)庫,用來存儲用戶及設備資源等數(shù)據(jù)信息。數(shù)據(jù)庫設計進行了需求分析、概念結構設計、邏輯結構設計和物理設計。在該數(shù)據(jù)庫下建立各類數(shù)據(jù)庫表,包括部門信息表、用戶信息表、用戶類型表、設備字典表、設備狀態(tài)字典表、設備放置處字典表、設備庫存表、設備入庫單表、設備出庫單表、設備借用表及設備報損報修表等。
使用存儲過程可以減少網(wǎng)絡通信流量,用戶可以通過發(fā)送一條單獨的語句來實現(xiàn)一個復雜的操作,而不需要在網(wǎng)絡上發(fā)送幾百個Transact-SQL代碼,這樣就減少了在服務器和客戶機之間傳遞請求的數(shù)量[7]。系統(tǒng)編寫了大量的存儲過程以提高數(shù)據(jù)訪問的速度與效率。
應用程序的部署采用了發(fā)布網(wǎng)站的方法,發(fā)布網(wǎng)站就是編譯網(wǎng)站程序并將其輸出復制到目標服務器的指定位置[8]。該系統(tǒng)建設完成及部署發(fā)布網(wǎng)站后,在教育技術中心進行了試用。設備管理員對系統(tǒng)使用反映良好,認為系統(tǒng)運行速度快、畫面簡潔明了、方便操作。設備維護人員認為系統(tǒng)使用方便,可隨時隨地在校園網(wǎng)上登錄系統(tǒng),進行查詢及報損報修等。該系統(tǒng)方便了設備管理人員、維護人員和學校教師根據(jù)權限實時方便的管理、查詢教學實驗設備信息。
[1]潘穎.IT企業(yè)人力資源管理系統(tǒng)的設計與開發(fā)[D].成都:電子科技大學,2011:14
[2]董斐.基于B/S模式的獨立學院學籍管理信息系統(tǒng)設計與開發(fā)[D].成都:電子科技大學,2010:49
[3]張珊.基于.Net的高校儀器設備管理系統(tǒng)的設計與實現(xiàn)[D].武漢:武漢科技大學,2009:14
[4]龐婭娟.Asp.net從入門到精通[M].2 版.北京:清華大學出版社,2010:160,693
[5]徐相林.基于ASP.NET技術的B/S三層結構設計和實現(xiàn)[J].電腦知識與技術,2008,(S1):34-35
[6]李天平.亮劍.NET:.NET深入體驗與實戰(zhàn)精要[M].北京:電子工業(yè)出版社,2009:496
[7]黃開枝.SQL Server 2005中文版 基礎教程[M].北京:清華大學出版社,2007:306
[8]崔巍.數(shù)據(jù)庫系統(tǒng)開發(fā)教程[M].北京:清華大學出版社,2010:59