段艷萍,羅麗云,簡碧園(廣州科技職業(yè)技術(shù)學(xué)院,廣東 廣州 510550)
?
ASP.NET基于三層架構(gòu)的網(wǎng)站設(shè)計與開發(fā)
段艷萍,羅麗云,簡碧園
(廣州科技職業(yè)技術(shù)學(xué)院,廣東 廣州 510550)
摘 要:在計算機網(wǎng)站開發(fā)中,應(yīng)用ASP.NET組件進行開發(fā)的計算機軟件系統(tǒng)中,一般情況下這個計算機軟件系統(tǒng)的一個重要核心工作就是要實現(xiàn)網(wǎng)站的的數(shù)據(jù)訪問功能。ASP.NET三層架構(gòu)體系就是為了實現(xiàn)ASP.NET組件開發(fā)的網(wǎng)站的結(jié)構(gòu)性以及重要性而應(yīng)用的一種計算機系統(tǒng)軟件開發(fā)模式。本文主要從ASP.NET三層架構(gòu)體系的設(shè)計以及ASP.NET MVC體系在實際網(wǎng)站開發(fā)中的應(yīng)用,ASP.NET三層架構(gòu)體系以及它的應(yīng)用進行分析論述。
關(guān)鍵詞:數(shù)據(jù)訪問層;業(yè)務(wù)邏輯層;表現(xiàn)層
三層構(gòu)架就是將整個業(yè)務(wù)應(yīng)用劃分成表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。具體結(jié)構(gòu)如圖1所示。每一層都有明確的功能,各層之間互不影響,使得應(yīng)用系統(tǒng)的開發(fā)、升級、維護得到了大大簡化。
圖1
在設(shè)計模式上,三層架構(gòu)的三層分別為:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。表示層為面向用戶的部分,可以是web方式也可以是winform方式,其為面向用戶的部分,為用戶提供交互式的界面,用來接收用戶的請求并顯示返回的數(shù)據(jù)給用戶。業(yè)務(wù)邏輯層主要實現(xiàn)程序業(yè)務(wù)上的功能,對程序接收的數(shù)據(jù)進行相應(yīng)的處理,針對數(shù)據(jù)訪問層進行操作,來完成一系列的功能,除了低級別的系統(tǒng)和支持功能,所有對數(shù)據(jù)庫服務(wù)器的調(diào)用都通過這層,即所有的用戶命令由這一層通過調(diào)用數(shù)據(jù)訪問層的方法來實現(xiàn)。數(shù)據(jù)訪問層,其封裝了一些對數(shù)據(jù)庫中原始數(shù)據(jù)的一些操作,根據(jù)上一層的要求制定相應(yīng)的SQL語句,返回數(shù)據(jù)庫中的值或?qū)?shù)據(jù)存入數(shù)據(jù)庫,例如對數(shù)據(jù)的增加、刪除、修改、查詢等。三層架構(gòu)為嚴格的分層方法,雖然用ASP. NET實現(xiàn)系統(tǒng)功能時在每一層都可以實現(xiàn)其他層功能,但在三層架構(gòu)方法中有嚴格的限制,要求每一層對只向上一層提供相應(yīng)的接口,其對上一層和下一層部分都是透明的即不可見的,只有這樣,三層架構(gòu)給系統(tǒng)帶來的高耦合低內(nèi)聚優(yōu)點才得以體現(xiàn)。表示層為面向用戶的部分,業(yè)務(wù)邏輯層只能被表示層所調(diào)用,數(shù)據(jù)訪問層只能被業(yè)務(wù)邏輯層所調(diào)用,數(shù)據(jù)訪問層對數(shù)據(jù)庫中的數(shù)據(jù)進行相應(yīng)的操作。一個最基本的三層架構(gòu)系統(tǒng)所要做到就是修改任何一層時,都不會影響其他層的使用。解決方案包含的項目,如圖2所示。
圖2 解決方案包含的項目
在體育用品電子商務(wù)網(wǎng)站中。表示層接受用戶的請求,并把用戶請求的數(shù)據(jù)傳送到業(yè)務(wù)邏輯層。業(yè)務(wù)邏輯層調(diào)用相關(guān)規(guī)則,對數(shù)據(jù)訪問層進行操作。數(shù)據(jù)訪問層直接對數(shù)據(jù)庫進行操作修改,并把相關(guān)數(shù)據(jù)傳回業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層再把數(shù)據(jù)傳給表現(xiàn)層,表現(xiàn)層再把結(jié)果呈現(xiàn)給用戶。在這個過程中,表現(xiàn)層相當(dāng)于與用戶交互的界面,用于接收用戶輸入的數(shù)據(jù)和顯示處理后用戶需要的數(shù)據(jù);業(yè)務(wù)邏輯層就是表現(xiàn)層和數(shù)據(jù)訪問層之間的橋梁。實現(xiàn)業(yè)務(wù)邏輯;數(shù)據(jù)訪問層與數(shù)據(jù)庫打交道。主要實現(xiàn)對數(shù)據(jù)的增、刪、改、查。將存儲在數(shù)據(jù)庫中的數(shù)據(jù)提交給業(yè)務(wù)邏輯層,同時將業(yè)務(wù)邏輯層處理的數(shù)據(jù)保存到數(shù)據(jù)庫。
3.1創(chuàng)建數(shù)據(jù)庫使用
SQL Server 2012創(chuàng)建一個SportShop數(shù)據(jù)庫,在數(shù)據(jù)庫中創(chuàng)建五個表:Products(產(chǎn)品信息表)、Manufacturer (供應(yīng)商表)、Order(訂單信息表)、Users (用戶信息表)、UserRoles(用戶角色表)等,并創(chuàng)建好各表的主要字段及各表之間的約束關(guān)系。
3.2創(chuàng)建業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層項目一般命名為“BLL”或解決方案名+BLL”.體育用品電子商務(wù)網(wǎng)站采用“BLL”作為業(yè)務(wù)邏輯層的名稱,其名稱空間為BLL。
在Visual Studio中,執(zhí)行“文件”->”新建”,在項目彈出對話框中選擇“其他項目類型”下面的“Visual Studio解決方案”,單擊“空白解決方案”,建立空白解決方案后,在vs2010右邊的解決方案資源管理器中,可以看到剛建立的解決方案,單擊選中它,然后右鍵選擇“添加”->新建項目->Visual C#->類庫,選擇“類庫”以后,把名稱命名為:BLL,此時業(yè)務(wù)邏輯層項目“BLL”便被添加到解決方案“SportMall”中。
3.3創(chuàng)建數(shù)據(jù)訪問層
數(shù)據(jù)訪問層項目一般命名為“DAL或解決方案名+DAL”.搭建數(shù)據(jù)訪問層的步驟與搭建業(yè)務(wù)邏輯層一致,唯一不同的是“新建項目”對話框中輸入的項目名稱應(yīng)為“DAL”,數(shù)據(jù)訪問層項目“DAL”便被添加到解決方案“SportMall”中。
3.4表示層
在體育用品電子商務(wù)網(wǎng)站的解決方案”SportMall”中,項目“Web”就是系統(tǒng)中的表示層。整個網(wǎng)站所有Web頁面全部存放在此項目文件夾下。
3.5設(shè)置各層之間的依賴關(guān)系
體育用品點在商務(wù)網(wǎng)站的“三層架構(gòu)”已搭建完成,但各個層之間是各自獨立的,這就需要設(shè)置各層的依賴關(guān)系。
3.5.1設(shè)置表示層對業(yè)務(wù)邏輯層的依賴
在"解決方案資源管理器"中,在表示層上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇"添加引用"命令,在打開的"添加引用"對話框中,選擇"項目"選項卡,選中項目名稱為"BLL"項目,單擊“確定”按鈕。添加引用后,“Web”表引用“BLL”層。
3.5.2設(shè)置業(yè)務(wù)邏輯層對數(shù)據(jù)訪問層的依賴
業(yè)務(wù)邏輯層對數(shù)據(jù)訪問層的依賴實現(xiàn)過程與表示層對業(yè)務(wù)邏輯層的依賴實現(xiàn)過程一致。另外特別注意三層結(jié)構(gòu)是一種嚴格的分層方法,表示層只能引用業(yè)務(wù)邏輯層,不能直接引用數(shù)據(jù)訪問層,數(shù)據(jù)訪問層也不能引用表示層。
(1)每一層由不同開發(fā)人員開發(fā)的網(wǎng)站中,開發(fā)人員可以只關(guān)注整個結(jié)構(gòu)中的其中某一層。
(2)可以使得系統(tǒng)的結(jié)構(gòu)更加清楚,分工更加明確,有利于系統(tǒng)的分工合作和后期維護。
(3)利于各層邏輯的復(fù)用。
使用三層架構(gòu)開發(fā)項目,表示層僅僅負責(zé)接收及顯示數(shù)據(jù),數(shù)據(jù)訪問層僅僅負責(zé)對數(shù)據(jù)的訪問操作,而由業(yè)務(wù)邏輯層根據(jù)業(yè)務(wù)需求來調(diào)用數(shù)據(jù)訪問層的方法。各層之間職責(zé)明確,實現(xiàn)了層內(nèi)部的高內(nèi)聚,降低了層與層之間的耦合度,使項目易于維護和擴展。
[參考文獻]
[1] 明日科技.ASP.NET從入門到精通[M].北京:清華大學(xué)出版社,2012.
[2] 王 翔.ASP.NET網(wǎng)站建設(shè)教程[M].北京:北京郵電大學(xué)出版社,2012.
[3] Matthew Mac Donald.ASP.NET高級程序設(shè)計[M].北京:人民郵電出版社,2011.
[4] 淺談如何建立三層體ASP 應(yīng)用程序.http://industry.ccidnet. com.
[5] 龐開放,李龍澍.基于.NET 框架的 web 應(yīng)用與實現(xiàn)[J].微機發(fā)展,2005,15(3).
Design and Development of Website Based on Three Layer Architecture of ASP.NET
Duan yanping,Luo liyun,Jian biyuan
( Guangzhou Vocational College of Science and Technology,Guangzhou,510550,China)
Abstract:In the computer web development and application of ASP. Net component to develop a computer software system, under normal circumstances the computer software system of a core work is to achieve site data access functionality. ASP.NET three tier architecture system is a computer system software development model to realize the structure and the importance of the website of ASP.NET component development. This article mainly from the ASP.NET three tier architecture system design as well as the MVC ASP.NET system in the actual website development application, ASP.NET three layer structure system as well as its application carries on the analysis elaboration.
Key words:data access layer;business logic layer;presentation layer
作者簡介:段艷萍(1980-),女,碩士,講師;研究方向:軟件技術(shù)。