王小潔,王玉潔
(山西職業(yè)技術(shù)學(xué)院,山西 太原 030006)
Web應(yīng)用系統(tǒng)開發(fā)中,當(dāng)站點(diǎn)龐大、功能模塊復(fù)雜、模塊間功能有交叉時(shí),項(xiàng)目需要多部門合作完成。這種情況下,應(yīng)制定一個(gè)統(tǒng)一標(biāo)準(zhǔn),即設(shè)計(jì)一個(gè)完善的系統(tǒng)框架。三層結(jié)構(gòu)因其能實(shí)現(xiàn)“高內(nèi)聚、低耦合”,便于團(tuán)隊(duì)合作,便于系統(tǒng)的開發(fā)和部署,使系統(tǒng)更具安全性、可擴(kuò)展性和可維護(hù)性,而成為目前系統(tǒng)框架設(shè)計(jì)的首選。
三層結(jié)構(gòu)從下至上部署為數(shù)據(jù)訪問層(DAL,Data Access Layer)、業(yè)務(wù)邏輯層(BLL,Business Logic Layer)和表示層(USL,User Show Layer或 UI,User Interface)。
數(shù)據(jù)訪問層負(fù)責(zé)對數(shù)據(jù)庫的訪問,主要解決如何從數(shù)據(jù)庫中提取和保存數(shù)據(jù),完成數(shù)據(jù)的定義、維護(hù)、訪問、更新與管理,響應(yīng)業(yè)務(wù)邏輯層的數(shù)據(jù)請求。
業(yè)務(wù)邏輯層也叫事務(wù)邏輯層或中間層,主要處理一些業(yè)務(wù)邏輯和業(yè)務(wù)規(guī)則,負(fù)責(zé)業(yè)務(wù)處理和數(shù)據(jù)傳遞,通過定義與數(shù)據(jù)訪問層相對應(yīng)的服務(wù)和組件服務(wù)完成各種業(yè)務(wù)處理。該層是表示層和數(shù)據(jù)訪問層之間的橋梁,對數(shù)據(jù)交換起承上啟下的作用,是整個(gè)應(yīng)用的關(guān)鍵。
表示層位于最上層,是用戶與系統(tǒng)的接口,為用戶提供應(yīng)用程序的訪問。該層主要完成兩個(gè)任務(wù):一是從業(yè)務(wù)邏輯層獲取數(shù)據(jù)并顯示;二是實(shí)現(xiàn)和用戶的交互并將數(shù)據(jù)送回業(yè)務(wù)邏輯層進(jìn)行處理。
圖1 三層結(jié)構(gòu)及各層之間的關(guān)系
三層結(jié)構(gòu)中,上層調(diào)用下層功能,上層依賴下層,下層為上層提供服務(wù),層間是弱耦合關(guān)系。模型層是標(biāo)準(zhǔn)和規(guī)范,是表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層之間數(shù)據(jù)傳遞的載體,包含與數(shù)據(jù)庫表相對應(yīng)的實(shí)體類,表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層都依賴模型層,三層之間的數(shù)據(jù)傳遞是通過傳輸實(shí)體對象來實(shí)現(xiàn)的。三層結(jié)構(gòu)中各層之間的關(guān)系如圖1所示。
通過需求分析,將模型數(shù)據(jù)化,開發(fā)基于Web的評教系統(tǒng),以便通過計(jì)算機(jī)及網(wǎng)絡(luò)系統(tǒng)實(shí)施評教過程。在需求分析的基礎(chǔ)上,用知識挖掘的方法,依據(jù)大量評測數(shù)據(jù),對每位教師的教學(xué)過程進(jìn)行較全面、客觀、準(zhǔn)確的評價(jià),從中發(fā)現(xiàn)指導(dǎo)教學(xué)管理改革的依據(jù)。評教系統(tǒng)功能如圖2所示。
圖2 評教系統(tǒng)功能
該系統(tǒng)數(shù)據(jù)庫用SQL Server 2008數(shù)據(jù)庫系統(tǒng)設(shè)計(jì),文件為cp.mdf,其中包含20個(gè)表:學(xué)生班級基本信息表class、評語表comment、課程基本信息表course、課程表curriculumschedule、系部基本信息表department、評價(jià)項(xiàng)目表item、評教模型表scoremodel、學(xué)生基本信息表student、評教表 score、評價(jià)結(jié)果表 scoreresult、教師基本信息表teacher、用戶表user、評價(jià)模型分項(xiàng)權(quán)重表weith等。
在Visual Studio 2008中建立C#類型的空白解決方案(Tch),添加模型層(TchModel)、數(shù)據(jù)訪問層(TchDAL)、業(yè)務(wù)邏輯層(TchBLL)和表示層(Tchweb),并添加層間依賴關(guān)系。
(1)模型層設(shè)計(jì)
類庫(TchModel)作為系統(tǒng)的模型層。就數(shù)據(jù)存儲而言,實(shí)體類就是數(shù)據(jù)表,實(shí)體類將每一個(gè)數(shù)據(jù)表中的字段定義成屬性,并封裝在一個(gè)類中。TchModel的namespace中實(shí)體類名和所對應(yīng)的表名一致。該層中共添加 Teacher.cs、Department.cs、Class.cs、Course.cs、Score.cs、Scoreresult.cs等20個(gè)實(shí)體類。
C#語言利用賦值函數(shù)(get)和取值函數(shù)(set),為屬性提供了只讀(get)、只寫(set)、讀寫(get和 set)三種接口操作。以Score.cs類封裝Score表為例,典型代碼如下:
(2)數(shù)據(jù)訪問層設(shè)計(jì)
類庫(TchDAL)作為系統(tǒng)的數(shù)據(jù)訪問層。針對模型層中的每個(gè)實(shí)體類,數(shù)據(jù)訪問層都有一個(gè)對應(yīng)的數(shù)據(jù)訪問類。TchDAL的namespace中對應(yīng)模型層中的20個(gè)實(shí)體類,共 添 加 TeacherService.cs、DepartmentService.cs、ClassService.cs、CourseService.cs、ScoreService.cs、ScoreresultService.cs等20個(gè)數(shù)據(jù)訪問類。在每個(gè)數(shù)據(jù)訪問類中,根據(jù)需要定義數(shù)據(jù)的查詢、插入、更新、刪除等方法。另外,為了便于實(shí)現(xiàn)數(shù)據(jù)庫的連接操作,該層中還添加了DBHelper.cs類。
以在ScoreService.cs類中添加獲取評教信息的方法為例,典型代碼如下:
(3)業(yè)務(wù)邏輯層設(shè)計(jì)
類庫(TchBLL)作為系統(tǒng)的業(yè)務(wù)邏輯層。在TchBLL的namespace中,根據(jù)表示層的需要添加TeacherManager.cs、DepartmentManager.cs、ScoreManager.cs等,并在其中定義各種業(yè)務(wù)邏輯和數(shù)據(jù)傳遞,例如各類人員登錄、身份驗(yàn)證、添加刪除評教人員、添加刪除被評教師、調(diào)整評教模型、評教數(shù)據(jù)寫入、統(tǒng)計(jì)計(jì)算評教數(shù)據(jù)、提供評教數(shù)據(jù)查詢等方法。
以在ScoreManager.cs類中添加獲取評教信息的方法為例,典型代碼如下:
(4)表示層設(shè)計(jì)
在表示層中,網(wǎng)站(Tchweb)設(shè)計(jì)用Div+Css技術(shù)布局頁面,以便于系統(tǒng)維護(hù)和提高頁面的下載速度,用ASP.NET創(chuàng) 建 defualt.aspx、addtch.aspx、deletedtch.aspx等前臺頁面以及網(wǎng)站后臺管理頁面,實(shí)現(xiàn)系統(tǒng)和用戶的交互。
例如,在ScoreList.aspx頁面中添加GridView控件,選擇數(shù)據(jù)源類型為對象,選擇業(yè)務(wù)對象為BLL.ScoreM-anager,數(shù)據(jù)方法選擇為 GetScoreInfo(),返回 DataSet,該控件將數(shù)據(jù)源中的每個(gè)可綁定的列都生成并顯示,還可根據(jù)需要自定義顯示的列。
該系統(tǒng)采用ASP.NET的三層結(jié)構(gòu)進(jìn)行系統(tǒng)框架設(shè)計(jì),使評教系統(tǒng)在實(shí)現(xiàn)網(wǎng)絡(luò)化的同時(shí),具有系統(tǒng)用戶接口靈活、可擴(kuò)展行強(qiáng)、維護(hù)方便等特點(diǎn),可方便地調(diào)整數(shù)據(jù)庫接口,以連接其他類型的數(shù)據(jù)庫。系統(tǒng)提供了評價(jià)信息收集、評價(jià)結(jié)果查詢、基本信息輸入、評價(jià)模型調(diào)整、評價(jià)信息匯總等功能,對教師的教學(xué)過程進(jìn)行多層次、全方位的客觀評價(jià),為教師調(diào)整工作目標(biāo)與進(jìn)程、提高業(yè)務(wù)素質(zhì)提供依據(jù),能有效提高學(xué)校的教學(xué)管理水平。
[1]宋維堂,陳建紅.動態(tài)網(wǎng)頁設(shè)計(jì)(ASP.NET)[M].北京:高等教育出版社,2011:139-200.
[2]杜天行,王光瓊.基于Asp.net三層構(gòu)架的醫(yī)藥公司綜合管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2012,(11):92-94.
[3]張永生.ASP_NET2_0技術(shù)的三層構(gòu)架模型開發(fā)視頻點(diǎn)播系統(tǒng) [J].人工智能與識別技術(shù),2008,(16):114-1 16.