亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析ASP.NET三層結構及三層架構的缺點

發布時間:2021-11-26 18:06:04 來源:億速云 閱讀:180 作者:柒染 欄目:編程語言

如何分析ASP.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確要經過多次調用才能獲取到數據。在子程序模塊程序沒有返回時,主程序模塊只能處于等待狀態。所以在執行速度上,留言板的版本越高,排名卻越靠后。“三層結構”開發模式,不適用于對執行速度要求過于苛刻的系統,例如:在線訂票,在線炒股等等……它比較擅長于商業規則容易變化的系統。

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

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

看完上述內容,你們掌握如何分析ASP.NET三層結構及三層架構的缺點的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沙雅县| 岑溪市| 手游| 甘谷县| 多伦县| 香港| 云林县| 碌曲县| 独山县| 博白县| 通化市| 库车县| 兴城市| 聂荣县| 镇江市| 奎屯市| 永春县| 西充县| 祁门县| 安多县| 陇西县| 偏关县| 永丰县| 浪卡子县| 佳木斯市| 平武县| 连南| 当阳市| 安阳市| 孝感市| 台东市| 正安县| 五华县| 句容市| 涿鹿县| 子长县| 罗源县| 桃园县| 蓬安县| 友谊县| 通渭县|