Hangfire + 工厂策略模式 + 幂等性控制:一套完整的 .NET 后台任务调度架构 基于 SwitchData 项目真实代码,讲解如何用 Hangfire 做后台任务调度,用工厂+策略模式让每种任务独立实现,用幂等性 Key 和 CAS 状态机防重复执行,用 BackgroundService 在 Worker 启动时一次性把数据库任务同步到 Hangfire。从配置、调度封装、策略接口、工厂注册到执行记录持久化,完整实现一条可扩展的后台任务链路。 .NET 0 0 0 2026-09-13
C# Channel 实战:高性能生产者-消费者数据管道(IAsyncEnumerable + Batch BulkCopy + CancellationToken 完整实现) 在处理百万级数据导入场景时,传统同步流水线让数据库成为瓶颈。本文结合 SwitchData 项目中的语音专线数据同步实战,展示如何用 .NET 8 的 System.Threading.Channels 构建生产者-消费者并行管道:一个异步任务负责从数据库逐条读取+聚合去重,另一个任务负责批量 BulkCopy 入库,两者通过有界 Channel 解耦,吞吐提升 3.6 倍。 .NET 3 0 0 2026-09-12
ASP.NET Core System.Text.Json 自定义 Converter 实战:DateTime 格式化 + DataTable 双序列化器桥接 ASP.NET Core 默认使用 System.Text.Json 做 JSON 序列化,但日期格式化、字符串 Trim、DataTable 桥接这些常见需求需要自己实现 Converter。本文基于 SwitchData 项目,从 DateTimeJsonConverter、TrimStringJsonConverter 到 DataTableJsonConverter,再到 JsonConverterFactory 消除重复、JsonHelper 统一双序列化器入口,手把手实现一套完整的自定义 Converter 体系。 .NET 2 0 0 2026-09-11
.NET 高性能对象映射库 Mapster 实战:从基础配置到复杂树形结构映射 本文结合 SwitchData 项目真实代码,介绍 .NET 下 Mapster 对象映射库的全局配置、AfterMapping、Map、MapWith 等实战技巧,并演示如何用 MapWith 把扁平列表映射为复杂树形结构。适合想用 Mapster 替代 AutoMapper 的开发者。 .NET 0 0 0 2026-09-10
C# 表达式树深度解析:自建 ORM 如何把 LINQ 翻译成 SQL 很多人每天写 LINQ,却不知道它背后是一棵可以被拆解翻译的表达式树。Entity Framework 能把 Where(x => x.Name == "张三") 转成 SQL,靠的就是表达式树解析。本文基于生产项目中的 ExpressionParser,从零实现了一个表达式树解析器,能把 LINQ 的 Where 条件和 OrderBy 排序翻译成数据库查询条件,配合反射构建的元数据缓存,构成了一个自实现 ORM 的核心查询层。 .NET 3 0 0 2026-09-09