41篇 .NET 实战笔记,从数据到通信,从缓存到架构
四月份开始,每天写一篇 .NET 库的实战文章,写着写着就到了现在。
起初没想太多,只是想把项目里用过的好工具记录下来。后来发现每个库单独成篇,慢慢就攒成了一个系列。有读者说文章散落在不同时间,翻起来费劲,问能不能整理成一份清单。
那就整理一下。
这 41篇文章,涵盖了我多年在实际项目中踩过坑、用过顺手、值得推荐的 .NET 生态库。每篇都有可跑的示例代码和具体的避坑建议,不是那种官网文档的翻版,更多是自己折腾之后的笔记。
希望能帮你节省一些调研的时间。
数据存储与访问
从 ORM 到嵌入式数据库,这是大多数项目的起点。EF Core、SqlSugar、Dapper、FreeSql 各有侧重,我分别做了单独介绍,也写了一篇横向对比,方便你在实际选型时做判断。
.NET全能选手SqlSugar:一款让你爱不释手的国产ORM框架
微软独宠的 ORM,凭什么成为 .NET 数据访问的"标准答案"?
200KB 的 .NET ORM,凭什么 NuGet 下载量破 6 亿?
.NET ORM 拼图最后一块:FreeSql 凭什么让这么多人推荐
.NET 三大 ORM 终极对决:EF Core / SqlSugar / Dapper 全网深度选型测评
SQLite 只是玩具数据库?这个 .NET 开发者最熟悉的陌生人,你真的用对了吗
缓存之道
从单机内存缓存到分布式 Redis,再到微软新出的 HybridCache,我在不同项目里试过各种方案。FusionCache 那篇反响尤其好,大概是因为它真的帮不少人解决了缓存雪崩的麻烦。
.NET 开发者工具箱系列:Redis,你以为的缓存远不止缓存
受够了 IMemoryCache + Redis 的模板代码?官方 HybridCache 了解一下
比微软官方更早落地!这个 3500 万下载的 .NET 缓存"全家桶",把生产坑都替你踩平了
网络通信与实时交互
SignalR 是我在实时推送场景里的首选,而 TouchSocket 则帮我搞定过 PLC 通信和游戏服务器的需求。SSE 那篇写的是 .NET 10 的新特性,虽然简单,但生产环境有几个坑值得提前知道。
PLC 通信、游戏服务器、高并发网,一个 .NET 框架全搞定
简单到离谱的 .NET 10 SSE,但叫号系统这5个坑你得提前知道
消息队列与服务总线
RabbitMQ 和 Kafka 是两条不同的路,我在文章里尽量讲清楚了各自适合什么场景。MassTransit 和 Wolverine 则更进一步,把消息通信包装成了更高级的抽象。
.NET 8 接入 RabbitMQ 别走弯路:连接、通道、死信队列一次性讲透
.NET 微服务通信还在手写 HttpClient?试试 MassTransit 消息总线
让 .NET 工程更省心:Wolverine 高性能本地总线与分布式消息实战
定时任务与后台作业
Quartz.NET 是经典款,Hangfire 的优势在于自带 dashboard,出了故障能直观看到。两个我都用过,视项目复杂度选择。
Quartz.NET 完全指南:.NET 开发者必备的定时任务框架
Hangfire 实战:让 .NET 后台任务"看得见、修得快、睡得稳"
图像与图形处理
ImageSharp 在 .NET 8 之后基本成了我的默认选项,SkiaSharp 和 OpenCVSharp 则各有专长。三者的对比文章里写得很细,可以根据场景按需选择。
.NET 8 之后,为什么 ImageSharp 成了图像处理的首选?
.NET 图像处理三剑客:SkiaSharp vs OpenCVSharp vs ImageSharp,这次一次说清
文档与办公自动化
QuestPDF 彻底改变了我在 .NET 里生成 PDF 的方式——不用再跟坐标较劲了。Excel 处理方面,MiniExcel 主打内存友好,OpenXML SDK 则是底层标准,各有适用边界。
QuestPDF:让 .NET 开发者告别坐标计算,像写 Markdown 一样生成 PDF
这个 150KB 的 .NET 组件,治好了我的 Excel 内存焦虑
所有 .NET Excel 组件的"爹",OpenXML SDK 到底有多硬核
日志与可观测性
Serilog 的结构化日志能力让日志从"文本"变成了"可查询的数据"。如果你的系统日志量比较大,这篇值得花时间看。
日志成海,何以检索:Serilog 解锁 .NET 日志可查询新范式
认证与安全
从 JWT 的无状态设计到 BCrypt 对抗 GPU 暴力破解的演进,安全这块我写了两篇。BCrypt 那篇的灵感来自 RTX 5090 的算力新闻——MD5 真的不够用了。
RTX 5090 一小时横扫 MD5:.NET 开发者该用 BCrypt 了
架构设计
CQRS 和 MediatR 是我在项目里解耦业务逻辑的常用组合。这两篇偏架构层面,适合有一定项目经验之后回头看。
90% .NET 性能桎梏:读写耦合,用 CQRS 彻底架构解耦
.NET 架构解耦:MediatR 如何让 Controller 告别"胖逻辑"
网关与服务代理
YARP 是微软官方出品的反向代理库,用 .NET 写网关变得异常简单。如果你的团队对 .NET 技术栈有要求,YARP 比 Nginx 更可控。
参数验证
FluentValidation 把参数校验从 if-else 地狱里解放了出来,代码可读性提升明显。
开发效率工具
Humanizer 让枚举转中文、复数转换这些小事情不再需要写 switch。Mapster 和 AutoMapper 的对比文章是我自己选型时做的功课,顺便分享了出来。
枚举转中文就写个 switch?.NET 项目里这些破事 Humanizer 一行给你办了
弹性与韧性
在微服务环境下,重试、熔断、超时这些机制往往比业务代码更重要。Polly 和 Microsoft.Extensions.Resilience 提供了标准化的解决方案。
只用 Microsoft.Extensions,也能实现重试+熔断:Resilience 库实战
Polly 策略管道全解析:重试、熔断、超时,.NET 弹性治理一文搞定
测试
Bogus 和 Moq 是单元测试的左膀右臂。假数据生成和依赖模拟这两件事做好了,测试代码能少写一半。
拒绝手写 Mock:用 .NET 假数据神器 Bogus 释放测试生产力
压缩与归档
SharpCompress 是目前处理 RAR 和 7Z 最省心的方案——前提是你只需要解压不需要压缩。文章里把 Reader 和 Archive 两种 API 的区别讲清楚了,也标注了几个实际踩过的坑。
RAR 格式难倒一片 .NET 开发者?SharpCompress 一招破局
最后说两句
这 41篇文章涵盖了 .NET 开发中比较常见的领域——从数据访问到网络通信,从缓存到消息队列,从图像处理到 PDF 生成。
每个库我都尽量写到可落地的程度:包含可运行的示例代码、真实的踩坑记录、以及基于项目经验的选型建议。
如果你正在做技术选型,或者遇到了某个具体领域的问题,希望这份清单能帮你节省一些调研时间。后续遇到好用的库,我也会继续写下去。欢迎补充推荐。