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