Posts
839
Practical notes on AI assistants, software architecture, and developer tooling.
Posts
839
Tags
489
Featured
0
Native AOT 把不可达类型一并裁掉,反射在运行时就空手而归。本文按 Dev Leader 的思路梳理 IL2xxx 警告含义,演示用 [DynamicallyAccessedMembers]、[RequiresUnreferencedCode]、[RequiresDynamicCode] 把反射注解清楚,并给出 .NET 10 上的 AOT 兼容审计清单。
Continue reading
Native AOT 把不可达类型一并裁掉,反射在运行时就空手而归。本文按 Dev Leader 的思路梳理 IL2xxx 警告含义,演示用 [DynamicallyAccessedMembers]、[RequiresUnreferencedCode]、[RequiresDynamicCode] 把反射注解清楚,并给出 .NET 10 上的 AOT 兼容审计清单。
.NET 10 里给框架级代码做类型扫描,反射和源生成器是两套答案。前者在运行时灵活但有开销、对 AOT 不友好,后者在编译期生成真实 C# 代码、零运行时开销且 AOT 友好。文章按 Dev Leader 的对比把两者并排过一遍,给出选型清单和混合用法。
模板方法用继承锁住算法结构,策略模式用组合换实现,两者都能做到“主流程不变、个别步骤可换”。文章用同一个数据处理管道把两种写法拆开比一遍,并给出选型清单和组合使用的示例。
AI 编码代理总在写过期 API?接入 Microsoft Learn MCP Server,让代理在写代码前先查到当下的官方文档。文章解释它是什么、为什么有用,并给出在 GitHub Copilot CLI 和 VS Code 里的接入方法。
刚创建 Cosmos DB 账户?别拿着密钥就走。这份 8 步 day-one 清单覆盖禁用密钥、托管标识、RBAC、诊断日志、网络限制、参数化查询和持续备份,帮你避免后期高成本返工。
从上下文组装到代码生成,拆解 AI 编程 Agent 使用你的 SDK、CLI、MCP 工具的 7 步信息级联,搞清楚工具在哪一步被忽略、误选或误用,以及怎么优化。
以采购审批为例,分步演示 C# 责任链模式的接口 vs 抽象类选型、具体处理器编写、Builder 链构建、DI 容器集成和日志诊断,附常见踩坑点。
Raymond Chen 提出了一种 System.Diagnostics.Process 的假想重构方案:把 StandardOutput 等属性移到 Start() 的返回类型里,用编译器替代运行时异常来守护 API 正确使用顺序。.NET 11 也正在落实类似思路。
DI 容器的魔法就是反射。本文从 GetConstructors → GetParameters → Resolve → Invoke 的递归循环讲起,用 55 行 C# 实现一个最小容器,再拆解 IServiceCollection 和 Scrutor 的内部机制,最后介绍源生成器如何在编译期消除反射。
GitHub Copilot 不只是代码补全。这篇来自微软 .NET 团队的指南把 Copilot 的使用面拆成 Chat(理解、规划)和 Agent(执行、验证)两类,给出 10 个真实 .NET 场景的 prompt 示例,帮你判断当前任务该用哪种模式。
用 .NET 10 从零搭建 Clean Architecture 四层项目:Domain、Application、Infrastructure、API,依赖只朝内指向核心。不用 Repository,DbContext 通过接口暴露,Aspire 一条命令编排 API 和 PostgreSQL,10 个领域单测 155ms 跑完。