.NET周刊【3月第5期 2025-03-30】

B站影视 港台电影 2025-04-17 08:31 1

摘要:本文介绍了使用Azure语音服务和BotSharp框架进行语音交互的实践,适用于树莓派等Linux设备。作者分享了与社区开发的对话功能,强调了在.NET环境下的开发优势。讨论了树莓派与单片机的选择,指出树莓派更适合Linux系统的.NET应用。内容涵盖了关键技

互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互

本文介绍了使用Azure语音服务和BotSharp框架进行语音交互的实践,适用于树莓派等Linux设备。作者分享了与社区开发的对话功能,强调了在.NET环境下的开发优势。讨论了树莓派与单片机的选择,指出树莓派更适合Linux系统的.NET应用。内容涵盖了关键技术,如Lottie动画、ALSA音频架构及相关命令工具,包括aplay和arecord。文章目标是帮助读者上手开发,提供了具体的准备步骤和API服务使用指南,如获取Azure的API Key。

一个基于 .NET 开源免费的异地组网和内网穿透工具

linker是一个基于.NET8的开源异地组网和内网穿透工具,支持TCP和UDP打洞。它允许不同局域网之间的设备通过P2P或服务器中继方式实现通信,非常适合远程办公和智能家居等场景。用户可以通过NuGet轻松集成linker,项目源码和使用文档均可在指定地址访问。该工具已被收录为C#/.NET的优秀项目,旨在提高开发效率和质量。

开发的设计和重构,为开发效率服务

软件开发如同艺术品雕刻,需要反复打磨和优化。良好的产品应支持多种数据库接入,SqlSugar框架方便实现此功能。文章介绍了不同数据库的统一模型及CRUD操作的设计实现。除了数据库,数据接入方式,如Web API和WCF服务,也应进行统一处理。通过基类和接口的设计,简化不同数据来源和类型的实现,提升代码的可读性和重用性。前端界面通过抽象基类减少编码,提高开发效率,合理封装各类接口。

.NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想

向量数据库是用于存储和检索高维向量数据的系统,特别适合AI驱动应用。文章介绍了向量数据库的定义、与传统数据库的差异,以及其演进过程。与SQL和NoSQL数据库相比,向量数据库在处理非结构化数据和相似性搜索方面具有独特优势。它可以存储数百维向量,支持高效的相似性搜索,并能无缝集成机器学习模型。文章通过表格清晰对比了三种数据库在多个维度的特性,让读者更好地理解向量数据库的应用场景和技术原理。

C# 13 中的新增功能实操

本文介绍了C# 13中的新功能,特别是params集合和新的Lock对象。C# 13增强了params的灵活性,支持可变数量的集合类型参数,提升了代码效率。新的Lock类型提供更有效的线程同步,减少死锁风险,通过API自动管理锁的释放,简化了处理过程。文章还提供了用于安装Visual Studio 2022和.NET 9 SDK的链接,方便读者体验这些新特性。整体内容清晰易懂,适合开发者学习和应用。

C# 从零开始使用Layui.Wpf库开发WPF客户端

文章介绍了使用Layui.WPF控件库开发桌面工具软件的经历。作者以WPF和Prism框架为基础,探讨了如何自动关联视图与视图模型,以及如何配置项目结构。虽然最初对其他开源库加载速度有所担忧,但最终选择了Layui.WPF。文章详细描述了开发过程中涉及的具体步骤和代码示例,使读者能够更好地理解如何实现这些功能。整体结构清晰易懂,全程着重于实践过程与框架的应用。

Ai满嘴顺口溜,想考研?浪费我几个小时

这段代码展示了一个异步获取客户端列表的方法,使用了Entity Framework Core进行数据库查询。代码中包括查询条件、排序和分页逻辑。然而,出现了在多线程环境下访问数据库时的并发错误。这种错误通常是由于共享数据库上下文造成的。解决方案是为每个线程使用独立的数据库上下文,以避免冲突。

C# - 获取枚举描述 - 使用增量源生成器

本文探讨了多种C#获取枚举描述的方法,包括反射、缓存机制和增量源生成器。反射是常用方法,但开销大。缓存机制能减少反射频率,提高性能。作者还推荐使用泛型类以减少代码重复,并提到线程安全性的问题。本示例基于VS2022、.NET 8.0和.NET Standard 2.0,并提供了详细代码实现,特别是增量源生成器的高效代码生成方法,提升了性能,避免了反射。

Windows桌面应用自动更新解决方案SharpUpdater5发布

SharpUpdater是一款C#桌面应用自动更新解决方案。该工具通过文件清单对比实现全量和增量更新。V1-3版本上传所有文件,V4版本利用NuGet技术生成更新包,适合企业内部部署。SharpUpdater5重构了代码,支持跨平台,并同步了VS2022和NuGet.Server 3.4.2。新增CLI工具满足命令行用户的需求。用户还可访问GitHub获取源码和其它组件。

2025成都.NET开发者Connect圆满结束

2025年成都.NET开发者Connect活动于3月29日成功举行,吸引了约30位开发者。活动包括几位专家的分享,内容涵盖了AI应用与敏捷开发。周旭龙分享了西门子工厂的AI Agent实践,以及Microsoft开源项目“eShopSupport”。王学懿提供了AIGC时代的生存建议,并结合C#的案例。叶礼飞回顾了敏捷开发的基本原则。活动还安排了圆桌交流,参会者共同探讨了AI和开发者职业发展。活动由CTC蜀道会与成都.NET俱乐部主办,四川启程云志科技有限公司赞助,旨在提升开发者技能与竞争力。

《HelloGitHub》第 108 期

HelloGitHub 分享多个有趣的开源项目,包括实战项目、入门教程等,涵盖多种编程语言如 Python、Java、Go 和 C/C++。本期内容包括 C 语言的轻量计时器 Catime、Unix 命令行工具 nq、游戏引擎 xash3d-fwgs,还有 C# 的歌声合成工具 OpenUtau 等。内容丰富,适合想了解开源项目的人士,助力开源技术传播与应用。

基于.NetCore开发 StarBlog 番外篇 (2) 深入解析Markdig源码,优化ToC标题提取和文章目录树生成逻辑

本文介绍了一个全新设计的访问统计功能,旨在解决旧实现中的性能和数据库管理问题。新的设计通过队列暂存访问日志,并添加后台定时任务以优化数据库写入,从而提升访问速度。文中提到使用了EFCore作为ORM,以方便实现分库。具体实现部分包括创建VisitRecordQueueService类,使用并发队列和定期批量写入数据库的机制,以确保日志记录流畅且高效。文章内容清晰,具有实用性。

AI与.NET技术实操系列(九):总结篇 ── 探讨.NET 开发 AI 生态:工具、库与未来趋势

本文深入探讨了 .NET 生态中与 AI 相关的工具和资源,包括 ML.NET、Azure AI SDK 和 Semantic Kernel。作者分析了 Microsoft 的 AI 战略及其核心工具,强调了 ML.NET 降低机器学习门槛的特性,以及 Azure AI SDK 提供的多样化云服务。文本清晰阐述了如何使用这些工具进行 AI 应用开发,内容全面且易于理解。文章结合了框架的功能、应用和开发流程,适合 .NET 开发者参考。总的来看,文章为 .NET 环境中的 AI 开发提供了明确的指导。

C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)

该文章周刊聚焦于C#/.NET/.NET Core技术,提供最新、实用的技术文章和资源,助力技术人员的成长。推荐的工具和文章涵盖高效软件、关键字的解读、远程连接管理工具mRemoteNG、C# 13中的params改进、源代码生成器分析器的介绍、以及.NET 10的发布信息和MSTest框架的增强功能。这些内容具有实用性和技术深度,适合开发者参考与学习。

AOT编译Avalonia应用:StarBlog Publisher项目实践与挑战

本文介绍了使用Avalonia开发跨平台文章发布工具StarBlog Publisher的过程。Avalonia框架性能优越,但其学习曲线较陡,文档较难。由于基于.NET Core,发布时需考虑运行时依赖和文件体积。文章详细探讨了AOT(提前编译)发布特性,能够生成不依赖运行库的机器码,减小体积且增加安全性。然而,AOT也可能导致兼容性问题和调试困难。作者分享了使用AOT的配置步骤和注意事项,展示了.NET 8对AOT的支持现状,提及即将发布的.NET 9改进。

Nginx学习笔记

文章介绍了Nginx相较于ASP.NET Kestrel作为Web服务器的优势,包括高可用性和运维友好性。Nginx支持负载均衡、反向代理和动静分离,能处理并发请求和高峰流量,支持简单配置,易于使用。文章详细列出了Nginx的常用命令、核心配置文件及其各个部分的功能。对反向代理的定义及应用进行了说明,并给出了负载均衡的策略及实现示例,帮助读者理解Nginx的多项功能及其配置方法。

GrapeCity Documents V8.0 新版本特性

GcExcel V8.0 新增多项功能,包括支持从各种数据源导入数据、增强假设分析和数据透视表功能。IRange.ImportData 方法支持不同类型的数据导入,IWorksheet.Scenarios 接口支持管理方案。此外,SpreadJS 兼容性提升,新增自动合并单元格和迷你图导出功能。GcPDF V8.0 优化 PDF 文件体积和字体格式,GcWord V8.0 强化动态占位符功能,使得各功能更加实用和高效。

从配置读取到懒加载模式:从具体问题到抽象设计语素的提炼

本文章探讨了如何在高并发环境下高效、线程安全地加载配置文件。通过检查配置是否已加载,避免重复加载和线程竞争,从而保证性能和唯一性。文章分析了在加载过程中使用的代码逻辑,提出了改进建议,强调了状态一致性的重要性以及 _initialized 变量的冗余性。文中还回顾了双重判空检查的经典模式,并提到了 C# 的懒加载机制 Lazy。最终,作者总结了从具体实例到抽象设计的思考过程,展示了系统思考与问题解决的结合。

基于.NetCore开发 StarBlog 番外篇 (3) StarBlog Publisher,跨平台一键发布,DeepSeek加持的文章创作神器

StarBlog Publisher 是专为 StarBlog 博客系统设计的文章发布工具,便于内容创作者操作。它支持 Markdown 格式,提供一站式发布体验,显著提高工作效率。此工具基于 C# 和 .NET 8.0 开发,集成多种 AI 模型,提供智能辅助功能。用户可以自动处理图片,实时预览发布内容,支持跨平台使用,简化了多平台适配。其功能包括文章管理、分类管理、主题切换等。本工具有效解决了 Markdown 写作过程中的诸多痛点,使发布流程更加高效。整体技术栈与现代开发流程高度兼容,适合内容创作者使用。

supOS蓝卓工业互联网与iNeuOS工业互联网操作系统对比

本文对比了supOS和iNeuOS工业互联网操作系统,涵盖品牌、专利、开发语言、应用框架、硬件要求等多个方面。supOS由大公司开发,使用JAVA和不明算法服务,部署较复杂;而iNeuOS由中小公司开发,基于.NET6和Python,支持多种硬件,运维简单。iNeuOS在设备管理、动态交互和AI集成上具有优势,更注重实时数据处理和二次开发。相比之下,supOS强调应用层生态的快速开发,致力于减少行业应用门槛。

主题AutoMapper 和 MediatR 走向商业

AutoMapper 和 MediatR 的许可已更改,并计划商业化。

这篇文章谈到了决定将其商业化的背景。 目前尚未确定具体日期/版本。

宣布 MassTransit v9

宣布发布 MassTransit v9。

从 v9 开始,我们将转向商业许可模式。 v8 将保持开源,但新功能、性能增强和企业功能将仅在 v9 中提供。

本文包括有关迁移、时间表和许可更改的常见问题解答。

为 Teams 实现推送通知 API 的现代化 - .NET 博客

了解如何将 Teams 推送通知中心从 .NET Framework 迁移到 .NET 8/ASP.NET Core。

本文介绍了 Push Notification Hub 的结构及其工作原理、与迁移相关的预期以及分阶段迁移的详细信息/影响。

Heroku 上的 .NET:现已正式发布

对 Heroku 上的 .NET 的支持现已正式发布。

它支持 ASP.NET Core 端口配置、依赖于框架的部署以及其他服务,例如 Heroku Pipelines 和 CI。

您的 Pluralsight 权益变得更好 - Visual Studio 博客

Pluralsight 是 Visual Studio 订阅的一项优势,已扩展。 Enterprise 是 12 个月,Professional 是 6 个月。

宣布推出 Windows Community Toolkit v8.2 - #ifdef Windows

Windows Community Toolkit v8.2 已发布。

该版本对 Windows App SDK 1.6 和 Uno Platform 5.5 的依赖性有所提升。 新功能包括对本机 AOT 和 . 包括 .NET 9 中的 UWP 支持、添加的 SwitchConverter、WinUI 3 中重新启用 AcrylicBrush 以及对 DispatcherQueueTimer.Debounce 的改进。

发布

• autofac/Autofac

• v8.2.1

• aws/aws-sdk-net

• 3.7.1012.0、3.7.1013.0、3.7.1014. 0, 3.7.1015.0, 3.7.1015. 1, 3.7.1016.0, 3.7.1017. 0

• Azure/azure-sdk-for-net

• Azure.ResourceManager.Compute_1.9.0, Azure.ResourceManager.DataBox_1.1. 0, Azure.ResourceManager.EventGrid_1.1. 0, Azure.ResourceManager.KeyVault_1.3. 2

• CommunityToolkit/毛伊岛 - 11.1.1

• CommunityToolkit/Windows

• v8.2.250402

• DataDog/dd-trace-dotnet

• v3.14.0、v3.14.1、v3.14. 2

• domaindrivendev/Swashbuckle.AspNetCore

• v8.1.0

• googleapis/google-cloud-dotnet

• Google.Cloud.AIPlatform.V1-3.25.0,Google.Cloud.AppHub.V1-1.1. 0,Google.Cloud.BigQuery.AnalyticsHub.V1-1.8. 0、Google.Cloud.Compute.V1-3.8. 0,Google.Cloud.Datastream.V1-2.10. 0,Google.Cloud.DevTools.ContainerAnalysis.V1-3.8. 0,Google.Cloud.DiscoveryEngine.V1-1.7. 0,Google.Cloud.PubSub.V1-3.24. 0, Grafeas.V1-3.8.0

• jbogard/MediatR

• v12.5.0

• newrelic/newrelic-dotnet-agent

• v10.40.0

文章、幻灯片等如何使用 C# SDK 从 MCP 服务器创建通知

如何使用 MCP C# SDK 从服务器发送通知。

如何使用 C# SDK 创建 MCP Prompt

了解如何使用 MCP C# SDK 实现 Prompt。

您现在可以在 Azure Functions 中创建 MCP 服务器!

了解如何在 Azure Functions 中实现基于 .NET 的 MCP 服务器。

如何在 Visual Studio 中以 SDK 风格创建 .NET Framework 项目

有关将 .NET Framework 项目的 .csproj 设置为开发工具包样式的说明。

使用 CsWin32 从 Windows 的原生 EXE 中提取资源数据的注意事项

https://qiita.com/skitoy4321/items/6c69d7605f26abf7c652如何使用 CsWin32 中的 Win32 API 从 Windows 可执行文件中检索资源数据以及需要注意的事项。

终结器比你想象的要棘手。 第 2 部分

有关 Finalizer 和 GC 在处理诸如持有 P/Invoke 句柄的包装器之类的东西时的行为的说明。

使用 .NET 事件查看器调查线程池匮乏

一个关于调查实际应用程序中由于 Sync-over-Async 而导致的线程池耗尽的故事。 本文讨论了如何使用 .NET 事件查看器和 .NET 9 中的新事件进行调查。

在 Windows 环境中使用 .NET 进行反调试 - BenGabay - Medium

https://medium.com/@bengabay1994/anti-debugging-with-net-in-windows-environment-d5955e207c86

了解 Windows 上 .NET 应用程序的反调试技术。

兼容 NativeAOT! 在 Avalonia 中使用 Windows Shell API 实现上下文菜单

在使用本机 AOT 和 Avalonia 调用文件上下文菜单的应用程序中使用 Windows Shell API 的实现。

[C#] NRandom - 用于 .NET / Unity 的伪随机数生成库

之前以 RandomExtensions 的名义发布的伪随机数生成库已被 NRandom 取代,并且是新发布的,包括 API 中的更改。

在 GitHub Actions 中创建 SBOM 证明

了解如何在 GitHub Actions 中为 NuGet 包创建 SBOM 证明。

本文讨论了创建证明的配置和验证,以及 NuGet 的问题。

ReSharper 的进程外历程:主要进展和后续步骤 | .NET 工具博客

有关 ReSharper 的 Out-of-Process 历程的报告。 本文继续解释了 OOP 是什么、它的含义、它如何发展以及它的发展程度。

查看和管理 git 标记 - Visual Studio Blog

了解在 Visual Studio 中查看和管理 Git 标记的功能。

在 .NET 中试用 MCP 服务器客户端

这是一个关于在 .NET (C#) 中实现 MCP 服务器和客户端 SDK 的故事。

• 在 .NET 中试用 MCP 服务器客户端,第 2 部分

• 在 .NET 中试用 MCP 服务器客户端,第 3 部分

IronPython3 脚本环境实现和对话 API 示例

如何解决 IronPython 3 中的标准输出错误,以及如何解决与使用 Avalonia 实现相关的问题。

C# 14 中的新增功能 您需要了解的主要功能和更新 | Syncfusion 博客

C# 14 中新功能的简介。

将控件放在 WinUI 3 标题栏中(就像在 Visual Studio 中一样)

了解如何使用 WinUI 3 将控件放置在标题栏区域。

[.NET] 如何正确使用 HttpClient

使用 HttpClient 和 IHttpClientFactory 实现高效重用。

ZXing.Net 使用 Aspose 的 QR 解码速度工作台

Aspose 和 ZXing.Net 之间的二维码解码速度比较。

. 在 .NET 中扫描没有 System.Drawing 的二进制多页 TIFF 二维码

https://zenn.dev/nuits_jp/articles/2025-03-29-read-barcode-from-tiff了解如何使用 LibTiff 和 ZXing.Net 从 TIFF 文件中读取 QR 码。

导航 - WinUI 3 中的 NavigationView - VectoArt - Medium

https://medium.com/@artillustration391/navigation-navigationview-in-winui-3-81b13f11f859

WinUI 3 中的 NavigationView 讨论。

编码经验 Cpp vs Csharp - 聚会应用 osaka@9关于用 C# 制作 C# 编译器的故事 | Doxel

C# 编译器 by @binnmti

nuskey8/SemVer2: 适用于 .NET 的语义版本控制 2.0 的快速 C# 实现

用于使用 Semantic Version 2.0 的快速库。

• [C#] SemVer2 - 快速语义版本控制 2.0 实现

[API 提案]: 运行时异步的公共 API · 问题 #114310 · dotnet/运行时

在运行时实现的异步功能的 API 提案。

从 AsyncEnumerable LINQ 中删除 ConfigureAwait(false) by stephentoub · 拉取请求 #113911 · dotnet/运行时

PR 从 AsyncEnumerable 的内部实现中删除 'ConfigureAwait(false)'。

这是因为传递给 LINQ 的委托可以被视为应用程序代码,因此使用“ConfigureAwait(false)”将它们返回到其原始 SynchronizationContext 可能不合适。

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

• 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具

• .NET框架底层原理的实现,如垃圾回收器、JIT等等

• 如何编写高性能的.NET代码,哪些地方存在性能陷阱

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

来源:opendotnet

相关推荐