張婧
摘 要 ASP.NET三層架構(gòu)體系是為了實現(xiàn)ASP.NET組件開發(fā)的計算機系統(tǒng)軟件的結(jié)構(gòu)性以及可重用性而應(yīng)用的一種計算機系統(tǒng)軟件的開發(fā)模式,本文論述了ASP.NET三層架構(gòu)應(yīng)用軟件的設(shè)計思想及其優(yōu)缺點,并在其指導(dǎo)下完成了排課系統(tǒng)基本信息網(wǎng)上錄入部分。
關(guān)鍵詞 ASP.NET 系統(tǒng)開發(fā) 三層架構(gòu)
中圖分類號:TP311 文獻標識碼:A
0引言
三層架構(gòu)體系結(jié)構(gòu)是面向?qū)ο笏枷氚l(fā)展中的必然產(chǎn)物。三層架構(gòu)是指在客戶端和數(shù)據(jù)庫服務(wù)之間加入了一個“中間層”,通過引入中間層,將復(fù)雜的商業(yè)邏輯從傳統(tǒng)的二層架構(gòu)應(yīng)用模型中分離出來,實現(xiàn)了程序的“高內(nèi)聚,低耦合”,有效地提升了應(yīng)用程序的安全性、封裝利用性、易維護性、穩(wěn)定性和兼容性。
1 ASP.NET三層架構(gòu)體系
三層架構(gòu)體系如圖1所示,由上而下分別為表示層,業(yè)務(wù)邏輯層及數(shù)據(jù)訪問層。三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中間層業(yè)務(wù)邏輯層進行處理,通常情況下,客戶端不直接與數(shù)據(jù)庫進行交互,而是通過與業(yè)務(wù)邏輯層建立連接,再經(jīng)由業(yè)務(wù)邏輯層與數(shù)據(jù)庫進行交互。
1.1表示層
位于最處層(最上層),離用戶最近,由用戶直接操作,用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。
1.2業(yè)務(wù)邏輯層
是系統(tǒng)架構(gòu)中的核心部分,它處于表示層與數(shù)據(jù)訪問層的中間,它一方面調(diào)用數(shù)據(jù)訪問層的類和方法實現(xiàn)應(yīng)用系統(tǒng)中的業(yè)務(wù)規(guī)則;一方面封裝相應(yīng)的調(diào)用方法供表示層調(diào)用,提供所有與數(shù)據(jù)庫的操作,包括從數(shù)據(jù)返回數(shù)據(jù)集,向數(shù)據(jù)庫更新數(shù)據(jù)及部分數(shù)據(jù)驗證。業(yè)務(wù)邏輯層不應(yīng)該出現(xiàn)訪問數(shù)據(jù)庫的代碼即不應(yīng)該出現(xiàn)SQL語句或存儲過程,因為它們屬于數(shù)據(jù)訪問層的范疇,當然也不能出現(xiàn)界面元素如控件等。
1.3數(shù)據(jù)訪問層
是專門跟數(shù)據(jù)庫進行進行交互的,可以實現(xiàn)對數(shù)據(jù)的添加刪除、修改及查詢等功能,所有的數(shù)據(jù)對象只在這一層被引用。
2三層架構(gòu)的優(yōu)缺點
三層架構(gòu)的優(yōu)點:
(1)可把任務(wù)分解,有利于團隊合作開發(fā)。每個層的開發(fā)人員無需了解其他層的工作,如此可以控制軟件質(zhì)量。
(2)三層架構(gòu)軟件適應(yīng)性很強,且易于維護。如果要修改應(yīng)用程序代碼,只需要對業(yè)務(wù)邏輯層進行修改,因而代碼的利用率很高。而且其中一層的改變不影響其他層,如此就簡化了應(yīng)用系統(tǒng)的開發(fā)、更新和升級工作,因此非常適用于商業(yè)規(guī)則經(jīng)常變化的系統(tǒng)。
比起兩層架構(gòu),三層架構(gòu)的缺點是:
(1)性能降低。因為增加了一層,所以執(zhí)行速度較慢一些,因此此開發(fā)模式不適用于對執(zhí)行速度要求非常高的系統(tǒng)。
(2)級聯(lián)錯識。分層之后,代碼之間調(diào)用增多,當修改某個層的變量發(fā)生變化,會延伸到多個業(yè)務(wù)層。當程序需要在表示層增加功能時,將不得不在相應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層編寫相關(guān)的代碼,以保證整個程序設(shè)計符合三層架構(gòu)的格式。
3三層架構(gòu)指導(dǎo)排課基本信息網(wǎng)上錄入系統(tǒng)
基于三層架構(gòu)的排課基本信息網(wǎng)上錄入部分,其中,Tableware是表示層,包含了所有學生成績基本信息錄入窗體界面,BLL表示業(yè)務(wù)邏輯層,響應(yīng)表示層的相關(guān)操作,處理相關(guān)的業(yè)務(wù)操作,DAL是據(jù)訪問層,主要負責對數(shù)據(jù)庫的訪問操作;MODEL是與數(shù)據(jù)庫表對應(yīng)的實體類; Aml為一些基礎(chǔ)的邏輯方法;Control為一些自定義控件,直接為表示層服務(wù)。它們之間的邏輯引用關(guān)系及對數(shù)據(jù)的訪問流程如圖2所示,當用戶操作表示層界面TableWare請求訪問數(shù)據(jù)時,業(yè)務(wù)邏輯層BLL將用戶請求轉(zhuǎn)換為對數(shù)據(jù)訪問層的請求,數(shù)據(jù)訪問層DAL實現(xiàn)對數(shù)據(jù)庫。
數(shù)據(jù)的操作及訪問,并將返回的結(jié)果返回給業(yè)務(wù)邏輯層,再由業(yè)務(wù)邏輯層將數(shù)據(jù)訪問層的返回結(jié)果提交給表示層,表示層上呈現(xiàn)的數(shù)據(jù)則是用戶最終看到的數(shù)據(jù)。DAL中有一個公共類[5]SQLHelper,這個類存儲實現(xiàn)對數(shù)據(jù)庫的操作如添加、查詢、刪除及修改數(shù)據(jù)的通用方法, DAL引用Model,BLL引用Aml,而Control自定義的控件直接為表示層TableWare所引用。然后在三層架構(gòu)的指導(dǎo)下完成了整個排課基本信息錄入系統(tǒng),包括用戶登錄,管理員基本信息、學生基本信息、教師基本信息、班級基本信息、課程基本信息、排課信息的增、刪、改、查等功能。
4結(jié)語
基于ASP.NET的三層架構(gòu)體系方便地實現(xiàn)模塊化設(shè)計的思想,實現(xiàn)代碼的可重用性。在實際開發(fā)中特別是業(yè)務(wù)邏輯經(jīng)常變化的系統(tǒng)中有良好的效果。
參考文獻
[1] 王立明.基于三層架構(gòu)的校園網(wǎng)站設(shè)計與實現(xiàn)[D].河北師范大學,2013(5).
[2] 李振,郭旭輝.asp.net編程從基礎(chǔ)到應(yīng)用[M].清華大學出版社,2014(3).
[3] 段升杰.淺談三層架構(gòu)開發(fā)[J].信息與電腦,2010(5).