.NET周刊【7月第1期 2024-07-07】

💡 原文中文,约11200字,阅读约需27分钟。
📝

内容提要

本文介绍了几篇关于.NET和ASP.NET Core的文章,包括学习.NET 8 MiniApis入门、C#/.NET/.NET Core优秀项目和框架、基于Bootstrap Blazor开源的.NET通用后台权限管理系统、WPF在.NET9中的重大更新、记一次.NET某网络边缘计算系统卡死分析等。

🔎

延伸解读

WPF 的 Windows 11 主题:从投票到预览

WPF 团队在 2023 年 2 月通过投票决定优先开发 Windows 11 主题,并于 2023 年 12 月与 WPFUI 合作。该主题在 Build 2024 展示,2024 年 5 月在微软商店发布预览版,适用于 .NET 9 Preview 4 及以上版本。对于 WPF 开发者,这意味着可以更轻松地创建符合 Windows 11 设计风格的应用,提升界面一致性。

边缘计算系统卡死:线程饥饿的典型表现

文章通过 WinDbg 分析一个部署在 Linux 上的 .NET Web 网站卡死问题,检查主线程调用栈和线程池状态后,推断可能由线程饥饿或线程池耗尽引起。这提醒开发者在高并发或阻塞操作多的场景下,需关注线程池的健康状况,避免同步阻塞导致线程耗尽。

ShardingCore:EF Core 分表分库的轻量方案

ShardingCore 是一款 EF Core 扩展,支持 EF Core 2+ 的所有版本和数据库,提供自定义路由、动态路由、高性能分页和读写分离。其特点是零依赖、零学习成本和零业务代码入侵。文章还展示了在 ASP.NET Core 中按月分表的实操步骤,为需要水平扩展的 EF Core 项目提供了参考。

SemanticKernel 本地函数调用:模型兼容性差异

文章分享使用 SemanticKernel 与 Azure OpenAI 进行本地函数调用的经验,指出除 OpenAI 和 Moonshot AI 外,其他模型的本地函数调用无效。作者在讨论区发现类似需求,并尝试了一个可集成到 SemanticKernel 的项目,成功实现了基于 LLMs 聊天的函数调用。这提示开发者在选择模型时需注意其对函数调用功能的支持程度。

❓

Q&A

.NET 8 MiniApis是什么?

.NET 8 MiniApis是ASP.NET Core中的轻量级框架,适用于微服务和简单CRUD应用,具有简洁明了和性能卓越的特点。

WPF在.NET 9中有哪些重大更新?

WPF在.NET 9中更新了Windows 11主题,提升了应用界面的美观性,并与WPFUI合作开发该主题。

如何在C#中使用RabbitMQ发送邮件?

在C#中使用RabbitMQ发送邮件需要构建生产者、RabbitMQ服务器和消费者,生产者发送邮件请求到队列,消费者接收并执行发送操作。

什么是ShardingCore?

ShardingCore是一个高性能、轻量级的EF Core扩展程序包,支持分表分库读写分离,具有零依赖和零学习成本的特点。

如何优化.NET Core 8.0的Swagger文档?

可以通过使用Swashbuckle.AspNetCore生成SwaggerUI,并根据命名空间分组显示来优化.NET Core 8.0的Swagger文档。

如何创建一个支持Windows服务和窗体的混合程序?

创建混合程序需要判断进程会话ID和用户交互模式,根据条件决定运行模式,涉及多个类文件的实现。

🏷️

标签

➡️

继续阅读