Dotnet
June 16, 2026
2 min read
为什么 API 版本管理如此重要? API 版本管理的核心目标是:在不破坏现有用户的前提下,持续迭代和改进 API。通过版本管理,我们可以:
引入新功能:在新版本中添加字段、接口等,而不影响旧版本的用户。 修复 bug:在新版本中修复问题,而不冒破坏旧版本的风险。 逐步淘汰:在新版本中移除过时的功能,给用户足够的时间迁移。 常见的版本策略有这几种:
URL 路径版本:/api/v1/users,直 …
June 16, 2026
1 min read
这篇只讲一个知识点:在 .NET 代码里用 .Result(或 GetAwaiter().GetResult())同步阻塞异步任务,为什么在不同框架下会触发不同类型的事故。
问题背景 同样一行代码,在两个系统里出现了完全不同的故障:
老系统(ASP.NET MVC 5)请求直接卡死,不返回 新系统(ASP.NET Core)不是直接死锁,而是高峰期吞吐突然掉到很低,请求排队超时 两边都有这段写法: …
June 16, 2026
2 min read
很多服务在压测里吞吐不错,一上生产就抖。根因常常不是业务逻辑,而是内存分配模式不健康。
典型表现:
GC 频率偏高 P99 周期性尖峰 单机吞吐不稳定 这篇文章重点讲“如何减少无意义分配”,并把优化控制在团队可维护范围内。
问题背景 真实现场:一次常规版本上线后,接口平均耗时变化不大,但 P99 从 120ms 拉到 380ms,最后定位到的是字符串拼接和临时数组在高峰时段触发了更频繁的 GC。
…
June 16, 2026
2 min read
引言 如果你的技术栈主要是 .NET,想要快速上手 Agent 开发,那么 Microsoft Agent Framework 是一个非常不错的选择。它提供了对话管理、上下文保持、工具调用等一系列功能,让你能专注于业务逻辑实现。
这篇文章用一个最小控制台应用,通过 maf + kimi ai 合作,完成下面的目标:
使用 Microsoft Agent Framework(NuGet …
June 16, 2026
2 min read
这篇直接给落地方案,不再讲结构化日志的背景概念。目标只有一个:在 ASP.NET Core 服务里,把 Serilog 日志和 OpenTelemetry 链路追踪打通,排障时可以从一条错误日志直接跳到完整 Trace。
1. 问题背景:这篇要交付什么 按下面步骤做完,你会得到一条可执行排障链路:
日志里稳定带上 TraceId、SpanId、RequestPath、RequestMethod 业 …
June 16, 2026
3 min read
问题背景 很多项目不缺日志,缺的是有用的日志。
平时接口跑得顺,大家都觉得日志够用。真到线上出问题,日志的短板会一下子暴露出来。
比如订单接口偶发超时,日志里只剩这么一句:
Create order failed for customer 1024, cost 3800ms, trace abc123 这种日志平时看着还行,真到线上排障时基本帮不上太多忙: …