首页 > 基础资料 博客日记
C# .NET 周刊 |2026 年 4 月 3 期
2026-06-13 21:30:02基础资料围观3次
C# .NET 周刊 |2026 年 4 月 3 期 2026-04-19 dotnet_week_26_4_3
国内文章
C# 15 类型系统改进:Union Types
https://www.cnblogs.com/hez2010/p/19891530/union-types-in-csharp-15
本文介绍 C# 15 的 union 类型。union 允许将值限定为若干封闭类型,并在 switch 中提供穷尽性检查。编译器把 union 展开为以 object 存储值的结构体,并生成 case 构造器和隐式从 case 到 union 的转换。文章用 Result、Option
C# 如何减少代码运行时间:7 个实战技巧
https://www.cnblogs.com/shenchuanchao/p/19843455/csharp-reduce-code-runtime
文章宣称 C#再登顶,提供 7 个实战性能优化技巧,已展示数据结构选择、StringBuilder、Span 与异步编程示例并给出性能对比。示例直观、实践性强但技术深度为中等,创新性有限,表述清晰可读,时效性高,缺乏引用与基准细节。
.NET 官方团队发布的 .NET Agent Skills,告别 AI 编程幻觉!
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 代码质量与工程化能力。
.NET 高级开发 | C# 中的动态代码:反射、EMIT、表达式树、Roslyn、Source Generators
https://www.cnblogs.com/whuanle/p/19868938
文章介绍了 C#实现动态代码的多种方式,包括反射、表达式树、EMIT、Roslyn 和 Source Generators。作者强调需熟练掌握反射并给出学习链接。重点展示了用 EMIT 实现 AOP 的原理与示例,包含 LogAttribute 特性、被拦截的 Test 类及通过 AopInterceptor 生成接口和类代理的用法,并示例了运行输出。文章指出 EMIT 通过生成 IL 提高性能。文章还提及表达式树解析、Roslyn 与 Natasha 用于动态代码和对象映射的实现。整体偏实践示例,部分内容未深入展开。
.NET 高级开发 | 设计、实现一个事件总线框架
https://www.cnblogs.com/whuanle/p/19862890
文章介绍在 .NET 环境下实现事件总线,参考 MASA 并使用 Maomi.EventBus 包。作者说明事件模型需继承 Event 或 IEvent,并示例 MyEvent record。文章阐述事件执行器为标记了 Event 特性的类型中带 EventHandler 特性的方法,框架会扫描并以 scope 注入注册。文中强调 EventHandler.Order 用于控制执行顺序,IsCancel 用于标记撤销器以支持回滚。示例实现用户注册流程,包含验证码校验、写库、初始化与异常触发时的撤销逻辑。文末提供作者博客与教程链接。
SqlSugar 接入 PostgreSQL pgvector 完整方案(增删改查 + 强类型相似度查询)
https://www.cnblogs.com/harryPei/p/19866048
文章记录在 .NET + SqlSugar + PostgreSQL + pgvector 环境下实现向量检索的完整方案。作者说明安装 Pgvector 包并在程序启动时调用 NpgsqlConnection.GlobalTypeMapper.UseVector() 注册类型映射。指出 SqlSugar 有插入/更新和查询两条独立通路的核心难点。为插入/更新提供自定义 ISugarDataConverter 实现,把 Pgvector.Vector 封装为 SugarParameter 并显式设 DbType.Object,避免被当作字符串发送导致解析错误。强调查询表达式需用 SqlFuncExternal 翻译并按 pgvector 可识别格式传参。文章给出代码片段并总结调试经验,实用且有指导价值。
.NET 高级开发 | 定制 ASP.NET Core 框架
https://www.cnblogs.com/whuanle/p/19874936
文章介绍如何定制 ASP.NET Core Web 开发框架。作者展示创建 Maomi.Web.Core 模块并注册服务。文章定义统一响应模型 Res
.NET 生态下 Native AOT 兼容的 Cron 任务调度框架
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 及低功耗平台的融合趋势。
告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库
https://www.cnblogs.com/Can-daydayup/p/19882682
该文章介绍 FluentAvalonia,一个基于 Fluent Design 和 WinUI 的开源 MIT 许可 Avalonia 控件库,帮助.NET 开发者构建现代跨平台 UI。文章说明 Avalonia 跨平台特性、支持平台与最低版本要求,并提供 GitHub 仓库和在线文档链接,便于快速上手。优点是界面现代、组件丰富且实用性强。缺点是缺少深度示例、性能评估和更多使用场景说明。总体适合希望提升桌面界面质量的.NET 开发者试用和贡献。
.NET 高级开发 | 手写一个对象映射框架
https://www.cnblogs.com/whuanle/p/19880904
Maomi.Mapper 是一个教学用对象映射框架。它使用表达式树生成对象成员映射代码。项目注释详尽,适合学习反射、表达式树和类型转换实现。仓库地址已给出。基准测试显示 MaomiMapper 性能明显落后于 AutoMapper,表格列出多组耗时、内存分配和代数数据。测试模型包含多种数值、布尔与字符属性。作者明确指出不适合生产环境,但代码和注释有助于研究和教学。
AutoMapper 三板斧:值转换器、条件映射、自定义解析器,复杂映射不再愁
文章讲述了 AutoMapper 三个高级配置技巧:值转换器、条件映射和自定义值解析器。值转换器解决类型不匹配问题并可复用,但在 EF Core 的 ProjectTo 投影时无效。条件映射通过 Condition 和 PreCondition 控制何时映射,PreCondition 在取源值前执行以节省开销,作者警告不要滥用条件。自定义值解析器适用于需要合并多个源字段或复杂逻辑的场景,示例演示了姓名拼接。内容实用清晰,示例直接可用,但缺少更深层的实现细节与引用。
for 和 foreach 到底谁快?刚子跑了 1 亿次循环,告诉你真相
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 复测。文章实用清晰,但缺少运行环境、测量方法和参考来源。
C#从零开始: LumNote-重新定义单机 Markdown 编辑器
https://www.cnblogs.com/luojin765/p/19866456
本文介绍 LumNote,一款由萤火初芒发布、基于 Avalonia 用 C#开发的跨平台 Markdown 编辑器。它使用自研渲染引擎(基于 Skia 而非 Web),支持深度 Git 集成、实时预览(50ms 防抖)、可选中预览、完整 GFM、MathLaTeX 和 DOCX 导出。单文件约 25MB,免费开源,面向技术写作者与开发者,强调性能、跨平台一致性与可扩展性。文章由 OpenLum 智能体生成,内容偏宣传,缺少实现细节、基准数据与引用支持。
AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布
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 服务注册示例,便于本地与云端部署测试。整体实用且集成友好,但缺少更完整的示例、性能与安全说明。
MAF 快速入门(23)通过 C#类定义 Skills
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#实现但代码未完结。
SQLite 分片方案实战:三种分片策略的深度对比
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。
C#/.NET/.NET Core 技术前沿周刊 | 第 69 期(2026 年 4.01-4.12)
https://www.cnblogs.com/Can-daydayup/p/19858918
本周周刊聚焦 C#/.NET 生态的最新动态与实用资源。文章包含 C# 15 联合类型解读、Avalonia UI 12.0 发布、ASP.NET Core 2.3 结束支持公告、HttpClient 请求与客户端开发技巧、每月优秀项目汇总以及 CliWrap 命令行交互库评述。内容兼顾新特性演示与工程实践,引用官方博客和社区文章,便于跟进版本演进与迁移策略。对中高级.NET 开发者具有较高参考价值并能带来直接实践收益。
【Azure Developer】IIS w3wp.exe 的 -m 参数:一个未被记录的管道模式标识
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 自动检测失效。该发现具备实用价值,方法清晰但缺少官方引用。
C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生
https://www.cnblogs.com/shenchuanchao/p/19889181/csharp-transaction-best-practice-prevent-data-loss
文章由刚子说明如何在保存“凭证规则”时用 TransactionScope 保证主表、明细与条件的一致性。描述新增(插入主表、明细、条件)和更新(查出旧数据、删除旧明细与条件、全量替换)两种场景。提供可直接复用的 Service 层代码示例,演示在 using TransactionScope 内处理事务与异常,讨论 try-catch 放置与实用最佳实践。适合需要事务一致性保障的后端开发者借鉴。
.NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块
https://www.cnblogs.com/net-kevin-li/p/19857580
文章介绍用强类型 C# 类实现 Class-based Skill 来解决工程化治理问题。作者用 AgentClassSkill
玩转控件:封装个带图片的 Label 控件
https://www.cnblogs.com/axing/p/19884352
作者为工控和 MES 场景封装了一个简化的 ImageLabel 控件以美化 WinForm 界面。文章说明了替换 RealTaiizor 的动因并展示了继承 Label 实现图片属性、尺寸、对齐、图片与文字间距和图片变更事件的部分 C#代码。示例设置了双击事件和透明背景支持。文章实用且易上手,能直接用于 WinForms 项目。代码片段不完整,缺少绘制实现、性能评估和异常处理说明,也未提供参考或测试案例。总体适合需要轻量图文控件的开发者参考与二次扩展。
在后台服务中使用 Scoped 服务,为什么总是报错?
https://www.cnblogs.com/yuxl01/p/19879438
文章聚焦 .NET 依赖注入生命周期,覆盖 Transient、Scoped、Singleton。技术深度适中,解释常见规则但未深入实现细节。实用性较高,给出示例以便理解,但示例含错误(把 Scoped 用 AddSingleton、泛型被 HTML 转义),可能误导读者。表达口语化且结构松散,条理性不足。原创性有限但时效性强,适合入门复习。可读性中等,建议修正代码示例、补充边界和异常场景以及添加引用来源以提升可靠性。文末未完整说明控制台与根容器解析 Scoped 的限制,需补充完整说明与示例。
Hermes Agent 集成实践:从协议到生产
https://www.cnblogs.com/newbe36524/p/19864835
本文介绍 HagiCode 在 Orleans 后端与 React 前端中集成 Hermes Agent 的实践。文章覆盖 ACP 协议适配、StdioAcpTransport、HermesCliProvider 实现 IAIProvider 接口、HermesPlatformConfiguration 配置与 CliAcpSessionPool 会话复用。文中还说明了分层架构、SignalR 实时同步与前端 executorTypeAdapter 的映射策略。方案具备可替换性与扩展性,适合工程落地。文章缺少性能基准、容错细节和外部参考链接,深度与引用可进一步增强。
通过 C# 读取并导出 PDF 书签
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 两个方法及完整控制台实现。
国际周报
话题
.NET 11 预览版 3 现已上线! - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-11-preview-3/
.NET 和 .NET Framework 2026 年 4 月的服务发布更新 - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-april-2026-servicing-updates/
Microsoft 代理框架 1.0 | Microsoft 代理框架
https://devblogs.microsoft.com/agent-framework/microsoft-agent-framework-version-1-0/
主题演讲:通往 Visual Studio 2027 之路:构建更快、更智能的 IDE | VS Live! 拉斯维加斯 2026
https://www.youtube.com/watch?v=fVE4Ol085UU
用 .NET 原生 AOT 编写 Node.js 插件 - .NET 博客
https://devblogs.microsoft.com/dotnet/writing-nodejs-addons-with-dotnet-native-aot/
Microsoft.AspNetCore.DataProtection 中的关键故障变更 从 10.0.5 = 10.0.6 · 第 66335 期 · Dotnet/ASPNetcore
https://github.com/dotnet/aspnetcore/issues/66335
发布
- AvaloniaUI/Avalonia
- aws/aws-sdk-net
- Azure/azure-sdk-for-net
- Azure.Core_1.53.0, Azure.Identity_1.17.2, Azure.Identity.Broker_1.6.0,Azure.Provisioning.Network_1.1。 0, Azure.ResourceManager.AlertsManagement_1.1. 2,Azure.ResourceManager.Analysis_1.1. 2,Azure.ResourceManager.ApiManagement_1.3。 1, Azure.ResourceManager.AppComplianceAutomation_1.0. 2, Azure.ResourceManager.ArizeAIObservabilityEval_1.0. 1, Azure.Security.KeyVault.Secrets_4.10. 0
- DataDog/dd-trace-dotnet
- dotnet/dotnet-monitor
- dotnet/Orleans
- googleapis/google-cloud-dotnet
- spectreconsole/spectre.console
文物、幻灯片等
尝试使用 Microsoft 代理框架与本地大型语言模型 第 8 部分(ChatHistoryProvider)
https://zenn.dev/yy7613/articles/af540163a106c9
- 尝试 Microsoft 代理框架与本地大型语言模型 第 9 部分(AIContextProvider)
- 尝试 Microsoft 本地大型语言模型代理框架 第 10 部分(AIContextProvider)
重新审视 C# 与 Westwind 编写脚本。脚本模板库,部分 1
C# 15:工会类型完整指南 - Qiita
https://qiita.com/hez2010/items/b656c867f9e5f57cc1cd
在体验了 Kafka 和 MassTransit 后,我意识到事件驱动系统的本质不是“传递”,而是“数据处理”
https://zenn.dev/aecomet/articles/fa61ba2aa5d583
如果你想要一个测试版 S3 模拟服务器,也许现在你可以让 AI 帮你搭建它——Qiita。
https://qiita.com/yamaokunousausa/items/4547756cc171d7709596
使用开发容器尝试 C#15.0 [VSCode]
https://zenn.dev/inuinu/articles/csharp15-with-dev-container
利用你的技能,用 GitHub Copilot CLI 编写优秀程序
https://zenn.dev/microsoft/articles/github-copilot-create-agents
尝试在 USB LCD 上显示 Claude Code 的速率限制,并用 PATLITE(假)通知了权限提示 - Qiita
https://qiita.com/yamaokunousausa/items/8ee2d8dc607483ce7679
将 SwiftUI 应用移植到 Avalonia:跨平台.NET 的表现如何
https://dev.to/biozal/porting-a-swiftui-app-to-avalonia-how-does-cross-platform-net-hold-up-4ol0
任何 CPU - :InstallUtil.exe 卡在 x64 迁移中都必须运行在同一架构上
https://zenn.dev/luxiar/articles/1a5fa7127b0d18
通往 Visual Studio 2027 之路 - NDepend 博客
https://blog.ndepend.com/the-road-to-visual-studio-2027/
C# WinForms 介绍 即使是非工程师也能做到——自己打造制造用的内部工具
https://zenn.dev/jodycraft/articles/csharp-winforms-for-non-engineers
[.NET] 边界检查的模式收集消失
https://zenn.dev/prozolic/articles/79df5e08acf4b5
[.NET MAUI] 你的第一个应用开发! 让我们创建一个 BMI 计算应用——Qiita。
https://qiita.com/Satoshi_Katsu/items/2748e8d423138b95d829
从零开始用 C#构建 GPT | 加里·杰克逊
https://garyjackson.dev/gpt-course/
介绍 | 加里·杰克逊
https://garyjackson.dev/gpt-course/introduction/
C# 看起来像是 Go:构建一个没有 .csproj 的 Web API
https://makarchie.com/posts/csharp-that-looks-like-go-file-based-apps/
支持 Aspire 通过 GitHub Copilot Cloud Agent 启动
https://zenn.dev/mayuki/articles/a8a9f64100e46d
应用无法启动,但没有日志显示...... 解决“Bootstrap Logger”问题的建议 - Qiita
https://qiita.com/futayubi5656/items/dcbe02d506f02855fd8b
如何在 DTO 属性中放置 IAsyncEnumerable 时,如何修复并行执行错误
https://zenn.dev/juners/articles/288efc07eb5794
C# PDF 生成库比较 — 在检查报告中考虑实现 PDFSharp 与 QuestPDF 的选择
https://zenn.dev/jodycraft/articles/csharp-pdf-pdfsharp-vs-questpdf
尝试 Microsoft Foundry Local(C# 第一部分)- Qiita
https://qiita.com/kashin777/items/0878a6f2c1412402d065
LINQ 以避免每次数据类型成员数量增加时都进行更改。
https://zenn.dev/numani/articles/extract-shape
利用 EFCore 与 TestContainers 和 Podman 实现 .NET 应用的集成测试
https://zenn.dev/ryun_log/articles/8a9bfd0740d0e5
[Azure] Microsoft Entra ID 用户管理与 Blazor 权限控制实现指南 - Qiita
https://qiita.com/KM_20005/items/0caaff534860d026d8b2
从 64 位应用(COM 代理)呼叫 32 位 DLL 的请求
https://zenn.dev/nmiura_thakaz/articles/d93479bbbbc3fa
在 WPF 中使用 Foundry 本地 SDK
https://zenn.dev/yakumo3/articles/5a545be2a4cb27
C# 工程师 - Qiita 在 TypeScript 中封存的概念与写作方法总结
https://qiita.com/HakamataSoft/items/da0252c10a4128b1f4a0
停止寻找漏洞:认识全新的 Visual Studio 调试代理工作流程——Visual Studio 博客
Azure MCP 工具现已内置于 Visual Studio 2022 — 无需扩展 - Visual Studio 博客
介绍 dotLLM——用 C#构建 LLM 推理引擎 | 康拉德“Dev 书呆子”科科萨
https://kokosa.dev/blog/2026/dotllm/
.NET 中的 URL 模式匹配 - Gérald Barré
https://www.meziantou.net/url-pattern-matching-in-dotnet.htm
在 .NET 中开始使用 pgVector 进行简单向量搜索
为什么我要用 C#构建数据库引擎
https://nockawa.github.io/blog/why-building-database-engine-in-csharp/
从今天开始使用 Godot 引擎工作
https://docs.google.com/presentation/d/1PuMcHiRoEUBiS7-DYWD882BNLVRE-07fPWBixBMif1U/edit
库、仓库、工具等
KoMMet/WizGrep
https://github.com/KoMMet/WizGrep
akeit0/okojo:Okojo 是一个实验性的低分配管理 JavaScript 引擎,适用于 .NET
https://github.com/akeit0/okojo?tab=readme-ov-file
今日人物
爱德华·阿尔伯特·费根鲍姆(英语:Edward Albert Feigenbaum,1936 年 1 月 20 日—),生于美国新泽西州,计算机科学家,专长于人工智能,经常被人称为专家系统之父。为 1994 年图灵奖得主。

C# .NET 交流群
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET 性能优化经验的群组,主题包括但不限于:
- 如何找到.NET 性能瓶颈,如使用 APM、dotnet tools 等工具
- .NET 框架底层原理的实现,如垃圾回收器、JIT 等等
- 如何编写高性能的.NET 代码,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET 问题和宝贵的分析优化经验。目前一群已满,现在开放二群。可以加我 vx,我拉你进群: ls1075 另外也创建了 QQ Group: 687779078,欢迎大家加入。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:C++ ASCII 3D无尽跑酷游戏
下一篇:设计模式:1. 策略模式

