Tag: .NET
All the articles with the tag ".NET".
-
MCP Resources 与 Prompts:在 C# 中暴露数据和可复用模板
Published: at 05:54 AMMCP 服务器不止 Tool 一种原语。本文用 C# 代码讲清楚 Resource(暴露可读数据)、Prompt(暴露可复用模板)和 Tool 三者的职责边界、实现方式和适用场景,附带可直接使用的代码示例。
-
Serilog 生产环境最佳实践:从开发默认值到线上日志的十二条铁律
Published: at 11:32 PMSerilog 在开发环境跑得好好的,上线就拖慢请求、写爆磁盘、把用户手机号打得到处都是。这篇文章整理了十二条经过线上验证的最佳实践——异步 Sink、等级调优、PII 脱敏、关联 ID、日志轮转、循环内日志优化——每条都附带可复制的配置和代码。
-
EF Core 批量插入终极指南:从 AddRange 到原始 COPY 的六种策略
Published: at 06:20 AMEF Core 10 没有内置批量插入 API。这篇从最慢的逐行 SaveChanges 到最快的 Npgsql 二进制 COPY,把六种插入策略全部跑通 BenchmarkDotNet,附带基准数据、参数上限陷阱、内存开销和实际选型建议。
-
Agent Harness 能力扩展:Skills、Shell、CodeAct 和后台 Agent
Published: at 05:43 AMMicrosoft Agent Framework 的 Harness 提供了四种扩展 Agent 能力的方式:按需加载的 Skills、受限沙箱的 Shell 工具、让 Agent 自己写代码算结果的 CodeAct,以及并行委托子 Agent 的后台调度。这篇把每种能力的 .NET 和 Python 接入方式都走一遍。
-
从零构建 C# 模块化单体:一步步搭起来
Published: at 05:16 AM模块化单体保留单体部署的简单性,同时用边界上下文隔离让大项目持续可维护。这篇从创建方案结构开始,一步步搭起 Projects 和 Tasks 两个模块,再通过 Contracts 集成事件和 MediatR 打通跨模块通信,代码全部来自可运行的参考工程。
-
Vertical Slice Architecture 怎么测:把切片当成功能来测
Published: at 01:09 AMVSA 没有 Service 层可以 mock、没有 Repository 可以替换,这让习惯分层架构的开发者觉得难测。其实反过来:一个切片就是一个功能入口,你只需要从端点打到真实数据库就够了。这篇把夹具搭建、断言技巧、单元测试边界和架构测试一次说清楚。
-
Serilog vs Microsoft.Extensions.Logging:本就不是二选一
Published: at 12:28 AMMEL 是日志抽象层,Serilog 是日志实现引擎,它们互补而不是竞争。这篇从架构、sink 生态、结构化能力、性能差异和迁移步骤几个角度,帮你判断什么时候 MEL 够用、什么时候值得上 Serilog。
-
在 ASP.NET Core 里配好 Serilog:一步步做下来
Published: at 03:30 AMSerilog 接入 ASP.NET Core 的推荐做法就那几步,但第一次做容易踩坑:漏掉启动异常、bootstrap logger 用太久、没走 appsettings.json 配置。这篇按 .NET 9/10 把两阶段初始化、分环境配置、请求日志中间件和验证完整走一遍。