基於.Net架構設計之四


針對前面提到的一些應用場景,我們應該如何利用.Net平台來搭建基礎架構呢?

首先我們先詳細的分解一下業務場景,將應用分層,然后針對每個層次我們來分析一下,系統架構應該作些啥。

 

 

上面表述的是訂單處理的部份場景,訂單的提交可以通過在線網店,也可以通過客服系統,而作為基礎功能模塊的即時消息服務在多個業務模塊中被消費。圖中箭頭方向表示依賴或調用方向,紅色箭頭表示服務調用,粉色塊表示可能的獨立部署單元,藍色塊表示邏輯上的層次,灰色塊表示子業務模塊。

圖中層次的划分有以下幾點考慮:

一、契約層包括數據契約和服務契約,而實體也是支持序列化的,但之所以不把實體直接暴露給服務消費者而是重新包裝數據契約,是因為契約是面向客戶的,我們應以最小知識原則,使契約盡可能的明確、簡單、直觀。但實體一般都會有很多輔助信息及驗證信息,並且會有繼承層次,雖然數據契約也可以支持一定程度的繼承,但我覺得作為交互依據的契約,還是以一種無繼承的單層次的方式呈現給客戶更好一些,另外,當服務的調用者為異構系統時,簡單的契約也就意味着更好的兼容性。

二、數據訪問層也僅是對針對數據持久層的直接包裝,並且應該基於IDbConnection/IDbCommand/IDataReader/IDbTransaction等通用接口開發,這樣便於不同數據持久層數據庫產品的切換。

三、業務處理層是整個業務邏輯的核心,它應該充分利用面象對象編程的靈活性,對於更上一層的業務處理層,可以引入工作流程來組裝底層服務。

四、圖中紅色箭頭雜亂無章,耦合度太高,可以通過調停者模式,引入第三方服務定位服務,減少相互之間的依賴。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com