下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
?NET三層架構(gòu)與三層架構(gòu)下GridView控件增刪改操作詳解(一)今天我們講解何為三層架構(gòu):所謂三層架構(gòu)(3-tierapplication)就是將整個業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。區(qū)分層次的目的即為了''高內(nèi)聚、低耦合〃的思想。1、 表現(xiàn)層(UI):主要是指與用戶交互的界面,用于顯示數(shù)據(jù)和接受用戶輸入的數(shù)據(jù),將用戶輸入的數(shù)據(jù)傳遞給業(yè)務(wù)邏輯層,一般不包含任何實際的業(yè)務(wù)處理,當(dāng)業(yè)務(wù)邏輯層的數(shù)據(jù)發(fā)生變化時,表示層就會顯示出更新的結(jié)果。表示層提供應(yīng)用程序的用戶界面,通常為Windows應(yīng)用程序或Web應(yīng)用程序。2、 業(yè)務(wù)邏輯層(BLL):是表示層和數(shù)據(jù)訪問層之間的橋梁,它代表應(yīng)用程序的核心功能,負(fù)責(zé)處理數(shù)據(jù)層的數(shù)據(jù),實現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層通常為類庫。3、 數(shù)據(jù)訪問層(DAL):主要實現(xiàn)對數(shù)據(jù)的保存和讀取操作,將存儲在數(shù)據(jù)庫中的數(shù)據(jù)提交給業(yè)務(wù)層,同時將業(yè)務(wù)層處理的數(shù)據(jù)保存到數(shù)據(jù)庫中。數(shù)據(jù)訪問層可以訪問關(guān)系數(shù)據(jù)庫、文本文件或者XML文檔,通常為類庫。三層架構(gòu)對應(yīng)的圖如下圖所示:為了更好地讓初學(xué)者輕松入門,這里仍然采用趣味性的方式聊一些常用技術(shù)點,致力于.NET新手們的快速提高!知識都是普通的,關(guān)鍵是學(xué)習(xí)的思路。技術(shù)源于生活,技術(shù)原來可以這樣學(xué)。拋磚引玉而已。層次結(jié)構(gòu)在現(xiàn)實社會里隨處可見。記得有個笑話講有個村長得意地向他老婆吹牛:''全中國只有四個人比我官大,鄉(xiāng)長、縣長、省長和國務(wù)院總理〃。這個笑話也體現(xiàn)了真實社會中分層的現(xiàn)象。社會人群會分層,公司人員結(jié)構(gòu)也會分層,樓房是分層的,甚至做包子的籠屜都是分層的。雖然分層的目的各有不同,但都是為解決某一問題而產(chǎn)生的。所以,分層架構(gòu)其實是為了解決某一問題而產(chǎn)生的一種解決方案。1、常用的三層架構(gòu)設(shè)計軟件系統(tǒng)最常用的一般會講到三層架構(gòu),其實就是將整個業(yè)務(wù)應(yīng)用劃分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層等,有的還要細(xì)一些,通過分解業(yè)務(wù)細(xì)節(jié),將不同的功能代碼分散開來,
更利于系統(tǒng)的設(shè)計和開發(fā),同時為可能的變更提供了更小的單元,十分有利于系統(tǒng)的維護和擴展。常見的三層架構(gòu)基本包括如下幾個部分,如圖1所示。圖1常見的三層架構(gòu)*數(shù)據(jù)訪問層DAL:用于實現(xiàn)與數(shù)據(jù)庫的交互和訪問,從數(shù)據(jù)庫獲取數(shù)據(jù)或保存數(shù)據(jù)到數(shù)據(jù)庫的部分。*業(yè)務(wù)邏輯層BLL:業(yè)務(wù)邏輯層承上啟下,用于對上下交互的數(shù)據(jù)進行邏輯處理,實現(xiàn)業(yè)務(wù)目標(biāo)。*表示層Web:主要實現(xiàn)和用戶的交互,接收用戶請求或返回用戶請求的數(shù)據(jù)結(jié)果的展現(xiàn),而具體的數(shù)據(jù)處理則交給業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層去處理。日常開發(fā)的很多情況下為了復(fù)用一些共同的東西,會把一些各層都用的東西抽象出來。如我們將數(shù)據(jù)對象實體和方法分離,以便在多個層中傳遞,例如稱為Model。一些共性的通用輔助類和工具方法,如數(shù)據(jù)校驗、緩存處理、加解密處理等,為了讓各個層之間復(fù)用,也單獨分離出來,作為獨立的模塊使用,例如稱為Common。圖2三層架構(gòu)演變結(jié)果*業(yè)務(wù)實體Model:用于封裝實體類數(shù)據(jù)結(jié)構(gòu),一般用于映射數(shù)據(jù)庫的數(shù)據(jù)表或視圖,用以描述業(yè)務(wù)中客觀存在的對象。Model分離出來是為了更好地解耦,為了更好地發(fā)揮分層的作用,更好地進行復(fù)用和擴展,增強靈活性。*通用類庫Common:通用的輔助工具類。
在第5.2節(jié)中我們講過可以將對數(shù)據(jù)庫的共性操作抽象封裝成數(shù)據(jù)操作類(例如DbHelperSQL),以便更好地復(fù)用和使代碼簡潔。數(shù)據(jù)層底層使用通用數(shù)據(jù)庫操作類來訪問數(shù)據(jù)庫,最后完整的三層架構(gòu)如圖3所示。圖3最后完整的三層架構(gòu)數(shù)據(jù)庫訪問類是對ADO.NET的封裝,封裝了一些常用的重復(fù)的數(shù)據(jù)庫操作。如微軟的企業(yè)庫SQLHelper.cs,動軟的DBUtility/DbHelperSQL等,為DAL提供訪問數(shù)據(jù)庫的輔助工具類。通過以上分析,我們知道如今常用的三層架構(gòu)是個什么樣子,同時,我們也知道了三層架構(gòu)在使用過程中的一些演化過程。那么,為什么要這樣分層,每層結(jié)構(gòu)到底又起什么作用呢?我們繼續(xù)往下看。2、趣味理解:三層架構(gòu)與養(yǎng)豬看新聞報道今年豬肉價格一路高漲,據(jù)說有人養(yǎng)豬都發(fā)財致富奔小康了,程序員都說寫代碼沒前途了,還不如去養(yǎng)豬,不過,可別認(rèn)為養(yǎng)豬沒有技術(shù)含量,比寫代碼容易,其實養(yǎng)豬也大有學(xué)問。為了更好地理解三層架構(gòu),就拿養(yǎng)豬來做個例子吧。俗話說:''沒吃過豬肉,還沒見過豬跑啊!”。圖4是三層架構(gòu)化的養(yǎng)豬產(chǎn)業(yè)流水線趣味對此圖。豬肉工具r屠宰場□曲|聞1】鏟討抓赫的人 ?sib圖4三層結(jié)構(gòu)與養(yǎng)豬對比圖3與圖4,我們可以看出:*數(shù)據(jù)庫好比豬圈,所有的豬有序地按區(qū)域或編號,存放在不同的豬欄里。DAL好比是屠宰場,把豬從豬圈取出來進行(處理)屠殺,按要求取出相應(yīng)的部位(字段),或者進行歸類整理(統(tǒng)計),形成整箱的豬肉(數(shù)據(jù)集),傳送給食品加工廠(BLL)。本來這里都是同一伙人既管抓豬,又管殺豬的,后來覺得效率太低了,就讓一部分人出來專管抓豬了(DBUtility),根據(jù)要求來抓取指定的豬。BLL好比食品加工廠,將豬肉深加工成各種可以食用的食品(業(yè)務(wù)處理)。Web好比商場,將食品包裝成漂亮的可以銷售的產(chǎn)品,展現(xiàn)給顧客(UI表現(xiàn)層)。*豬肉好比Model,無論是哪個廠(層),各個環(huán)節(jié)傳遞的本質(zhì)都是豬肉,豬肉貫穿整個過程。*通用類庫Common相當(dāng)于工人使用的各種工具,為各個廠(層)提供諸如殺豬刀、繩子、剪刀、包裝箱、工具車等共用的常用工具(類)。其實,每個部門本來是可以自己制作自己的工具的,但是那樣會使效率比較低,而且也不專業(yè),并且很多工作都會是重復(fù)的。因此,就專門有人開了這樣的工廠來制作這些工具,提供給各個工廠,有了這樣的分工,工廠就可以專心做自己的事情了。當(dāng)然,這里只是形象的比喻,目的是為了讓大家更好地理解,實際的情況在細(xì)節(jié)上會有所不同。這個例子也只是說明了從豬圈到商場的單向過程,而實際三層開發(fā)中的數(shù)據(jù)交互是雙向的,可取可存。不過,據(jù)說有一種機器,把豬從這頭趕進去,另一頭就噗噗嚕嚕地出火腿腸了。如果火腿腸賣不了了,從那頭再放進去,這頭豬又原原本本出來了,科幻的機器吧,沒想到也可以和三層結(jié)構(gòu)聯(lián)系上。以上只是笑談,不過也使三層架構(gòu)的基本概念更容易理解了。上面談了那么多,有人會問,我直接從數(shù)據(jù)庫取出內(nèi)容直接操作不可以嗎?為什么要這么麻煩地用三層架構(gòu)呢?三層架構(gòu)到底有什么好處呢?不分層,當(dāng)然可以,就好比整個過程不分屠宰場、加工場之類的,都在同一個場所(工廠)完成所有的活(屠殺、加工、銷售)。但為什么要加工廠和商場呢?因為當(dāng)規(guī)模比較大的時候,管理起來就會變得非常復(fù)雜,這樣的養(yǎng)殖方式已經(jīng)無法滿足規(guī)?;男枰恕2⑶?,從社會的發(fā)展來看,社會分工是人類進步的表現(xiàn)。社會分工的優(yōu)勢就是讓適合的人做自己擅長的事情,使平均社會勞動時間大大縮短,生產(chǎn)效率顯著提高。能夠提供優(yōu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級上冊《金色花》課件
- 兩條直線的位置關(guān)系對稱問題課件
- 《服飾知識常識》課件
- 單位管理制度集合大全人員管理十篇
- 單位管理制度集粹選集人事管理十篇
- 《石膏的護理》課件
- 單位管理制度分享大合集員工管理篇
- 單位管理制度范文大合集職工管理篇十篇
- 單位管理制度范例匯編人員管理篇十篇
- 單位管理制度呈現(xiàn)匯編職員管理篇十篇
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之20:“7支持-7.3意識+7.4溝通”(雷澤佳編制-2025B0)
- 期末素養(yǎng)提升(試題)-2024-2025學(xué)年語文二年級上冊
- 西京學(xué)院《數(shù)據(jù)挖掘B》2023-2024學(xué)年第一學(xué)期期末試卷
- 2021年江蘇南京二十九中特長生考試數(shù)學(xué)試卷真題(含答案詳解)
- 選調(diào)生培訓(xùn)心得體會集合6篇
- 北京市朝陽區(qū)2023-2024學(xué)年九年級上學(xué)期期末物理試卷
- 全國賽課一等獎初中統(tǒng)編版七年級道德與法治上冊《正確對待順境和逆境》教學(xué)設(shè)計
- 統(tǒng)編版(2024版)道德與法治七年級上冊期末質(zhì)量監(jiān)測試卷 3套(含答案)
- 2024年01月11073法律文書期末試題答案
- 申能集團在線測評題目
- 十四五規(guī)劃藥劑科展望
評論
0/150
提交評論