一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

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

 空城66 2014-12-09

今天咱們來談下三層架構(gòu)。說到三層架構(gòu),搞過點程序的可能都知道三層架構(gòu)的概念。但是對三層的精髓可能不是很了解。

首先說下自己對三層的理解,就是使用三個(多個)項目結(jié)合起來開發(fā)出一個應用系統(tǒng)。下層項目為上層項目提供了接口(說白了就是可以從上層類訪問下層類的方法),并且將結(jié)果返回到上層。

接下來咱們來看下三層的優(yōu)勢

三層架構(gòu)的優(yōu)勢

  1. 適應變化、利于維護:項目需求往往隨市場的變化而發(fā)生變化,三層架構(gòu)通過將各功能模塊分離,提高了項目的可維護性和代碼的可重用性。
  2. 適用于協(xié)作開發(fā)。
  3. 主流趨勢,越來越多的企業(yè)在開發(fā)項目時采用三層架構(gòu)作為項目的基礎(chǔ)架構(gòu)。三層架構(gòu)在將來會有更多的市場。

當然,這些優(yōu)勢在后續(xù)的開發(fā)中我們會有更新的體會。

了解過三層的優(yōu)勢后,我們來看下三層架構(gòu)究竟由哪三層組成,重點到了。

三層架構(gòu)包括哪三層?

數(shù)據(jù)訪問層(DAL)、業(yè)務邏輯層(BLL)和UI(表示)層

數(shù)據(jù)訪問層:封裝了所有與數(shù)據(jù)庫的交互操作。數(shù)據(jù)交互無非就是增、刪、改、查(C:Create,

D:Delete U:Update R:Retrieve),數(shù)據(jù)訪問層就針對每個數(shù)據(jù)表提供增、刪、改、查操作,不做業(yè)務邏輯的判斷。

過去使用ADO.NET連接數(shù)據(jù)庫需要編寫固定格式的代碼,比如打開數(shù)據(jù)庫連接,關(guān)閉數(shù)據(jù)庫連接等。在面向?qū)ο蟮恼n程中,我們在每一個數(shù)據(jù)訪問層的方法中編寫重復的ADO.NET代碼。那么大家有沒有想過重用這些代碼呢?這里我們使用了一個封裝了ADO.NET方法的類----SqlHelper類,用來提高數(shù)據(jù)訪問代碼的可重用性。

針對模型層中的每一個類,數(shù)據(jù)訪問層都有一個對應的數(shù)據(jù)訪問類。比如針對User實體類,有一個對應UserService類,專門處理有關(guān)Users表的數(shù)據(jù)處理。

接下來,咱們來對三層的理解更進一步。

三層深入理解

1.復雜項目不能把SQL語句直接寫到界面里,不模塊化、難以維護,應該采用三層架構(gòu)。先慢慢吸收,然后再理解。Web開發(fā)中的三層機構(gòu)也是同樣的結(jié)構(gòu)。還有更復雜的三層架構(gòu)和多層架構(gòu)(petshop)每個人寫法都不一樣,理解精髓即可。

這里需要說明:三層只是一個比較好的軟件架構(gòu),不是非使用三層不可。

2.三層的組成

01.界面層UI(User Intgerface);

02.數(shù)據(jù)訪問層DAL(Data Access Layer);

03.業(yè)務邏輯層BLL(business logic layer)

對數(shù)據(jù)進行操作的代碼寫在DAL中,一般就是SQL語句,DAL只有對數(shù)據(jù)的操作,不能有邏輯判斷。

三層架構(gòu)圖

三層實戰(zhàn)

咱們一起來創(chuàng)建一個三層項目

1.命名規(guī)則:DAL層,一般使用表名+Service,例如:Emp表在DAL層命名為EmpService。

BLL層,一般表名+BLL,例如:Emp表在BLL層命名為EmpBLL

但是這里注意一點:BLL不是簡單對DAL層的一個轉(zhuǎn)發(fā),還包括業(yè)務邏輯。例如:“未經(jīng)審核的數(shù)據(jù)不允許刪除”這樣的邏輯應該寫到BLL中。

2.三層的優(yōu)點

UI層和BLL打交道,不用處理SQL語句;開發(fā)更方便,更不容易出錯。一般,UI層中沒有復雜的代碼,解耦合,容易改變UI層技術(shù)。如果由Winform改成asp.net只要修改UI即可。如果由Sql Server改成Oracle,只需修改DAL即可。

這里還要提醒大家一點:Model是在三層之間傳遞數(shù)據(jù)的。而且Model不屬于三層中任意一層。

那么各層之間使用Model(實體類的作用是什么呢??)

表示層中使用實體類:

1. 將解析實體對象中封裝的數(shù)據(jù)展示給用戶

2. 將用戶請求的數(shù)據(jù)封裝到實體對象中

業(yè)務邏輯層中使用實體類

  1. 將接收到的實體對象傳遞到下一層
  2. 根據(jù)用戶請求對實體對象中的數(shù)據(jù)進行處理。

在數(shù)據(jù)訪問層中使用實體類

  1. 將數(shù)據(jù)庫中的數(shù)據(jù)封裝到實體對象中或?qū)⒍鄠€實體對象封裝成集合
  2. 將實體對象中的數(shù)據(jù)保存到數(shù)據(jù)庫中

最后,我們來看下三層的效率。

三層的效率

三層一般會比不分層滿,但是為了分工明確,這樣的少量的性能下降是可以的,很多時候效率不是唯一追求的因素。

下次課內(nèi)容咱們一起來使用三層開發(fā)一個簡單的日記系統(tǒng)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    最近中文字幕高清中文字幕无| 欧美国产日本高清在线| 欧美日韩国产精品自在自线| 亚洲在线观看福利视频| 狠狠亚洲丁香综合久久| 亚洲精品成人综合色在线| 99热中文字幕在线精品| 亚洲一区二区福利在线| 91福利视频日本免费看看| 91欧美亚洲视频在线| 日韩中文字幕有码午夜美女| 欧美尤物在线观看西比尔| 欧美又黑又粗大又硬又爽| 在线观看免费午夜福利| 中文字幕在线区中文色| 国产传媒精品视频一区| 亚洲欧美中文字幕精品| 欧美激情一区=区三区| 国产精品福利精品福利| 丁香七月啪啪激情综合| 亚洲视频偷拍福利来袭| 日韩一区二区三区久久| 欧美特色特黄一级大黄片| 亚洲精品福利视频你懂的| 日韩精品视频香蕉视频| 色小姐干香蕉在线综合网| 视频一区二区 国产精品| 国产熟女一区二区精品视频| 国产韩国日本精品视频| 成人日韩视频中文字幕| 国产精品超碰在线观看| 黄片免费观看一区二区| 日韩欧美国产三级在线观看| 久久精品国产99精品最新| 国产精品一区二区三区欧美| 色播五月激情五月婷婷| 91欧美日韩一区人妻少妇| 美女黄片大全在线观看| 99少妇偷拍视频在线| 成年人视频日本大香蕉久久| 国产免费黄片一区二区|