偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

.NET三層架構(gòu)解析一:什么是三層架構(gòu)

開發(fā) 后端
本文對(duì)ASP.NET三層結(jié)構(gòu)作了一些說明,并總結(jié)了一些三層架構(gòu)的優(yōu)點(diǎn)。三層結(jié)構(gòu)不是.NET的專利,也不是專門用在數(shù)據(jù)庫(kù)上的技術(shù)。它是一種更加普適的架構(gòu)設(shè)計(jì)理念。

所謂三層架構(gòu),是在客戶端與數(shù)據(jù)庫(kù)之間加入了一個(gè)“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡(jiǎn)單地放置三臺(tái)機(jī)器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個(gè)層放置到一臺(tái)機(jī)器上。

在項(xiàng)目開發(fā)的過程中,有時(shí)把整個(gè)項(xiàng)目分為三層架構(gòu),其中包括:表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)。三層的作用分別如下:
表示層:為用戶提供交互操作界面,這一點(diǎn)不論是對(duì)于Web還是WinForm都是如此,就是用戶界面操作。我們網(wǎng)站展示給用戶看的界面。

業(yè)務(wù)邏輯層:負(fù)責(zé)關(guān)鍵業(yè)務(wù)的處理和數(shù)據(jù)的傳遞。復(fù)雜的邏輯判斷和涉及到數(shù)據(jù)庫(kù)的數(shù)據(jù)驗(yàn)證都需要在此做出處理。根據(jù)傳入的值返回用戶想得到的值,或者處理相關(guān)的邏輯。

數(shù)據(jù)訪問層:見名知意,負(fù)責(zé)數(shù)據(jù)庫(kù)數(shù)據(jù)的訪問。主要為業(yè)務(wù)邏輯層提供數(shù)據(jù),根據(jù)傳入的值來操作數(shù)據(jù)庫(kù),增、刪、改或者其它。

以下我簡(jiǎn)單介紹下一個(gè)用戶管理模塊:

為了整個(gè)項(xiàng)目的開發(fā)方便,我們?cè)陧?xiàng)目中會(huì)建幾個(gè)類庫(kù)SQLHelper,BLL,DAL,Model和一個(gè)Web網(wǎng)站。為了命名清晰,我們可以這樣命名這個(gè)三個(gè)工程(即在解決方案里添加的類庫(kù)):

業(yè)務(wù)邏輯層(BusinessLogicLayer):BLL,命名空間默認(rèn)設(shè)置為BLL

數(shù)據(jù)訪問層(DataAccessLayer):DAL,命名空間默認(rèn)設(shè)置為DAL

SQL幫助類:SQLHelper,命名空間默認(rèn)設(shè)置為SQLHelper

另外我們?yōu)榱藬?shù)據(jù)傳遞的方便,通常再添加一個(gè)類庫(kù),這個(gè)類庫(kù)是貫穿于整個(gè)三層架構(gòu)中的。即實(shí)體類。通常命名為Model,命名空間默認(rèn)值設(shè)置為:Models。其中封裝的每個(gè)類都對(duì)應(yīng)一個(gè)實(shí)體,通常就是數(shù)據(jù)庫(kù)中的一個(gè)表。如數(shù)據(jù)庫(kù)中的用戶表(custom)封裝為(custom),將表中的每個(gè)字段都封裝成共有的屬性。

這樣三層架構(gòu)的搭建就基本完成了。這三層有著非常強(qiáng)的依賴關(guān)系:

表示層 ← 業(yè)務(wù)邏輯層 ← 數(shù)據(jù)訪問層

他們之間的數(shù)據(jù)傳遞是雙向的,并且通常借助實(shí)體類傳遞數(shù)據(jù)。

那么三層架構(gòu)都有哪些優(yōu)點(diǎn)呢:

1、易于項(xiàng)目的修改和維護(hù)。在項(xiàng)目的開發(fā)過程中或者開發(fā)后的升級(jí)過程中,甚至在項(xiàng)目的移植過程中。這種三層架構(gòu)是非常方便的。比如項(xiàng)目從Web移植到Form,我們只需要將表示層重新做一遍就可以了。其余兩層不用改動(dòng),只需添加到現(xiàn)有項(xiàng)目就可以了。如果不采用這種架構(gòu),只是將代碼寫到表示層。那么所有的編碼幾乎都要重新來了。

2、易于擴(kuò)展。在功能的擴(kuò)展上同樣如此,如有功能的添加只需把原有的類庫(kù)添加方法就可了

3、易于代碼的重用。這一點(diǎn)就不用解釋了。

4、易于分工協(xié)作開

還可以加個(gè)接口類庫(kù)Iinterface, 加入設(shè)計(jì)模式,使你的代碼靈活性更好,質(zhì)量更高。

其實(shí),當(dāng)我們做一個(gè)項(xiàng)目時(shí),我們應(yīng)該先考慮一下這個(gè)項(xiàng)目是不是應(yīng)該應(yīng)用三層/多層設(shè)計(jì)時(shí), 先得考慮下是不是真的需要? 實(shí)際上大部分程序就開個(gè)WebApplication就足夠了, 完全沒必要作的這么復(fù)雜. 而多層結(jié)構(gòu), 是用于解決真正復(fù)雜的項(xiàng)目需求的。

【編輯推薦】

  1. 淺析C#中三層架構(gòu)的實(shí)現(xiàn)
  2. 15.2.2 從三層架構(gòu)到N層架構(gòu)
  3. Java Web三層架構(gòu)的配置詳解
  4. 15.2 JSP網(wǎng)絡(luò)應(yīng)用程序的三層架構(gòu)模型

 

責(zé)任編輯:于鐵 來源: 博客園
相關(guān)推薦

2013-01-09 11:00:20

架構(gòu)開發(fā)三層架構(gòu).NET架構(gòu)

2009-07-28 17:25:14

ASP.NET三層結(jié)構(gòu)

2012-02-03 09:44:33

.NET

2009-07-28 15:08:50

MVC三層架構(gòu)實(shí)例

2009-08-26 18:20:42

三層架構(gòu)

2011-08-08 14:14:03

架構(gòu)

2009-07-28 17:18:33

2015-07-02 10:57:11

General框架架構(gòu)開發(fā)

2018-10-31 14:32:53

數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)

2009-04-30 15:56:50

三層架構(gòu)MVCMVP

2018-03-08 15:30:31

超融合架構(gòu)傳統(tǒng)三層架構(gòu)

2012-02-07 10:40:13

MVCJava

2009-05-06 09:40:04

LINQWEB開發(fā)構(gòu)架

2010-03-19 14:02:41

第三層交換模塊

2014-02-12 10:07:07

三層交換原理

2012-09-04 09:41:00

三層架構(gòu)架構(gòu)EF

2015-05-25 15:15:53

浪潮

2009-04-21 11:27:52

MVCJSPJDBC

2018-07-19 12:16:50

交換技術(shù)三層二層

2010-01-11 16:26:42

三層交換機(jī)作用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)