.NET周刊【1月第1期 2025-01-05】

国内文章

3款.NET开源、功能强大的通讯调试工具,效率提升利器!

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

本文介绍了三款功能强大的.NET开源通讯调试工具,旨在提高调试效率。这些工具包括LLCOM,提供串口调试和自动化处理功能;Wu.CommTool,支持Modbus RTU和MQTT调试,界面丰富;以及PLC-CommunTools,整合多种PLC协议和通讯功能。文章还提到这些项目已收录进C#/.NET优秀项目精选,鼓励开发者参与贡献。最后提供了各项目的开源地址,倡导开发者关注最新动态和最佳实践。

为什么推荐在 .NET 中使用 YAML 配置文件

https://www.cnblogs.com/chenyishi/p/18624234

在现代应用开发中,配置管理尤为关键,尤其在微服务与云原生架构中。YAML作为一种格式,因其可读性强和支持多种数据类型而受到青睐。YAML支持嵌套结构,通过简单的语法使配置更加直观。同时,YAML适合DevOps与云原生场景,灵活的注释功能也方便团队协作。在.NET中,尽管JSON是默认格式,但可以通过库YAML支持YAML配置,YamlDotNet可用于解析YAML文件,Microsoft.Extensions.Configuration.Yaml可与ASP.NET Core配置系统集成,方便管理多环境配置。

.NET 阻止系统睡眠/息屏

https://www.cnblogs.com/kybs0/p/18624932

本文探讨如何在Windows系统中阻止系统睡眠和息屏,并查看相关应用信息。通过使用命令powercfg /requests,用户可以识别阻止睡眠的应用或服务。文章提及了通过API SetThreadExecutionState来通知系统应用正在使用,防止系统进入睡眠状态。此方法对音频播放和应用升级等场景尤为重要,确保它们能顺利完成。此外,文章还讨论了一些系统调用和返回状态,提供了技术细节和使用建议。

在.NET Core中使用异步多线程高效率的处理大量数据

https://www.cnblogs.com/Tangtang1997/p/18623843

本文介绍了一种高效的多线程异步处理大数据量的方法,特别适用于处理大量图片文件。文章首先提出了传统同步处理的不足,然后引入了.NET的异步编程模型和Channel来实现生产者-消费者模式。生产者负责读取和写入图片文件到Channel,消费者从Channel中读取并进行处理,极大提高了效率和降低了内存开销。文中详细说明了如何使用Task.Run实现并行处理以及async/await关键字避免阻塞。最后,提供了示例代码,进一步阐释了该解决方案的实现方式。

C#字符串拼接的几种方式及其性能分析对比

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

本文探讨了在C#中字符串拼接的六种常见方式,并利用BenchmarkDotNet进行性能评估。字符串拼接在动态生成SQL、日志构建和内容格式化等方面应用广泛。BenchmarkDotNet为.NET开发者提供了强大的性能测试和优化工具,通过自动化测试和高级统计分析,开发者能更好地理解软件性能。文章中还提供了各拼接方式的示例代码,帮助开发者比较不同方法的性能。整体内容清晰,实用性强,适合希望提高性能的开发者阅读。

推荐一个C#轻量级矢量图形库

https://www.cnblogs.com/chingho/p/18629448

VectSharp 是一款轻量级 C# 库,专注于生成 PDF、SVG、PNG 等矢量图形。它支持跨平台,内置 14 种标准字体。开发者可利用其抽象层生成不同类型的图形文件,支持 3D 图形和多种图表绘制。库内含图像处理工具,允许导出为各种格式,并具备动画制作功能。示例代码展示了文档创建及图形绘制过程,提供了简单易用的接口,非常适合快速集成到项目中。

开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行

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

GTKSystem.Windows.Forms是一个开源框架,使C# WinForm支持跨平台运行。该框架基于GTK,并兼容原生C#的System.Windows.Forms组件。它支持Windows、Linux和macOS,无需学习新语言或框架,可直接使用原生WinForms。用户通过安装NuGet上的设计器类库,能够轻松创建窗体。工程一旦编译,即可在多平台上运行,降低开发成本和时间。该项目已入选C#/.NET/.NET Core优秀项目精选,鼓励开发者获取最新动态和最佳实践。

.NET Core 类型系统(Types System)底层原理浅谈

https://www.cnblogs.com/lmy5215006/p/18623501

C#是一种强类型语言,具有明确的变量和常量类型。其类型系统包括类、字段、属性等。编译器在编译时确保类型安全,利用元数据在IL层面进行管理。CLR使用元数据来保证运行时的类型安全。C#的值类型和引用类型存在区别,值类型在栈上分配,而引用类型在堆上分配。文中提到的内容涉及C#类型系统、CLR和类型的内在特性。

盘点5个常用的.Net依赖注入框架!

https://www.cnblogs.com/chingho/p/18632352

本文介绍了五个常用的依赖注入框架,尤其详细说明了Microsoft.Extensions.DependencyInjection和AutoFac。Microsoft.Extensions.DependencyInjection是.NET Core内置的,使用方便。AutoFac是一个功能强大的DI框架,支持类型安全和声明式的编程。文章还简要描述了Ninject、SimpleInjector和Windsor,强调它们在.NET应用开发中的灵活性和效果。这些框架为开发者提供了有效的控制反转(IoC)解决方案,提升了代码的可维护性和测试性。

.NET 9 中的 多级缓存 HybridCache

https://www.cnblogs.com/chenyishi/p/18626831

HybridCache 是 .NET 9 引入的新缓存模型,旨在整合本地和分布式缓存,优化性能和维护效率。它基于 IDistributedCache,增加了支持标签删除等特性。HybridCache 优先读取本地缓存,减少延迟,同时简化了缓存选择和管理。主要优点包括性能提升、工程精简、标签管理和安全性。文章提供了使用 HybridCache 的代码示例,包括缓存的添加、读取和删除。

Visual Studio - API调试与测试工具之HTTP文件

https://www.cnblogs.com/hugogoos/p/18629000

本文介绍了后端开发中调试Api接口的工具和方法,侧重于Visual Studio 2022中支持的.http文件。作者详细讲解了.http文件的创建方式、请求格式、请求头和请求体的设置,以及注释、变量和环境文件的使用。通过此工具,开发者可以更便捷地调试Api接口,提升开发效率。

.NET 中的线程安全数据结构

https://www.cnblogs.com/Tangtang1997/p/18629960

本文介绍了多线程编程中常用的线程安全数据结构,包括ConcurrentQueue、ConcurrentStack、ConcurrentBag、ConcurrentDictionary等。针对每种数据结构,文章描述了其适用场景、优点、无锁设计的特性及在.NET Framework和.NET Core中的可用性。此外,文中还提供了示例代码,展示了如何使用这些数据结构实现生产者-消费者模式。整个内容简洁明了,涵盖了线程安全设计的核心概念,对开发者学习和应用.NET中并发编程具有指导意义。

聊一聊 C#线程池 的线程动态注入 (中)

https://www.cnblogs.com/huangxincheng/p/18627222

本文探讨了在 C# 中通过 Task.Result 进行动态线程注入的优化,特别是在线程池饥饿场景下。文章通过测试代码展示了优化前后的线程产生率,从1-2个增至每秒约4个。核心逻辑在于 NotifyThreadBlocked 方法,该方法主动唤醒 GateThread,以提高响应速度。作者提供了具体的代码示例,助于读者理解底层实现。总体而言,文章具备技术深度与实际应用,清晰易懂,适时且原创,引用得当,便于阅读。

在 .NET Core 中使用 ActionBlock 实现高效率的多步骤数据处理

https://www.cnblogs.com/Tangtang1997/p/18628049

本文介绍了 .NET TPL Dataflow 库中的 ActionBlock。ActionBlock 提供了一种处理数据流和并行任务的方式,适用于生产者-消费者模式、数据流处理及任务调度等场景。它支持并行处理、异步编程和数据流控制,能提高应用响应速度和吞吐量。使用 ActionBlock 的步骤包括创建、发送数据、完成和等待处理。结合 TransformBlock 的示例演示了如何管理多步骤的数据处理。这些技术适合处理大量数据并提高效率。

记一次 .NET某工业视觉软件 崩溃分析

https://www.cnblogs.com/huangxincheng/p/18635326

本文分析了一次程序崩溃的过程,介绍了使用WinDbg工具进行调试的方法。作者通过实际案例帮助学员理解崩溃的根本原因,并展示了如何利用WinDbg的命令来定位问题。详细的堆栈跟踪和寄存器状态提供了崩溃点的上下文,源码示例进一步解析了相关函数的逻辑。这篇文章不仅适合初学者,也为有经验的开发者提供了实用的调试技巧,为解决类似问题提供了指导。

聊一聊 C#线程池 的线程动态注入 (下)

https://www.cnblogs.com/huangxincheng/p/18630175

文章提供了提高线程注入速度的两种方法。一是降低GateThread的延迟时间,将Blocking.MaxDelayMs变量从250ms减少到100ms,显著提升了注入速度。二是提升MinThreads的阈值,将最小线程数从12提升到更高的值,以进一步加快注入速度。作者通过代码示例演示了这两种方法的实现,并检查了线程注入的效果。这篇文章探讨了动态注入的技术细节,适用于需要优化线程处理性能的开发者。

.NET 9 New features-AOT相关的改进

https://www.cnblogs.com/tianqing/p/18622260

本文介绍了.NET 9中的AOT(Ahead-of-Time)编译技术及其优势。AOT编译在应用程序部署前将代码直接编译为本机机器代码,显著提高启动速度并减少内存占用。文章详细讲解了AOT的优点,包括提高性能和简化部署,特别是在不支持JIT的环境中。使用AOT的步骤也被阐明,涉及安装必要工具和配置项目文件。此外,文章讨论了.NET 9对AOT的改进,包括对老旧系统的支持和性能提升。

.NET 9 增强 OpenAPI 规范,不再内置swagger

https://www.cnblogs.com/chenyishi/p/18629271

本文介绍了 .NET 9 中对 OpenAPI 的原生支持。微软放弃了 Swagger,转而采用更广泛认可的 OpenAPI 标准,以提高兼容性并简化依赖关系。OpenAPI 的使用将使得 .NET 应用更具灵活性和互操作性。作者提供了详细的配置步骤,包括如何添加服务、映射 OpenAPI 文档以及集成可视化工具。示例代码清晰展示了如何在 .NET 9 中设置 OpenAPI,便于开发者理解和应用。

C#使用Tesseract C++ API过程记录

https://www.cnblogs.com/mingupupu/p/18636610

Tesseract是一个开源的OCR引擎,由Hewlett-Packard实验室开发,后被Google收购并维护。它支持多种语言的字符识别,并整合了深度学习技术,提高了识别准确率。Tesseract可嵌入各类应用,支持C++、Python、Java和Node.js等编程语言。文中还介绍了如何在Windows上使用vcpkg管理Tesseract的安装,提供了具体的命令步骤和用法。虽然已有C#封装的库,作者鼓励读者学习底层实现。该技术文档理解性强,实用性高,适合开发人员。文献引用和示例项目均可在GitHub找到。

.NET Bios相关数据读写

https://www.cnblogs.com/kybs0/p/18613343

本文介绍了如何读取和写入BIOS数据,包括序列号(SN)的读取和烧录。设备制造时需初始化数据并验证。在BIOS中存储数据可以实现离线激活,避免硬盘更换后丢失。文中说明了使用WMI查询BIOS信息的方法,并提供了示例代码,展示如何访问BIOS的多个属性,如制造商、版本和序列号等。该技术适合需要管理和查询Windows系统信息的场景。

聊一聊 C#线程池 的线程动态注入 (上)

https://www.cnblogs.com/huangxincheng/p/18623762

该文章探讨了线程饥饿与动态线程注入的关系,特别关注于使用Thread.Sleep的情况。文章分析了线程池的内部工作机制,详细解释了GateThread类如何管理线程的动态注入,包括线程的唤醒周期和出队判断逻辑。文章通过测试代码展示了线程动态注入的情况,并结合底层逻辑进行深入分析,读者能清晰理解线程在特定场景下的表现与规律。

NetCore开源项目,适合新手学习

https://www.cnblogs.com/zhang-3/p/18636074

VerEasy.Core 是一个基于 .NET Core 的开发框架,结合了 Vue3 前端技术,旨在提供高效、可扩展的 API 程序。该框架支持 JWT 认证、数据库操作、日志记录、异步处理等功能,满足大多数业务需求。框架采用仓储+服务+接口结构,使用 SqlSugar ORM,支持多种数据库。内置数据种子文件和自动生成代码功能,还集成了 SwaggerAPI 文档、AutoMapper 和 AutoFac 依赖注入。框架结构易于扩展,便于与已有项目集成。整体设计追求高效性和灵活性。

cs-script:一个非常成熟的C#脚本开源引擎

https://www.cnblogs.com/chingho/p/18627062

CS-Script是一个成熟的C#脚本引擎,自2004年发布。它支持托管和独立执行模型,是PowerShell的C#替代品,能够动态执行C#脚本。与Visual Studio和VSCode等多种开发工具兼容,支持Windows和Linux平台。使用时,用户需要安装依赖库,可以运行带返回值和无返回值的动态脚本。CS-Script允许灵活评估C#表达式和加载实现特定接口的脚本,提升了开发效率。总体来说,CS-Script对C#开发者非常实用。

在Asp.netCore中使用Attribute来描述限流

https://www.cnblogs.com/kewei/p/18630545

本文讨论了在ASP.NET Core中利用Attribute简化RateLimiting的实现。通过创建自定义的限流Attribute,开发者可以在API的Action上直接标注,从而减少手动实现policy的工作量。作者提出了多种限流单元的Attribute,可以根据请求的不同部分进行细致的限流。文章描述了如何实现一个policy,提取和处理这些Attribute,以使限流功能可用。最后,项目开源,鼓励他人参与和交流。

ASP.NET Core 中的速率限制中间件的使用

https://www.cnblogs.com/netcore5/p/18635522

ASP.NET Core中的速率限制中间件用于控制客户端请求速率,防止服务器过载。文章介绍了速率限制的基本用法,包括在Startup.cs或Program.cs中注册AddRateLimiter服务。文章详细讲解了不同类型的速率限制策略,如固定窗口、滑动窗口和令牌桶限制器,提供了具体的代码示例和配置说明。读者可以学习如何实现和应用这些策略来优化API的请求处理能力。

爬虫自动化脚本+AI赋能

https://www.cnblogs.com/queque/p/18624817

本文介绍了如何利用爬虫技术实现自动化网页操作。内容包括如何安装自动化脚本包、实现登录、绕过验证码和获取评论等。通过提供 C# 代码示例,详细阐述步骤并强调注意事项,尤其是隐蔽特征。作者提醒读者珍惜学习的机会,且声明内容仅供技术分享,避免不当使用。

MockQueryable:LINQ查询模拟测试工具

https://www.cnblogs.com/chingho/p/18624777

本文介绍了MockQueryable,一个开源.NET库,用于模拟LINQ查询以提高单元测试的效率。通过MockQueryable,开发者无需依赖数据库,便可创建可查询对象,支持延迟执行、过滤和排序。使用此库可简化测试流程、提高测试覆盖率及确保测试可重复性。文章详细描述了使用方法,包括如何创建模拟对象及配置存储库查询,提供了可操作的代码示例。项目地址和相关开源项目链接也一并列出。整体内容清晰明了,实用性强,有助于开发者有效实施单元测试。

并发编程 - 死锁的产生、排查与解决方案

https://www.cnblogs.com/hugogoos/p/18634321

本文讨论了多线程编程中的死锁问题。死锁通常发生在多个线程相互等待对方释放资源时。产生死锁的四个条件包括互斥、占有并等待、不可剥夺和循环等待。文中给出了一个简单的代码示例,展示了如何通过两个线程互相占用锁资源而导致死锁。最后,作者介绍了在Visual Studio中如何使用调试工具排查死锁。整体内容清晰、实用且具有一定的技术深度。

Scoop: 开发者多环境管理利器

https://www.cnblogs.com/chenyishi/p/18634070

Scoop是一个基于Windows的包管理器,帮助开发者高效管理应用程序。它通过命令行安装、更新和卸载包,消除了管理员权限需求。Scoop的核心概念包括Bucket(存储应用包配置)、App(管理应用程序)和Version(多版本管理)。用户可以轻松安装、验证和切换.NET和Python的不同版本。Scoop还支持更新自身及已安装包,清理旧版本,快速搭建开发环境,比如安装VS Code和Node.js。其操作简单高效,非常适合开发者使用。

FluentAssertions:C#单元测试断言库,让测试代码更加直观、易读!

https://www.cnblogs.com/chingho/p/18635356

FluentAssertions是一个基于.NET的开源断言库,提供链式调用来编写单元测试中的断言,使其更自然流畅。支持多个.NET框架和单元测试框架。使用示例展示了更靠近自然语言的写法,支持多个断言条件的连续验证,以及丰富的多种断言方法,能验证不同类型的数据和场景。提供项目地址和其他开源项目的推荐。

AI Agent系列-什么是AI智能体,使用Semantic Kernel开发一个AI Agent

https://www.cnblogs.com/tianqing/p/18639649

AI智能体是由人工智能驱动的系统,能自主感知、决策和执行任务。其核心特性包括自主性、感知能力和学习能力。AI智能体分为物理智能体与虚拟智能体,应用于自动驾驶、智能客服和金融分析等领域。Microsoft的Semantic Kernel是集成大型语言模型的工具,支持插件定义和AI服务的抽象。使用Semantic Kernel开发AI智能体涉及安装SDK、配置API和定义功能插件,使得开发过程高效且灵活。

.Net程序员机会来了,微软官方新推出一个面向Windows开发者本地运行AI模型的开源工具

https://www.cnblogs.com/chingho/p/18646910

本文介绍了微软最新推出的AI Dev Gallery开源项目,旨在帮助.NET开发者将AI集成到Windows应用中。项目支持从知名平台下载预训练的AI模型,并提供了超过25种场景的交互式示例,涵盖图像、文本、音频和视频等应用。每个示例附有完整代码,开发者可根据设备性能选择模型运行方式。AI Dev Gallery还将支持更多示例和功能,适用于图像识别、自然语言处理、视频分析等多种应用场景。

Windows应用开发-常用工具

https://www.cnblogs.com/kybs0/p/18643823

本文介绍了.NET/WPF开发的工具和技术,包括Visual Studio 2022、VsColorOutput、Reshaper和Git等。应用发布方面提到Innosetup和SmartAssembly混淆工具。效率工具包括Snipaste、ScreenToGif和Beyond Compare。问题定位的工具有Snoop、Fiddler和Wireshark。性能定位工具包括DotTrace和DotMemory。此外,还涵盖了反编译工具如DotPeek和De4dot,以及Dump文件的查看方法。整体内容干货满满,适合开发者参考。

记一次 .NET某汗液测试机系统 崩溃分析

https://www.cnblogs.com/huangxincheng/p/18643600

这篇文章讨论了关于 .NET 高级调试的案例分析。作者通过一个生产事故的 dump 文件,分析崩溃原因。使用 WinDbg 工具提供了详细的崩溃上下文信息,具体阐述了崩溃发生在 System.Windows.Forms.ImageList.ImageCollection.SetKeyName 方法上的情况。文章不仅分享了解决问题的方法,也为读者提供了调试分析的实用指导,适合正在学习或需要实战经验的开发者。

记一次 .NET某电商医药网站 CPU爆高分析

https://www.cnblogs.com/huangxincheng/p/18640683

这篇文章讨论了.NET高级调试中的CPU利用率问题。作者通过案例引导,强调时间复杂度对程序性能的重要性。文章介绍了使用WinDbg分析CPU高使用率的方法,提供了实用的命令,如!tp和!cpuid,以便判断线程状态和CPU能力。作者展示了线程池的利用情况,指出当线程被占满时可能导致性能问题。通过分析调用栈,帮助开发者发现潜在的代码问题,提高程序性能。总体来说,文章逻辑清晰且具有实用性,适合需要调试经验的程序员。

ImageSharp:高性能跨平台.NET开源图形库

https://www.cnblogs.com/chingho/p/18642994

本文介绍了一个跨平台的.NET开源图形库ImageSharp。它是高性能且完全托管的代码库,支持多种图像格式与像素格式。ImageSharp提供了丰富的图像处理功能,如调整大小、应用滤镜、裁剪、旋转和绘制文字等,能够支持广泛的应用场景。使用中,仅需几行代码即可轻松实现常见操作,且在性能和内存管理上表现优异。

推荐 5 个 火火火火 的CMS开源.Net项目

https://www.cnblogs.com/chingho/p/18640415

文章推荐了五个基于.Net Core开发的开源CMS项目,包括OrchardCore、Umbraco CMS、Piranha CMS、Cofoundry和MixCoreCMS。OrchardCore是一个模块化和多租户框架,支持多种数据库和可视化编辑。Umbraco提供友好的用户体验,支持多语言和内容管理。Piranha CMS是轻量级且跨平台,特别适用于.NET 8。Cofoundry具备可扩展的架构,使用简单。MixCoreCMS功能丰富,支持跨平台和多个数据库,适合多种网站需求。这些项目展示了.Net Core在CMS开发中的强大能力。

.NET 9 new features-分布式追踪支持、HTTP/3 改进以及更好的容器镜像支持

https://www.cnblogs.com/tianqing/p/18639613

.NET 9 针对云原生开发进行优化,增强了分布式追踪、HTTP/3 支持和容器镜像性能。分布式追踪通过 OpenTelemetry 改进监控和故障诊断能力。HTTP/3 支持提升了通信性能,适用于高并发应用。容器镜像优化降低了体积,加快启动速度,提升部署效率。给出示例代码,展示如何配置分布式追踪、启用 HTTP/3 以及构建精简版容器镜像。这些改进增强了 .NET 在现代云原生应用中的适用性和效率。

Bogus:.NET的假数据生成利器

https://www.cnblogs.com/chingho/p/18632369

Bogus是一个开源的.NET库,用于生成虚假数据,方便项目测试。它提供了简单直观的API,使生成各种数据类型变得容易。用户可以定制数据格式和规则,支持多种数据类型,包括名字、地址、日期等。Bogus还支持本地化、复合类型和与ORM工具如Entity Framework的集成。安装时,可以使用Install-Package命令。示例代码展示了生成随机名字、地址和日期的方法。项目地址为https://github.com/bchavez/Bogus。

.NET 9 new features-Memory Caching 和 Collections 优化

https://www.cnblogs.com/tianqing/p/18639550

本文介绍了.NET 9的新特性,包括内存缓存和集合优化。内存缓存利用MemoryCache类在应用程序内存中存储频繁使用的数据,以提高性能。该设计减少了对外部数据源的访问,适用于静态数据的读取、计算成本高的数据缓存和会话状态管理。示例代码演示了如何使用内存缓存。集合优化则通过性能提升和内存使用改进,优化了循环操作,特别是在处理大数据量时,大大减少了CPU和内存消耗。示例代码展示了向下计数循环的实现。

dotnet最小webApi开发实践

https://www.cnblogs.com/flyfire-cn/p/18642507

本文探讨了使用ASP.NET Core开发最小Web API的实践。作者通过VS2022创建了一个简单的访客IP白名单授权功能。该API根据访问者的IP地址判断是否在白名单中,并返回相应的HTTP响应。文中展示了项目的基本配置和代码实现,包括使用Swagger进行接口测试的设置。整体内容简明扼要,适合开发者学习最小Web API的基础知识和实践方法。

Abp vNext 扩展属性

https://www.cnblogs.com/WangJunZzz/p/18643583

本文介绍了abp框架中的ExtraProperties属性,强调其在不修改源码的情况下扩展表的价值。通过示例代码展示了如何在Domain.Shared层创建扩展配置类,并为AbpUser表添加用户头像地址属性。文章详细说明了如何使用IdentityUserManager将扩展属性写入或更新数据库,并提出了JSON格式扩展字段在加索引过程中的限制问题。此外,文中提供了映射到数据库字段列的必要代码。

Raspberry pi 上部署调试.Net的IoT程序

https://www.cnblogs.com/czwy/p/18641846

树莓派是一款ARM架构的单板计算机,能够运行Linux系统,适合IoT应用开发。本文介绍了如何在树莓派上部署.NET IoT程序,包括开发、发布和发布后的配置步骤。需要通过开发计算机进行应用开发,然后将程序发布到树莓派。文章详细描述了安装.NET、配置环境和使用scp命令传输文件的步骤。此外,文中还介绍了如何在Visual Studio中进行远程调试和调试IoT库源码的方法。这些内容提供了实用的技巧和指导。

WPF 记录鼠标、触摸多设备混合输入场景问题

https://www.cnblogs.com/kybs0/p/18642076

本文探讨了在WPF应用中处理鼠标和触摸混合输入时出现MouseUp事件未触发的问题。文章指出鼠标、触笔和触摸三类事件的行为差异,详细描述了如何在不同输入设备下触发这些事件。通过实际案例,作者展示了如何通过步骤复现该问题,并提供了相关代码示例,以说明如何正确捕获各种输入事件。引用的博客链接也为读者提供了进一步学习的资源。整体上,文章为解决特定技术问题提供了有效的见解和方法。

开源 Material Design WPF UI 控件库,易用且功能强大

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

Material Design 是 Google 开发的设计语言,旨在提高用户界面的直观性和美观性。MaterialDesignInXamlToolkit 是为 WPF 开发者提供的开源控件库,支持 C# 和 VB.NET 编程,实现 Material Design 风格。该工具库包含丰富的控件、样式和效果,支持自定义主题颜色和字体。它适用于 Windows 桌面,提供标准控件、额外设计控件以及平滑过渡效果。用户可通过 Visual Studio 安装并配置该工具包,方便快捷地开发现代化应用程序。

Coravel:一个可轻松实现任务调度、队列、邮件发送的开源项目

https://www.cnblogs.com/chingho/p/18624779

Coravel是一个轻量级的.NET开源任务调度库,具有任务调度、队列、缓存、事件广播和邮件发送等核心功能。其语法直观、配置简单,提升了应用性能。可使用内存或数据库作为缓存后端,提供易于使用的邮件API。示例展示了如何安装、调度任务、使用队列、注册事件和发送邮件。项目地址在GitHub。

使用 SK Plugin 给 LLM 添加能力

https://www.cnblogs.com/kklldog/p/18651292/sk-plugin

这篇文章介绍了Semantic Kernel中的Plugins如何提升大语言模型(LLM)的功能。Plugins允许将现有API封装并提供给AI,从而使其能够执行如天气查询等实际操作。文章详细阐述了Plugins的工作原理,并通过示例展示如何使用WeatherPlugin获取实时天气数据。此内容清晰易懂,适合技术人员理解新技术应用。

PaperAssistant:使用Microsoft.Extensions.AI实现

https://www.cnblogs.com/mingupupu/p/18651932

本文介绍了如何使用Microsoft.Extensions.AI在C#中构建一个论文总结AI Agent,旨在简化开发者与AI服务的集成。文章详细阐述了Microsoft.Extensions.AI库的构成及其功能,强调了与.NET生态系统的深度协作。实践部分展示了创建C#控制台项目的步骤,包括环境变量的设置、API客户端的初始化及PDF内容提取和MD笔记保存的实现。代码示例清晰简练,适合开发者进行参考和学习。

[.NET] 单位转换实践:深入解析 Units.NET

https://www.cnblogs.com/madtom/p/18653522

本文深入探讨了在软件开发中如何使用Units.NET库进行单位转换,特别是温度的处理。首先通过NuGet安装库,并给出了天气API的实战示例,展示了如何在API端点中实现不同温度单位的转换。文章强调了设置基本模型和单位转换方法的重要性,确保了代码的灵活性和易读性。通过具体的代码示例,读者能了解到如何优雅地实现单位转换,提升实际开发中的单位处理能力。

主题

Godot C# 包迁移到 .NET 8

https://godotengine.org/article/godotsharp-packages-net8/

宣布 C# 包将从 Godot 4.4 开始面向 .NET 8。

从 Godot 4.4 开始,现有项目必须以 .NET 8 为目标,并且在 Godot 4.4 中打开时将自动升级。此外,该库的目标是 .NET 8,但您可以将项目的目标版本指定为 .NET 9 或未来版本。

PostSharp 2025.0 正式发布:支持 C# 13、.NET 9 等

https://blog.postsharp.net/postsharp-2025-0-ga

PostSharp 2025.0 已发布。

此版本包括对 C# 13 和 .NET 9 的支持、改进的 Windows PDB 支持、长路径支持、WeakEventHandler 的性能改进等等。

2024 年热门 .NET 视频和直播 - .NET 博客

https://devblogs.microsoft.com/dotnet/top-dotnet-videos-live-streams-of-2024/

介绍 2024 年 .NET 的官方推荐视频和直播。

文章、幻灯片等

如何将 ini 文件与通用主机、ASP.NET Core 等一起使用。

https://zenn.dev/microsoft/articles/how-to-use-inifile

如何使用 Microsoft.Extensions.Configuration.Ini 将 .ini 文件用作配置文件。

尝试将 phi4 与 .NET Aspire 结合使用

https://zenn.dev/microsoft/articles/phi4-dotnet-with-aspire?redirected=1

如何在 .NET Aspire 中托管和调用 Phi-4 模型。

C# 异步处理期间 CurrentCulture 的行为根据 .NET/.NET Framework 版本而变化 - Qiita

https://qiita.com/yamagutiesneo/items/5f81513cd87e1a30f7bd

说明在 .NET 和 .NET Framework 4.6 或更高版本/更早版本之间的异步处理中,CurrentCulture 的处理方式有何不同。

C# 标准 - 模式对话框的一致最小化 - Qiita

https://qiita.com/chai0917/items/eeb70e952e9cda4c3071

关于打开子窗口时最小化模式对话框时的行为考虑。

[C#] 通知 Visual Studio 2022 中任何对象更改的技术

https://zenn.dev/luxiar/articles/b1c5a5b2cf4a78

在 Visual Studio 中调试时如何在特定对象发生更改时中断。

如何与 IronPython 交互(第 3 部分)- Qiita

https://qiita.com/Mt_SQ/items/b1fbb1a27e0a1a03ad18

将 IronPython 3.4.2 for .NET 9 与新的 LINQ 运算符结合使用的示例。

使用源生成器实现拦截器:创建源生成器 - 第 11 部分

https://andrewlock.net/creating-a-source-generator-part-11-implementing-an-interceptor-with-a-source-generator/

如何在 Source Generator 中实现拦截器的使用。

PHP 移除项目已完成 - Qiita

https://qiita.com/omt_teruki/items/eb0d953198120a2dc7c2

解释将服务从 PHP 迁移到 C# / .NET 时遇到的陷阱。

使用分析器中的仪表直方图解锁见解 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/unlocking-insights-with-meter-histogram-in-the-profiler/

引入了在 Visual Studio 2022 中的诊断会话期间可视化仪表直方图的功能。

C# 标准 - 多重启动预防 - Qiita

https://qiita.com/chai0917/items/d59c52e4c12ce0a892f4

如何防止多次启动应用程序。它还涉及多次启动时的处理。

使用 .NET 9 编写字符串数字比较器

https://khalidabuhakmeh.com/writing-a-string-numeric-comparer-with-dotnet-9

如何实现比较字符串+数字的比较器(例如"Foo 123"、"Foo 456"、"Bar 567")。文章使用了CommonPrefixLength方法来获取常见的前导字符数。

使用 Microsoft.Extensions.AI 将图像传递给 C# 中的LLM

https://markheath.net/post/passing-image-content

如何使用 Microsoft.Extensions.AI 将图像传递给 LLM。

.NET9 时代 iOS 的本机库互操作

https://zenn.dev/yamachu/articles/5ea515697a3bc1

了解如何在 .NET 9 中实现 iOS 的本机代码绑定。

添加完全引导的 Mono --- 2024 --- 博客 --- GNU Guix

https://guix.gnu.org/en/blog/2024/adding-a-filled-bootstrapped-mono/

关于将完全引导的 Mono 添加到 GNU Guix(包管理器)的旅程。

尝试使用 .NET MAUI (Android) 获取 WiFi 强度

https://zenn.dev/aynv/articles/126642179ec18c

如何使用 .NET MAUI(.NET for Android)获取 Wi-Fi 信号强度。

如何使用 ASP.NET Core 构建热重载 Docker 开发环境 - Qiita

https://qiita.com/fortia/items/d347f575d386f6b9fcb9

如何热重载从 Docker 映像启动的 ASP.NET Core 应用程序。

使用 AngleSharp 集成测试 ASP.NET Core Web 应用程序

https://zenn.dev/masakura/articles/6a6971f7102205

了解如何使用 AngleSharp 进行 ASP.NET Core 应用程序的集成测试。

[C#] Timers.Timer Stop 时触发事件的原因及对策 - Qiita

https://qiita.com/takeo-index/items/5d43e53db22532223f87

关于即使在我停止 System.Timers.Timer 后仍被调用的事件。

在 Visual Studio 2022 中停靠代码搜索窗口 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/dock-the-code-search-window-in-visual-studio-2022/

引入 Visual Studio 2022 中现已提供的代码搜索窗口对接功能。

使用 Visual Studio 2022 的代码搜索转到任意位置 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/go-to-line-anywhere-with-code-search-for-visual-studio-2022/

介绍可通过代码搜索指定行数进行移动的功能。

用ASP.NET Core实现的"多租户+审计信息"设计指南

https://zenn.dev/sink00001/articles/acae9cccf5933c

多租户环境设计和在 ASP.NET Core 中记录审核信息的指南。

在本地构建和测试 .NET 运行时存储库 --- 第 2 部分 --- 使用 Visual Studio 进行调试

https://dsmblogs.com/build-and-test-net-runtime-repository-locally-part-2-debugging-with-visual-studio-c2400fb26505

了解如何在本地构建和测试 .NET 运行时存储库,并在 Visual Studio 中调试它们。

https://qiita.com/noobow/items/2764c96d34a869b4c9da

关于将 AngleSharp 与 .NET 9 一起使用时的问题,cookie Expires 被解释为本地时间而不是 UTC。

[C#] 在 VSCode 调试模式下显示跨度调试视图 - Qiita

https://qiita.com/abetakahiro123/items/2b2077b839ad861433f1

关于在 Visual Studio Code 中调试时无法在调试视图中显示跨度内容的问题。

使用 PostgreSQL 和 PgVector 在 .NET 中测试容器

https://dev.to/chsami/testcontainers-in-net-with-postgresql-and-pgvector-4m93

如何将 PgVector 和 PostgreSQL 与 Testcontainers 一起使用。

C# 开发人员的 Linux 进程优先级

https://medium.com/@ocoanet/linux-process-priorities-for-c-devs-9ed9d9cc4ba1

关于Linux进程优先级。 .NET 中实现的解释。

Rider 2025.1 路线图 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2025/01/08/rider-2025-1-roadmap/

Rider 2025.1 路线图。简化的性能分析、混合调试、Windows 上的远程开发、SQL 项目支持、增强的 Roslyn 支持等等。

.NET Aspire 快速提示 - 管理容器和数据生命周期 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-aspire-container-lifetime/

.NET Aspire 中容器和数据生命周期管理的提示。

使用 Visual Studio Profiler 进行基准测试 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/benchmarking-with-visual-studio-profiler/

介绍 Visual Studio 17.13 预览版中更新的 BenchmarkDotNet 基准诊断数据处理引擎如何更轻松地高效测量 CPU 使用情况和分配。

[C#] 推荐 Unsafe.BitCast

https://blog.neno.dev/entry/2025/01/07/182438

关于 Unsafe.BitCast,它允许强制转换相同大小的值类型,比 Unsafe.As 更安全地使用。

使用 .NET Upgrade Assistant 迁移到中央包管理 - tech.guitarrapc.cóm

https://tech.guitarrapc.com/entry/2025/01/05/235909

使用 .NET Upgrade Assistant 迁移到中央包管理的分步指南。

UTF8 还是 Utf8?

https://ufcpp.net/blog/2025/1/pascalcase/

关于 .NET 框架中类型和命名空间的 Pascal 大小写及其异常规则。

字段关键字

https://ufcpp.net/blog/2025/1/field-keyword/

关于 C# 14 中可用的属性的 field 关键字。

让我们使用RS-WFWATTCH2监控PC的功耗(实际值) - Qiita

https://qiita.com/yamaokunousausa/items/2faedd6481093e73e2ca

关于实现通过网络读取值的机制,以便使用 RS-WFWATTCH2(智能插头)监控 PC 的功耗。

C#:对象池和版本模式

https://zenn.dev/ruccho/articles/e9876dadeca78a

关于在使用/实现像 ValueTask 这样的对象池时通过版本来检测不正确使用的模式。

库、存储库、工具等。

usausa/hardwareinfo-disk:磁盘信息库支持NVMe、SATA、USB(仅限SAT12)。

https://github.com/usausa/hardwareinfo-disk

用于获取 Windows 上的 S.M.A.R.T 信息的库。

kevingosse/ClipPing:更新剪贴板时在活动窗口中显示视觉通知。

https://github.com/kevingosse/ClipPing

当剪贴板更新时,该工具会点亮活动窗口以通知您。

https://x.com/kookiz/status/1872949262054768822?s=12

相关推荐
InCerry20 天前
.NET周刊【12月第4期 2024-12-22】
.net周报·.net周刊
InCerry1 个月前
.NET周刊【12月第3期 2024-12-15】
.net周报·.net周刊
InCerry1 个月前
.NET周刊【12月第2期 2024-12-08】
.net周报·.net周刊
InCerry1 个月前
.NET周刊【12月第1期 2024-12-01】
.net周报·.net周刊
InCerry2 个月前
.NET周刊【11月第4期 2024-11-24】
.net周报·.net周刊
InCerry2 个月前
.NET周刊【11月第3期 2024-11-17】
.net周报·.net周刊
InCerry2 个月前
.NET周刊【11月第2期 2024-11-10】
.net周刊
InCerry2 个月前
.NET周刊【11月第1期 2024-11-03】
.net周报·.net周刊
InCerry3 个月前
.NET周刊【10月第4期 2024-10-27】
.net周刊