


















C# .NET 周刊 |2026 年 4 月 3 期 2026-04-19 dotnet_week_26_4_3
https://www.cnblogs.com/hez2010/p/19891530/union-types-in-csharp-15
本文介绍 C# 15 的 union 类型。union 允许将值限定为若干封闭类型,并在 switch 中提供穷尽性检查。编译器把 union 展开为以 object 存储值的结构体,并生成 case 构造器和隐式从 case 到 union 的转换。文章用 Result、Option 和 OneOrMore 举例,展示可在 union 内添加方法与限制。case 可为类、接口、类型参数、可空或其他 union,且可重叠。声明禁止实例字段和公有单参数构造函数等。文中细节实用且清晰,但缺乏引用支持。
https://www.cnblogs.com/shenchuanchao/p/19843455/csharp-reduce-code-runtime
文章宣称 C#再登顶,提供 7 个实战性能优化技巧,已展示数据结构选择、StringBuilder、Span 与异步编程示例并给出性能对比。示例直观、实践性强但技术深度为中等,创新性有限,表述清晰可读,时效性高,缺乏引用与基准细节。
https://www.cnblogs.com/Can-daydayup/p/19868047
文章介绍 .NET Agent Skills(dotnet/skills),这是微软为 AI 编码代理提供的官方技能库。该库以模块化 Markdown 封装专业知识与工作流,支持自动触发、团队共享和纳入 CI/CD。仓库包含核心 .NET、数据访问、诊断、MSBuild、NuGet、升级、MAUI、AI/ML、模板引擎、测试和 ASP.NET 等多个插件。文中给出在 Claude Code 中添加与安装插件的命令示例,并附带 GitHub 链接。该方案能显著减少 AI 的“幻觉”,提升 .NET 代码质量与工程化能力。
https://www.cnblogs.com/whuanle/p/19868938
文章介绍了 C#实现动态代码的多种方式,包括反射、表达式树、EMIT、Roslyn 和 Source Generators。作者强调需熟练掌握反射并给出学习链接。重点展示了用 EMIT 实现 AOP 的原理与示例,包含 LogAttribute 特性、被拦截的 Test 类及通过 AopInterceptor 生成接口和类代理的用法,并示例了运行输出。文章指出 EMIT 通过生成 IL 提高性能。文章还提及表达式树解析、Roslyn 与 Natasha 用于动态代码和对象映射的实现。整体偏实践示例,部分内容未深入展开。
https://www.cnblogs.com/whuanle/p/19862890
文章介绍在 .NET 环境下实现事件总线,参考 MASA 并使用 Maomi.EventBus 包。作者说明事件模型需继承 Event 或 IEvent,并示例 MyEvent record。文章阐述事件执行器为标记了 Event 特性的类型中带 EventHandler 特性的方法,框架会扫描并以 scope 注入注册。文中强调 EventHandler.Order 用于控制执行顺序,IsCancel 用于标记撤销器以支持回滚。示例实现用户注册流程,包含验证码校验、写库、初始化与异常触发时的撤销逻辑。文末提供作者博客与教程链接。
https://www.cnblogs.com/harryPei/p/19866048
文章记录在 .NET + SqlSugar + PostgreSQL + pgvector 环境下实现向量检索的完整方案。作者说明安装 Pgvector 包并在程序启动时调用 NpgsqlConnection.GlobalTypeMapper.UseVector() 注册类型映射。指出 SqlSugar 有插入/更新和查询两条独立通路的核心难点。为插入/更新提供自定义 ISugarDataConverter 实现,把 Pgvector.Vector 封装为 SugarParameter 并显式设 DbType.Object,避免被当作字符串发送导致解析错误。强调查询表达式需用 SqlFuncExternal 翻译并按 pgvector 可识别格式传参。文章给出代码片段并总结调试经验,实用且有指导价值。
https://www.cnblogs.com/whuanle/p/19874936
文章介绍如何定制 ASP.NET Core Web 开发框架。作者展示创建 Maomi.Web.Core 模块并注册服务。文章定义统一响应模型 Res、Res 与分页模型 PageRes、PageListRes、PageArrayRes 并给出示例代码。文中还列出模型验证、自定义验证器、i18n、Action/资源/异常筛选器、Swagger 定制、模型属性处理、接口分组、版本号与路由后缀等定制点。文稿部分代码含 HTML 转义与小错误,内容未完全展开但覆盖关键定制方向。文章侧重实用改造与工程实践参考价值。
https://www.cnblogs.com/shanyou/p/19888982
文章通过 AI 调研总结了.NET Native AOT 的发展、机制与限制。Native AOT 在发布期用 ILC 把 IL 编译为目标机器码,移除了 JIT,显著降低启动时间、内存和磁盘占用。裁剪器在构建时剔除未被静态引用的代码,阻断了动态程序集加载、Reflection.Emit 和开放泛型。结果导致 Hangfire、Quartz.NET 等传统调度框架在 AOT 下失效,引发 IL3050/IL3058 警告及运行时崩溃。文章指出需重构调度框架以适配静态编译并关注与 WebAssembly 及低功耗平台的融合趋势。
https://www.cnblogs.com/Can-daydayup/p/19882682
该文章介绍 FluentAvalonia,一个基于 Fluent Design 和 WinUI 的开源 MIT 许可 Avalonia 控件库,帮助.NET 开发者构建现代跨平台 UI。文章说明 Avalonia 跨平台特性、支持平台与最低版本要求,并提供 GitHub 仓库和在线文档链接,便于快速上手。优点是界面现代、组件丰富且实用性强。缺点是缺少深度示例、性能评估和更多使用场景说明。总体适合希望提升桌面界面质量的.NET 开发者试用和贡献。
https://www.cnblogs.com/whuanle/p/19880904
Maomi.Mapper 是一个教学用对象映射框架。它使用表达式树生成对象成员映射代码。项目注释详尽,适合学习反射、表达式树和类型转换实现。仓库地址已给出。基准测试显示 MaomiMapper 性能明显落后于 AutoMapper,表格列出多组耗时、内存分配和代数数据。测试模型包含多种数值、布尔与字符属性。作者明确指出不适合生产环境,但代码和注释有助于研究和教学。
文章讲述了 AutoMapper 三个高级配置技巧:值转换器、条件映射和自定义值解析器。值转换器解决类型不匹配问题并可复用,但在 EF Core 的 ProjectTo 投影时无效。条件映射通过 Condition 和 PreCondition 控制何时映射,PreCondition 在取源值前执行以节省开销,作者警告不要滥用条件。自定义值解析器适用于需要合并多个源字段或复杂逻辑的场景,示例演示了姓名拼接。内容实用清晰,示例直接可用,但缺少更深层的实现细节与引用。
https://www.cnblogs.com/shenchuanchao/p/19856390/for-vs-foreach-100-million-iterations-truth
文章用 1 亿次基准对比 C#中 for 与 foreach。结论:数组两者接近,示例 for 约 116ms,foreach 约 89ms;List 中 foreach 略优(约 178ms vs 200ms);链表和无索引集合只能用 foreach。作者解释底层原因并给出实用准则:需修改或需索引用 for,常规遍历优先 foreach,性能敏感时用 BenchmarkDotNet 复测。文章实用清晰,但缺少运行环境、测量方法和参考来源。
https://www.cnblogs.com/luojin765/p/19866456
本文介绍 LumNote,一款由萤火初芒发布、基于 Avalonia 用 C#开发的跨平台 Markdown 编辑器。它使用自研渲染引擎(基于 Skia 而非 Web),支持深度 Git 集成、实时预览(50ms 防抖)、可选中预览、完整 GFM、MathLaTeX 和 DOCX 导出。单文件约 25MB,免费开源,面向技术写作者与开发者,强调性能、跨平台一致性与可扩展性。文章由 OpenLum 智能体生成,内容偏宣传,缺少实现细节、基准数据与引用支持。
https://www.cnblogs.com/wangzhenyao1994/p/19885603
文章介绍作者基于 Microsoft Semantic Kernel 封装的库 SemanticKerne.AiProvider.Unified。该库兼容 OpenAI、Ollama、DashScope,支持流式聊天、模型思考过程输出、MCP 插件和自定义工具。它通过配置或代码灵活设置,内建 ASP.NET Core 依赖注入,并提供基于 SSE 的实时流式输出。文中给出 appsettings.json 和 Program.cs 服务注册示例,便于本地与云端部署测试。整体实用且集成友好,但缺少更完整的示例、性能与安全说明。
https://www.cnblogs.com/edisontalk/p/-/quick-start-on-maf-chatper23
作者 Edison 跟随课程学习 MAF 并推荐入门。MAF 1.1.0 引入强类型 Skill,可用 C#类定义 Skill,提升类型安全、可测试性和分发性。类可将资源、脚本与业务规则内聚,便于代码治理和团队协作。当前 Agent Skills 仍属实验性,生产需谨慎并需显式禁用 MAAI001 告警。示例为跨境物流运营的 UnitConverterSkill,流程为读取 conversion-table 资源、调用 convert 脚本计算,并返回包含换算系数、换算过程与结果的可解释回复。示例使用 Qwen3.5-35B-A3B 模型并引用 Microsoft.Agents.AI.OpenAI 1.1.0 包。文中给出部分 C#实现但代码未完结。
https://www.cnblogs.com/newbe36524/p/19882944
文章介绍了 HagiCode 项目中三种 SQLite 分片实战方案。作者描述了单文件 SQLite 在高并发下的写锁与性能问题,并提出以分片保留轻量部署的解决思路。三种方案分别面向 Session Message、Orleans Grain 与 Hero History,采用 256、100、10 个分片,使用确定性路由、统一接口、独立文件和 WAL+busy_timeout 优化并发。文中列出具体命名规则与路由算法示例,并强调无通用解法,应按业务特性选型。源码链接在 github.com/HagiCode-org/site。
https://www.cnblogs.com/Can-daydayup/p/19858918
本周周刊聚焦 C#/.NET 生态的最新动态与实用资源。文章包含 C# 15 联合类型解读、Avalonia UI 12.0 发布、ASP.NET Core 2.3 结束支持公告、HttpClient 请求与客户端开发技巧、每月优秀项目汇总以及 CliWrap 命令行交互库评述。内容兼顾新特性演示与工程实践,引用官方博客和社区文章,便于跟进版本演进与迁移策略。对中高级.NET 开发者具有较高参考价值并能带来直接实践收益。
https://www.cnblogs.com/lulight/p/19867451
作者为排查 Application Insights 自动检测失效,发现 w3wp.exe 启动参数 -m 决定应用池管道模式。通过在本地 IIS 创建 Classic 与 Integrated 池并抓取 w3wp 内存转储,作者看到 Classic 时 -m=1,Integrated 时 -m=0。作者列出其他实测启动参数及含义,并解释 Classic 模式因 IIS 与 ASP.NET 管线分离,导致 HTTP 模块无法拦截所有请求,从而让 Application Insights 自动检测失效。该发现具备实用价值,方法清晰但缺少官方引用。
https://www.cnblogs.com/shenchuanchao/p/19889181/csharp-transaction-best-practice-prevent-data-loss
文章由刚子说明如何在保存“凭证规则”时用 TransactionScope 保证主表、明细与条件的一致性。描述新增(插入主表、明细、条件)和更新(查出旧数据、删除旧明细与条件、全量替换)两种场景。提供可直接复用的 Service 层代码示例,演示在 using TransactionScope 内处理事务与异常,讨论 try-catch 放置与实用最佳实践。适合需要事务一致性保障的后端开发者借鉴。
https://www.cnblogs.com/net-kevin-li/p/19857580
文章介绍用强类型 C# 类实现 Class-based Skill 来解决工程化治理问题。作者用 AgentClassSkill 将 Frontmatter、Instructions、Resource 和 Script 聚合到同一类中。示例展示用 Attribute 标注资源、在类内写动作方法、以及享受编译期校验、重构和单元测试优势。该做法便于注入 HttpClient 和 ILogger,利于复杂业务系统长期维护。文章实践性强、面向生产,但缺少外部引用支持。
https://www.cnblogs.com/axing/p/19884352
作者为工控和 MES 场景封装了一个简化的 ImageLabel 控件以美化 WinForm 界面。文章说明了替换 RealTaiizor 的动因并展示了继承 Label 实现图片属性、尺寸、对齐、图片与文字间距和图片变更事件的部分 C#代码。示例设置了双击事件和透明背景支持。文章实用且易上手,能直接用于 WinForms 项目。代码片段不完整,缺少绘制实现、性能评估和异常处理说明,也未提供参考或测试案例。总体适合需要轻量图文控件的开发者参考与二次扩展。
https://www.cnblogs.com/yuxl01/p/19879438
文章聚焦 .NET 依赖注入生命周期,覆盖 Transient、Scoped、Singleton。技术深度适中,解释常见规则但未深入实现细节。实用性较高,给出示例以便理解,但示例含错误(把 Scoped 用 AddSingleton、泛型被 HTML 转义),可能误导读者。表达口语化且结构松散,条理性不足。原创性有限但时效性强,适合入门复习。可读性中等,建议修正代码示例、补充边界和异常场景以及添加引用来源以提升可靠性。文末未完整说明控制台与根容器解析 Scoped 的限制,需补充完整说明与示例。
https://www.cnblogs.com/newbe36524/p/19864835
本文介绍 HagiCode 在 Orleans 后端与 React 前端中集成 Hermes Agent 的实践。文章覆盖 ACP 协议适配、StdioAcpTransport、HermesCliProvider 实现 IAIProvider 接口、HermesPlatformConfiguration 配置与 CliAcpSessionPool 会话复用。文中还说明了分层架构、SignalR 实时同步与前端 executorTypeAdapter 的映射策略。方案具备可替换性与扩展性,适合工程落地。文章缺少性能基准、容错细节和外部参考链接,深度与引用可进一步增强。
https://www.cnblogs.com/jazz-z/p/19875607
本文介绍使用 Free Spire.PDF for .NET 和 C# 读取 PDF 书签并导出到文本。先通过 NuGet 安装 FreeSpire.PDF(免费版单文件 10 页限制)。在代码中引用 Spire.Pdf 和 Spire.Pdf.Bookmarks 命名空间。加载 PdfDocument,获取 pdf.Bookmarks 集合。通过递归遍历每个 PdfBookmark 及其子项,提取 Title 和 DisplayStyle。将构建的 StringBuilder 内容写入文本文件。示例提供 GetBookmarks 和 GetChildBookmark 两个方法及完整控制台实现。
https://devblogs.microsoft.com/dotnet/dotnet-11-preview-3/
https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-april-2026-servicing-updates/
https://devblogs.microsoft.com/agent-framework/microsoft-agent-framework-version-1-0/
https://www.youtube.com/watch?v=fVE4Ol085UU
https://devblogs.microsoft.com/dotnet/writing-nodejs-addons-with-dotnet-native-aot/
https://github.com/dotnet/aspnetcore/issues/66335
https://zenn.dev/yy7613/articles/af540163a106c9
https://qiita.com/hez2010/items/b656c867f9e5f57cc1cd
https://zenn.dev/aecomet/articles/fa61ba2aa5d583
https://qiita.com/yamaokunousausa/items/4547756cc171d7709596
https://zenn.dev/inuinu/articles/csharp15-with-dev-container
https://zenn.dev/microsoft/articles/github-copilot-create-agents
https://qiita.com/yamaokunousausa/items/8ee2d8dc607483ce7679
https://dev.to/biozal/porting-a-swiftui-app-to-avalonia-how-does-cross-platform-net-hold-up-4ol0
https://zenn.dev/luxiar/articles/1a5fa7127b0d18
https://blog.ndepend.com/the-road-to-visual-studio-2027/
https://zenn.dev/jodycraft/articles/csharp-winforms-for-non-engineers
https://zenn.dev/prozolic/articles/79df5e08acf4b5
https://qiita.com/Satoshi_Katsu/items/2748e8d423138b95d829
https://garyjackson.dev/gpt-course/
https://garyjackson.dev/gpt-course/introduction/
https://makarchie.com/posts/csharp-that-looks-like-go-file-based-apps/
https://zenn.dev/mayuki/articles/a8a9f64100e46d
https://qiita.com/futayubi5656/items/dcbe02d506f02855fd8b
https://zenn.dev/juners/articles/288efc07eb5794
https://zenn.dev/jodycraft/articles/csharp-pdf-pdfsharp-vs-questpdf
https://qiita.com/kashin777/items/0878a6f2c1412402d065
https://zenn.dev/numani/articles/extract-shape
https://zenn.dev/ryun_log/articles/8a9bfd0740d0e5
https://qiita.com/KM_20005/items/0caaff534860d026d8b2
https://zenn.dev/nmiura_thakaz/articles/d93479bbbbc3fa
https://zenn.dev/yakumo3/articles/5a545be2a4cb27
https://qiita.com/HakamataSoft/items/da0252c10a4128b1f4a0
https://kokosa.dev/blog/2026/dotllm/
https://www.meziantou.net/url-pattern-matching-in-dotnet.htm
https://nockawa.github.io/blog/why-building-database-engine-in-csharp/
https://docs.google.com/presentation/d/1PuMcHiRoEUBiS7-DYWD882BNLVRE-07fPWBixBMif1U/edit
https://github.com/KoMMet/WizGrep
https://github.com/akeit0/okojo?tab=readme-ov-file
爱德华·阿尔伯特·费根鲍姆(英语:Edward Albert Feigenbaum,1936 年 1 月 20 日—),生于美国新泽西州,计算机科学家,专长于人工智能,经常被人称为专家系统之父。为 1994 年图灵奖得主。

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET 性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET 问题和宝贵的分析优化经验。目前一群已满,现在开放二群。可以加我 vx,我拉你进群: ls1075 另外也创建了 QQ Group: 687779078,欢迎大家加入。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。