關於在.NET中 DAL+IDAL+Model+BLL+Web


 

其實三層架構是一個程序最基本的 在.Net開發中通常是多層開發
比如說
    BLL 就是business Logic laywer(業務邏輯層) 他只負責向數據提供者也就是DAL調用數據 然后傳遞給 客戶程序也就是UI
    DAL就是(data access laywer)數據訪問層 ,負責 對實體也就是數據庫相應表的增刪改查
    IDAL它體現了“抽象”的精神,或者說是“面向接口編程”的最佳體現。抽象的接口模塊(IDAL)
    Model: 實體層數據庫中表的映射,一般有幾個表就有幾個實體類
DBUtility: 數據庫應用層
common:常用處理組件層
web:(Web)網站項目

在程序中調用BLL,BLL中調用DAL

創建方法:

菜單-》文件-》新增-》新建項目

然后可以選擇建立一個類庫,也就是BLL,DAL。

如果要新建網站的話同理。

建立之后可以在一個項目中引用某個類庫,注意引用順序。引用完成后就可以查看項目依賴項的依賴關系了

 

ASP.NET里的三層架構感覺類似於J2EE里的MVC模式
也就是把結構分層為
Model層(負責與后台數據通信一般用LINQ)
View層(負責前台的表現)
Control層(負責業務邏輯的處理).

既然是三層,肯定在物理邏輯上就要進行區分的,因此在項目文件夾下,有WebUI、BLL、DAL、Common這四個文件夾和Default.aspx等首頁文件,其實最主要的就是前三個文件夾,
Common文件夾里保存了一些樣式文件和JS文件,個人感覺這些文件可以放到WebUI里的。o(∩_∩)o...,這幾個文件夾用來作什么應該從命名上能看出來吧?
WebUI用來保存頁面文件,也就是大家在瀏覽網頁的時候能看見的,最直觀的,也是這三層中最簡單的;
BLL用來保存業務邏輯,起到一個承上啟下的作用,用來連接WebUI層和DAL層,主要是定義一些方法,相對來講比WebUI要復雜;
DAL文件夾主要是保存對數據庫操作的一些文件,主要是對一些SQL語句(存儲過程)的執行。
這三層之間的關系是上層引用下層,即WebUI引用BLL,BLL引用DAL。這三層聯系起來就是這樣一個過程:在頁面添加一些信息經過合理性判斷(WebUI)后調用BLL層的函數(方法)。


三、各層間的訪問過程

1、傳入值,將值進行類型轉換(為整型)。

2、創建BLL層的content.cs對象c,通過對象c訪問BLL層的方法GetContentInfo(ID)調用BLL層。

3、BLL層方法GetContentInfo(ID)中取得數據訪問層SQLServerDAL的實例,實例化IDAL層的接口對象dal,這個對象是由工廠層DALFactory創建的,然后返回IDAL層傳入值所查找的內容的方法dal.GetContentInfo(id)。

4、數據工廠通過web.config配置文件中給定的webdal字串訪問SQLServerDAL層,返回一個完整的調用SQLServerDAL層的路徑給 BLL層。

5、到此要調用SQLServerDAL層,SQLServerDAL層完成賦值Model層的對象值為空,給定一個參數,調用SQLServerDAL層的SqlHelper的ExecuteReader方法,讀出每個字段的數據賦值給以定義為空的Model層的對象。

6、SqlHelper執行sql命令,返回一個指定連接的數據庫記錄集,在這里需要引用參數類型,提供為打開連接命令執行做好准備PrepareCommand。

7、返回Model層把查詢得到的一行記錄值賦值給SQLServerDAL層的引入的Model層的對象ci,然后把這個對象返回給BLL。

8、回到Web層的BLL層的方法調用,把得到的對象值賦值給Lable標簽,在前台顯示給界面

 

 

實現步驟過程

1、創建Model,實現業務實體。

2、創建IDAL,實現接口。

3、創建SQLServerDAL,實現接口里的方法。

4、增加web.config里的配置信息,為SQLServerDAL的程序集。

5、創建DALFactory,返回程序集的指定類的實例。

6、創建BLL,調用DALFactory,得到程序集指定類的實例,完成數據操作方法。

7、創建WEB,調用BLL里的數據操作方法。

注意:

1、web.config里的程序集名稱必須與SQLServerDAL里的輸出程序集名稱一致。

2、DALFactory里只需要一個DataAccess類,可以完成創建所有的程序集實例。

3、項目創建后,注意修改各項目的默認命名空間和程序集名稱。

4、注意修改解決方案里的項目依賴。

5、注意在解決方案里增加各項目引用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM