Posts
791
Practical notes on AI assistants, software architecture, and developer tooling.
Posts
791
Tags
447
Featured
0
架构演进应跟随可测量的痛点,而非流行趋势。本文通过 Northwind Pay 的真实故事,详解 .NET 系统从单体经模块化单体到选择性微服务的完整路线图,包括边界设计、Outbox 模式、CQRS 读写分离和迁移路线图。
Continue reading
架构演进应跟随可测量的痛点,而非流行趋势。本文通过 Northwind Pay 的真实故事,详解 .NET 系统从单体经模块化单体到选择性微服务的完整路线图,包括边界设计、Outbox 模式、CQRS 读写分离和迁移路线图。
全面讲解 C# LINQ 的各类连接操作——从 Join 内连接、GroupJoin 分组连接,到 .NET 10 新增的 LeftJoin 与 RightJoin,再到 Zip 位置配对。每种操作对应 SQL 场景,含完整代码示例。
LINQ 聚合操作覆盖从计数、求和到自定义折叠的完整场景。本文结合 Order/Product/SalesData 领域模型,演示所有聚合操作符的用法,重点解析 Count vs Any 性能陷阱、.NET 6 新增的 MinBy/MaxBy 如何单次遍历直接拿到元素,以及 Aggregate 如何在一次遍历中同时计算多个统计值。
LINQ 的八个集合操作方法让去重、合并、取交集、取差集变得简洁可读。本文结合 Product/Employee 领域模型,完整演示四个经典操作及 .NET 6 新增的 DistinctBy、UnionBy、IntersectBy、ExceptBy,重点对比新旧写法差异,帮你彻底告别 IEqualityComparer 样板代码。
.NET 11 对 System.Diagnostics.Process 进行多年来最大的一次更新,新增一行代码捕获进程输出的高层 API,彻底解决管道死锁问题,同时带来句柄继承控制、进程生命周期管理、NativeAOT 体积缩减以及最高 98 倍的性能提升。
.NET 11 引入了 Web Worker 项目模板,让 Blazor WASM 应用可以把 CPU 密集型任务放到后台线程运行,彻底解决 UI 卡死问题。本文介绍如何用新模板创建 Web Worker 项目、与 Blazor 主应用集成,以及 WebWorkerClient 和底层 JS 消息传递机制的工作原理。
Microsoft Agent Governance Toolkit 提供了一套 .NET 8+ 可用的 MCP 工具调用治理方式:先扫描工具定义,再用 YAML 策略决定是否放行,最后记录审计事件和 OpenTelemetry 指标。本文整理它适合解决的问题、接入步骤和落地时要注意的边界。
Andrew Lock 介绍了一个编译器级别的优化:把 static readonly byte[] 字段改为 static ReadOnlySpan<byte> 属性,编译器会把数据直接嵌入 PE 程序集的 metadata,彻底消除堆分配。这是编译器特性,与运行时无关,.NET Framework 配合 System.Memory 包同样受益。文章还详细说明了三个必须满足的前提,以及哪些写法会意外触发分配的坑。
微软 ISE 团队对比了 GitHub Copilot CLI、Microsoft Agent Framework 和 Azure Databricks AI/BI Genie 三种 NL-to-SQL 方案,在 LiveSQLBench 上进行系统实验。核心发现:运行时查询验证是准确率的命门,去掉后准确率从 76.92% 跌至 38.46%;领域提示(domain hints)能额外提升 14 个百分点;剩余 ~25% 的失败几乎都来自业务逻辑语义误解。
享元模式通过共享内在状态大幅减少内存占用:5000个粒子只需3个Flyweight实例,内存从320MB降至不足200KB。本文用字符渲染和粒子系统两个例子讲清楚内在/外在状态分离、工厂池化、线程安全和DI集成。
生产级 API Key 认证在 ASP.NET Core .NET 10 中的完整实现:SHA-256 哈希存储、EF Core 数据库支持、AuthenticationHandler 集成、HybridCache 验证缓存、决策矩阵,以及完整源码参考。