成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET三層結構的說明及三層架構的缺點

開發 后端
本文對ASP.NET三層結構作了一些說明,并總結了一些三層架構的缺點。三層結構不是.NET的專利,也不是專門用在數據庫上的技術。它是一種更加普適的架構設計理念。

ASP.NET三層結構說明

完善的三層結構的要求是:修改表現層而不用修改邏輯層,修改邏輯層而不用修改數據層。否則你的應用是不是多層結構,或者說是層結構的劃分和組織上是不是有問題就很難說.不同的應用有不同的理解,這只是一個概念的問題.

理解ASP.NET三層結構——為什么要分三層?

我們用三層結構主要是使項目結構更清楚,分工更明確,有利于后期的維護和升級。它未必會提升性能,因為當子程序模塊未執行結束時,主程序模塊只能處于等待狀態。這說明將應用程序劃分層次,會帶來其執行速度上的一些損失。但從團隊開發效率角度上來講卻可以感受到大不相同的效果。

需要說明一下,三層結構不是.NET的專利,也不是專門用在數據庫上的技術。它是一種更加普適的架構設計理念。

此種架構要在數據庫設計上注意表之間的關系,盡力滿足主與子的關系。在功能上對用戶要有一定的限制,不要表現在對于子表的刪除操作一定要慎重,以免造成主表與子表的數據在邏輯上出現的主表的外鍵在子表中沒有相對應的值。

對于表的綜合查詢方法是:

先對主表查詢,調用主表所對應的DL。再根據主表的記錄分別對每一個子表進行查詢。將自表的查詢結果添加的主表后,形成一個大的查詢集合。

對于表的操作(增刪改):

此時只對主表進行操作,調用主表對應的DL中的操作方法。

RL層是邏輯判斷層,主要是對頁面上傳入的數據進行邏輯判斷。RL層之上就是UI

如何建立一個三層體系結構解決方案

新建一個空白解決方案。然后:    

“添加”-“新建項目”-“其他項目”-“企業級模版項目”-“C#生成塊”-“數據訪問”(數據層,下簡稱D層)    

“添加”-“新建項目”-“其他項目”-“企業級模版項目”-“C#生成塊”-“業務規則”(業務層,下簡稱C層)    

“添加”-“新建項目”-“其他項目”-“企業級模版項目”-“C#生成塊”-“Web用戶界面”(界面層,下簡稱U層)    

右鍵點“解決方案”-“項目依賴項”,設置U依賴于D、C,C依賴于D。    

對U添加引用D、C,對C添加引用D。    

到此為止,一個三層的架子建立起來了。我上面說的很具體很“傻瓜”,知道的人覺得我廢話,其實我這段時間很強烈的感覺到非常多的人其實對這個簡單的過程完全不了解。雖然不反對建2個“空項目”和1個“Asp    net    Web應用程序項目”也可以作為3層的框架,而且相當多的人認為其實這些“企業級模板項目”其實就是個空項目,這是一個誤區。沒錯,企業級模板項目你從解決方案資源管理器里看它是個什么也沒有的,但是你可以用記事本打開項目文件,看見不同了吧??有些東西在背后,你是看不見的,不過系統已經做好了。也就是說,如果你在C層里的某個類里“using    System    Data    SqlClineit”,或者使用一個SqlConnection對象,編譯時候不會出錯,但是會在“任務列表”里生成一些“策略警告”,警告你在C層里不要放應該放在D層的東西(雖然就程序來說沒錯,但是可讀性可維護性就打了折扣)而這種功能,空項目是無法給你的。

在新TraceLWord3中,應用了“企業級模板項目”。把原來的LWordTask.cs,并放置到一個單一的項目里,項目名稱為:AccessTask。解決方案中又新建了一個名稱為:InterService的項目,該項目中包含一個LWordService.cs程序文件,它便是“中間業務層”程序。為了不重復命名,TraceLWord3的網站被放置到了WebUI項目中。更完整的代碼,可以在CodePackage/TraceLWord3目錄中找到——    

ASP.NET三層結構:面象對象與實際的結合

我們知道建橋需要磚塊,應該是先準備好磚再來建橋,不過為了講解上的順序性和連貫性,簡單性。我們先建橋,建的過程中需要磚塊再現做,這樣就不會多出來“橋不需要的東西”。注意在實際中,還是應該先準備磚塊。

U層其實就是橋,C層是磚塊,D層是原料(石頭、沙子)。這也解釋前面為什么U層要引用、依賴D層(而不是U對C,C對D的層次),因為橋除了需要磚頭,其實也需要石頭沙子。

“三層結構”的缺點

有些網友在讀完這篇文章前作之后,對我提出了一些質疑,這提醒我文章至此還沒有提及“三層結構”的缺點。“三層結構”這個詞眼似乎一直都很熱門,究其原因,或許是這種開發模式應用的比較普遍。但是“三層結構”卻并不是百試百靈的“萬靈藥”,它也存在著缺點。下面就來說說它的缺點……

“三層結構”開發模式的一個非常明顯的缺點就是其執行速度不夠快。當然這個“執行速度”是相對于非分層的應用程序來說的。從文中所給出的時序圖來看,也明顯的暴露了這一缺點。TraceLWord1和TraceLWord2沒有分層,直接調用的ADO.NET所提供的類來獲取數據。但是,TraceLWord6確要經過多次調用才能獲取到數據。在子程序模塊程序沒有返回時,主程序模塊只能處于等待狀態。所以在執行速度上,留言板的版本越高,排名卻越靠后。“三層結構”開發模式,不適用于對執行速度要求過于苛刻的系統,例如:在線訂票,在線炒股等等……它比較擅長于商業規則容易變化的系統。

“三層結構”開發模式,入門難度夠高,難于理解和學習。這是對于初學程序設計的人來說的。以這種模式開發出來的軟件,代碼量通常要稍稍多一些。這往往會令初學者淹沒在茫茫的代碼之中。望之生畏,對其產生反感,也是可以理解的……

其實,無論哪一種開發模式或方法,都是有利有弊的。不會存在一種“萬用法”可以解決任何問題。所以“三層結構”這個詞眼也不會是個例外!是否采用這個模式進行系統開發,要作出比較、權衡之后才可以。切忌濫用!

【編輯推薦】

  1. ASP.NET學習之ASP.NET概述
  2. ASP.NET AJAX組成部分的淺析
  3. ASP.NET AJAX的安裝和簡單配置淺析
  4. Asp.net Ajax控件之AutoComplete控件幾點淺析
  5. Windows Server 2003安裝ASP.NET淺析
責任編輯:yangsai 來源: 博客園
相關推薦

2009-07-30 13:07:49

ASP.NET中的三層

2009-07-28 15:08:50

MVC三層架構實例

2009-07-30 13:30:56

ASP.NET開發模式

2011-04-19 13:53:41

三層架構

2013-01-09 11:00:20

架構開發三層架構.NET架構

2009-07-28 17:18:33

2009-08-26 18:20:42

三層架構

2012-02-03 09:44:33

.NET

2012-07-16 10:19:02

MongoDB

2009-04-30 09:15:25

三層結構MVC架構

2017-06-12 13:18:51

數據報表計算

2011-08-08 14:14:03

架構

2014-02-12 10:07:07

三層交換原理

2009-05-06 09:40:04

LINQWEB開發構架

2018-03-08 15:30:31

超融合架構傳統三層架構

2010-03-11 10:49:45

三層交換

2010-01-15 10:22:01

三層交換技術缺點

2012-09-04 09:41:00

三層架構架構EF

2010-03-19 10:34:39

三層交換

2009-04-30 15:56:50

三層架構MVCMVP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久精 | 观看av | 在线观看国产网站 | 日韩字幕 | 精品乱人伦一区二区三区 | 日韩不卡一区二区 | 欧美一级淫片007 | 精品国产一区二区国模嫣然 | 韩三级在线观看 | 亚洲一区二区三区在线视频 | 中文字幕国产第一页 | 午夜影院普通用户体验区 | 九九精品在线 | 久久精品久久久久久 | 中文字幕一级毛片视频 | 亚洲黄色视屏 | 成人一级视频在线观看 | 午夜免费福利电影 | 国产欧美日韩综合精品一 | 91xxx在线观看 | 中文字幕不卡一区 | 韩日精品视频 | 日韩免费一二三区 | 精品国产1区2区3区 一区二区手机在线 | 欧美一区二区免费 | 日韩成人在线播放 | 色姑娘综合网 | 一区二区三区四区av | 亚洲精品乱码久久久久久按摩观 | 国产玖玖 | 激情欧美日韩一区二区 | 久久精品视频亚洲 | 欧美成视频 | 日韩一区二区三区在线观看 | 福利视频网站 | 中文字幕亚洲欧美 | 婷婷色国产偷v国产偷v小说 | 超碰综合| www.97国产 | 91网站在线观看视频 | 久久国产香蕉 |