1. 程式人生 > >.net core webapi +ddd(領域驅動)+nlog配置+swagger配置 學習筆記(2)

.net core webapi +ddd(領域驅動)+nlog配置+swagger配置 學習筆記(2)

struct 名詞 領域驅動設計 .com 模型 webapi 添加 傳統 bapi

DDD領域驅動模型設計

什麽是DDD

軟件開發不是一蹴而就的事情,我們不可能在不了解產品(或行業領域)的前提下進行軟件開發,在開發前,通常需要進行大量的業務知識梳理,而後到達軟件設計的層面,最後才是開發。而在業務知識梳理的過程中,我們必然會形成某個領域知識,根據領域知識來一步步驅動軟件設計,就是領域驅動設計的基本概念。

聽起來這和傳統意義的軟件開發沒啥區別,只是換了點新鮮的名詞而已,其實不然。

該架構分成了Interfaces、Applications和Domain三層以及包含各類基礎設施的Infrastructure。下圖簡略描述了它們之間的關系:

圖1:領域驅動設計風格的架構草圖(來自於DDDSample官網)

技術分享圖片

下圖是詳細架構:

圖2:領域驅動設計參考架構

技術分享圖片

  • Interface

負責向用戶展現信息,並且會解析用戶行為,即常說的展現層。

  • Application

應用層沒有任何的業務邏輯代碼,它很簡單,它主要為程序提供任務處理。

  • Domain

這一層包含有關領域的信息,是業務的核心,領域模型的狀態都直接或間接(持久化至數據庫)存儲在這一層。

  • Infrastructure

為其他層提供底層依賴操作。

層結構的劃分是很有必要的,只有清晰的結構,那麽最終的領域設計才宜用,比如用戶要預定航班,向Application的service發起請求,而後Domain從Infrastructure獲取領域對象,校驗通過後會更新用戶狀態,最後再次通過Infratructure持久化到數據庫中。

那麽根據這些我們就可以設計出自己得項目。當然需要靈活運用。

在此之前 我們先添加一些基礎類庫,然後分開層次。

(先睡覺了 明天繼續)

.net core webapi +ddd(領域驅動)+nlog配置+swagger配置 學習筆記(2)