Tag: dotnet
All the articles with the tag "dotnet".
-
EF Core 10 大性能陷阱(以及如何修复)
Published: at 01:40 AM开发环境测试通过、生产环境响应爆炸——这 10 个 EF Core 查询模式问题会在真实流量下把接口拖垮。每个问题都有 .NET 10 下的具体修复代码。
-
别再用 DateTime.Now:用 TimeProvider 让 .NET 代码可测试
Published: at 09:13 AM几乎每个 .NET 项目都有同一个隐患:DateTime.Now 散落在服务、验证器和业务规则里。表面无害,实际上让时间相关逻辑无法正确测试。本文介绍两种解决方案——自定义 IDateTimeProvider 接口和 .NET 8 内置的 TimeProvider——让时间成为可注入的依赖,配合 FakeTimeProvider 轻松测试订阅到期、试用结束等真实场景。
-
C# LINQ 连接完全指南:Join、GroupJoin、LeftJoin、RightJoin 与 Zip
Published: at 12:59 AM全面讲解 C# LINQ 的各类连接操作——从 Join 内连接、GroupJoin 分组连接,到 .NET 10 新增的 LeftJoin 与 RightJoin,再到 Zip 位置配对。每种操作对应 SQL 场景,含完整代码示例。
-
在 Blazor 中用 Web Workers 运行后台任务:.NET 11 预览版新特性
Published: at 12:58 AM.NET 11 引入了 Web Worker 项目模板,让 Blazor WASM 应用可以把 CPU 密集型任务放到后台线程运行,彻底解决 UI 卡死问题。本文介绍如何用新模板创建 Web Worker 项目、与 Blazor 主应用集成,以及 WebWorkerClient 和底层 JS 消息传递机制的工作原理。
-
用 Agent Governance Toolkit 给 .NET MCP 工具调用加一层闸门
Published: at 11:54 PMMicrosoft Agent Governance Toolkit 提供了一套 .NET 8+ 可用的 MCP 工具调用治理方式:先扫描工具定义,再用 YAML 策略决定是否放行,最后记录审计事件和 OpenTelemetry 指标。本文整理它适合解决的问题、接入步骤和落地时要注意的边界。
-
用 ReadOnlySpan<byte> 替掉 byte[]:零分配技巧,.NET Framework 也能用
Published: at 01:40 AMAndrew Lock 介绍了一个编译器级别的优化:把 static readonly byte[] 字段改为 static ReadOnlySpan<byte> 属性,编译器会把数据直接嵌入 PE 程序集的 metadata,彻底消除堆分配。这是编译器特性,与运行时无关,.NET Framework 配合 System.Memory 包同样受益。文章还详细说明了三个必须满足的前提,以及哪些写法会意外触发分配的坑。
-
C# 享元设计模式完全指南:原理、实现与实战
Published: at 01:00 AM享元模式通过共享内在状态大幅减少内存占用:5000个粒子只需3个Flyweight实例,内存从320MB降至不足200KB。本文用字符渲染和粒子系统两个例子讲清楚内在/外在状态分离、工厂池化、线程安全和DI集成。