在這一篇文章中,將實現一個NGuestBook的商務邏輯層。
在實際應用 中,商務邏輯層是至關重要的,他承載著整個系統最核心的部分,也是客戶最關 注的部分。這一部分的實現,通常需要技術專家和領域專家通力合作。當然,在 本文章系列的Demo中,由於商務邏輯的簡單性,這裡看的可能還不是很明顯。
在本篇文章的商務邏輯層實現中,商務邏輯層主要承擔了以下職責:
1.對不同資料訪問層的封裝。使得展示層可以不關心具體的資料訪問層。
2.商務邏輯資料的填充與轉換。如管理員口令的加密。
3.核心業 務的實現。這裡很多商務邏輯只有一行代碼,即一個商務邏輯方法恰好對應一個 資料存取方法,但是也有通過多個資料存取方法實現業務的。如AdminBLL中的 ChangePassword方法就調用了AdminDAL的GetByID和Update兩個方法。另外,雖然 許多方法只調用一個資料存取方法,但是從命名看也能看出兩者著眼點的不同。 如AdminDAL中的GetByNameAndPassword,這個名字顯然是從資料庫的角度看問題 ——指按照指定的Name和Password兩個欄位的值取出相應資訊,至於 這樣做的業務意義它不需要知道。而AdminBLL中,調用它的方法叫Login,這是從 業務角度看問題——即這個方法是管理員登入。
下面分步驟實現業 務邏輯層:
1.建立工程
在這個架構中,商務邏輯層是可以替換的 。及商務邏輯層不是直接耦合於展示層,而是通過依賴注入機制實現。所以,我 們這裡將這個商務邏輯層不直接命名為BLL,而是建立一個叫SimpleBLL的工程, 放置我們這個商務邏輯層的相關代碼。
2.配置依賴注入
商務邏輯 層要通過反射工廠載入相應的資料訪問層,這樣就需要在Web.config中配置需要 使用的資料訪問層。開啟Web.config,找到appSettings節點下的 “DAL”項,將其中的value賦予我們要使用的資料訪問層工程名稱, 例如:要使用NBearDAL,則這一項應該這樣寫:
<add key="DAL" value="NBearDAL"/>