自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

接下來,咱們來對(duì)三層的理解更進(jìn)一步。

三層深入理解

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

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

 2.三層的組成

   01.界面層UI(User Intgerface);

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

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

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

三層架構(gòu)圖

 

三層實(shí)戰(zhàn)

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

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

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

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

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

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

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

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

表示層中使用實(shí)體類:

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

2.  將用戶請(qǐng)求的數(shù)據(jù)封裝到實(shí)體對(duì)象中

業(yè)務(wù)邏輯層中使用實(shí)體類

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

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

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

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

三層的效率

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

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

原文鏈接:http://www.cnblogs.com/weilengdeyu/archive/2013/01/04/2844847.html

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

2011-04-19 13:53:41

三層架構(gòu)

2009-07-28 17:25:14

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

2009-07-28 15:08:50

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

2012-02-03 09:44:33

.NET

2015-07-02 10:57:11

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

2009-07-28 17:18:33

2009-07-30 13:30:56

ASP.NET開發(fā)模式

2009-05-06 09:40:04

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

2009-08-26 18:20:42

三層架構(gòu)

2011-08-08 14:14:03

架構(gòu)

2012-04-16 10:45:17

三層架構(gòu)

2009-07-30 13:07:49

ASP.NET中的三層

2009-04-30 15:56:50

三層架構(gòu)MVCMVP

2018-10-31 14:32:53

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

2018-03-08 15:30:31

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

2012-02-07 10:40:13

MVCJava

2014-02-12 10:07:07

三層交換原理

2011-05-12 14:24:14

三層架構(gòu)

2013-03-04 10:40:34

三層架構(gòu)架構(gòu)設(shè)計(jì)

2009-04-21 11:27:52

MVCJSPJDBC
點(diǎn)贊
收藏

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