随笔分类 - Adnc社区
Adnc是一个轻量级的.NET Core微服务快速开发框架,也可以应用于单体架构系统的开发。
摘要:ADNC 快速上手指南 GitHub 仓库地址 1. 配置文件修改 在开发环境中,adnc 各服务的通用配置统一集中在 adnc\src\Demo\Shared\resources\appsettings.shared.Development.json 文件中(例如 Redis、RabbitMQ 等
阅读全文
摘要:ADNC 快速 Docker 部署指南 GitHub 仓库地址 1. 系统要求 推荐服务器操作系统:Ubuntu 22.04 服务器需预先安装 Docker 与 Docker Compose 2. 创建部署目录 mkdir -p /opt/adnc/src 3. 创建自定义 Docker 网络 do
阅读全文
摘要:ADNC 配置节点详细说明 GitHub 仓库地址 1. 服务公共配置 adnc\src\Demo\Shared\resources\appsettings.shared.Development.json 1.1 RegisterType 服务注册类型: Direct:不进行注册,服务间调用通过 U
阅读全文
摘要:ADNC 以 Student 为例的完整开发流程 GitHub 仓库地址 本文以 Student 实体为例,结合项目代码风格,系统性地阐述在 ADNC 项目中,从 Entity 定义到 Controller 层,实现完整增删改查(CRUD)功能的标准流程。内容涵盖 Entity、EntityConf
阅读全文
摘要:ADNC 服务层开发指引 GitHub 仓库地址 服务层(Application / Application.Contracts)负责业务编排、DTO 映射、事务控制、跨服务调用等,是应用层的核心组成部分。建议遵循分层、解耦、可测试的设计原则。 1. 设计原则 单一职责:每个应用服务只处理一个聚合/
阅读全文
摘要:ADNC Repository 层开发指引 GitHub 仓库地址 Repository 层(Repository 工程,或 DDD 场景下的 Domain + Infrastructure)负责数据持久化与查询能力的封装,包括实体建模、映射配置、数据库上下文、仓储接口实现、读写分离/软删除/并发控
阅读全文
摘要:ADNC 如何使用仓储 - 基础功能 GitHub 仓库地址 本文重点介绍如何使用仓储操作 MariaDB/Mysql。 总体设计 仓储相关基础架构层 Adnc.Infra.Repository 定义仓储接口、工作单元接口、实体基类与常量。 Adnc.Infra.Repository.EfCore
阅读全文
摘要:ADNC API 层开发指引 GitHub 仓库地址 API 层负责对外提供 HTTP 接口,处理路由与协议适配、鉴权与权限校验、参数绑定与输入校验、响应封装与错误输出等。API 层应保持“薄”,避免承载业务规则与事务逻辑,将业务编排交由服务层(Application)完成。 1. 设计原则 职责清
阅读全文
摘要:ADNC 认证与授权 GitHub 仓库地址 在 .NET Framework 时代,常用的是 Form 认证。对于前后端分离或多前端的系统,Form 认证的兼容性较差,容易导致代码复用率低、维护成本高。ASP.NET Core 对认证与授权进行了重构,采用基于声明(claims-based)的认证
阅读全文
摘要:ADNC 如何使用仓储 - 切换数据库类型 GitHub 仓库地址 本文主要介绍在 ADNC 仓储中如何切换数据库类型。原则上,只要 EF Core 支持的数据库类型,ADNC 均可实现平滑切换。ADNC 默认使用 MariaDB/MySQL,本文以从默认数据库类型切换到 SQL Server 为例
阅读全文
摘要:ADNC 如何使用仓储 - CodeFirst GitHub 仓库地址 本文主要介绍在 ADNC 框架中,如何将实体映射到数据库。示例采用 Code First 模式;如有需要,也可使用 DB First 模式。 本文所有操作均以 Adnc.Cust 微服务为例,其他微服务的定义方式一致。 如何使用
阅读全文
摘要:ADNC 如何使用仓储 - 事务 GitHub 仓库地址 本文主要介绍事务与工作单元,EFCore的事务分为以下三种 SaveChanges DbContextTransaction TransactionScope EF Core 默认情况下,SaveChanges 会根据需要开启事务。 Exec
阅读全文
摘要:ADNC 如何使用仓储 - 执行原生SQL GitHub 仓库地址 本文主要介绍在 ADNC 仓储中如何执行原生 SQL。当遇到复杂查询、多表查询、大批量写操作等场景时,勉强使用 EF Core 实现并不是最佳方案。例如 SqlSugar、FreeSql也提供直接操作 ADO 执行 SQL 的能力;
阅读全文
摘要:ADNC Id生成器(雪花算法) GitHub 仓库地址 主键生成方式有多种,例如自增 ID、GUID、Redis 的 INCR、雪花算法等。各类方案的优劣已有大量资料,本文不再赘述。ADNC 采用基于 Yitter 的雪花算法生成 ID,以兼顾分布式环境下的唯一性与高性能。 Yitter 雪花算法
阅读全文
摘要:ADNC 如何使用仓储 - 读写分离 GitHub 仓库地址 当单库系统遇到性能瓶颈时,读写分离通常是首选的优化手段之一。绝大多数系统中,读操作远多于写操作,大量耗时的读请求容易导致锁表,进而影响写入。因此,读写分离尤为重要。 关于 EF Core 如何实现读写分离,常见方案包括注册 DbConte
阅读全文
摘要:ADNC 如何使用Cache/Redis/分布式锁/布隆过滤器 GitHub 仓库地址 .NET 官方提供了 Microsoft.Extensions.Caching.Distributed.IDistributedCache 接口,并且提供了 StackExchange.Redis 等实现。那么,
阅读全文
摘要:ADNC 服务之间如何通过 HTTP 调用(Refit) GitHub 仓库地址 在 ADNC 中,服务间“同步调用”(A 服务去调用 B 服务的接口)通常使用 HTTP(基于 Refit)或 gRPC。本文以 src/Demo/Cust/Api/Controllers/RestClientDemo
阅读全文
摘要:ADNC 服务之间如何通过 gRPC 调用 GitHub 仓库地址 在 ADNC 中,服务间同步调用除了 HTTP(Refit)外,也常用 gRPC。gRPC 的优点是性能更好、契约更强(基于 .proto),适合服务之间的内部调用。本文以 src/Demo/Cust/Api/Controllers
阅读全文
摘要:ADNC 服务之间如何通过事件(CAP)通信 GitHub 仓库地址 在微服务中,除了“同步调用”(HTTP/gRPC)之外,更推荐使用“事件驱动”来做跨服务协作:一个服务只负责把“发生了什么”发布出去,其他服务按需订阅并处理。这样可以降低耦合、减少调用链长度,并更容易实现最终一致性。 本文以 sr
阅读全文
摘要:ADNC 如何开启 SkyAPM(SkyWalking)链路追踪 GitHub 仓库地址 本项目已集成 SkyAPM(SkyWalking .NET Agent)相关依赖。开启后,你可以在 SkyWalking UI 中看到请求链路(Trace)、服务依赖关系、接口耗时等信息,并能把 HTTP、gR
阅读全文

浙公网安备 33010602011771号