![01第一講項目介紹_第1頁](http://file4.renrendoc.com/view/d795835190feee5c925ba76530ebdf73/d795835190feee5c925ba76530ebdf731.gif)
![01第一講項目介紹_第2頁](http://file4.renrendoc.com/view/d795835190feee5c925ba76530ebdf73/d795835190feee5c925ba76530ebdf732.gif)
![01第一講項目介紹_第3頁](http://file4.renrendoc.com/view/d795835190feee5c925ba76530ebdf73/d795835190feee5c925ba76530ebdf733.gif)
![01第一講項目介紹_第4頁](http://file4.renrendoc.com/view/d795835190feee5c925ba76530ebdf73/d795835190feee5c925ba76530ebdf734.gif)
![01第一講項目介紹_第5頁](http://file4.renrendoc.com/view/d795835190feee5c925ba76530ebdf73/d795835190feee5c925ba76530ebdf735.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
北風(fēng)網(wǎng)項目培訓(xùn)講師:東方玉曉北風(fēng)網(wǎng)進銷存系統(tǒng)三層開發(fā)原理三層結(jié)構(gòu)解釋
所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個中間層,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個層放置到一臺機器上。三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫進行交換.
開發(fā)人員可以將應(yīng)用的商業(yè)邏輯放在中間層應(yīng)用服務(wù)器上,把應(yīng)用的業(yè)務(wù)邏輯與用戶界面分開。在保證客戶端功能的前提下,為用戶提供一個簡潔的界面。這意味著如果需要修改應(yīng)用程序代碼,只需要對中間層應(yīng)用服務(wù)器進行修改,而不用修改成千上萬的客戶端應(yīng)用程序。從而使開發(fā)人員可以專注于應(yīng)用系統(tǒng)核心業(yè)務(wù)邏輯的分析、設(shè)計和開發(fā),簡化了應(yīng)用系統(tǒng)的開發(fā)、更新和升級工作。
那么為什么要應(yīng)用“中間業(yè)務(wù)層”呢?舉些例子:
我們假設(shè)有一段登錄代碼,則可以這樣處理Web程序,外觀層負責(zé)接收前臺頁面的數(shù)據(jù),然后傳給中間層,中間層對數(shù)據(jù)進行處理,比如格式化,防SQL注入等等一些,這樣的數(shù)據(jù)再傳給數(shù)據(jù)訪問層然后與數(shù)據(jù)庫進行操作,比如與數(shù)據(jù)庫的用戶名和密碼匹配等等一些代碼。
“中間業(yè)務(wù)層”的用途有很多,例如:驗證用戶輸入數(shù)據(jù)、緩存從數(shù)據(jù)庫中讀取的數(shù)據(jù)等等……但是,“中間業(yè)務(wù)層”的實際目的是將“數(shù)據(jù)訪問層”的最基礎(chǔ)的存儲邏輯組合起來,形成一種業(yè)務(wù)規(guī)則。例如:“在一個購物網(wǎng)站中有這樣的一個規(guī)則:在該網(wǎng)站第一次購物的用戶,系統(tǒng)為其自動注冊”。這樣的業(yè)務(wù)邏輯放在中間層最合適:
在“數(shù)據(jù)訪問層”中,最好不要出現(xiàn)任何“業(yè)務(wù)邏輯”!也就是說,要保證“數(shù)據(jù)訪問層”的中的函數(shù)功能的原子性!即最小性和不可再分。“數(shù)據(jù)訪問層”只管負責(zé)存儲或讀取數(shù)據(jù)就可以了。
三層體系結(jié)構(gòu)的概念
用戶界面表示層(USL)業(yè)務(wù)邏輯層(BLL)
數(shù)據(jù)訪問層(DAL)
BLL將USL與DAL隔開了,并且加入了業(yè)務(wù)規(guī)則
各層的作用
1:數(shù)據(jù)數(shù)據(jù)訪問層:主要是對原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的
形式)的操作層,,具體為業(yè)務(wù)邏輯層或表示層提供數(shù)據(jù)服務(wù)2:業(yè)務(wù)邏輯層:主要是針對具體的問題的操作,也可以理解成對數(shù)據(jù)層的操作,
對數(shù)據(jù)業(yè)務(wù)邏輯處理,如果說數(shù)據(jù)層是積木,那邏輯層就是對這些積木的搭建。
3:表示層:主要表示W(wǎng)EB方式,也可以表示成WINFORM方式,WEB方式也可以表現(xiàn)
成:aspx,如果邏輯層相當(dāng)強大和完善,無論表現(xiàn)層如何定義和更改,邏輯層都能完善
地提供服務(wù)。
具體的區(qū)分方法
1:數(shù)據(jù)數(shù)據(jù)訪問層:主要看你的數(shù)據(jù)層里面有沒有包含邏輯處理,實際上他的各個函數(shù)主要完成各個對數(shù)據(jù)文件的操作。而不必管其他操作。
2:業(yè)務(wù)邏輯層:主要負責(zé)對數(shù)據(jù)層的操作。也就是說把一些數(shù)據(jù)層的操作進行組合。
3:表示層:主要對用戶的請求接受,以及數(shù)據(jù)的返回,為客戶端提供應(yīng)用程序的訪問。
ASP.NET中的三層結(jié)構(gòu)說明
完善的三層結(jié)構(gòu)的要求是:修改表現(xiàn)層而不用修改邏輯層,修改邏輯層而不用修改數(shù)據(jù)層。否則你的應(yīng)用是不是多層結(jié)構(gòu),或者說是層結(jié)構(gòu)的劃分和組織上是不是有問題就很難說.不同的應(yīng)用有不同的理解,這只是一個概念的問題.
為什么要分三層我們用三層結(jié)構(gòu)主要是使項目結(jié)構(gòu)更清楚,分工更明確,有利于后期的維護和升級。它未必會提升性能,因為當(dāng)子程序模塊未執(zhí)行結(jié)束時,主程序模塊只能處于等待狀態(tài)。這說明將應(yīng)用程序劃分層次,會帶來其執(zhí)行速度上的一些損失。但從團隊開發(fā)效率角度上來講卻可以感受到大不相同的效果。
三層結(jié)構(gòu)的具體優(yōu)點如下:
1:提高程序的可維護性;三層架構(gòu)層次分明,一旦運行出現(xiàn)問題,可以快速的判斷是哪一層的問題,利于維護。
2:可以合理的開發(fā):因為三層之間除了調(diào)用沒有其他關(guān)聯(lián),只需要先把三層之間的接口定義好,則程序員可以并行開發(fā),提高了開發(fā)的速度。
3:提高了系統(tǒng)的安全性:每層都有安全設(shè)置,即使表示層被攻破,下一層的安全還有保障。
4:提高了系統(tǒng)的擴展性:三層結(jié)構(gòu)最大的好處是在擴展應(yīng)用系統(tǒng)時,改動的部分不會影響到大局,比如要給這個系統(tǒng)增加oracle數(shù)據(jù)庫的功能,只需要改動數(shù)據(jù)層就可以了,其他層保持不變。
需要說明一下,三層結(jié)構(gòu)不是.NET的專利,也不是專門用在數(shù)據(jù)庫上的技術(shù)。它是一種更加普適的架構(gòu)設(shè)計理念。
“三層結(jié)構(gòu)”的缺點“三層結(jié)構(gòu)”這個詞眼似乎一直都很熱門,究其原因,或許是這種開發(fā)模式應(yīng)用的比較普遍。但是“三層結(jié)構(gòu)”卻并不是百試百靈的“萬靈藥”,它也存在著缺點。下面就來說說它的缺點……
“三層結(jié)構(gòu)”開發(fā)模式的一個非常明顯的缺點就是其執(zhí)行速度不夠快。當(dāng)然這個“執(zhí)行速度”是相對于非分層的應(yīng)用程序來說的?!叭龑咏Y(jié)構(gòu)”開發(fā)模式,不適用于對執(zhí)行速度要求過于苛刻的系統(tǒng),例如:在線訂票,在線炒股等等……它比較擅長于商業(yè)規(guī)則容易變化的系統(tǒng)。
“三層結(jié)構(gòu)”開發(fā)模式,入門難度夠高,難于理解和學(xué)習(xí)。這是對于初學(xué)程序設(shè)計的人來說的。以這種模式開發(fā)出來的軟件,代碼量通常要稍稍多一些。這往往會令初學(xué)者淹沒在茫茫的代碼之中。望之生畏,對其產(chǎn)生反感,也是可以理解的……
其實,無論哪一種開發(fā)模式或方法,都是有利有弊的。不會存在一種“萬用法”可以解決任何問題。所以“三層結(jié)構(gòu)”這個詞眼也不會是個例外!是否采用這個模式進行系統(tǒng)開發(fā),要作出比較、權(quán)衡之后才可以。切忌濫用!
數(shù)據(jù)訪問層數(shù)據(jù)訪問層一般由兩部分組成,業(yè)務(wù)實體和數(shù)據(jù)操作。Microsoft公司提供的標(biāo)準(zhǔn)術(shù)語稱為業(yè)務(wù)實體組件和數(shù)據(jù)訪問邏輯組件。在三層結(jié)構(gòu)中,數(shù)據(jù)訪問層是唯一與數(shù)據(jù)庫打交道的層,所以該層的設(shè)計要盡量以提高速度和安全為目標(biāo)。業(yè)務(wù)實體組件體現(xiàn)的是現(xiàn)實生活中的業(yè)務(wù)數(shù)據(jù),而數(shù)據(jù)訪問邏輯組件則是在數(shù)據(jù)庫中檢索數(shù)據(jù)或把業(yè)務(wù)實體數(shù)據(jù)保存回數(shù)據(jù)庫。
一:數(shù)據(jù)訪問邏輯組件數(shù)據(jù)訪問邏輯組件,簡單來講就是實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)進行操作的組件,以及實現(xiàn)數(shù)據(jù)相關(guān)操作所需的業(yè)務(wù)邏輯。數(shù)據(jù)訪問邏輯組件的主要功能如下:(1):在數(shù)據(jù)庫中添加記錄(2):讀取數(shù)據(jù)庫的記錄,并以業(yè)務(wù)實體數(shù)據(jù)的形式返回給調(diào)用者。(3):將調(diào)用者修改的業(yè)務(wù)實體數(shù)據(jù)更新到數(shù)據(jù)庫。(4):刪除數(shù)據(jù)庫中的記錄。并不是所有的數(shù)據(jù)庫表都由一個數(shù)據(jù)訪問邏輯組件操作,其實,一個邏輯組件封裝的是對數(shù)據(jù)庫中的一個表或一組相關(guān)的表的操作。業(yè)務(wù)實體業(yè)務(wù)實體是以數(shù)據(jù)的形式表示現(xiàn)實生活中的業(yè)務(wù)模型。業(yè)務(wù)實體的屬性與數(shù)據(jù)庫中的表有一一對應(yīng)的關(guān)系,每個數(shù)據(jù)庫訪問組件都對應(yīng)一個業(yè)務(wù)實體。一:業(yè)務(wù)實體的特點:
1:提供對業(yè)務(wù)數(shù)據(jù)及相關(guān)功能進行編程訪問。
2:可以使用具有復(fù)雜架構(gòu)的數(shù)據(jù)來創(chuàng)建,這些復(fù)雜的數(shù)據(jù)一般表現(xiàn)為數(shù)據(jù)庫中可以作為業(yè)務(wù)流程中的輸入輸出相關(guān)聯(lián)的多個表。
3:可以作為業(yè)務(wù)流程中的輸入輸出參數(shù)來傳遞整體數(shù)據(jù)。4:業(yè)務(wù)實體不參與事務(wù)處理,只是事務(wù)處理過程中的一部分數(shù)據(jù),事務(wù)處理由數(shù)據(jù)訪問層完成。二:業(yè)務(wù)實體的表現(xiàn)形式
在應(yīng)用程序中,業(yè)務(wù)實體有很多種表現(xiàn)方式。有以數(shù)據(jù)為中心的表示,也有面向?qū)ο蟮谋硎尽>唧w包括以下幾種。1:XML:使用XML字符串或XML文檔對象模型來表示
2:DataSet:DataSet是緩存在內(nèi)存中一個或多個表的集合,一般來源與數(shù)據(jù)庫或XML文檔3:自定義業(yè)務(wù)實體組件:一種自定義的類庫,用于保存業(yè)務(wù)流程中的數(shù)據(jù)。包含一些數(shù)據(jù)表中的字段和其他公共屬性。業(yè)務(wù)實體可以被數(shù)據(jù)訪問組件調(diào)
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球3D細胞模型成像和分析系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球無收銀員結(jié)賬解決方案行業(yè)調(diào)研及趨勢分析報告
- 2025商業(yè)裙房買賣服務(wù)合同
- 銷售合同簽訂流程圖范本年
- 2025經(jīng)濟合同履約擔(dān)保的法律規(guī)定具體有些
- 蘋果購銷合同書
- 國有股權(quán)轉(zhuǎn)讓合同
- 2025防水合同協(xié)議書范文
- 2025工程施工承包合同備案申報表(I)
- 拓展思維拔高分數(shù)主題班會
- 車輛維修、保養(yǎng)審批單
- 2024年3月四川省公務(wù)員考試面試題及參考答案
- 循環(huán)系統(tǒng)練習(xí)試題(含答案)
- 新生兒黃疸早期識別課件
- 醫(yī)藥營銷團隊建設(shè)與管理
- 二年級數(shù)學(xué)上冊口算題100道(全冊完整)
- 四百字作文格子稿紙(可打印編輯)
- 冷軋工程專業(yè)詞匯匯編注音版
- 小升初幼升小擇校畢業(yè)升學(xué)兒童簡歷
- 第一單元(金融知識進課堂)課件
- 新概念二冊課文電子版
評論
0/150
提交評論