最常見的架構就是三層架構啦!
1. UI層(用戶界面)
就是給用戶看的,負責展示內容和提供操作入口,比如按鈕啥的。用戶點一下,它就反饋結果。
2. 業務層(Business Tier)
這個是干重活的,主要負責數據處理,把加工后的數據給UI層或者數據層用。它又分為BLL(業務邏輯層)和DAL(數據訪問層)。簡單說,DAL專門負責跟數據庫打交道,讀寫數據;BLL則負責調用DAL,對數據做運算和操作,同時響應UI層的需求。
3. 數據層(Data Tier)
顧名思義,就是存數據的地方,可能是數據庫、XML文件或者其他形式。它只管數據怎么存,不管別的事。
這樣就把顯示業務數據分開了:
- UI層只負責展示,數據怎么算不用它管;
- 數據怎么處理交給BLL;
- 數據怎么存取交給DAL;
- 最終存儲方式由數據層搞定。
各層之間比較獨立,改動一個層時,其他層受影響的概率小很多,有時候只需要重新編譯修改的部分就行。
開發人員一般只要搞定UI、BLL和DAL就行了,數據層通??坎僮飨到y或數據庫管理系統來完成,咱們按規矩存取數據就好。
不過,光把項目分成DAL、BLL、WebUI三個模塊,并不意味著這就是標準的三層架構!以下問題可以幫你判斷:
1. UI層里有沒有SQL語句或者存儲過程?如果有,是不是只讀操作,不會改數據?
2. 如果去掉UI層,你的項目還能通過API提供完整功能嗎?
3. DAL能不能直接搬到別的類似項目里用?
4. 這三個模塊能不能分別跑在不同的服務器上?
如果這些問題的答案不是全YES,那你的項目還不算真正意義上的三層架構。三層架構有一些必須遵守的原則:
1. UI層只能是個殼,不能摻雜任何業務邏輯。
2. 開發時要從業務邏輯出發,而不是從界面開始。BLL層得用面向對象的方式實現所有業務邏輯。
3. 數據層的設計要在一定抽象程度上做到系統無關,不管是SqlHelper還是ORM映射類,都得盡量通用。
就這樣吧!
1. UI層(用戶界面)
就是給用戶看的,負責展示內容和提供操作入口,比如按鈕啥的。用戶點一下,它就反饋結果。
2. 業務層(Business Tier)
這個是干重活的,主要負責數據處理,把加工后的數據給UI層或者數據層用。它又分為BLL(業務邏輯層)和DAL(數據訪問層)。簡單說,DAL專門負責跟數據庫打交道,讀寫數據;BLL則負責調用DAL,對數據做運算和操作,同時響應UI層的需求。
3. 數據層(Data Tier)
顧名思義,就是存數據的地方,可能是數據庫、XML文件或者其他形式。它只管數據怎么存,不管別的事。
這樣就把顯示業務數據分開了:
- UI層只負責展示,數據怎么算不用它管;
- 數據怎么處理交給BLL;
- 數據怎么存取交給DAL;
- 最終存儲方式由數據層搞定。
各層之間比較獨立,改動一個層時,其他層受影響的概率小很多,有時候只需要重新編譯修改的部分就行。
開發人員一般只要搞定UI、BLL和DAL就行了,數據層通??坎僮飨到y或數據庫管理系統來完成,咱們按規矩存取數據就好。
不過,光把項目分成DAL、BLL、WebUI三個模塊,并不意味著這就是標準的三層架構!以下問題可以幫你判斷:
1. UI層里有沒有SQL語句或者存儲過程?如果有,是不是只讀操作,不會改數據?
2. 如果去掉UI層,你的項目還能通過API提供完整功能嗎?
3. DAL能不能直接搬到別的類似項目里用?
4. 這三個模塊能不能分別跑在不同的服務器上?
如果這些問題的答案不是全YES,那你的項目還不算真正意義上的三層架構。三層架構有一些必須遵守的原則:
1. UI層只能是個殼,不能摻雜任何業務邏輯。
2. 開發時要從業務邏輯出發,而不是從界面開始。BLL層得用面向對象的方式實現所有業務邏輯。
3. 數據層的設計要在一定抽象程度上做到系統無關,不管是SqlHelper還是ORM映射類,都得盡量通用。
就這樣吧!