寫操作這邊,实践不需要再做額外的基于架构轉換。歡迎交流討論 。管理這個功能真的系统很方便 。這樣開發效率會高不少 。实践最終選擇了NetCorePal Cloud Framework作為基礎框架,基于架构
可維護性這塊 ,管理項目選擇了FastEndpoints而不是系统傳統的Controller。直接使用DbContext,实践可以看看這個項目的基于架构代碼,
# 僅需確保Docker環境運行docker version# 直接運行AppHost項目,管理可以直觀地看到代碼之間的系统關係和數據流向。倉儲的實現很簡單:/// <summary>/// 部門倉儲接口/// </summary>public interface IDeptRepository : IRepository<Dept, DeptId> { }/// <summary>/// 部門倉儲實現/// </summary>public class DeptRepository(ApplicationDbContext context) : RepositoryBase<Dept, DeptId, ApplicationDbContext>(context), IDeptRepository { }
框架會自動管理事務和SaveChanges
,
3. 事件驅動架構
事件驅動這塊,啟動開發環境隻需要運行AppHost項目
,集成測試用了Aspire來自動管理測試環境。首先是強類型ID,省了很多麻煩
。測試的是完整的HTTP請求流程,
最重要的是類型安全,而且測試起來也很方便,主題和布局也可以定製,狀態隻能通過業務方法來修改。
使用起來也很簡單 :
// 定義強類型IDpublic partial record DeptId : IInt64StronglyTypedId;// 使用強類型IDvar deptId = new DeptId(123);var parentId = request.ParentId ?? new DeptId(0);
框架會自動處理序列化和類型轉換
,ncpar可以生成聚合根,一個類就把路由
、其次是屬性都用private set