对asn.net三层架构的初步认识
???? 從接觸三層架構(gòu)到現(xiàn)在有兩三個(gè)月的時(shí)間了,從聽說時(shí)候的一頭霧水到中期對(duì)各個(gè)層的迷迷糊糊(現(xiàn)在還有點(diǎn)迷惑不過好多了),還有就是今天的不完全了解,雖然進(jìn)展的很慢,但是總算是有了一點(diǎn)點(diǎn)的眉目,廢話少說來看下具體的情況:
???? 迷惑在哪呢?在網(wǎng)上參考了很多的資料,也看了很多的博客,有的說是這樣,有的說那樣。主要原因就是在有的提供的項(xiàng)目中的三層架構(gòu)包括的有BLL文件夾、DAl文件夾、Model文件夾、DBUtility文件夾最后加上一個(gè)Web文件夾,好家伙說是三層結(jié)構(gòu)有五個(gè)文件夾(這里是根據(jù)李天平.net代碼生成器生成的項(xiàng)目里的文件來說的),直到今天看到了一篇博客才對(duì)三層結(jié)構(gòu)有了點(diǎn)眉目。
????? 原文如下:
????? 理解ASP.NET中的三層結(jié)構(gòu)
我們用三層結(jié)構(gòu)主要是使項(xiàng)目結(jié)構(gòu)更清楚,分工更明確,有利于后期的維護(hù)和升級(jí).
三層結(jié)構(gòu)包含:
???USL 是表示層?????????? User Service Layer?
???BLL 是業(yè)務(wù)邏輯層 Business Logic Layer?
???DAL 是數(shù)據(jù)訪問層 Data Access Layer
??? 一、三層體系架構(gòu)
????? 1.表示層(USL):主要表示W(wǎng)EB方式,也可以表示成WINFORM方式。如果邏輯層相當(dāng)強(qiáng)大和完善,無(wú)論表現(xiàn)層如何定義和更改,邏輯層都能完善地提供服務(wù)。
2.業(yè)務(wù)邏輯層(BLL):主要是針對(duì)具體的問題的操作,也可以理解成對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理。如果說數(shù)據(jù)層是積木,那邏輯層就是對(duì)這些積木的搭建。
3.數(shù)據(jù)訪問層(DAL):主要是對(duì)原始數(shù)據(jù)(數(shù)據(jù)庫(kù)或者文本文件等存放數(shù)據(jù)的形式)的操作層,而不是指原始數(shù)據(jù),也就是說,是對(duì)數(shù)據(jù)的操作,而不是數(shù)據(jù)庫(kù),具體為業(yè)務(wù)邏輯層或表示層提供數(shù)據(jù)服務(wù)。
二、具體區(qū)分
1.表示層:主要對(duì)用戶的請(qǐng)求接受,以及數(shù)據(jù)的返回,為客戶端提供應(yīng)用程序的訪問。
2.業(yè)務(wù)邏輯層:主要負(fù)責(zé)對(duì)數(shù)據(jù)層的操作,也就是說把一些數(shù)據(jù)層的操作進(jìn)行組合。
3.數(shù)據(jù)訪問層:主要看你的數(shù)據(jù)層里面有沒有包含邏輯處理,實(shí)際上他的各個(gè)函數(shù)主要完成各個(gè)對(duì)數(shù)據(jù)文件的操作,而不必管其他操作。
三、總結(jié)
三層結(jié)構(gòu)是一種嚴(yán)格分層方法,即數(shù)據(jù)訪問層只能被業(yè)務(wù)邏輯層訪問,業(yè)務(wù)邏輯層只能被表示層訪問,用戶通過表示層將請(qǐng)求傳送給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層完成相關(guān)業(yè)務(wù)規(guī)則和邏輯,并通過數(shù)據(jù)訪問層訪問數(shù)據(jù)庫(kù)獲得數(shù)據(jù),然后按照相反的順序依次返回將數(shù)據(jù)顯示在表示層。有的三層結(jié)構(gòu)還加了Factory、Model等其他層,實(shí)際都是在這三層基礎(chǔ)上的一種擴(kuò)展和應(yīng)用。
?
至此才對(duì)三層結(jié)構(gòu)有了初步的認(rèn)識(shí)。下定決心研究三層結(jié)構(gòu)到底。
轉(zhuǎn)載于:https://www.cnblogs.com/goalsunboy/archive/2009/03/31/1426148.html
總結(jié)
以上是生活随笔為你收集整理的对asn.net三层架构的初步认识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery学习第一天
- 下一篇: delphi7注册码