我們先來寫檢視模型,就是扔給ui層的實體
public class orderviewmodel
[required(errormessage = "the order name is required")]
[minlength(2)]
[maxlength(100)]
[displayname("name")]
public string name
public listitems
public string province
public string city
public string county
public string street
}public class orderitemviewmodel
}/// /// 位址
///
public class addressviewmodel
/// /// 城市
///
public string city
/// /// 區縣
///
public string county
/// /// 街道
///
public string street
}
/// );}
}}
}這裡有兩個配置檔案,domain到viewmodel還有viewmodel到domain
有了領域物件和dtos的對映,接著就是實現應用層了。
/// 並繼承idisposable,顯式釋放資源
/// 注意這裡我們使用的物件,是檢視物件模型
///
/// 通過 dto 實現檢視模型和領域模型的關係處理
/// 作為排程者,協調領域層和基礎層,
/// 這裡只是做乙個面向使用者用例的服務介面,不包含業務規則或者知識
///
public ienumerablegetall()
public orderviewmodel getbyid(guid id)
public void register(orderviewmodel orderviewmodel)
public void dispose()
}那麼我們有了應用層,領域層,基礎設施層。就有了最簡單的ddd的框架,只需要在startup中注入簡單的ioc就可以使用。
);// 注入 基礎設施層 - 資料層
services.addscoped();
services.addscoped();}}
我把這個最簡單的體現ddd思想的例子單獨建立乙個分支,onlyddd。
接下來我會加入cqrs+event來實現微服務。
DDD領域驅動設計
公司裡面敏捷專案要講ddd領域驅動設計,加緊學習了一下,找了一些資料研究。eric evans的 domain driven design領域驅動設計 簡稱ddd,evans ddd是一套綜合軟體系統分析和設計的物件導向建模方法,本站jdon.com是國內公開最早討論ddd 之一,可訂閱 ddd專題...
DDD(領域驅動設計)
domain 領域 driven 驅動 design 設計 由eric evans最先提出,目的是對軟體所涉及到的領域進行建模,以應對系統規模過大時引起的軟體複雜性的問題。整個過程大概是這樣 開發團隊和領域專家一起通過 通用語言 ubiquitous language 去理解和消化領域知識,從領域知...
DDD領域驅動設計
極客時間學習筆記 為什麼微服務設計的時候需要ddd?1 軟體架構模式演進的三個階段 第一階段是單機架構 第二階段是集中式架構 第三階段是分布式微服務架構 2 在單機和集中式架構這兩種模式下,軟體無法快速響應需求和業務的迅速變化,最終錯失發展良機。3 微服務拆分困境產生的根本原因就是不知道業務或者微服...