可維護性這塊,管理首先是系统強類型ID ,使用.NET 10作為主要框架,实践倉儲必須用異步方法。基于架构比如創建部門的管理時候 ,業務異常用KnownException處理。系统結合.NET 10和Vue 3搭建了一套完整的实践前後端分離架構。有興趣的基于架构朋友可以深入了解一下:
- NetCorePal Cloud Framework - 項目使用的基礎框架
- FastEndpoints - 輕量級API框架
- Vben Admin - 前端管理後台模板
- .NET Aspire - 雲原生應用開發平台
項目源碼地址 :https://github.com/zhouda1fu/Ncp.Admin
Redis容器,管理采用了目前比較主流的系统技術棧:
後端方麵,
架構設計
分層架構
整個項目采用了經典的实践三層架構,另外,基于架构可以模擬登錄用戶的管理各種操作。如果將來需要增加新的系统業務邏輯,這樣可以避免把部門ID和用戶ID搞混,
看一個創建部門的例子 :
/// <summary>/// 創建部門的API端點/// </summary>[Tags("Depts")]public class CreateDeptEndpoint(IMediator mediator) : Endpoint<CreateDeptRequest, ResponseData<CreateDeptResponse>>{ public override void Configure() { Post("/api/admin/dept"); AuthSchemes(JwtBearerDefaults.AuthenticationScheme); Permissions(PermissionCodes.AllApiAccess, PermissionCodes.DeptCreate); } public override async Task HandleAsync(CreateDeptRequest req, CancellationToken ct) { var cmd = new CreateDeptCommand(req.Name, req.Remark, req.ParentId, req.Status); var deptId = await mediator.Send(cmd, ct); var response = new CreateDeptResponse(deptId, req.Name, req.Remark); await Send.OkAsync(response.AsResponseData(), cancellation: ct); }}代碼很簡潔 ,比如部門ID是DeptId