.NET周刊【7月第2期 2025-07-13】

国内文章

.Net 下高性能 Socket 的方案

https://zhuanlan.zhihu.com/p/1924520585976849438

简单介绍Socket的数据组成。详细介绍.Net高性能的类型:Span,Ros,Memory和ReadOnlyMemory,以及System.IO.Pipelines这个类库。最后给出高性能Socket写入代码,并附带Benchmark测试。

使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统

https://www.cnblogs.com/Can-daydayup/p/18973829

本文介绍了OpenAuth.Net,一个基于.NET的开源权限管理与工作流系统,适合企业级应用开发。它结合了多种现代技术,具有多租户支持、规范代码风格和简洁的代码生成等特点。OpenAuth.Net支持可视化的表单和流程设计,并兼容多种数据库和ORM框架。文章还提供了环境安装及数据库初始化的详细步骤,说明了如何使用前端和后端代码。链接到项目官网和开源地址,便于读者获取更多资源与文档。

.NET 9 + React 开发的企业级后台权限管理系统,文档齐全,轻松上手

https://www.cnblogs.com/1312mn/p/18974282

风汐管理系统是一个开源的RBAC权限管理解决方案,使用.NET 9和React 18构建。该系统独立设计,满足细粒度权限需求,支持多租户架构,实现数据隔离。其功能包括角色管理、权限管理、菜单管理、日志管理和系统监控,具备简洁高效的用户界面和模块化架构。系统采用前沿技术栈,确保良好的扩展性和可维护性,并具备高可读性代码结构。技术选型涵盖PostgreSQL、Redis以及多种辅助工具。整体设计注重安全性与性能,适合个人和企业用户使用。

一款开源免费、通用的 WPF 主题控件包

https://www.cnblogs.com/Can-daydayup/p/18971544

Rubyer WPF 是一款开源的 WPF 主题控件包,支持中英文切换和亮暗模式。开发者可以通过参数配置轻松改变整体主题样式。该控件包包括多种主题控件,如按钮、表格和对话框等,适用于 .NET Framework 4.6、.NET Core 3.1、.NET 6 和 .NET 8。本文介绍了如何在 WPF 项目中安装和引入 Rubyer,并提供运行效果展示。项目源码已在 Gitee 上发布,鼓励人们参与并给予支持。该项目被收录于优秀的 C#/.NET 项目列表中,帮助开发者获取最新的动态和最佳实践。

我是如何实现在线客服系统的极致稳定性与安全性的

https://www.cnblogs.com/sheng_chao/p/18974643

本文强调稳定性和安全性在在线客服系统中的重要性。作者分享了客服系统的架构设计,强调模块化和私有化部署的必要性,以适应不同客户需求。系统核心分为多个服务模块,通过清晰的通信机制支持高并发、低延迟的实时交互。提供一键安装脚本简化部署过程,适应多种运行环境。同时,系统还实现了多租户支持和数据安全设计,确保聊天数据的隐私和可控性。文章旨在为开发实时在线系统的工程师提供参考。

C#脚本化(Roslyn):如何在C#脚本中引入nuget包

https://www.cnblogs.com/yangtb/p/18881071

本文讨论如何在C#脚本编辑器中使用Roslyn引用nuget包。首先,简介了获取nuget包及其依赖的方法,包括直接下载和解压nuget包,以及基于创建空C#项目的方法。通过创建一个项目,使用PackageReference标签引用所需包,确保输出程序集和资源文件。然后,利用dotnet编译生成所需文件。最后,示例代码验证了该方法的有效性,展示了如何通过Roslyn运行使用Newtonsoft.Json的C#脚本。

C#源生成器:让你的代码飞起来的黑科技

https://www.cnblogs.com/token-ai/p/18979978

本文介绍了C#源生成器的概念与优势。源生成器在编译时自动生成高质量的代码,显著提升性能,尤其在序列化场景中,性能提升高达117倍。传统反射方法在运行时分析类型结构,开销较大,而源生成器在编译前完成这些工作,优化了内存占用和效率。文中还展示了一个简单的源生成器示例,包括项目配置与代码实现,适合开发者进行实际操作。读者通过本文可以全面理解源生成器的使用与优势。

[原创]《C#高级GDI+实战:从零开发一个流程图》第06章:繁琐?没扩展性?抽象!抽象!

https://www.cnblogs.com/lesliexin/p/18972184

本文主要讨论了如何通过抽象来改进形状的实现,特别是在C#中定义形状基类。作者指出,增加新形状会导致代码冗余和复杂性,因此提出了使用抽象类来提升可维护性和扩展性。首先创建了一个形状基类,包含通用属性,如ID和矩形区域。然后通过抽象方法Draw()让派生类具体实现绘制逻辑。此外,定义了虚方法GetCenterPoint()来统一获取形状的中心点。文章强调了使用抽象类的必要性,以便对未来的功能扩展提供基础支持。完整代码可供读者参考。

我在厂里搞wine的日子

https://www.cnblogs.com/yangtb/p/18973171

本文记录了作者在使用Wine时遇到的希沃白板汉字识别卡的问题,主要关注COM组件和注册表缺失引起的错误。作者通过编写Demo代码进行调试,并分析了Wine日志以寻找问题根源。最终,作者建议通过从Windows系统复制缺失的注册表项来解决问题。文章提供技术细节,但对新手可能有一定难度。

C# Avalonia动态加载xaml和cs实例

https://www.cnblogs.com/dalgleish/p/18974674

这篇文章介绍了AvaloniaUI中的非编译XAML的使用。它展示了一个简单的窗口,包含一个按钮和动态加载的内容。文章提供了XAML和C#代码示例,说明如何在Avalonia框架中实现动态内容加载及支持多个.cs文件编译。该扩展允许开发者通过简单的事件处理机制来添加控件,并利用XAML绑定机制展示数据。整体内容具有技术深度,实际应用性强,并且逻辑清晰,便于理解。

.NET AI 模板

https://www.cnblogs.com/powertoolsteam/p/18970200

随着人工智能技术的发展,AI应用开发成为.NET开发者的必备技能。微软推出的.NET AI模板预览版为开发者提供了构建智能聊天应用的工具和指南。本文介绍了如何安装和使用该模板,包括项目结构、核心功能和跨平台支持。模板允许自定义聊天界面、与Azure集成,并支持多数据源处理。通过简单配置,开发者可以快速上手AI开发,降低学习曲线,灵活扩展功能,提升开发效率。此模板为现代开发者提供了便捷的开发体验。

通过 .NET Aspire 使用本地 AI 模型

https://www.cnblogs.com/powertoolsteam/p/18976279

本文介绍了如何在本地环境使用 .NET Aspire 框架结合 Ollama 来运行和测试 AI 模型。使用本地模型可以节省云资源,迭代速度更快,同时提高隐私保护。文章详细讲解了Ollama的安装、配置和使用。通过命令行安装Ollama集成包,并介绍了如何在 Program.cs 文件中配置Ollama托管集成。文章还解释了如何添加具体的AI模型以及如何与模型交互,确保模型在应用启动时下载完成,并方便与云服务切换。

多Agent协作入门:群组聊天-AgentGroupChat

https://www.cnblogs.com/edisontalk/p/-/quick-start-agent-orchestration-agentgroupchat

本文介绍了如何利用Semantic Kernel中的AgentGroupChat对象创建多代理群组对话。作者以Reviewer和Writer为例,展示了两种代理如何协作审核和优化文案。文中包括快速入门案例,涉及.NET控制台项目的设置和配置,使用了特定的NuGet包。此外,还提供了API配置示例,以便与SiliconCloud的Qwen2.5-32B-Instruct模型交互。整体内容重点在于技术实现,适合对多代理协作有兴趣的开发者。

【EF Core】框架是如何识别实体类的属性和主键的

https://www.cnblogs.com/tcjiaan/p/18980412

本文探讨了 EF Core 如何通过约定机制识别实体属性并映射到数据库。作者解释了 DbContext 如何通过默认行为自动创建模型,并介绍了多个约定接口,如 IConvention 和 IPropertyAddedConvention。这些接口函数类似于事件回调,能在模型变更时被调用,确保模型结构始终更新。最后,篇幅提到当 EF Core 初始化时添加预置约定集合,由 ProviderConventionSetBuilder 类负责创建,增强了 EF 的灵活性和可扩展性。

VKProxy新增一些功能

https://www.cnblogs.com/fs7744/p/18975208

VKProxy是一款使用C#开发的基于Kestrel的L4/L7代理,新增了会话亲和性、禁止HTTP、静态内容和简单WAF功能。会话亲和性机制将请求序列绑定到相同目标以提高性能,支持HashCookie、ArrCookie、Cookie和CustomHeader四种策略,通过请求中的亲和性键管理会话。用户能在集群元数据中设置会话亲和性选项,通过配置项控制Cookie属性,确保更高效和安全的会话管理。

C# Avalonia 03 - LayoutPanels - SimpleInkCanvas

https://www.cnblogs.com/dalgleish/p/18978564

本文介绍了如何在C# Avalonia中扩展InkCanvas类,以兼容Canvas的所有功能。首先,文章指出如何通过Content属性定义自定义内容区域,以及Render方法不能重写的限制。接着,作者实现了InkCanvas类,涉及InkEditingMode、InkStroke等枚举及类,并示例了如何在Render方法中绘制笔画和选框。该扩展为图形界面开发提供了实用工具,适合需要实现手写或绘图功能的应用。

PATCH请求REST API之MyDeltas.net

https://www.cnblogs.com/xiangji/p/18979384

本文介绍了PATCH请求在REST API中的使用,特别是其实现方案如JSON Patch和MyDeltas.net。PATCH用于部分更新,提供更精准的语义。文中详细对比了MyDeltas和JSON Patch,强调MyDeltas生成的JSON更简洁,且更适合简单的实体类。MyDeltas支持系统的序列化与反序列化,提供了灵活的API,用于增量修改。文章讨论了如何通过nuget安装和使用MyDeltas的具体步骤,使得变更操作简单高效。整体上,文章逻辑清晰,内容具有实践意义。

留个VKProxy性能测试记录

https://www.cnblogs.com/fs7744/p/18978275

该文章讨论了OpenTelemetry对性能测试的影响,并计划先进行简单的性能测试。作者关注OpenTelemetry对Go语言的性能影响,认为可能会拖慢超过30%的性能,尽管持谨慎态度。文章提到使用C#的ASP.NET Core创建一个天气预报API控制器,展示了基本的代码实现和代理配置,强调了简单有效的基准项目。整体内容清晰地展现了性能测试的目的和实现方式。

主题

.NET 10 预览版 6 现已推出! - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-10-preview-6/

.NET 10 预览版 6 现已推出。

  • BCL

    • 拒绝重复 JSON 属性的选项
    • 严格的 JSON 序列化选项
    • 后量子密码学 (POC)
  • 运行

    • 改进了值类型参数的代码生成
      • 改进的循环反转
  • 开发软件

    • 特定于平台的 .NET 工具
    • 一次性工具执行
    • "dnx"工具执行脚本
    • 用于 CLI 自省的 '--cli-schema' 选项
    • 基于文件的应用程序改进
  • C#

    • 没有新功能
  • F#

    • 没有新功能
  • ASP.NET Core 和 Blazor

    • 从内存池中自动删除
    • Blazor WebAssembly 预加载
    • JavaScript 捆绑程序友好的 Blazor 生成输出
    • 流式处理开始后的 NavigationManager.NotFound()。
    • 改进的 Blazor 诊断
    • Blazor 服务器状态持久性
    • ASP.NET Core Identity 添加了密钥支持
    • 与 IProblemDetailsService 集成以实现最少的 API 验证
  • .NET MAUI

    • MediaPicker 改进
    • 拦截 WebView 请求
    • 控件和布局修改
  • 适用于 Android 的 .NET

    • Android API 级别 35 和 36 支持
  • 适用于 iOS、Mac Catalyst、macOS、tvOS 的 .NET

    • Xcode 16.4 的绑定生成和构建可靠性等改进
  • Windows 窗体

    • 提高质量和构建性能
  • Windows 演示基础 (WPF)

    • 提高质量和构建性能
  • EF Core

    • 提高质量和构建性能
  • 容器映像

    • 提高质量和构建性能

使用 .NET 构建第一个 MCP 服务器并发布到 NuGet - .NET 博客

https://devblogs.microsoft.com/dotnet/mcp-server-dotnet-nuget-quickstart/

了解如何使用 .NET 10 预览版 6 生成 MCP 服务器并将其发布到 NuGet。

本文介绍实现和发布,以及如何使用预览版 6 中引入的"dnx"命令使用上传到 NuGet 的 MCP 服务器。

自定义 GitHub Copilot 的 AI 响应 - .NET 博客

https://devblogs.microsoft.com/dotnet/customize-ai-responses-from-github-copilot/

了解如何使用 GitHub Copilot 的自定义说明。 本文介绍如何在 copilot-instructions.md 中自定义 GitHub Copilot 代理模式。

.NET MAUI 团队如何使用 GitHub Copilot 提高工作效率 - .NET 博客

https://devblogs.microsoft.com/dotnet/maui-team-copilot-tips/

在 .NET MAUI 团队上使用 GitHub Copilot 的见解。

文章介绍了 copilot-instructions.md、防火墙、Copilot Coding Agent 设置步骤、MCP 服务器设置等,以及实际项目中 PR 的合并率和时间。

Microsoft 能够在没有通知的情况下删除我们的一些软件包 - 解释是什么? · NuGet/主页 · 讨论 #14413

https://github.com/NuGet/Home/discussions/14413

Microsoft.Identity.Client 被标记为有问题,导致错误地删除依赖的 NuGet 包。 目前正在修复中,将于本周末提供详细说明。

发布

文章、幻灯片等

好像C#14中的空检查只需要一行---Qiita

https://qiita.com/sebayashi-tomoya/items/94d0af9a748590da2d5f

C# 14 中引入的 null 条件分配简介。

C# 14 扩展成员; 又名扩展一切:探索 .NET 10 预览版 - 第 3 部分

https://andrewlock.net/exploring-dotnet-10-preview-features-3-csharp-14-extensions-members/

C# 14 扩展成员的说明。 在本文中,我们将讨论扩展方法之间的区别,如何实际描述它们,如何直接调用扩展成员等。

.NET时事 | 2025 年 7 月 | .NET Tools 博客

https://blog.jetbrains.com/dotnet/2025/07/15/dotinsights-july-2025/

JetBrains 的 .NET 时事通讯,2025 年 7 月。

为 Uno 平台引入新的轻量级 DataGrid

https://platform.uno/blog/introducing-a-new-lightweight-datagrid-for-uno-platform/

介绍在 WinUI 和 UnoPlatform 上运行的轻型 DataGrid (WinUI.DataGrid)。

OpenCLI 简介

https://patriksvensson.se/posts/2025/07/introducing-open-cli

关于启动 OpenCLI,它定义了 CLI 的接口(例如参数和选项)。

  • 规格 | OpenCLI
  • spectreconsole/open-cli:OpenCLI 规范 (OCS) 定义了与 CLI 应用程序无关的标准、平台和语言接口,允许人类和计算机 了解如何在不访问源代码或文档的情况下调用 CLI 工具。()

https://den.dev/blog/mcp-csharp-sdk-authorization/

如何在 MCP C# SDK 中支持 OAuth 2.1 身份验证。

.NET 10 的隐藏瑰宝:将改变您的开发的鲜为人知的功能

https://www.mobilize.net/blog/the-hidden-gems-of-.net-10-lesser-known-features-that-will-transform-your-development

介绍 .NET 10 鲜为人知的功能。 证书管理 ISOWeek.ToDateOnly、跨度支持字符串规范化、JIT 改进、框架提供的包的自动删除、本机选项卡补全、增加的指标和 HTTP/3 性能增强、改进的容器集成等。

C# 语言中不是常量但在运行时被优化为常量的东西 - Qiita

https://qiita.com/rougemeilland/items/db5a57456079de9b5006

例如,通过 JIT 优化的值(const 常量除外)。

[C#] RecordClass 中 Equals() 的绊脚石故事 - Qiita

https://qiita.com/masamin/items/fe13ab4acdd3bcbbcae5

如何比较事件与记录类型中的"等于"。

最近的 .NET async/await 可视化计划(也用于 printf 调试) - Qiita

https://qiita.com/cozyupk/items/50bfa7e5ba6d6bf5121e

如何观察 async/await 的行为以查看它是如何工作的。

AutoMapper 商业发布的注意事项

https://zenn.dev/karamem0/articles/2025_07_10_090000

新版本的 AutoMapper 已更改其商业用途的许可证和注释。

您还可以在 C# 中创建 aviutl2 插件! 使用原生 AOT

https://zenn.dev/yamachu/articles/f3912ea418f530

了解如何使用本机 AOT 在 C# 中为 AviUtl2 创建插件。

库、存储库、工具等

Cysharp/AIApiTracer:本地开发环境的反向代理,拦截对 OpenAI、Anthropic 等 AI 服务的请求,允许您跟踪请求和响应 内容。

https://github.com/Cysharp/AIApiTracer

反向代理,用于跟踪 API 对 AI 服务的请求。

C# .NET 交流群

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:

  • 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
  • .NET框架底层原理的实现,如垃圾回收器、JIT等等
  • 如何编写高性能的.NET代码,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET问题和宝贵的分析优化经验。目前一群已满,现在开放二群。 可以加我vx,我拉你进群: ls1075 另外也创建了QQ Group: 687779078,欢迎大家加入。

相关推荐
InCerry4 天前
.NET周刊【7月第1期 2025-07-06】
.net周报·.net周刊
InCerry13 天前
.NET周刊【6月第5期 2025-06-29】
.net周报·.net周刊
InCerry15 天前
.NET周刊【6月第4期 2025-06-22】
.net周报·.net周刊
InCerry1 个月前
.NET周刊【5月第4期 2025-05-25】
c#·.net·.net周刊
InCerry2 个月前
.NET周刊【5月第3期 2025-05-18】
.net周报·.net周刊
InCerry2 个月前
.NET周刊【5月第2期 2025-05-11】
c#·.net周报·.net周刊
InCerry2 个月前
.NET周刊【5月第1期 2025-05-04】
.net周报·.net周刊
InCerry3 个月前
.NET周刊【4月第1期 2025-04-06】
.net周刊
InCerry3 个月前
.NET周刊【3月第5期 2025-03-30】
.net周报·.net周刊