導言
本教程的第一節所描述的資料訪問層(Data Access Layer,以下簡稱為DAL)已經清晰地將表示邏輯與資料訪問邏輯區分開了。不過,即使DAL將資料訪問的細節從展示層中分離出來了,可它卻不能處理任何的商務規則。比如說,我們可能不希望產品表中那些被標記為“停用”的產品的“分類編號”或“供應商編號”被更新;我們還可能需要應用一些資曆規則,比如說我們都不希望被比自己的資曆還要淺的人管理。另外一個比較常見的情況就是授權,比如說只有那些具有特殊許可權的使用者可以刪除產品或是更改單價。
我們其實可以將商務邏輯層(Business Logic Layer,以下簡稱BLL)看作是在資料訪問層和展示層之間進行資料交換的橋樑,在這個章節中,我們將討論一下如何將這些商務規則整合到一個BLL中。需要說明的是,在一個實際的應用程式中,BLL都是以類庫(Class Library)的形式來實現的,不過為了簡化工程的結構,在本教程中我們將BLL實現為App_Code檔案夾中的一系列的類。圖一向我們展示了展示層、BLL以及DAL三者之間的結構關係。
圖一:BLL將展示層與DAL隔開了,並且加入了商務規則
第一步:建立BLL類
我們的BLL由4個類組成,每一個BLL類都對應DAL中的一個TableAdapter,它們都從各自的TableAdapter中得到讀取、插入、修改以及刪除等方法以應用合適的商務規則。
為了更加清晰的區分DAL和BLL的類,我們在App_Code檔案夾中建立兩個子檔案夾,分別命名為DAL和BLL。你僅僅需要在解決方案瀏覽器(Solution Explorer)中右鍵點擊App_Code檔案夾,並選擇建立檔案夾(New Folder),就可以建立新的子檔案夾了。建好了這兩個檔案夾之後,把第一節中所建立的類型化資料集(Typed DataSet)移到DAL檔案夾中。
然後,在BLL檔案夾中建立4個類檔案。同樣,你僅僅需要在解決方案瀏覽器(Solution Explorer)中右鍵點擊BLL檔案夾,並選擇建立項目(New Item),然後在彈出的對話方塊中選擇類模板(Class template)就可以建立新的類檔案了。將這四個檔案分別命名為ProductsBLL、CategoriesBLL、SuppliersBLL以及EmployeesBLL。
圖二:在BLL檔案夾中添加4個新的類