[MDP.Net] 軟體分層(Layer)與程式專案(Project)

在.NET裡,軟體分層(Layer)與程式專案(Project),不一定是一對一,常常有一個Layer切割成好幾個Project的情景發生。MDP.Net是將DDD的每個Context,設計為Domain層的Project。在Project裡面會包含該Context相關的Entity、Repository、Service….,用來封裝並提供Context的商業邏輯。

裡面需要特別說明的是Repository,Repository在Domain層的Project裡是擔任系統邊界的角色,會以Interface的方式存在,用來定義Entity進出邊界的方法;其實作會集中到Access層的Project,並同樣以一個Context一個Access的Project的方式進行設計。(如果有很多種實作,也會切割成多個Access的Project)

這樣設計的用意,是讓團隊以商業邏輯的角度,一塊一塊來思考整個系統的設計佈局,跳脫以一行一行程式碼的方式來進行設計思考。這除了能大幅降低思考成本外,也讓團隊用不同維度來溝通設計整個軟體架構。

模組架構:https://clark159.github.io/MDP.Net/#模組架構
 

期許自己
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。