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

时间:2024-04-11 21:44:08

国内文章

一个程序员的编年史

https://www.cnblogs.com/lunacy/p/18117213

作者拥有15年软件开发经验,曾在多家公司工作,项目和团队起伏充满变数。2007年,在太皓电子担任.net工程师,参与开发远程教育系统,因一行代码节省了5万元,但项目最终未成功。2008年,作为.net工程师,参与政务审批项目,并解决了一家银行系统对账出现的一分钱误差问题。2009年,担任中软宏大.net项目经理,负责中工网三个子系统,中工网上线后因价格问题受到非议,作者解释其价格合理性。

C#/.NET/.NET Core优秀项目和框架2024年3月简报

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

公众号定期分享C#/.NET/.NET Core相关的优秀开源项目和框架,并提供项目介绍、功能特点、使用方式和源码地址。采用固定频率更新(每周至少两次),节假日除外,鼓励大家提交PR。分享的项目包括Unity图表库XCharts、.NET Git管理工具SourceGit、EF Core通用仓库、截图录屏工具ShareX、商城系统Module Shop、绘图库ScottPlot、Windows启动器Flow Launcher、Blazor数据可视化库BlazorChartjs、电子表格组件ReoGrid、密码库BouncyCastle、翻译OCR工具STranslate和WinForm UI库AntdUI。

.NET分布式Orleans - 9 - 贪吃蛇项目演示

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

这个项目采用Orleans7、SignalR等技术,实现了一个分布式的贪吃蛇游戏。Orleans7是一个开源.NET分布式系统框架,能够简化分布式系统的开发,提供水平扩展、高可用性、易于编程和状态管理等特性,适用于建设大规模、高性能、可靠性强的分布式系统。游戏客户端通过SignalR与服务器实时通信,支持多玩家。玩家可以先启动Snake.Server服务,然后打开Snake.Client来进行游戏。项目的源码托管在Gitee上。

WPF实现树形表格控件(TreeListView)

https://www.cnblogs.com/qushi2020/p/18109923

本文介绍了如何使用WPF框架开发树形表格控件TreeListView,包括自定义控件与实现列头绑定。文章首先提供了控件的默认和自定义样式预览,然后详细说明了创建继承TreeView的TreeListView控件,并讨论了如何支持列头显示和滚动同步问题。

如何自动申请免费的HTTPS证书?

https://www.cnblogs.com/hejiale010426/p/18113997

作者分享了如何使用FastGateway自动申请和续期SSL证书的方法。首先介绍了通过Docker或Docker Compose安装部署FastGateway的步骤,然后引导使用者如何通过FastGateway的管理界面添加和管理证书。在添加域名证书时,需要正确填写域名和邮箱以成功申请。提醒读者,所申请的域名需解析到相应服务器,并开放80端口进行http验证。证书申请成功后还指导了如何设置HTTPS的服务端口。文章最后提到,FastGateway是一个开源且可商用的项目,提供了GitHub和Gitee的链接以及技术交流群。

TensorRT C# API 项目介绍:基于C#与TensorRT部署深度学习模型

https://www.cnblogs.com/guojin-blogs/p/18108220

项目通过TensorRT C# API在C#中部署深度学习模型,与TensorRT高性能深度学习推理SDK集成,提供了模型转换、推理等接口,便于开发者使用TensorRT加速深度学习模型推理过程。版本2.0优化了接口并解决了数据传输的问题,提供了源码和应用案例。同时提供安装流程,包括对CUDA、Cudnn和TensorRT的配置。

.NET 8使用日志功能以及自定义日志提供程序

https://www.cnblogs.com/hudean/p/18117551

.NET 8引入了日志功能和自定义日志提供程序。日志分级从Trace到Critical,提供了不同级别对应的扩展方法与描述。文章介绍了使用log4net进行日志管理,包含安装Nuget包、编写log4net.config配置文件等步骤,并详述了日志文件的各种参数设置。

.Net单元测试xUnit和集成测试指南(1)

https://www.cnblogs.com/ruipeng/p/18112221

xUnit.net 是一个用于 C# 和 F# 的免费开源.NET 单元测试工具,它遵循 Arrange、Act、Assert 的测试模式,有助于清晰地编写单元测试。文章通过创建数学计算类和相应的测试类演示了如何使用 xUnit 进行测试,并强调了命名规范的重要性。xUnit 支持通过 Fact 和 Theory 属性标记测试方法,Theory 属性结合 InlineData 属性允许进行数据驱动的测试。

Advanced .Net Debugging 6:程序集加载器

https://www.cnblogs.com/PatrickLiu/p/18096963

本文是《Advanced .Net Debugging》系列的第六篇,主要讲解.NET中程序集加载器的相关知识,像CLR加载器介绍、程序集加载问题及其调试方法。文章通过实例代码配合具体的操作系统、调试工具、开发环境的版本信息来展示调试过程,帮助读者深入理解CLR加载程序集的机制和上下文,增强解决程序集加载错误的能力。

C# 通过ARP技术来观察目标主机数据包

https://www.cnblogs.com/qwqwQAQ/p/18118712

文章讨论了如何使用C#调用ARP包来观察其他电脑上网数据包,并涉及如何防备ARP攻击。介绍了ARP协议在网络中的作用和ARP欺骗的原理。通过使用开源的.net库SharpPcap和PacketDotNet,展示了如何获取本机网络设备、IP、MAC地址、网关IP,以及如何发送ARP包来获取网关MAC地址。同时,文章还提供了局域网扫描活动IP和MAC地址的方法,并附带了完整的代码和工具介绍。

基于新版宝塔Docker部署在线客服系统过程小记

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

作者在业余时间自主开发并维护了一款免费开源的升讯威在线客服系统,并通过这个项目深入理解了TCP/IP协议的重要性,特别是在网络不稳定的环境下保证信息传输的稳定性。随着用户的增多,他发现即使是在网络中断的情况下,也能确保消息的不丢失。作者展示了客服系统在新版宝塔 Docker 上的部署过程,包括安装宝塔面板、Nginx 和 Docker 管理器,并从仓库获取镜像至创建容器以及使用客户端软件。同时,该系统也支持访客端跨平台使用,并能追踪并收集访客信息。作者还计划分享更多关于该系统并发高性能技术的实现细节,希望可以为.net社区贡献优秀的开源产品。

WPF开发分页控件:实现可定制化分页功能及实现原理解析

https://www.cnblogs.com/qushi2020/p/17932338.html

本文深入讲解了如何使用WPF开发具有高可定制性的分页控件,分析了控件的基本构成部分,如总条目数、每页条目数、总页数等。文章还详细介绍了与分页控件相关的命令和事件处理,并使用XAML结合C#代码展示了具体实现过程。

gRPC入门学习之旅(五)

https://www.cnblogs.com/chillsrc/p/18117157

本系列文章向读者介绍如何创建和使用gRPC服务端应用。详细描述了在Visual Studio 2022中创建gRPC控制台客户端项目的步骤,包括启动新项目向导、选择项目类型与框架、添加项目名称和安装必要的NuGet包。还讨论了如何添加.proto协议文件及其引用到客户端项目,并解释了如此操作会使客户端项目自动同步服务端的任何更改。

体验Semantic Kernel图片内容识别

https://www.cnblogs.com/wucy/p/18111091/sementic-kernel-image-to-text

文章介绍了如何使用Semantic Kernel和HuggingFace对图片进行内容识别,区别于OCR的是它描述图片的主要内容。示例中展示了如何使用相关包和API进行图片识别,但作者在实际操作中遇到了连接问题,进而提出了本地部署模型的解决方案。作者建议下载Salesforce/blip-image-captioning-base模型到本地,并通过Semantic Kernel调用自己实现的API完成图片识别任务。

.NET Emit 入门教程:第六部分:IL 指令:5:详解 ILGenerator 指令方法:创建实例指令

https://www.cnblogs.com/cyq1162/p/18112967

这篇文章详细介绍了.NET中使用ILGenerator创建实例的指令。主要包括无参数的Newobj指令和用于创建数组的Newarr指令。文章通过实例代码讲解了如何获取构造函数、创建对象实例及数组实例,并对数组进行赋值,让读者能够理解并应用.NET Emit技术。

记一次 .NET某管理局检测系统 内存暴涨分析

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

朋友的WPF程序出现内存泄漏,作者通过WinDbg分析发现提交内存为3.1G,对于窗体程序而言偏大。利用!address命令和!eeheap -gc命令分别观察了提交内存和托管堆内存的使用情况。分析过程中强调基于数据分析,不要单纯依赖他人观点。

WPF动画教程(PointAnimationUsingPath的使用)

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

PointAnimationUsingPath是一个WPF类,用于沿指定路径移动点。它的主要属性包括定义动画路径的PathGeometry,设置动画持续时间的Duration,定义重复行为的RepeatBehavior和设置是否自动反向的AutoReverse。PathGeometry类代表连接的线和曲线集,通过其Figures属性可以操作路径内容。示例中展示了如何使用PathGeometry绘制直线、矩形和圆,以及如何解析SVG路径数据格式字符串来创建PathFigureCollection对象。

Avalonia的UI组件

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

Avalonia是一个支持跨平台的UI框架,用于构建桌面应用程序,搭载各种UI组件、布局系统、定制样式和事件处理功能。文章通过示例代码详细介绍了如何使用和配置UI组件(包括按钮、文本框等)、组件的生命周期(创建到销毁)、如何使用布局容器(如StackPanel、Grid)进行UI布局,如何定义样式以及如何处理事件(如按钮点击、文本变化)。这些内容有助于开发者理解并运用Avalonia框架来创建功能强大的桌面应用。

WPF中封装一个自己的MessageBox

https://www.cnblogs.com/qushi2020/p/18107749

这篇文章介绍了如何在WPF中自定义MessageBox以适应不同的软件界面风格,让其与现代应用程序的设计更加协调。文章先进行了需求分析,接着详细阐述了通过创建自定义MessageBox类、利用反射技术创建窗口、用户控件实现参数下按钮和图标切换的具体实现步骤。最后,展示了自定义MessageBox在MaterialDesign和HandyControl两种不同UI库下的运行效果,并说明了使用方法与原生MessageBox一致。

单元测试篇2-TDD三大法则解密

https://www.cnblogs.com/ruipeng/p/18118155

测试驱动开发(TDD)是一种编程方法,强调先写单元测试再编写生产代码。文章基于UncleBob的TDD概念,介绍了三条TDD原则:不允许写生产代码除非让失败单元测试通过、不编写过多单元测试及生产代码。通过MathCalculator实例阐述了如何应用TDD原则,并指出TDD能够确保代码质量和可维护性,促使开发者编写高质量代码。

.NET Emit 入门教程:第六部分:IL 指令:4:详解 ILGenerator 指令方法:参数存储指令

https://www.cnblogs.com/cyq1162/p/18111772

介绍了IL指令中参数存储指令的使用方法和场景。参数存储指令包括starg、stloc、stfld、stsfld和数组操作指令。starg用于将值存储至方法参数,stloc用于存储至局部变量,stfld用于存储至对象字段,stsfld用于静态字段,并提供了相应的示例代码。详细说明了每个指令的功能,以及如何在动态方法中使用这些指令进行数据存储。示例代码突出显示了IL编码的具体应用。由于教程未完全展示,不能评估其全部内容。

学习Source Generators之IncrementalValueProvider

https://www.cnblogs.com/fanshaoO/p/18108051

本文介绍了IIncrementalGenerator中重要部分IncrementalValueProvider,这是一种基于管道模式的编码实用工具,使得源代码输出经过处理转换。作者列举了几种官方提供的Provider,并以AdditionalTextsProvider为例通过创建项目、添加文件和调试等步骤展示了它的基本使用方法。还介绍了如何处理多个文件、过滤特定类型文件、处理数据以及如何组合使用多个IncrementalValueProvider。文章提供了相关代码仓库地址,便于读者实操学习。

C#数据去重的5种方式,你知道几种?

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

本文介绍了5种C#中的数据去重的方法:使用HashSet保证元素唯一性,利用Linq的Distinct()方法和GroupBy()方法筛选不重复元素,自定义比较器配合循环遍历以及直接循环遍历进行去重,每种方法根据不同需求选择。同时提供了源码链接。

学习Source Generators之从swagger中生成类

https://www.cnblogs.com/fanshaoO/p/18109928

本文介绍了如何使用Source Generators通过读取并解析swagger.json文件自动生成请求响应类的代码。首先创建两个项目,一个控制台程序和一个类库;然后添加swagger.json文件至控制台程序,并标记为AdditionalFiles;接着安装Newtonsoft.Json包以解析JSON,并修改项目文件以防止编译异常;最后通过构建管道筛选swagger文件并实现生成代码逻辑,动态生成代码并添加至项目中。

学习Source Generators之输出生成的文件

https://www.cnblogs.com/fanshaoO/p/18110823

本文讲解了如何利用EmitCompilerGeneratedFiles输出Source Generators生成的文件,介绍了通过修改项目属性组指定文件输出目录,并通过环境变量实现动态目录。输出文件后可供编辑,但方法有缺点,仅当需要修改和移动输出文件时适合使用。文章最后提供了代码仓库链接。

Avalonia的自定义用户组件

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

Avalonia是.NET UI框架,可用于创建桌面应用。文章介绍自定义用户控件的创建与使用,展示了创建包含按钮和文本框的用户控件,定义自定义属性和事件,以及在其他XAML中如何使用此控件。

Visual Studio 2022的安装 - 编程手把手系列文章

https://www.cnblogs.com/lzhdim/p/18100292

本文介绍了Visual Studio 2022的安装步骤。包括在线和离线两种下载方式,在线方式直接安装最新版,离线方式需更新到最新版。安装时涵盖了ASP.NET、.Net桌面开发和C++开发等选项。文章还指导了如何激活VS 2022、更新到最新版本以及登录。最后暗示将会有系列文章讲解如何使用Visual Studio 2022进行编程。

.NET Emit 入门教程:第六部分:IL 指令:3:详解 ILGenerator 指令方法:参数加载指令

https://www.cnblogs.com/cyq1162/p/18102455

本文主要介绍了CIL(Common Intermediate Language)中的参数加载指令以及它们的使用方法。介绍了ldarg、ldarga、ldc_X、ldloc、ldloca和ldfld等加载指令,并详细解释了这些指令的功能和用例。还区分了短格式和长格式指令的用途,以及通过示例代码展示了如何在方法中加载参数和常量。

Csharp线程

https://www.cnblogs.com/wenlong-4613615/p/18101331

C#中操作线程的方式主要有Thread、ThreadPool、Task三种。Thread是.net Framework 1.0时代的类,提供了启动线程、线程等待、线程控制等API。线程池ThreadPool用于管理线程资源。Task是当前主流的异步编程模型,可以开启线程并支持多进程技术。文章还提到了多线程编程中的线程等待问题、批量开启线程的方法Paralell、线程异常处理、线程取消等高级话题。

WPF中动画教程(DoubleAnimation的基本使用)

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

本文介绍了Windows Presentation Foundation (WPF)中DoubleAnimation动画的使用,以实现一个随鼠标点击移动的小球效果。文中首先展示了通过XAML设置的界面,其中包含了一个Ellipse(表示小球)放在一个Border内。然后介绍了后台代码设置,创建了TranslateTransform实例来控制小球的位移,并将其应用于Ellipse的RenderTransform属性。该Transform使小球能够沿X和Y轴移动,响应鼠标点击事件完成动画效果。

C#的无边框窗体改变大小解决方案 - 开源研究系列文章

https://www.cnblogs.com/lzhdim/p/18114056

文章讲述了如何实现无边框窗体的可调整大小功能,并提供防闪烁技术的相关说明。作者提供了源码,并封装到基类中,便于复用。读者可以直接复制代码来使用,并根据自己需求进行修改,同时提供了源码下载链接。

主题

介绍适用于 .NET 的 AWS 消息处理框架(预览版)| Amazon Web Services

https://aws.amazon.com/jp/blogs/developer/introducing-the-aws-message-processing-framework-for-net-preview/

适用于 .NET 的 AWS 消息处理框架的预览版现已推出。

使用 AWS 的 SQS 和 .NET 中的 EventBridge 进行消息处理的框架。处理可以通过编写消息处理程序来完成,并且这些功能是专门为AWS定制的。

还支持使用 OpenTelemetry 进行检测。

.NET 7 将于 2024 年 5 月 14 日终止支持 - .NET 博客

https://devblogs.microsoft.com/dotnet/donet-7-end-of-support/

关于 .NET 7 支持将于 2024 年 5 月 14 日终止。

由于 STS(标准期限支持),对 .NET 7 的支持将于 2024 年 5 月 14 日结束,即发布后 18 个月。建议升级到.NET 8。

此外,在支持结束后,.NET 7 将成为 Visual Studio 17.6 和 17.4 服务更新中不受支持的组件。

全新的 MSBuild 编辑体验 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/experimental-msbuild-editor/

发布实验性 Visual Studio 扩展,使编辑 MSBuild 文件获得更好的体验。

该扩展可在源代码编辑器中编辑 MSBuild 项目文件(例如 .csproj 文件)时提供快速提示、弹出窗口、导航和代码完成等高级帮助。

它目前是 Visual Studio 的扩展,但计划将来将其移植到 Visual Studio Code。

发布版本 v2.62.0 · grpc/grpc-dotnet

https://github.com/grpc/grpc-dotnet/releases/tag/v2.62.0

grpc-dotnet v2.62.0 已发布。

此版本修复了 UWP 上的检测错误。

测试您的本机 AOT 应用程序 - .NET 博客

https://devblogs.microsoft.com/dotnet/testing-your-native-aot-dotnet-apps/

支持本机 AOT 单元测试的 MSTest 早期预览版已发布。

此预览提供了一种使用本机 AOT 编译 MSTest 单元测试并运行测试的机制。这允许您在作为本机 AOT 运行时检查运行时错误。

此预览支持代码覆盖率和 TRX 报告生成,但仅支持测试用例检测等。

Bing on .NET 8:动态 PGO 的影响 - .NET 博客

https://devblogs.microsoft.com/dotnet/bing-on-dotnet-8-the-impact-of-dynamic-pgo/

Bing 推出适用于 .NET 8 的动态 PGO。

当我们在 .NET 8 上实际测试 Dynamic PGO 时,稳态性能有所提高,但在某些工作负载中观察到延迟峰值。经过调查,发现代码库太大,re-JIT队列堆积太多。通过添加预热查询并更改设置已解决此问题。

结果,该公司实现了性能改进,例如 CPU 周期减少了 13%,以及受 GC 影响的查询百分比减少。

停用:Azure Functions 中对 .NET 应用程序内模型的支持将于 2026 年 11 月 10 日结束。

https://azure.microsoft.com/en-us/updates/retirement-support-for-the-inprocess-model-for-net-apps-in-azure-functions-ends-10-november-2026/

Azure Functions 对 .NET 应用程序内模型的支持将于 2026 年 11 月 10 日终止。

应用程序必须在截止日期之前迁移到进程外模型。

停用:对 .NET 6 的支持将于 2024 年 11 月 12 日结束 - 将 Azure Functions 应用升级到 .NET 8

https://azure.microsoft.com/en-us/updates/retirement-support-for-net-6-ends-on-12-november-2024-upgrade-your-azure-functions-apps-to-net- 8/

Azure Functions 对 .NET 6 的支持将于 2024 年 11 月 12 日结束。

当前在 .NET 6 上运行的应用程序需要升级到 .NET 8。

ODP.NET 23c — 主要开发版本更新

https://medium.com/@alex.keh/odp-net-23c-major-dev-release-update-016297dea26c

ODP.NET 23c 开发人员版本 23.3.2 已发布。

此版本包括对 Metrics API 和 OpenTelemetry 的支持、从 Azure Key Vault 和 OCI Vault 等配置提供程序检索连接信息、mTLS 证书选择以及更快的连接建立等更改。

发布 ILSpy 9.0 预览版 1 · icsharpcode/ILSpy

https://github.com/icsharpcode/ILSpy/releases/tag/v9.0-preview1

ILSpy 9.0 预览版 1 已发布。

此版本包括对读取 ECMA-335 元数据和 WebCIL 的支持、增强的语言支持和性能改进。

https://x.com/ilspy/status/1774839673870852465?s=12

文章、幻灯片等

Lock class

https://ufcpp.net/blog/2024/4/lock-class/

关于 .NET 9 和 C# 13 中引入的“Lock”类。

ref/ref 结构变量可以在异步方法中使用

https://ufcpp.net/blog/2024/4/ref-in-async/

一个与 Lock/lock 相关的故事,计划在 C# 13 中支持,并允许在异步方法中使用 ref/ref struct

如何使用注释提示 GitHub Copilot for Visual Studio - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/how-to-use-comments-to-prompt-github-copilot-visual-studio/

关于 Visual Studio 的 GitHub Copilot 使用注释作为提示并自行生成注释的功能。

dotInsights | 2024 年 4 月 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/04/03/dotinsights-april-2024/

JetBrains 的 2024 年 4 月 .NET 相关信息摘要。

使用 Redis 让 AI 驱动的 .NET 应用程序更加一致和智能 - .NET 博客

https://devblogs.microsoft.com/dotnet/redis-makes-intelligent-apps-smarter-and-concient/

了解如何在结合 Redis 和 Azure OpenAI 服务的 .NET 应用程序中将 RAG 与语义内核结合使用并缓存页面输出。

如何在 Visual Studio 中安装 GitHub Copilot - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/how-to-install-github-copilot-in-visual-studio/

有关如何在 Visual Studio 中安装 GitHub Copilot 的说明。

从用户角度介绍语义内核 v1

https://zenn.dev/microsoft/articles/semantic-kernel-v1-004

语义内核简介。本文介绍了如何使用 OpenAI 的 API 调用、模板引擎、插件和规划器。

在 ASP.NET Core 中运行控制器和服务时自动插入日志

https://zenn.dev/kos59125/articles/82b4d827d4a581

如何自动记录对 ASP.NET Core 控制器等中使用的 DI 派生服务的调用。介绍在使用 Microsoft.Extensions.DependencyInjection 解析服务时如何使用 DispatchProxy 执行日志记录。

单独使用 .NET Aspire 仪表板 - Qiita

https://qiita.com/takashiuesaka/items/338ae64ca2033e078f7f

如何使用为 .NET Aspire 提供的示例仪表板应用程序作为 OpenTelemetry 的容器(无需 Aspire)。

使用 Lambda Web Adaptor 在 Lambda 上运行 ASP.NET Core MVC 应用程序

https://zenn.dev/awwa500/articles/556d1ea8ca5c9f

有关使用 Lambda Web Adaptor 在 AWS Lambda 上运行典型 ASP.NET Core MVC 应用程序的说明。

使用 .NET Aspire 处理数据库 - SQL Server 版本 - Qiita

https://qiita.com/takashiuesaka/items/6d5ec4d4994649c5dca5

了解如何将 SQL Server 与 .NET Aspire 应用程序结合使用。本文还涉及在开发环境的容器中运行 SQL Server、填充初始值以及实际部署期间的注意事项等内容。

使用 .NET Aspire 处理数据库 - PostgreSQL 版 - Qiita

https://qiita.com/takashiuesaka/items/137cb1450c3d9fbc8d1e

了解如何在 .NET Aspire 应用程序中使用 PostgreSQL。本文还涉及在开发环境的容器中运行 PostgreSQL、填充初始值以及实际部署过程中的注意事项等内容。

WinUI 3 的多语言化

https://zenn.dev/shinta0806/articles/winui3-multi-lang

关于WinUI 3(Windows App SDK)应用程序中支持多种语言的机制。

在 C# 中用类型表示状态时,使用 Json 反序列化数据持久化失败的原因以及解决方法

https://zenn.dev/jtechjapan_pub/articles/28f84dad6b435b

关于在PostgreSQL的JSONB列中保存带有.NET类型信息的JSON时反序列化失败的问题。

如何将私有方法也输出到 DocFX(记录 C# XML 注释)- Qiita

https://qiita.com/mountainn/items/270c8ca34dd67bf257ce

使用 DocFx 创建文档时如何输出包括私有方法。

4 周内:Visual Studio LIVE!芝加哥 2024 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-live-2024-chicago/

关于名为 Visual Studio LIVE! Chicago 2024 的活动,该活动将于 4 周后(2024 年 4 月 29 日)举行。

Blazor C# 教程 - 尝试使用 Claude API - Qiita

https://qiita.com/firesign2023/items/702407263cdfff117e05

有关在 Blazor 应用程序中使用 Claude API 的教程。

  • Blazor C# 教程 - 使用 Claude API 输入图像 - Qiita

Rider 2024.1 候选版本现已推出 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/03/27/the-rider-2024-1-rc/

Rider 2024.1 候选版本已发布。

此版本包含各种新功能,包括新的监控窗口、集合可视化工具、改进的终端窗口、Blazor WASM 的热重载等等。

ReSharper 2024.1 候选版本现已推出 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/03/27/the-resharper-2024-1-rc/

ReSharper 2024.1 候选版本已发布。

我在 C# Tokyo 做了一个关于“使我自己的库与 Aspire 兼容后的印象......”的演讲

https://zenn.dev/jtechjapan_pub/articles/685212103358fe

本次会议的后续文章介绍了如何使您自己的库与 .NET Aspire 兼容。

使用新的 Box .NET SDK

https://medium.com/box-developer-japan-blog/新しいbox-net-sdkの使 %E7%94%A8-17a51df64e00

介绍并轻松使用 Box 基于代码生成的新 .NET SDK。

新的Box SDK涵盖了广泛的Box API,并且基于代码生成,使得快速合并最新的API成为可能。

使用 .NET、Redis 和 Keycloak 实现具有令牌处理程序模式的 API 网关

https://medium.com/@ahmedmohamedelahmar/implement-api-gateway-with-token-handler-pattern-using-net-redis-and-keycloak-38250bfbd733

了解如何使用 YARP、Redis 和 Keycloak 实现令牌身份验证 API 网关。

.NET Framework - 2024 年 3 月累积更新预览 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-framework-march-2024-cumulative-update-preview/

.NET Framework 2024 年 3 月累积更新的预览版已发布。

此版本修复了线程池问题、32 位应用程序中的 Interlocked.Read 速度缓慢以及 ASP.NET 1 月更新的性能问题。

使用 GitHub Actions 制作漂亮的 .NET 测试报告

https://seankilleen.com/2024/03/beautiful-net-test-reports-using-github-actions/

如何使用 GitHub Actions 生成测试和代码覆盖率报告并将其反映为评论。

C# Win32API完整介绍 - Qiita

https://qiita.com/nekotadon/items/f376d17de85dfb84fbd5

介绍如何在 C# (.NET) 中使用 Win32 API,包括定义、实际 API 介绍和代码示例。

将 .NET MAUI Blazor 应用程序部署到 ProgramFiles

https://mitchelsellers.com/blog/article/deploying-net-maui-blazor-app-to-programfiles

关于 WebView2 在将 .NET MAUI Blazor 应用程序放置在 Program Files(或不可写)目录中时出现问题的情况。

20240326_NET Aspire 概述 | Doxel

https://www.docswell.com/s/tanaka_733/ZXYX8N-2024-03-26-aspire

这张幻灯片总结了 .NET Aspire 是什么、它的功能以及如何使用预览版 4 的信息编写代码。

活动

2024年4月.NET实验室学习会暨Azure Waigaya会议 (2024/04/27 13:00~)

https://dotnetlab.connpass.com/event/314310/

让我们学习 .NET:容器(日语)- YouTube

https://www.youtube.com/watch?v=PFUy3W-FeAY

库、存储库、工具等。

Cysharp/Utf8StreamReader:基于 Utf8 的 StreamReader,用于高性能文本处理。

https://github.com/Cysharp/Utf8StreamReader

用于从 Stream 中高效读取 UTF-8 文本的库。

endjin/dotnet-adr:用于创建和管理架构决策记录 (ADR) 的跨平台 .NET 全局工具。

https://github.com/endjin/dotnet-adr

用于创建架构决策记录 (ADR) 的工具。

  • [adr - 用于创建和管理架构决策记录的 .NET 工具 | endjin](https://endjin.com/blog/2024/03/adr-a-dotnet-tool-for-creating-and-managing-architecture -决策记录?WT.mc_id=link-twitter-isaacl)

网站、文档等

推文

添加了从 .NET API 文档跳转到 learn.microsoft.com 上的源代码的链接。

https://twitter.com/screechowl25/status/1775934677330862488?s=46&t=ca5OZfzUD88PkVRWAC0PMg

image-20240410202821326

深入探索

添加 Task.WhenEach 以处理任务完成,由 stephentoub · Pull Request #100316 · dotnet/runtime

https://github.com/dotnet/runtime/pull/100316

为 Task.WhenEach 添加了 PR,等待多个任务并从完成的任务返回。

版权声明

  • 国内板块由 InCerry 进行整理 : https://github.com/InCerryGit/WeekRef.NET
  • 其余内容来自 Myuki WeekRef,由InCerry翻译(已获得授权) : https://github.com/mayuki/WeekRef.NET

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。

格式如下:

  • 10~50字左右的标题
  • 对应文章或项目网址访问链接
  • 200字以内的简介,如果太长会影响阅读体验

https://github.com/InCerryGit/.NET-Weekly

.NET性能优化交流群

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

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

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。

如果提示已经达到200人,可以加我微信,我拉你进群: ls1075

另外也创建了QQ群,群号: 687779078,欢迎大家加入。

image-20230703203249615