Bootstrap

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

国内文章

[.NET] API网关选择:YARP还是Ocelot?

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

本文详细比较了YARP和Ocelot两种API网关,重点关注了易用性、负载均衡、限流和安全性等方面。YARP是微软维护的高性能反向代理库,支持多种灵活的配置,易于定制,适合高并发应用。而Ocelot则是一个功能丰富、社区支持良好的解决方案,适合简单需求。YARP在性能和灵活性上优于Ocelot。本文提供了详细的代码示例,帮助开发者理解如何实现API网关及其功能,充分展示两者的优劣势,为选择合适的API网关提供参考。

一个适用于 .NET 的开源整洁架构项目模板

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

项目架构模式对软件开发至关重要,它们提高了软件的可维护性和可扩展性。整洁架构由罗伯特·C·马丁提出,旨在构建灵活、可维护的系统结构。本文介绍了适用于 .NET 的开源整洁架构模板,帮助开发者轻松创建企业应用程序。模板支持 Angular、React 和 Web API,便于遵循整洁架构原则。安装与使用简单,提供了完整的命令行示例。该项目已经被纳入C#/.NET优秀项目精选,有助于开发者关注最新动态和最佳实践。

为什么 .NET8线程池 容易引发线程饥饿

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

这篇文章探讨了.NET8中异步回调导致线程饥饿的问题。作者通过FileStream的异步读取代码展示了饥饿现象的根源,并分析了回调过程中如何将任务分配到线程池。文章以数据为依据,结合.NET6与.NET8的比较,指出了不同阶段的线程处理机制,强调了对即时观察和调试的实用性。这为开发者提供了深入思考的问题和解决方案。整体风格清晰易懂,适合技术人员阅读。

在 .NET 中使用 Tesseract 识别图片文字

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

Tesseract 是一个高效的字符识别工具,支持多种语言和格式。安装 Tesseract 需要在 .NET 项目中通过 NuGet 安装相关包,包括 Tesseract 和 SkiaSharp。Tesseract 识别所需的训练数据可以从 GitHub 下载。使用时,可创建 HttpClient 和 Logger,利用 SkiaSharp 处理图片,并通过 Tesseract 进行 OCR 识别。文章提供了代码示例,展示如何在 ASP.NET 环境中实现图片文本识别。

.NET 9.0 使用 Vulkan API 编写跨平台图形应用

https://www.cnblogs.com/xymfblogs/p/18664113

本文介绍了作者实现的 Vulkan 库,使用 C# 开发,旨在学习 Vulkan。作者参考了 .NET 的跨平台图形库 veldrid 和 Evergine 的良好设计,尤其是在光线追踪部分。项目依赖于 Vulkan 1.3 SDK、Visual Studio 2022 和 .NET 9.0 SDK,并指出运行 Android 项目需要额外安装 Android NDK 和 SDK。该项目适用于支持 Vulkan 1.3 的桌面设备,且提供了一些截图作为展示。文章内容简洁明了,提供了项目地址和相关参考资料,便于读者进一步了解和尝试。

.NET 响应式编程 System.Reactive 系列文章(一):基础概念

https://www.cnblogs.com/VAllen/p/18656600/system-reactive-intro

.NET中的响应式编程为开发者处理异步事件和数据流提供了新方法。传统编程方式面临处理异步和无限数据流的挑战。而响应式编程通过声明式方式实现自动响应数据流变化。System.Reactive是微软实施Reactive Extensions的库,它允许开发者轻松管理数据流。关键组件包括IObservable和IObserver,分别代表数据流的生产者和消费者。观察者模式在此框架中起核心作用。示例代码展示了如何使用Subject来实现数据订阅和发布。对比Observable和Task,前者处理多个值,后者限于单个值。整体上,文章以清晰的方式介绍了响应式编程的基本概念和应用。

聊一聊 C#异步 任务延续的三种底层玩法

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

这篇文章探讨了异步任务延续的三种形式:状态机、ContinueWith和Awaiter。作者强调状态机在async/await中的核心作用,指出其并非仅用于IO场景,而是一种设计模式。通过示例代码,展示了UseAwaitAsync的底层工作原理,分析了如何通过ILSpy获取信息。文章详细阐述了Continuation的实现机制,并提出替代方案。尽管内容技术深度适中,但存在一些复杂概念的表达,使得部分读者可能感到困惑。整体来看,文章具有一定的实践价值和时效性,同时信息量丰富。

在 .NET 9 中使用 Scalar 替代 Swagger

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

本文介绍了ASP.NET Core官方团队移除Swagger工具后,如何使用Scalar生成交互式API文档。Scalar是一个强大的API客户端和文档生成工具,适用于多种规模的API项目。文章提供了EasySQLite项目的下载地址,以及Scalar.AspNetCore包的安装步骤和相关代码配置,最终通过特定URL访问生成的API文档,确保用户可以轻松使用和查阅API。内容简洁明了,适合开发者学习。

.NET 响应式编程 System.Reactive 系列文章(二):深入理解 IObservable<T> 和 IObserver<T>

https://www.cnblogs.com/VAllen/p/18658766/rx-iobservable-iobserver

本文深入探讨 IObservable<T> 和 IObserver<T> 接口的核心概念,强调这些接口在 .NET 响应式编程中的重要性。文章首先说明了学习顺序的调整理由,然后详细解释了这两个接口的定义、职责与交互流程。通过观察者模式,IObservable<T> 作为数据流的生产者,负责推动数据,而 IObserver<T> 作为消费者,响应接收的数据流。这为后续学习系统操作符打下基础,确保读者能够全面理解响应式编程。内容结构清晰,便于读者理解。

分析基于ASP.NET Core Kernel的gRPC服务在不同.NET版本的不同部署方式的不同线程池下的性能表现

https://www.cnblogs.com/VAllen/p/18654204/aspnetcore-grpc-performance-analysis-different-dotnet-versions-deployment-threadpools

本文分析了不同.NET版本下,基于ASP.NET Core Kernel的gRPC服务在不同线程池中的性能表现。通过ghz工具进行压力测试,对/greet.Greeter/SayHello接口进行了测试,实验在Windows 11系统上开展,使用了高性能硬件。实验数据列出了.NET 6.0、8.0和9.0版本在不同线程池下的性能指标。从实验得出的结论,实际的性能表现受到多种因素影响,包括硬件和环境。作者提醒读者需结合具体业务场景进行评估,实验数据仅供参考。整体结构清晰,信息量充足。

C#/.NET/.NET Core技术前沿周刊 | 第 20 期(2025年1.1-1.5)

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

本文讨论了C#/.NET/.NET Core领域的最新技术动态、文章、项目和资源。内容涵盖整洁架构项目模板、EasySQLite的版本升级、基于.NET的CMS系统、性能基准测试框架以及单位转换工具Units.NET等。还介绍了微软针对Windows开发者推出的新开源AI模型工具。文章对开发者极具实用性,帮助他们拓宽技术视野。

[.NET] 使用客户端缓存提高API性能

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

本文探讨了在现代应用中提高API性能的方法,强调客户端缓存的使用。通过HTTP缓存头如ETag和Cache-Control,可以减少重复请求的负担,提升响应速度。介绍了Replicant和Delta库,这些工具有助于简化缓存实现与数据更新检测。Delta库支持自动ETag生成和验证,适用于各种数据库。文章详细描述了如何在.NET中利用这些库配置和优化客户端和服务器端的缓存机制,提供了一系列操作步骤及代码示例,为开发者提供了可行的解决方案。

.NET 窗口置于最顶层

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

本文介绍了如何将窗口置于最顶层,适用于需要超越Windows开始菜单及任务栏的应用。利用WPF属性Topmost=true和Win32的SetWindowPos函数,可以实现窗口置顶。文中详细说明了如何使用定时器以解决层级冲突,确保窗口常驻在最上层。同时,提供了管理员启动权限和UI置顶权限的配置方法,从而实现绝对置顶,类似任务管理器的功能。这些技术能帮助开发者创建特定功能的工具或Launcher。

基于.NET8.0实现RabbitMQ的Publish/Subscribe发布订阅以及死信队列

https://www.cnblogs.com/sq1201/p/18661294

文章介绍了RabbitMQ的五种消息模型,包括简单模型、工作队列模型、发布/订阅模型、路由模型和主题模型。每种模型分别适用于不同的场景,并讨论了在.NET8.0环境下实现RabbitMQ的广播模式和死信队列的基本用法。此外,作者介绍了ASP.NET Core的配置管理系统,强调了Microsoft.Extensions.Configuration.Abstractions和Microsoft.Extensions.Configuration.Binder的功能和适用场景。这些概念有助于优化系统性能与可靠性。

.NET 响应式编程 System.Reactive 系列文章(三):Subscribe 和 IDisposable 的深入理解

https://www.cnblogs.com/VAllen/p/18658778/rx-subscribe-idisposable

.NET 响应式编程中的 Subscribe 和 IDisposable 是管理数据流生命周期的核心。理解这些概念很重要,错误的管理可能导致内存泄漏。Subscribe 方法连接 IObservable 和 IObserver,让数据流推送。它返回 IDisposable 对象,允许手动取消订阅。此外,还有一些 Subscribe 重载不返回 IDisposable,使用 CancellationToken 来控制订阅,这样无需手动调用 Dispose。结合实际例子,文章深入探讨了这些机制的原理和应用场景,为开发者提供了实用的指导。

将 EasySQLite 从 .NET 8 升级到 .NET 9

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

本文详细介绍了EasySQLite的升级过程,从.NET 8迁移到.NET 9,内容涵盖了SQLite的基础知识、环境配置、项目框架搭建及接口优化等。作者描述了每一步的具体操作,包括安装.NET 9 SDK、更新Visual Studio版本,以及各种项目的升级过程。文章还提到.NET 9的特点,强调其高效、安全、现代。最后,作者验证了升级后的项目运行效果,总体展示了较为完整的技术方案。

上位机能不能替代PLC呢?

https://www.cnblogs.com/xbdedu/p/18661978

本文探讨了上位机能否替代PLC的问题。上位机属于过程监控层,而PLC是现场控制层。虽然在特定项目中,上位机可以承担部分逻辑控制,但整体上位机并不能完全替代PLC。PLC具有更好的封装和易用性。即便使用C#进行逻辑控制,硬件的稳定性和行业应用仍然决定了PLC的重要性。文章介绍了ECI0032 IO采集卡及其通信方式,强调其在运动控制中的应用。尽管上位机与PLC实现原理相似,PLC在工业控制中的广泛使用和可靠性使得其不可替代。总的来说,上位机和PLC各具优势,应根据具体场景合理选择。

.NET 依赖注入中的 Captive Dependency

https://www.cnblogs.com/kklldog/p/18663148/captive-dependency

本文探讨了.NET中依赖注入的生命周期问题,具体分析了IDbContext和LongTermService的使用。作者指出,LongTermService作为Singleton无法持有Scope生命周期的服务,造成Captive Dependency,进而讨论了该问题可能导致的非线程安全和资源释放相关的错误。在开发环境中,.NET会校验服务依赖关系,导致直接报错,而在非开发环境下,可能会运行但存在风险。文章强调Captive Dependency的危险性,需谨慎对待。

【开源】C#上位机必备高效数据转换助手

https://www.cnblogs.com/xbdedu/p/18663596

本文介绍了一个开源数据转换库,旨在帮助电气工程师处理各种数据类型的转换。该库包含15个类,提供常用的数据类型互转。每个方法都有详细注释,便于使用。用户可以通过Nuget或Gitee下载该库,并获得完整源码。文章强调了使用方法,通过具体的原则指导用户选择合适的类和方法,提升使用效率。此外,提供了基于该库的测试工具,方便用户进行实验和验证。开源项目鼓励社区支持。

AsyncLocal的妙用

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

AsyncLocal<T>是.NET中用于在同步和异步任务中保持全局变量的工具类。它允许在不同线程中保留特定值,确保异步任务中的一致性和优雅性。创建实例后,可以通过Value属性设置和读取值。在异步任务中,AsyncLocal的值是独立的,适用于数据传递和上下文管理。在ASP.NET Core中,AsyncLocal帮助管理请求上下文,记录任务和串行任务中的信息。示例中展示了如何保存日志和租户信息。此工具对于分析和追踪异步操作非常有用。

.NET Core:架构、特性和优势详解

https://www.cnblogs.com/liyongqiang-cc/p/18662074

.NET Core 是一个优越的开源跨平台框架,支持多种操作系统,允许开发者创建现代应用程序。其架构包括应用层、框架层、运行时层和操作系统抽象层,具备模块化设计和高性能特点,运用即时编译和优化的垃圾回收策略。通过异步编程模型,开发者能够编写高效代码。社区支持使得快速迭代成为可能,同时丰富的生态系统使得开发者可以轻松获取工具和库,进一步增强开发体验。

C#+ WPF 实现蓝牙转WIFI计步上位机

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

本项目设计了一个基于.NET平台的WIFI上位机,接收MPU6050传感器数据,通过蓝牙模块传输,并以UDP协议通过WiFi展示数据。项目使用WPF开发,User Interface友好且直观。系统设计包括了多线程处理UDP数据、UI更新以及计步显示。项目能够兼容有硬件和无硬件的使用场景。计步算法基于三轴加速度数据,支持用户在特定条件下进行步数统计。这项技术实现了数据的高效传输和实时可视化,具备良好的用户体验。

聊一聊 C#异步中的Overlapped是如何寻址的

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

本文探讨了C#中的ReadAsync方法及其在Win32层面的异步读取过程。通过提出问题,作者分析了lpOverlapped如何在内核层与异步任务关联。文中提供了相关的代码示例,演示了如何使用FileStream读取文件并生成Overlapped结构体,同时详细描述了ReadFile函数及其OVERLAPPED结构体的定义。此外,作者着重于非托管和托管层之间的映射关系,明确了C#对Win32 API的调用方式。文章逻辑清晰,内容技术深度较高,对理解C#异步操作的工作机制非常有帮助。

.NET Core 对象分配(Alloc)底层原理浅谈

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

本文讨论了.NET程序的对象分配策略,包括按需分配、预留缓冲区、利用TLS和最大化Free块利用。在阐述内存碎片的危害后,介绍了CLR对Free块的管理方法,强调使用数组和链表进行管理以提高查找性能。通过代码示例,演示了对象分配和垃圾回收的过程,帮助读者理解内存管理的实际操作。

BotSharp:又一个.Net重磅AI开源项目,.Net在AI领域开始崛起!

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

BotSharp是一个开源机器学习框架,专为AI Bot平台构建者设计,支持多种自然语言理解和AI平台。它基于C#开发,提供跨平台支持和模块化设计,允许开发者根据需求自定义集成。BotSharp具备多代理对话管理、任务规划、知识检索等核心功能,并支持多种AI平台的协同工作。其用户界面友好且功能全面,适合快速集成到应用系统中。文中提供了详细的项目简介、使用方法和技术优势,为开发者提供了一站式解决方案。

WPF 怎么利用behavior优雅的给一个Datagrid添加一个全选的功能

https://www.cnblogs.com/lvpp13/p/18664485

本文介绍如何在C# .NET中实现DataGrid的全选功能。首先创建一个DataGrid,并定义一个实体类People以实现属性变化通知。NotifyPropertyChangedBase作为基类,允许类与UI界面交互。接着,将People类的List作为DataGrid数据源,并添加两列:复选框列和姓名列。然而,初始复选框的选择行为不正常,需要对选择列进行自定义改进。文章适合需要实现类似功能的开发者。

BotSharp 4.0 Sidecar:迈向更大规模化的AI Agent平台框架

https://www.cnblogs.com/shanyou/p/18656320

BotSharp是一款开源项目,提供高度可定制的多智能体解决方案。其最新版本4.0引入了Sidecar架构,增强系统的扩展性和灵活性,提升了开发效率。BotSharp允许模块化开发,支持多个智能体并行运行,降低了系统的不稳定性。此外,新增功能包括用户管理、知识生成细化和WebDriver增强等。这一更新展示了社区的贡献与合作精神,推动了对话AI的技术进步。未来,BotSharp将继续朝着模块化和云原生友好的方向发展,吸引更多开发者参与其中。

.NetCore依赖注入(DI)之生命周期

https://www.cnblogs.com/liyongqiang-cc/p/18664139

在 .NET Core 中,依赖注入是一种实现控制反转的技术。依赖注入的生命周期有三种:瞬态、作用域和单例。瞬态对象在每次请求时创建新实例,适合无状态服务。使用场景包括工具类等。作用域对象在同一个作用域内为单例,适用于需要共享状态的服务,如数据库上下文。文章通过代码示例详细展示了如何注册和使用这些服务,清晰易懂。

C#实现 Winform 程序在系统托盘显示图标 & 开机自启动

https://www.cnblogs.com/vipsoft/p/18665897

本文通过创建NotifyIcon控件,介绍了在C# .NET中如何实现在系统托盘中显示应用程序图标。首先,作者设置控件属性,并编写响应事件。在窗体的Load事件中,将NotifyIcon添加到系统托盘。接着,文章讲述如何处理窗体关闭事件,使应用程序实际隐藏,而不是退出。通过双击托盘图标可以重新显示程序。此外,作者还示范了右键菜单的自定义设置,方便用户操作。整体介绍了托盘图标的实现步骤和相关代码示例。

控制反转(Inversion of Control,IoC)

https://www.cnblogs.com/liyongqiang-cc/p/18624782

依赖注入(DI)和控制反转(IoC)是软件工程中重要的概念。IoC将对象创建和依赖关系管理转移到外部容器,增强模块化。比如,Car类通过构造函数获取Engine实例,而不直接创建。DI是IoC的一种实现,利用构造函数、属性或方法参数注入依赖对象,减少耦合,方便测试与维护。常见的DI方式有构造函数注入、属性注入和方法注入。

C# AIModelRouter:使用不同的AI模型完成不同的任务

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

AI模型路由用于选择合适的AI模型,以降低使用成本。Semantic Kernel中可以简单实现AIModelRouter。文章提供了CustomRouter和SelectedServiceFilter类的具体代码示例,展示了如何根据输入选择模型服务ID,并在控制台中输出选中的服务信息。例子展示了如何创建聊天循环,处理输入并调用相应的AI模型,此方法适用于多种模型的路由。整体内容明确,技术清晰,实用性强,但论述深度较为一般,缺乏新颖性及引用支持。

【译】GitHub Copilot Free 在 Visual Studio 中

https://www.cnblogs.com/MeteorSeed/p/18657391

GitHub 刚推出了 Copilot Free,现已在 Visual Studio 中可用。用户可以体验 AI 驱动的工具,包括智能调试、提交消息生成、断点放置和代码补全等功能。开发者们发现 Copilot 能提高开发速度 25%。建议用户立即尝试,保持 Visual Studio 更新,并关注即将到来的新功能。功能限制将有清晰指示,用户可以选择升级到无限制计划,确保持续使用。

【译】在分析器中使用 Meter Histogram(直方图)解锁见解

https://www.cnblogs.com/MeteorSeed/p/18659649

Visual Studio 2022 引入了 Meter Histogram 功能,帮助开发人员分析应用程序中的性能瓶颈。该功能可捕获和可视化直方图数据,清晰显示数据分布。通过这一可视化,开发人员能够快速识别影响性能的模式和异常。泳道图提供详细的分段视图,增强了对性能问题根本原因的理解。优化性能对软件开发至关重要,此工具为开发人员提供了深入分析应用程序性能的能力,适合需要提升性能分析的团队。Visual Studio 团队鼓励用户反馈以改进产品。

ASP.NET Core - 日志记录系统(二)

https://www.cnblogs.com/wewant/p/17489884.html

本文探讨了ASP.NET Core的日志记录系统,详细介绍了内置的日志提供程序,包括Console、Debug、EventSource和EventLog。每种提供程序的功能和使用场景都有所阐述,特别是Console提供程序的输出效果和Debug提供程序在不同操作系统上的表现。还提到EventSource的跨平台特性,以及EventLog在Windows上的使用方法。通过实际代码示例,读者了解了如何在项目中配置和使用这些日志提供程序,以提高日志管理和调试效率。

elsa工作流-调度(安排后台作业)

https://www.cnblogs.com/jionsoft/p/18667198

本文介绍了elsa框架中的后台作业和调度机制。elsa利用Elsa.Scheduling模块管理任务,并支持多种调度方式。主要组件包括ITask表示具体任务,IScheduledTask表示已调度任务,还有ISchedule作为抽象工厂创建任务。IScheduler负责管理调度任务。文章深入探讨了每个组件的功能及用法,并提供了实例代码,展示如何调度工作流。总体强调了elsa在后台作业方面的灵活性与原理,适合扩展与自定义应用。

WPF页面中将一个控件的宽度绑定到其父级用户控件的实际宽度

https://www.cnblogs.com/adingfirstlove/p/18659325

文章讨论了在WPF中如何处理多个用户控件组成的窗体的布局问题。特别是在父控件实际宽度不确定时,可能会遇到子控件的宽度绑定延迟或不更新的问题。提出两种解决方法。方法一使用相对宽度与星号单位,让子控件自动填充可用空间。方法二通过RelativeSource绑定父控件的ActualWidth,确保子控件宽度与父控件一致。都有助于改善用户体验与界面适配效果。

了解 ASP.NET Core 中的中间件

https://www.cnblogs.com/liyongqiang-cc/p/18628001

在.NET Core中,中间件是处理HTTP请求的核心组件,构成请求处理管道。中间件负责处理请求、决定请求流向及处理响应。中间件按顺序执行,身份验证中间件通常在路由中间件之前。常见的中间件包括身份验证、路由和静态文件中间件,分别实现用户身份验证、请求路由和静态文件提供。每个中间件通常实现为一个委托或接口,允许执行自定义逻辑。请求经过所有中间件后,将由控制器处理并返回响应。总之,中间件是构建灵活与可扩展HTTP服务的关键。

中间件 vs 过滤器

https://www.cnblogs.com/liyongqiang-cc/p/18631327

在ASP.NET Core中,中间件和过滤器是用于处理请求和响应的不同机制。中间件作用于整个应用程序,执行顺序由调用顺序决定,适用于身份验证和日志记录等全局逻辑。过滤器则应用于特定控制器或操作,紧密集成于MVC框架,适合于授权和模型验证等细粒度控制。在代码示例中,分别展示了中间件和过滤器的实现与注册方式。两者的主要区别包括作用范围、执行顺序、适用场景和上下文访问方式。

主题

.NET 和 .NET Framework 2025 年 1 月服务版本更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/net-and-net-framework-january-2025-servicing-releases-updates/

2025 年 1 月发布 .NET 和 .NET Framework。

此版本包括四个安全修复程序、多个针对 .NET 8 和 9 的修复程序以及一个针对 .NET Framework 的安全修复程序。

由 dennisdoomen 更新所有权和许可证 · Pull 请求 #2943 · fluassertions/fluassassertions

https://github.com/Fluentassertions/Fluentassertions/pull/2943

Fluent Assertions v8.0.0 已发布,随之而来的是项目所有权和许可方面的变化。

该项目与Xceed合作,许可证由Apache License变更为Xceed商业使用的付费许可证或非商业使用的免费许可证。

因此,建议使用 Fluent Assertions 的项目采取一些措施。

核心人工智能简介 – 平台和工具 – 微软官方博客

https://blogs.microsoft.com/blog/2025/01/13/introducing-core-ai-platform-and-tools/

关于微软的新部门 CoreAI – 平台和工具。

成立了一个新的部门CoreAI——平台和工具,以推广AI时代所需的系统、平台和工具。

该部门不仅包括现有的人工智能平台,还包括开发部门(.NET、Visual Studio)。

文章、幻灯片等

[C#] 什么是 OrderedDictionary?比较 .NET 9 的新功能及其性能 - Qiita

https://qiita.com/sk8er_boi_shin/items/d489ae3fc434756f74b9

.NET 9 中引入的 OrderedDictionary 的功能和性能的说明。

在 2025 年伦敦 NDC 上与 .NET 团队见面 - .NET 博客

https://devblogs.microsoft.com/dotnet/meet-the-dotnet-team-at-ndc-london-2025/

邀请.NET团队参加将于1月29日至31日举行的NDC London 2025。

2024 年我们最喜欢的 Visual Studio 新功能 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/our-favorite-new-visual-studio-features-of-2024/

Visual Studio 团队于 2024 年添加的视频介绍和最受欢迎的 Visual Studio 功能索引。

  • 图像悬停预览
  • 改进了复制错误
  • 在多个 Visual Studio 实例之间拖放
  • 重命名建议
  • 提交副驾驶
  • 内存布局查看器
  • 简化的异步调试
  • 新的.NET MAUI 模板
  • 一切副驾驶
  • 新的扩展管理器和扩展的热重载
  • 虚幻引擎集成
  • 代码搜索
  • .NET Aspire 集成

介绍新的 .NET MAUI 底部表单控件

https://medium.com/syncfusion/introducing-the-new-net-maui-bottom-sheet-control-b72e407392d2

介绍添加到开源 Syncfusion .NET MAUI 工具包中的 Bottom Sheet 控件。

dotInsights | 2025 年 1 月 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2025/01/15/dotinsights-january-2025/

JetBrains 2025 年 1 月的 .NET 相关信息摘要。

加入我们 VS Live 2025 拉斯维加斯 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/vs-live-2025-las-vegas/

有关线下活动 VSLive! Las Vegas 的信息,该活动将于 3 月 10 日至 14 日在拉斯维加斯举行。

读取源生成器中的编译选项和 C# 版本:创建源生成器 - 第 12 部分

https://andrewlock.net/creating-a-source-generator-part-12-reading-compilation-options-and-csharp-version-in-source-generators/

如何从源生成器加载编译选项和语言版本。

Unicode - 好处和坏处

https://zenn.dev/chai0917/articles/792e5df90d6d89

与 Unicode 相关的一些概念的解释以及 C# 中行为的解释。

测量锁定和等待对 .NET 应用程序延迟的影响

https://chnasarre.medium.com/measuring-the-impact-of-locks-and-waits-on-latency-in-your-net-apps-a05cd199021d

如何挂钩等待和锁定事件并测量它们的调用堆栈和持续时间。

将 SvelteKit 合并到您的 ASP.NET Core 项目中

https://zenn.dev/zead/articles/sveltekit-aspnetcore

了解如何使用 SvelteKit 构建 ASP.NET Core Web API 项目。

使用共享数据初始化 ASP.NET Core TagHelpers

https://khalidabuhakmeh.com/initialize-aspnet-core-taghelpers-with-shared-data

如何使用 ITagHelperInitializer 初始化标签助手(设置初始值等)。

Akka.NET v1.6 路线图和功能

https://petabridge.com/blog/akkadotnet-v1.6-roadmap/

Akka.NET v1.6 路线图。

计划包括 AOT 支持、序列化代码生成以及使用 QUIC 的远程处理。

ASP.NET Core 用户委托访问令牌管理

https://damienbod.com/2025/01/15/asp-net-core-user-deleated-access-token-management/

了解如何使用 Duende 令牌管理来管理 API 访问的委派访问令牌。

用 C# 编写 .NET 分析器 - 第 5 部分

https://minidump.net/writing-a-net-profiler-in-c-part-5/

了解如何使用本机 AOT 和 .NET Profiler API 包装器在 C# 中实现 .NET Profiler。

Windows 管理中心版本 2410 现已正式发布!

https://techcommunity.microsoft.com/blog/windows-admin-center-blog/windows-admin-center-version-2410-is-now-generally-available/4356534

Windows 管理中心版本 2410 已发布。

此版本将平台后端从 .NET Framework 迁移到 .NET,并将 Web 服务器从 Katana 迁移到 Kestrel,从而提供 HTTP/2 支持和性能等优势。扩展模型的这种转变和变化将导致扩展不兼容,某些扩展可能无法工作或者您可能需要调整自己的扩展。

在 ASP.NET Core DI 中使用 Semantic Kernel 的示例代码 - 银光蓝天

https://tech.tanaka733.net/entry/2025/01/how-to-use-semantickernel-in-aspnetcore-with-di

如何将语义内核作为 ASP.NET Core 中服务注册的一部分进行处理。

本文由博客一文多发平台 OpenWrite 发布!

;