王小潔,王玉潔
(山西職業技術學院,山西 太原 030006)
Web應用系統開發中,當站點龐大、功能模塊復雜、模塊間功能有交叉時,項目需要多部門合作完成。這種情況下,應制定一個統一標準,即設計一個完善的系統框架。三層結構因其能實現“高內聚、低耦合”,便于團隊合作,便于系統的開發和部署,使系統更具安全性、可擴展性和可維護性,而成為目前系統框架設計的首選。
三層結構從下至上部署為數據訪問層(DAL,Data Access Layer)、業務邏輯層(BLL,Business Logic Layer)和表示層(USL,User Show Layer或 UI,User Interface)。
數據訪問層負責對數據庫的訪問,主要解決如何從數據庫中提取和保存數據,完成數據的定義、維護、訪問、更新與管理,響應業務邏輯層的數據請求。
業務邏輯層也叫事務邏輯層或中間層,主要處理一些業務邏輯和業務規則,負責業務處理和數據傳遞,通過定義與數據訪問層相對應的服務和組件服務完成各種業務處理。該層是表示層和數據訪問層之間的橋梁,對數據交換起承上啟下的作用,是整個應用的關鍵。
表示層位于最上層,是用戶與系統的接口,為用戶提供應用程序的訪問。該層主要完成兩個任務:一是從業務邏輯層獲取數據并顯示;二是實現和用戶的交互并將數據送回業務邏輯層進行處理。

圖1 三層結構及各層之間的關系
三層結構中,上層調用下層功能,上層依賴下層,下層為上層提供服務,層間是弱耦合關系。模型層是標準和規范,是表示層、業務邏輯層和數據訪問層之間數據傳遞的載體,包含與數據庫表相對應的實體類,表示層、業務邏輯層和數據訪問層都依賴模型層,三層之間的數據傳遞是通過傳輸實體對象來實現的。三層結構中各層之間的關系如圖1所示。
通過需求分析,將模型數據化,開發基于Web的評教系統,以便通過計算機及網絡系統實施評教過程。在需求分析的基礎上,用知識挖掘的方法,依據大量評測數據,對每位教師的教學過程進行較全面、客觀、準確的評價,從中發現指導教學管理改革的依據。評教系統功能如圖2所示。

圖2 評教系統功能
該系統數據庫用SQL Server 2008數據庫系統設計,文件為cp.mdf,其中包含20個表:學生班級基本信息表class、評語表comment、課程基本信息表course、課程表curriculumschedule、系部基本信息表department、評價項目表item、評教模型表scoremodel、學生基本信息表student、評教表 score、評價結果表 scoreresult、教師基本信息表teacher、用戶表user、評價模型分項權重表weith等。
在Visual Studio 2008中建立C#類型的空白解決方案(Tch),添加模型層(TchModel)、數據訪問層(TchDAL)、業務邏輯層(TchBLL)和表示層(Tchweb),并添加層間依賴關系。
(1)模型層設計
類庫(TchModel)作為系統的模型層。就數據存儲而言,實體類就是數據表,實體類將每一個數據表中的字段定義成屬性,并封裝在一個類中。TchModel的namespace中實體類名和所對應的表名一致。該層中共添加 Teacher.cs、Department.cs、Class.cs、Course.cs、Score.cs、Scoreresult.cs等20個實體類。
C#語言利用賦值函數(get)和取值函數(set),為屬性提供了只讀(get)、只寫(set)、讀寫(get和 set)三種接口操作。以Score.cs類封裝Score表為例,典型代碼如下:

(2)數據訪問層設計
類庫(TchDAL)作為系統的數據訪問層。針對模型層中的每個實體類,數據訪問層都有一個對應的數據訪問類。TchDAL的namespace中對應模型層中的20個實體類,共 添 加 TeacherService.cs、DepartmentService.cs、ClassService.cs、CourseService.cs、ScoreService.cs、ScoreresultService.cs等20個數據訪問類。在每個數據訪問類中,根據需要定義數據的查詢、插入、更新、刪除等方法。另外,為了便于實現數據庫的連接操作,該層中還添加了DBHelper.cs類。
以在ScoreService.cs類中添加獲取評教信息的方法為例,典型代碼如下:


(3)業務邏輯層設計
類庫(TchBLL)作為系統的業務邏輯層。在TchBLL的namespace中,根據表示層的需要添加TeacherManager.cs、DepartmentManager.cs、ScoreManager.cs等,并在其中定義各種業務邏輯和數據傳遞,例如各類人員登錄、身份驗證、添加刪除評教人員、添加刪除被評教師、調整評教模型、評教數據寫入、統計計算評教數據、提供評教數據查詢等方法。
以在ScoreManager.cs類中添加獲取評教信息的方法為例,典型代碼如下:

(4)表示層設計
在表示層中,網站(Tchweb)設計用Div+Css技術布局頁面,以便于系統維護和提高頁面的下載速度,用ASP.NET創 建 defualt.aspx、addtch.aspx、deletedtch.aspx等前臺頁面以及網站后臺管理頁面,實現系統和用戶的交互。
例如,在ScoreList.aspx頁面中添加GridView控件,選擇數據源類型為對象,選擇業務對象為BLL.ScoreM-anager,數據方法選擇為 GetScoreInfo(),返回 DataSet,該控件將數據源中的每個可綁定的列都生成并顯示,還可根據需要自定義顯示的列。
該系統采用ASP.NET的三層結構進行系統框架設計,使評教系統在實現網絡化的同時,具有系統用戶接口靈活、可擴展行強、維護方便等特點,可方便地調整數據庫接口,以連接其他類型的數據庫。系統提供了評價信息收集、評價結果查詢、基本信息輸入、評價模型調整、評價信息匯總等功能,對教師的教學過程進行多層次、全方位的客觀評價,為教師調整工作目標與進程、提高業務素質提供依據,能有效提高學校的教學管理水平。
[1]宋維堂,陳建紅.動態網頁設計(ASP.NET)[M].北京:高等教育出版社,2011:139-200.
[2]杜天行,王光瓊.基于Asp.net三層構架的醫藥公司綜合管理系統設計與實現[J].軟件導刊,2012,(11):92-94.
[3]張永生.ASP_NET2_0技術的三層構架模型開發視頻點播系統 [J].人工智能與識別技術,2008,(16):114-1 16.