手写 ORM 或数据库抽象层时,缓存是性能关键。本文从 SwitchData 项目提取一套生产级缓存方案:用 record struct 做零 GC 组合键,ConcurrentDictionary 做线程安全容器,CacheKey 包含 ConnectionString 防止串库,命中缓存时必须 Clone 可变对象(DbParameter、DataTable、List)避免被业务代码污染。四句话总结一套可直接抄过去的 ORM 缓存基础设施。
分类: .NET
EF Core 是怎么把 LINQ 翻译成 SQL 的?答案是表达式树。本文从 SwitchData 项目中 462 行的 ExpressionParser 真实代码出发,展示手写 ORM 如何把 Where/OrderBy Lambda 翻译成结构化 QueryCondition 列表:排序解析沿方法调用链向内剥离,条件解析基于 ExpressionVisitor 深度优先遍历并还原括号语义,还包含闭包变量提取、string.Contains 转 LIKE、PredicateBuilder 动态组合等核心难点的完整实现。
Telnet 协议解析器是状态机设计模式的经典应用场景。本文从协议原理出发,用逐字节扫描 + 8 状态 FSM 的方式,完整实现 Telnet 四向握手协商(DO/DONT/WILL/WONT)、TerminalType/WindowSize 子协商、业务数据 IAC 转义还原,并与上层 Socket TelnetClient 配合实现零依赖、高性能的生产级 Telnet 协议栈。
从 SwitchData 项目的 NeTaskHangfireScheduler + JobWorkerService 出发,拆解一套完整的 Hangfire 数据库驱动定时任务体系:独立 Worker 进程架构、SQL Server 持久化配置、动态 Cron AddOrUpdate/RemoveIfExists、后台服务 SyncJobsAsync 自动同步、SlidingInvisibilityTimeout 幽灵任务防护、DisableGlobalLocks 多实例部署安全,以及 Dashboard 鉴权加固实战。
本文基于 SwitchData 项目中真实的 Telnet 客户端实现,深入剖析 Telnet 协议的 IAC 转义、DO/DONT/WILL/WONT 四向协商、子协商等核心机制,以及如何用状态机、异步 Socket、SemaphoreSlim 并发控制和 Decoder.Convert 连续解码来构建一个生产级 TelnetClient。
Telnet 协议看似简单,实际涉及完整的状态机、自动协商、子协商、VT100 终端控制序列、NUL 空字符、UTF-8 跨包解码等一堆细节。本文基于 SwitchData 项目中从零实现的 TelnetClient + TelnetProtocolParser + OrdpClient 四层架构,逐层拆解实现原理,并附带华为/中兴设备实战踩坑总结。
AsyncLocal<T> 是 .NET 异步编程中被低估的基础设施。本文通过 SwitchData 项目的完整实战,展示如何用 AsyncLocal 在请求管道中自动传递用户上下文,解释它与 ThreadLocal、ExecutionContext 的关系,并总结常见坑点与最佳实践。
本文基于 SwitchData 项目的实际代码,完整展示 ASP.NET Core 过滤器(Filter)体系的工程实践:用 IAsyncActionFilter 实现接口操作日志(反射读取 DisplayAttribute、敏感参数脱敏、Fire-and-forget 异步写库),用 NoPermissionAttribute + PermissionAttribute 双层拦截实现权限管控,以及通过自定义 IFilterProvider 动态注入过滤器。适合希望深入理解 ASP.NET Core 管道模型的开发者。
在多厂商多格式网元日志解析场景下,传统的 if/else 分支写法难以维护。本文以 SwitchData 项目为实战案例,拆解一套工厂策略模式 + Channel 异步管道 + ADO.NET 批量入库的完整架构,从接口抽象、工厂分发、Channel 背压、批量 Flush 等关键设计点入手,带你看约 500 行核心代码如何支撑百万级日志解析流水线稳定运行两年多。
显式接口实现是 C# 中一个常被忽视但极其有用的特性。本文基于 SwitchData 项目中的真实代码,通过泛型接口桥接、双 Dispose 模式、多接口共存三大实战场景,深入讲解这个特性的核心价值与应用边界,让你在遇到同名接口冲突时能优雅化解。
1 / 6
下一页