-
petshop
鎖定
PetShop是一個範例,微軟用它來展示.Net企業系統開發的能力。
- 中文名
- petshop
- 概 念
- 展示.Net企業系統開發的能力
- 系統架構設計
- 分層式結構
- 三層結構
- 業務邏輯層的相關設計
petshop簡介
業界有許多.Net與J2EE之爭,許多數據是從微軟的PetShop和Sun的PetStore而來。這種爭論不可避免帶有濃厚的商業色彩,對於我們開發人員而言,沒有必要過多關注。然而PetShop隨着版本的不斷更新,至現在基於.Net 2.0的PetShop4.0為止,整個設計逐漸變得成熟而優雅,而且有很多可以借鑑之處。PetShop是一個小型的項目,系統架構與代碼都比較簡單,卻也凸現了許多頗有價值的設計與開發理念。
petshop系統架構設計
petshop三層結構
數據訪問層:有時候也稱為是持久層,其功能主要是負責數據庫的訪問。簡單的説法就是實現對數據表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那麼就會包括對象和數據表之間的mapping,以及對象實體的持久化。在PetShop的數據訪問層中,並沒有使用ORM,從而導致了代碼量的增加,可以看作是整個設計實現中的一大敗筆。
業務邏輯層:是整個系統的核心,它與這個系統的業務(領域)有關。以PetShop為例,業務邏輯層的相關設計,均和網上寵物店特有的邏輯相關,例如查詢寵物,下訂單,添加寵物到購物車等等。如果涉及到數據庫的訪問,則調用數據訪問層。
表示層:是系統的UI部分,負責使用者與整個系統的交互。在這一層中,理想的狀態是不應包括系統的業務邏輯。表示層中的邏輯代碼,僅與界面元素有關。在PetShop中,是利用.NET來設計的,因此包含了許多Web控件和相關邏輯。
petshop分層式設計
分層式結構究竟其優勢何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一書中給出了答案:
1、開發人員可以只關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的複用。
概括來説,分層式設計可以達至如下目的:分散關注、鬆散耦合、邏輯複用、標準定義。
一個好的分層式結構,可以使得開發人員的分工更加明確。一旦定義好各層次之間的接口,負責不同邏輯設計的開發人員就可以分散關注,齊頭並進。例如UI人員只需考慮用户界面的體驗與操作,領域的設計人員可以僅關注業務邏輯的設計,而數據庫設計人員也不必為繁瑣的用户交互而頭疼了。每個開發人員的任務得到了確認,開發進度就可以迅速的提高。
鬆散耦合的好處是顯而易見的。如果一個系統沒有分層,那麼各自的邏輯都緊緊糾纏在一起,彼此間相互依賴,誰都是不可替換的。一旦發生改變,則牽一髮而動全身,對項目的影響極為嚴重。降低層與層間的依賴性,既可以良好地保證未來的可擴展,在複用性上也是優勢明顯。每個功能模塊一旦定義好統一的接口,就可以被各個模塊所調用,而不用為相同的功能進行重複地開發。
進行好的分層式結構設計,標準也是必不可少的。只有在一定程度的標準化基礎上,這個系統才是可擴展的,可替換的。而層與層之間的通信也必然保證了接口的標準化。
“金無足赤,人無完人”,分層式結構也不可避免具有一些缺陷:
1、降低了系統的性能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。
PetShop的表示層是用ASP.NET設計的,也就是説,它是一個BS系統。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:16次歷史版本
- 最近更新: 双鱼雨后彩虹12