国内文章
dotnet 10 已知问题 构建 WPF 时提示 System.Private.Windows.GdiPlus 程序集未找到错误
本文记录 dotnet 10 的已知问题,将会导致 WPF 项目构建的时候给出错误
dotnet C# 警惕结构体加等事件
前几天我在对文本库进行性能优化,将其中一个枚举迭代器从类改成结构体,然而改造之后却遇到了本文记录的在结构体内加等事件的坑
《上海市卫生健康”信息技术应用创新”白皮书》C#/.NET “A 组件”认定事件始末与最终结果
《上海市卫生健康信息技术应用创新白皮书》将 C#/.NET 定义为'A 组件',意味着必须逐步淘汰该技术,转向自主可控技术。这一决策引发技术社区质疑,认为白皮书未能反映 C#/.NET 自 2014 年以来已实现的开源转型及其治理结构的独立性。对此,社区指出,该分类影响公立医院的 IT 系统建设和采购决策。社区批评白皮书对 C#/.NET 的认定基于过时理解,未考虑技术进步,因此认为 Categoria A 的划分不合理,可能导致技术资源的浪费。
重塑 WPF 辉煌?基于 DirectX 12 的现代.NET UI 框架 Jalium
Jalium 是一个实验性项目,将 WPF 与现代图形技术结合,基于 DirectX 12 重构 WPF 核心,面向.NET 10 开发。它不是简单封装,而是从零构建的完整 UI 系统,覆盖 WPF 开发者熟悉的各种功能,包括依赖属性、布局引擎和动画系统。架构采用八层模块,提供超过 87 个控件,支持先进的 GPU 加速渲染。JALXAML 标记语言类似 XAML,提供高性能编译选项。视觉效果上,Jalium 支持现代特效,如高斯模糊和自定义着色器,具备灵活的主题样式,可与系统主题自动匹配。Jalium 代表了一次现代化的 WPF 重写。
.NET 开源工作流:Slickflow 流程自动化运行技术指南
Slickflow.NET 是基于 .NET 的开源工作流引擎,支持人工审批和流程自动化。流程自动化不同于人工流程,能在启动后自动顺序执行所有节点。文章面向开发者,探讨了流程自动化的底层逻辑及架构,讲解了代码定义和运行流程的方式。自动化运行依靠引擎循环执行可执行活动,直到流程结束,无需人工插入。文章还展示了整体架构,说明了内存执行与数据库存储之间的差异,适合处理数据流水线和 AI 对话编排等场景。
ClaimsPrincipal 序列化为 Json 的正确姿势
本文探讨了在现代 .NET 应用中,ClaimsPrincipal 对象的序列化问题。ClaimsPrincipal 封装了用户身份信息,但由于其内部结构复杂,不易直接进行 JSON 序列化。文章提供了解决方案,包括手动提取关键声明、自定义转换器及完整的序列化/反序列化策略,帮助开发者在微服务或审计日志等场景中处理用户身份信息。通过源码分析,文章详尽阐述了类的结构,促进了理解和应用。
新手保姆级教程:OpenClaw 自动化操作浏览器!
本文介绍了 OpenClaw,一个自托管的 AI Agent 网关,旨在解决传统浏览器自动化工具(如 Puppeteer、Playwright、Selenium)的不足。OpenClaw 支持 CDP 协议的远程连接,提供 CLI 与 AI Agent 的双模式控制,具有便捷的浏览器管理和可视化界面。文章详细描述了 OpenClaw 的架构、安装步骤及快速上手的使用方法,并强调了其独立浏览器配置和与现有 Chrome 标签的控制能力。OpenClaw 在提高自动化效率的同时,还能更好地与 AI Agent 集成,是一个实用的工具。
并发编程进阶:volatile、内存屏障与 CPU 缓存机制详解
本文详细探讨了 volatile 关键字在并发编程中的重要性,并深入剖析了其与 CPU 缓存模型和内存屏障之间的关系。作者通过代码示例展示了未使用 volatile 时共享变量的可见性问题,阐明了 CPU 缓存的工作机制及其带来的缓存一致性问题。文章从基础概念出发,引导读者理解关键概念及其在实际编程中的应用,强调在多线程环境下如何安全高效地编写代码。
Microsoft Agent Framework 详解与实践
Microsoft Agent Framework 是微软开源的 AI 代理开发工具,支持.NET 和 Python,用于构建智能 AI 代理和多代理工作流。其设计结合了 AutoGen 和 Semantic Kernel 的特性,核心功能包括会话状态管理、类型安全和多代理编排。文章提供了 AI 代理和工作流的定义,适用场景以及其核心特性,同时强调了在面对确定性任务时,应直接编写函数。该框架当前处于公开预览阶段。
MAUI 嵌入式 Web 架构实战(一) 在 MAUI 应用中嵌入 PicoServer 构建本地 HTTP 服务
本篇文章介绍如何在 MAUI 应用中嵌入 PicoServer 本地 Web 服务。随着 Hybrid App 技术的发展,本地应用可以直接提供 HTTP 服务,形成新架构。文章强调 MAUI 与 PicoServer 的结合,允许构建 REST API、Web Admin 后台和 Hybrid App 架构等功能。通过提供完整实例,读者将学习如何在 MAUI 中实现本地 HTTP 服务,具备跨平台特性和良好的扩展性。最后,文章详细介绍了项目创建及 PicoServer 的安装与启动过程,为后续的架构扩展打下基础。
.NET SqlSugar 多线程下 SqlSugarClient 的线程安全陷阱
使用 SqlSugar 读取 Sqlite 数据库时,偶发性抛出连接错误异常。排查连接字符串无误,确认数据库文件存在。分析线程后发现并发访问问题,多个线程共享同一 SqlSugarClient 实例,导致连接竞争和错误。建议将 SqlSugarClient 替换为线程安全的 SqlSugarScope,以解决此问题。
C#/.NET/.NET Core 优秀项目和框架 2026 年 2 月简报
本文介绍了几个基于 C#/.NET 技术的优秀开源项目。ClassIsland 是一个跨平台的课表展示系统,适用于智慧教室。Bogus 是一款假数据生成库,方便进行单元测试和示例生成。Magic.NET 是一个权限管理平台,搭建高效的 RBAC 系统。ExplorerTabUtility 增强了 Windows 11 文件管理器的多窗口功能,提升工作效率。RestAirline 是一个经典领域驱动设计的示例项目,使用 ASP.NET Core 开发。这些项目均具有高度的实用性和技术深度。
C#/.NET/.NET Core 技术前沿周刊 | 第 67 期(2026 年 2.01-2.28)
这篇文章围绕 C#及.NET 技术,介绍了多个开源项目和学习资源,包括假数据生成库 Bogus、权限管理平台 Magic.NET、课表展示系统 ClassIsland 及文件资源管理器增强工具 ExplorerTabUtility。文章强调了这些工具在开发中的实用性和技术便捷性,涵盖了性能优化及内存管理的新技术,如 C#中的 Span 和 Memory。这些内容为开发者提供了最新的技术资料和实践案例,帮助他们提升工作效率和技术理解。
MAF 快速入门(18)Agent Skill 快速开始
本文探讨了 Agent Skill 的概念及其在 MAF 开发中的应用。Agent Skill 是自然语言的标准操作程序,旨在避免重复劳动,提升工作效率。文中详细描述了 Skill.md 的结构及其渐进式披露设计理念,强调了按需加载的重要性。通过减少 Token 消耗和提高模型处理效率,Agent Skill 与 MCP 互为补充,协同指导 Agent 在处理数据时的执行。为了实用,文章还提供了.NET 应用程序中实现 Agent Skill 的示例,展示了如何创建和配置技能。整体内容深入浅出,有助于开发者理解 Agent 功能。
MAUI 项目在 Android 平台通过 U 盘实现软件更新
该项目使用 MAUI 开发,旨在通过 Android 工控机实现功能控制,支持串口操作和 U 盘软件升级。文章详细说明了 Android 7 之后的安全限制,介绍了如何配置 FileProvider,以及在 AndroidManifest.xml 中添加必要的权限。提供了具体的代码示例和文件路径配置,强调安全性和功能的实现。整体内容简练,具有实用价值,适合开发者参考。
SQL Server 数据库服务器内存问题排查
文章讨论了 SQL Server 数据库服务器内存占用过高的问题及解决方案,包括快速处理、根源排查和永久优化方案。文中建议清除缓存以快速恢复、杀掉阻塞查询,并通过多种 SQL 查询监控内存使用情况。此外,配置最大内存和优化索引与查询也被提及,以避免系统内存被 SQL Server 占满。最后,建议建立监控预警机制以确保稳定运行。
从 TypeScript 到 C#:Codex SDK 的跨语言移植实践
这篇文章记录了将 TypeScript Codex SDK 移植到 C# 的过程。由于项目需要在 .NET 环境中使用,因此选择实现原生 C# SDK,而不是维护复杂的 Node.js 桥接层。文章详细介绍了两种 SDK 的架构设计对比和类型系统的转化,强调了在保持 API 一致性的同时,充分利用 C# 的语言特性。作者通过具体示例展示了两者之间的映射关系,解释了使用 record 代替 class 的原因,以确保事件对象的不可变性,清晰且实用。
一款使用 C# 编写专为 Windows 11 打造的文件资源管理器增强工具!
ExplorerTabUtility 是一款专为 Windows 11 文件资源管理器设计的工具,使用 C# 编写并开源,旨在改善多窗口管理。它能够将新窗口自动转换为标签页,保持文件管理简洁。该软件支持功能如标签复制、封闭标签恢复、以及窗口吸附等,极大提升用户在文件操作时的效率。该项目已被收录在 C#/.NET 优秀项目中,提供 GitHub 开源地址供访问与支持。
如何通过 C# 实现 PDF 文本提取?
在办公和开发中,PDF 文本提取需求频繁,传统方法需依赖外部组件,效率低。本文介绍了使用免费库 Free Spire.PDF for .NET 的高效 PDF 文本提取方法。不需要安装 Adobe Reader,支持加密文件,简化开发复杂度,同时提供完整 API 文档与中文社区支持。具体步骤包括环境准备、核心代码示例及高级应用,展示如何轻松提取指定页文本或处理加密 PDF。代码示例简明易懂,适合个人和小型项目使用。
MAUI 库推荐五:Maui.PDFView
该项目是一个用于在 Android、iOS、MacOS 和 Windows 平台上显示 PDF 文件的库,基于.NET MAUI 框架。用户可通过 Nuget 安装,并在 MauiProgram 中添加.UseMauiPdfView()方法来启用 PDF 视图。示例中展示了如何在 XAML 中确定 PDF 视图的属性,包括是否横向显示、文件路径、最大缩放等级和当前页码设置。ViewModel 部分用于处理 PDF 文件路径,支持用户更改文件路径。此组件简化了不同 PDF 数据源的处理,确保代码的清晰与简洁。
Slickflow.NET 基于 AI 大模型实现智能客服多轮问答系统
本文介绍基于 Slickflow.NET 工作流引擎与 AI 大模型的智能客服系统。系统由前端 aichatapp 和后端 aichatbackend 组成,具有多轮对话、RAG 增强回答及客户信息提取等功能。通过流程自动化,系统无须人工干预。文章详细描述了问答的调用链和流程节点,使用 BPMN 定义流程自动化执行。Slickflow.NET 引擎在智能客服场景中展示了高效性和可追溯性,支持多行业运作,适合自动化客服及知识问答应用。文章引用了相关文档,提供技术实施的指导。整体结构清晰,信息丰富且具实用性。
ML.NET 快速入门与实践教程:开源机器学习框架
本文介绍了 ML.NET 的快速入门,重点讲解了机器学习框架的基本概念和实践案例。作者阐述了 ML.NET 的功能、安装及其核心概念如 MLContext、IDataView 和训练器。此外,通过学生考试成绩预测的例子,详细描述了数据准备、模型训练和预测流程。ML.NET 适用于 .NET 开发者,支持多种 .NET 环境,帮助用户轻松集成机器学习功能。
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
这篇文章探讨了 Go 语言的接口设计及其与静态语言(如 C#)的比较。文章强调,静态语言和动态语言的主要区别在于类型校验的时机,而非类型的存在与否。静态语言在编译期进行类型校验,确保运行时高效;而动态语言则在运行时解析类型,提供灵活性。本文还讨论了静态语言如何实现动态多态,介绍了 C++ 的虚函数机制以及 Java 和 C#如何通过类型指针和方法表实现高效的动态调度。整体上,文章展示了 Go 语言在类型系统和运行时性能之间的平衡。
【译】Visual Studio 二月更新
本月的 Visual Studio 更新专注于提升开发效率,特别是在人工智能辅助、调试和现代化方面。新的功能包括针对 WinForms 的专家代理,提供最佳实践和设计建议,还有智能测试生成功能,通过 GitHub Copilot 快速生成 C# 单元测试。此外,用户可以使用斜杠命令自定义提示词以提高工作效率。新版本还引入了 C++ 应用现代化功能,并改善了调试体验,如在 IEnumerable Visualizer 中使用 DataTip 展示对象属性。整体而言,这些更新大幅简化了开发流程。
PipelinR:在 Java 中实现优雅的 CQRS 架构
文章介绍了 CQRS(命令查询职责分离)的概念,指出其通过将写操作和读操作分离,提高性能与可扩展性。使用 CQRS 可以优化读写数据架构,增强系统安全性并简化模型,减少复杂度。文章还提到 PipelinR,作为 CQRS 的一种实现方式,基于中介者模式,用于解耦应用组件并支持消息传递。文章提供了 Maven 和 Gradle 的依赖安装示例,以及在 Spring 项目中的配置代码。内容清晰,实用,技术深度适中,适合开发者参考。
C# 驱动的开源无人机机载飞控算法
本文探讨 C#在无人机飞行控制系统中的应用与挑战。传统上,飞行控制系统主要使用 C 和 C++ 等低级语言,但随着嵌入式微控制器性能的提升,C#成为新选择。C#提供内存安全、快速原型及丰富库支持,但其垃圾回收机制引入的非确定性让高频控制变得复杂。文章分析了通过零分配内存管理、NoGCRegion API 等技术实现 C#飞控的可行性,探讨了未来在无人机领域应用的发展趋势。
国际周报
发布 v1.0.0 · ModelcontextProtocol/csharp-SDK
MCP C# SDK 版本 1.0.0 已发布。 这个版本将是第一个稳定版本。
Cake v6.1.0 发布
cakebuildnet.medium.com/cake-v6-1-0…
Cake v6.1.0 已经发布。
本版本支持 FormattableString 日志、Cake.SDK 中的进程中 NuGet 客户端,以及 。 新增功能如 SLNX 支持。
Windows 应用开发 CLI v0.2:支持.NET、manifest 占位符、“winapp store”等! - #ifdef 窗户
devblogs.microsoft.com/ifdef-windo…
Windows 应用开发 CLI v0.2 已发布。
该版本支持一流的 .NET 支持,可以通过在包含 .csproj 的文件夹中运行 'winapp init' 命令来设置,同时改进了 manifest 占位符、'winapp store' 命令和帮助消息。
发布
- App-vNext/Polly
- aws/aws-sdk-net
- Azure/azure-sdk-for-net
- Azure.Data.AppConfiguration_1.9.0, Azure.Extensions.AspNetCore.Configuration.Secrets_1.5.0,Azure.Identity.Broker_1.4。 0, Azure.ResourceManager_1.14.0,Azure.ResourceManager.Batch_1.6. 0,Azure.ResourceManager.Communication_1.3。 1,Azure.ResourceManager.ContainerService_1.3。 1,Azure.Security.KeyVault.Administration_4.7。 0, Azure.Security.KeyVault.Keys_4.9. 0
- googleapis/google-cloud-dotnet
- modelcontextprotocol/csharp-sdk
- 开放遥测/开放遥测点网贡献
文章、幻灯片及更多内容
在 C#中构建一个近零分配搜索索引引擎以媲美 Lucene.NET
jordansrowles.medium.com/building-a-…
以下是我实施的技术描述,灵感来自 Lucene.NET 以减少纯 C#搜索引擎的分配。
使用 C# 中的宏
关于实现使用源生成器实现宏/模板等 C#的想法。
点洞察 | 2026 年 3 月 | .NET 工具博客
blog.jetbrains.com/dotnet/2026…
JetBrains 2026 年 3 月.NET 信息汇总。
Application Insights SDK v2 / v3 / OpenTelemetry Distro - Qiita 中 Azure Monitor 日志输出的比较验证
验证 Application Insights SDK v2 和 v3 在使用 OpenTelemetry Distro 输出日志到 Azure Monitor 时的差异。
TUnit 现在在测试报告中捕获 OpenTelemetry 的痕迹
引入 TUnit 能够通过 ASP.NET 核心测试集成捕获遥测和追踪数据,并将其输出为报告。
关于 GCHandle 的备忘录。AddrOfPinnedObject()
GCHandle.AddrOfPinnedObject() 与其他固定对象方法的区别解释及其使用方法。
支持.NET 8 上的 ZStandard 请求/响应压缩 - Qiita
解释了如何在 .NET 8 ASP.NET Core 中使用 ZStandard 支持请求/响应压缩。 文章展示了使用 ZstdNet 包的步骤。
[.NET] ILogger 很难理解,所以我用图表和代码整理了它——Qiita
关于 Microsoft.Extensions.Logging 中 ILogger 接口和类关系的解释。
线缆安全无锁/易失/互锁
介绍在大多数情况下减少对 dotnet/运行时数组读取次数的锁范围。
我如何在一个服务器上零停机地部署 Convert.FAST
levelup.gitconnected.com/how-i-deplo…
解释了在一台服务器上部署服务时不中断更新流程。
[MSIX] 如何打包单个项目 MSIX - Qiita
使用 MSIX 进行单项目打包的说明。
.NET 11 .NET MAUI 预览:用 Inline C# 表达式简化 XAML | Syncfusion 博客
www.syncfusion.com/blogs/post/…
引入了在 .NET 11 预览版中引入的 XAML 属性中直接编写 C# 表达式的功能。
. dotnet add package 命令已在 NET9 SDK 中更改为 dotnet package add 命令 - tech.guitarrapc.cóm
tech.guitarrapc.com/entry/2026/…
解释了在.NET SDK 9 及之后版本中,'dotnet add package'命令改为'dotnet package add'命令的原因。
[C#] 关于结构对齐。 - Neno 的花园。
关于.NET 运行时结构体对齐的解释。 文章解释了哪些规则决定了对齐。
C# 的轮换班
如何在 C#中进行旋转移位,并用 JIT 进行优化。
将 Aspire 整合进现有项目的简约方法
timdeschryver.dev/blog/a-mini…
解释将 Aspire 集成到现有项目中的流程,以及事后整合服务默认值、容器、部署等。
实现 .NET nanoFramework – .NET 的 VS Code 调试所需要的 纳米框架
nanoframework.net/what-it-too…
解释了我们如何实现 .NET nanoFramework for Visual Studio Code 的调试功能。
文章还提到,使用 GitHub Copilot 实现后,开发时间有所缩短。
库、仓库、工具等
努格茨
jsakamoto/Toolbelt.Blazor.WebAssembly.ExtensibleDevServer.UserSecretsExtension:一个支持在 Blazor WebAssembly 独立项目中使用用户秘密的扩展 使用 Toolbelt.Blazor.WebAssembly.ExtensibleDevServer。
一个服务器扩展,允许你在本地运行 Blazor WebAssembly 项目时使用用户秘密。
anderspedersen/DumpLinq:DumpLinq 是一个用于查询 .NET 内存转储的库,使用熟悉的 LINQ 语法。 它建立在 ClrMD 之上,提供更高级的抽象,简化了导出过程的导航。
一个允许你以类似 LINQ 风格查询.NET 内存转储的库。
XenoAtom/XenoAtom.Terminal.UI:XenoAtom.Terminal.UI 是一个现代的、响应式的保留模式终端 UI 框架,适用于 .NET
一个用于创建反应式且丰富的终端界面应用的框架。
tsoniclang/tsonic:通过 NativeAOT 编译 TS 到本地代码
一个将 TypeScript 转换为 C#并使用 NativeAOT 原生代码的工具。
还有一些互作机制,比如使用 .NET 的 BCL。
推特
今日人物
威廉·墨顿·卡韩(英语:William Morton Kahan,1933 年 6 月 5 日—),生于加拿大安大略多伦多,数学家与计算机科学家,专长于数值分析。1989 年图灵奖得主,1994 年被提名为 ACM 院士。现为加州大学柏克莱分校计算机科学名誉教授。卡韩是 IEEE 754-1985 浮点数运算架构规格书的主要架构师,IEEE 754 系列的标准主要依据他的研究而制定,因此被称为浮点数之父。
