摘 要:文中針對ASP.NET開發(fā)數(shù)據(jù)庫的系統(tǒng),首先簡要的分析了其三層架構(gòu),接著給出了系統(tǒng)實(shí)現(xiàn)的以下過程:創(chuàng)建數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)訪問層、創(chuàng)建業(yè)務(wù)邏輯層和表示層-使用ObjectDataSource展現(xiàn)數(shù)據(jù),這一分析對于數(shù)據(jù)庫開發(fā)具有一定的參考價(jià)值。
關(guān)鍵詞:ASP.NET;開發(fā)數(shù)據(jù)庫;三層架構(gòu);邏輯層
中圖分類號:TP311.52
在開發(fā)Web應(yīng)用方面,ASP.NET的難度則要比ASP低一些,且效率更高。Web開發(fā)基本上還是以數(shù)據(jù)操作為主,創(chuàng)建數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)存儲、訪問以及更改,設(shè)計(jì)界面,對數(shù)據(jù)進(jìn)行采集和顯現(xiàn)。本文針對ASP.NET開發(fā)數(shù)據(jù)庫分析了其三層架構(gòu)系統(tǒng),,這一分析對于數(shù)據(jù)庫開發(fā)具有一定的參考價(jià)值,。
1 ASP.NET開發(fā)數(shù)據(jù)庫三層架構(gòu)
如同J2EE中MVC模式,設(shè)計(jì)模式中的分層架構(gòu)角色分明,相互獨(dú)立。因此,當(dāng)其中一層的需求有所改變時(shí),僅需對該層中的代碼進(jìn)行修改即可,對其他層并無任何影響。從而使得開發(fā)中的分工更加的明確,便于重用組件。因此近年來在研究模式方面取得了一系列的成果,并得到了廣泛的應(yīng)用。在開發(fā)和維護(hù)程序方面,模式的好與壞具有較大影響。ASP.NET三層架構(gòu)由下往上分別是數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層以及表示層。如圖1所示:
數(shù)據(jù)訪問層:簡稱為DAL,其數(shù)據(jù)訪問層是一個類型較強(qiáng)的DataSet,僅僅對數(shù)據(jù)采取一些通用的訪問方法,如添加、刪除、修改、查詢以及判斷等,“事務(wù)”是不允許存在的。
業(yè)務(wù)邏輯層:簡稱為BLL,它是實(shí)現(xiàn)DAL與PL層之間數(shù)據(jù)交換的紐帶,根據(jù)業(yè)務(wù)需求對DAL中的方法組合進(jìn)行調(diào)用,將不通的業(yè)務(wù)規(guī)則集中到一個業(yè)務(wù)邏輯層中,如:以條件為判斷依據(jù)的數(shù)據(jù)操作等。業(yè)務(wù)邏輯層的實(shí)現(xiàn)形式均為類庫。
表示層:簡稱PL,作為一種交互式服務(wù)圖形界面,用戶可對應(yīng)于服務(wù)進(jìn)行更好的了解和定位,通過ASP.NET頁面將傳輸于BLL中的數(shù)據(jù)呈現(xiàn)給用戶。
2 三層架構(gòu)系統(tǒng)應(yīng)用
ASP.NET的持續(xù)發(fā)展,使得它在B/S三層架構(gòu)應(yīng)用程序創(chuàng)建方面的應(yīng)用變得更加的容易,接下來就通過教師業(yè)務(wù)信息管理系統(tǒng)來介紹一個三層架構(gòu)的應(yīng)用程序的構(gòu)建中ASP.NET 2.0與SQL Server 2005數(shù)據(jù)庫的應(yīng)用。
2.1 創(chuàng)建數(shù)據(jù)庫
將SQL Server 2005打開,創(chuàng)建一個TeacherDb數(shù)據(jù)庫,創(chuàng)建一個PersonInfo表與JobInfo表,結(jié)構(gòu)見下圖。這兩個表的關(guān)聯(lián)字段為PersonIDNumber,用于對十八位身份證號碼進(jìn)行存儲。
2.2 創(chuàng)建數(shù)據(jù)訪問層
第一步,我們要先進(jìn)行網(wǎng)站的創(chuàng)建,完成數(shù)據(jù)庫鏈接的配置,再對數(shù)據(jù)訪問層進(jìn)行創(chuàng)建。
(1)進(jìn)行Web項(xiàng)目的創(chuàng)建,完成數(shù)據(jù)庫連接的配置。將Visual Studio 2005打開,第一步是建立一個ASP.NET網(wǎng)站,語言為C#,以WebSite進(jìn)行命名,文件系統(tǒng)用于對位置列表選項(xiàng)的設(shè)置,再選定一個文件夾以存儲該網(wǎng)站,接著將編程語言設(shè)定成C#,接著就會有一個新網(wǎng)站、Default.aspx網(wǎng)頁以及App_Data文件夾生成。
(2)進(jìn)行數(shù)據(jù)訪問層的創(chuàng)建,完成數(shù)據(jù)庫連接的配置。開始數(shù)據(jù)訪問層的創(chuàng)建,新增一個類型較強(qiáng)的DataSet。進(jìn)入解決方案管理器頁面,選定項(xiàng)目節(jié)點(diǎn),點(diǎn)擊鼠標(biāo)右鍵,選擇菜單中的“添加新項(xiàng)”,接著選擇模板列單中的“數(shù)據(jù)集”,以DataSet1.xsd進(jìn)行命名。接著“TableAdpater”配置向?qū)Ы缑鏁棾觯c(diǎn)擊數(shù)據(jù)庫服務(wù)器,對每個參數(shù)進(jìn)行設(shè)置,同時(shí)根據(jù)提示完成每一個步驟。
根據(jù)項(xiàng)目需求,分別為數(shù)據(jù)庫中每個表的查詢操作進(jìn)行相應(yīng)方法的建立。凡是與底層數(shù)據(jù)源有關(guān)的編碼均應(yīng)存儲于數(shù)據(jù)訪問層中,如:到數(shù)據(jù)庫的連接,發(fā)出一系列命令的編碼。對于PL而言,不應(yīng)有對相關(guān)數(shù)據(jù)訪問編碼的一切引用,對于一切數(shù)據(jù)訪問請求應(yīng)通過對數(shù)據(jù)訪問層中編碼的調(diào)用來進(jìn)行處理。
2.3 創(chuàng)建業(yè)務(wù)邏輯層
PL中的數(shù)據(jù)訪問細(xì)節(jié)可通過DAL進(jìn)行分隔,但對于所有業(yè)務(wù)規(guī)則它無法進(jìn)行處理。
步驟一:BLL類的創(chuàng)建
創(chuàng)建兩個類文件,將其放置于App_Code文件夾中,在解決方案瀏覽器中,在App_Code文件夾處點(diǎn)擊鼠標(biāo)右鍵,在彈出的選框中選擇新建項(xiàng)目,再點(diǎn)擊彈出選框中的“類”模板,便可實(shí)現(xiàn)新的類文件的創(chuàng)建了。分別以UserBLL與JobBLL作為以上兩個文件的名字。
步驟二:利用BLL類對類型化數(shù)據(jù)集進(jìn)行訪問。
2.4 表示層-使用ObjectDataSource展現(xiàn)數(shù)據(jù)
當(dāng)應(yīng)用程序架構(gòu)完成了,便可對各種類型的報(bào)表進(jìn)行呈現(xiàn)。由于ASP.NET 2.0的數(shù)據(jù)源控件的存在,我們可以很方便的從BLL中對數(shù)據(jù)進(jìn)行綁定,以致于無需通過手寫來完成代碼的編寫。
步驟一:新增Object Data Source控件并進(jìn)行相應(yīng)的配置
(1)創(chuàng)建一個Web窗體模板文件,將C#作為邏輯語言,點(diǎn)擊“將代碼發(fā)在單獨(dú)文件中”;
(2)添加一個Gird View控件,在智能標(biāo)記中有一個選項(xiàng)是“配置數(shù)據(jù)源”,在其子選項(xiàng)中有一個“新建數(shù)據(jù)源…”選項(xiàng),點(diǎn)擊過后進(jìn)入數(shù)據(jù)源配置向?qū)?,再新增一個Object Data Source;
(3)進(jìn)入數(shù)據(jù)源配置向?qū)А5谝徊绞菍⒁粋€業(yè)務(wù)對象分配給Object Data Source。若在“只顯示數(shù)據(jù)組件”前選框前打“√”,則未通過[Data Object]特征進(jìn)行修飾的對象是不會出現(xiàn)在下拉框中,若不打“√”,則會一切對象都會顯示出來。點(diǎn)擊下拉框中的業(yè)務(wù)對象User BLL。
按照頁面設(shè)計(jì)需求,將對應(yīng)的業(yè)務(wù)對象的方法分配給以下四個操作:SELECT、INSERT、UPDATE以及DELETE。之前已在BLL中對以上方法進(jìn)行了定義。若通過Grid View與Details View服務(wù)器控件來對數(shù)據(jù)進(jìn)行展現(xiàn),就一定要進(jìn)行SELECT操作。
步驟二:Grid View的配置
選擇Grid View的智能標(biāo)記中的“編輯列”選項(xiàng),將“選定的字段”的標(biāo)題名和格式設(shè)置好,將多余的列刪掉,新增命令字段等。操作起來比較繁雜,可實(shí)現(xiàn)翻閱相關(guān)資料。
3 結(jié)束語
大多數(shù)使用ASP.NET組件開發(fā)的系統(tǒng)一個核心工作是實(shí)現(xiàn)數(shù)據(jù)訪問功能,為了增加軟件的結(jié)構(gòu)性和可重用性,引入了三層架構(gòu)軟件開發(fā)模式,文中的分析還需要進(jìn)一步完善才能有更廣的應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]吳小欣,王宏旭.C#.NET下三層架構(gòu)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)調(diào)試分析[J].硅谷,2012(23):166+162.
[2]劉林.ASP.NET開發(fā)數(shù)據(jù)庫三層架構(gòu)系統(tǒng)初探[J].電腦編程技巧與維護(hù),2013(03):37-42.
[3]徐楓.ASP.NET三層架構(gòu)體系分析與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2011(08):109-110.
[4]王海燕. C#.NET下三層架構(gòu)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012(06):78-81.
作者單位:江陰興澄特種鋼鐵有限公司,江蘇江陰 214429