三層體系結構的概念數據庫
BLL將USL與DAL隔開了,而且加入了業務規則緩存
在「數據訪問層」中,最好不要出現任何「業務邏輯」!也就是說,要保證「數據訪問層」的中的函數功能的原子性!即最小性和不可再分。「數據訪問層」只管負責存儲或讀取數據就能夠了。服務器
此種架構要在數據庫設計上注意表之間的關係,盡力知足主與子的關係。在功能上對用戶要有必定的限制,不要表如今對於子表的刪除操做必定要慎重,以避免形成主表與子表的數據在邏輯上出現的主表的外鍵在子表中沒有相對應的值。架構
對於表的綜合查詢方法是:
先對主表查詢,調用主表所對應的DL。再根據主表的記錄分別對每個子表進行查詢。將自表的查詢結果添加的主表後,造成一個大的查詢集合。
對於表的操做(增刪改):
此時只對主表進行操做,調用主表對應的DL中的操做方法。
RL層是邏輯判斷層,主要是對頁面上傳入的數據進行邏輯判斷。RL層之上就是UI框架
在新TraceLWord3中,應用了「企業級模板項目」。把原來的LWordTask.cs,並放置到一個單一的項目裏,項目名稱爲:AccessTask。解決方案中又新建了一個名稱爲:InterService的項目,該項目中包含一個LWordService.cs程序文件,它即是「中間業務層」程序。爲了避免重複命名,TraceLWord3的網站被放置到了WebUI項目中。更完整的代碼,能夠在CodePackage/TraceLWord3目錄中找到—— 數據庫設計
有些網友在讀完這篇文章前做以後,對我提出了一些質疑,這提醒我文章至此尚未說起「三層結構」的缺點。「三層結構」這個詞眼彷佛一直都很熱門,究其緣由,或許是這種開發模式應用的比較廣泛。可是「三層結構」卻並非百試百靈的「萬靈藥」,它也存在着缺點。下面就來講說它的缺點……ide
「三層結構」開發模式的一個很是明顯的缺點就是其執行速度不夠快。固然這個「執行速度」是相對於非分層的應用程序來講的。從文中所給出的時序圖來看,也明顯的暴露了這一缺點。TraceLWord1和TraceLWord2沒有分層,直接調用的ADO.NET所提供的類來獲取數據。可是,TraceLWord6確要通過屢次調用才能獲取到數據。在子程序模塊程序沒有返回時,主程序模塊只能處於等待狀態。因此在執行速度上,留言板的版本越高,排名卻越靠後。「三層結構」開發模式,不適用於對執行速度要求過於苛刻的系統,例如:在線訂票,在線炒股等等……它比較擅長於商業規則容易變化的系統。函數
「三層結構」開發模式,入門難度夠高,難於理解和學習。這是對於初學程序設計的人來講的。以這種模式開發出來的軟件,代碼量一般要稍稍多一些。這每每會令初學者淹沒在茫茫的代碼之中。望之生畏,對其產生反感,也是能夠理解的……性能
其實,不管哪種開發模式或方法,都是有利有弊的。不會存在一種「萬用法」能夠解決任何問題。因此「三層結構」這個詞眼也不會是個例外!是否採用這個模式進行系統開發,要做出比較、權衡以後才能夠。切忌濫用!學習
.Net PetShop 4.0 配置文件屬性管理http://blog.csdn.net/fengfangfang/archive/2006/09/07/1189061.aspx
.Net PetShop 4.0 緩存處理
http://blog.csdn.net/fengfangfang/archive/2006/09/06/1185077.aspx
.Net PetShop 4.0 消息處理
http://blog.csdn.net/fengfangfang/archive/2006/09/08/1194896.aspx
每一個功能都使用了工廠模式