前言
PetShop 4.0 是微軟 .NET 企業系統範例,但存在架構層級低、誤導開發者、移植性弱、新技術支援不足等問題。本系列將以 NHibernate + WCF + ASP.NET MVC + NVelocity 重構。
PetShop 4.0 四大弊端
- 入門級架構:三層 DAL/BLL/UI 不適合中高階專案,擴展性/負載均衡/分散式應用為空白
- 錯誤引導:讓開發者以為架構就等於 DAL/BLL/UI,限制設計思維
- 移植性弱:每新增一種資料庫需重寫 DAL,SQL 寫在程式碼中不靈活
- 技術落後:缺乏 AJAX/WCF/ASP.NET MVC/ORM/IoC/AOP 支援
重構後架構圖

- 持久層:NHibernate ORM,支援多資料庫,僅改方言設定
- 交易:設定檔式自動交易策略
- 門面:封裝 DAO/Service,對外透過 Contract 交互
子系統拆解與分散式設計

PetShop 原有 3 個資料庫,負載高時應部署於不同伺服器。重構將每個資料庫視為獨立子系統,透過分散式技術整合,降低耦合。
服務之間關係圖

- 三子系統平級,不應直接耦合
- 客戶端可直接存取三子系統
- 或引入二級服務作為門面,客戶端僅依賴二級服務
- 支援多種客戶端(管理端、客戶端)
原始出處
Spring.NET 企業架構實踐(一)