2012-07-19 90 views
0

我已經從MSDN閱讀下面的文章:http://msdn.microsoft.com/en-us/library/aa581779ASP.NET分層設計

它談論創建一個數據層,業務邏輯層和表示層和具有類似於getProductsDAL(),getProductsBLL()等,或命名約定甚至將它們分爲類庫。

我的問題是:如果不使用.NET數據集,開發人員是否遵循這種方法,即如果您自己完成所有邏輯,有一個名爲getProducts的函數,它使用連接對象連接到數據庫,然後使用SQLDataReader遍歷結果集並在頁面上顯示結果。我正在考慮將這樣的功能分解爲圖層。

+1

關於降價的可惜,這是許多開發商在一個階段提出的問題。閱讀此:http://stackoverflow.com/questions/1182303/n-tiered-vs-n-layered-architecture-design和這個http://en.wikipedia.org/wiki/Multitier_architecture – callisto 2012-07-19 11:38:42

回答

2

如果您按照自己的方式設置:
您的數據層將包含打開連接,執行查詢/存儲過程並返回數據集或數據表的方法。此圖層不接收來自上述圖層的連接信息,只返回每種方法的查詢結果。連接在此級別實例化。

您的業務邏輯層包含調用一個或多個數據層方法的方法。示例:添加新用戶還意味着爲該用戶設置權限,因此DL.sertion(params ...)和DL.SetPermissions(int userid,List permissions)由BL.AddNewUser(params ...)調用。這BL方法也可以調用得到的默認權限列表中的另一DL方法來分配新的用戶

你的UI層將調用BL.AddNewUser(參數...)與所有適當的新用戶詳細信息

+0

你認爲這是好事實踐?我已經繼承了一個ASP.NET類應用程序,它們在類中的凝聚力和緊密耦合度低。我正試圖按照結構化的方式來實現未來的發展。這是你會遵循的模式嗎? – w0051977 2012-07-19 11:37:14

+0

我已經建立了像內聚力高和鬆散耦合的系統。只要你在選擇正確的課程方法上保持一致,並且保持課程不會達到多重目的。 – callisto 2012-07-19 11:43:01

+0

表示層調用業務邏輯層,業務邏輯層調用數據訪問層?我正在考慮從數據層返回SQLDataReaders,以後可以在業務邏輯中循環使用。然後業務邏輯層可以返回一個表格放在頁面上。 – w0051977 2012-07-19 11:53:07