WCF 屬於分散式 SOA 方案,為了體現服務契約特性、解除耦合並利於客戶端重用,專案組件劃分至關重要。本文提出經驗證的三組件架構模式。
將服務契約、資料契約、服務實作分為三個獨立組件:
| 組件名稱 | 命名空間 | 職責 |
|---|---|---|
| WCFSolution.ServiceContract | WCFSolution.ServiceContract | 定義 [ServiceContract]、[OperationContract] |
| WCFSolution.DataContract | WCFSolution.DataContract | 定義 [DataContract]、[DataMember] 實體 |
| WCFSolution.ServiceImplementation | WCFSolution.ServiceImplementation | 實作服務邏輯,參考上述兩組件 |
ServiceContract ──► DataContract
▲
│
ServiceImplementation ──► ServiceContract
│
└──► DataContract
這種劃分實際上對應經典分層架構:
雖然設計看似簡單,但從專案伊始建立此習慣,能在後續開發、部署、維護階段發揮事半功倍效果。建議在建立 WCF 專案時,第一步就建立這三個專案結構。