.NET周刊【5月第3期 2024-05-19】

net · 浏览次数 : 0

小编点评

## .NET 性能优化交流群 **简介:** Join our vibrant .NET performance optimization community for hands-on help and knowledge sharing. Whether you're looking to optimize your application's performance or just want to learn more about the .NET framework, this group is the place for you. **内容:** * **Performance Analysis Techniques:** Learn how to identify and analyze performance bottlenecks using tools like APM, dotnet tools, and profiling. * **Understanding .NET Framework:** Delve into the intricacies of the .NET framework, including garbage collection, JIT, and other performance-critical aspects. * **Performance Traps:** Discover common performance traps and how to write high-performance .NET code to avoid these pitfalls. * **Sharing is Caring:** Get involved and contribute to the community by sharing your own performance optimization experiences and solutions. * **Performance Optimization Journey:** Join a group dedicated to guiding and supporting developers on their performance optimization journey. **Join Today!** * **Website:** github.com/InCerryGit/WeekRef.NET * **QQ Group:** 687779078 * **Twitter:** @InCerryGit

正文

国内文章

WPF使用Shape实现复杂线条动画

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

文章介绍了利用WPF的Shape和动画功能,模仿CSS/SVG实现复杂的线条光效动画效果。首先,通过Polyline和StrokeDashArray实现了虚线动画,再通过StrokeDashOffset添加动画效果。然而,由于WPF不支持角向渐变,作者另寻两种方法来实现渐变效果,一种是基于多条线段的动画,最后提到可以使用Avalonia的ConicGradientBrush实现角向渐变。文章展示了实现代码和效果,但还涉及到多条线段拐角处颜色连贯等细节问题。

C#.Net筑基-模式匹配汇总

https://www.cnblogs.com/anding/p/18176056

从C#7开始支持的模式匹配可以灵活地对数据进行条件匹配和提取,已经包括多种匹配模式。这些模式包括类型和声明模式、常量模式、关系模式、逻辑模式、属性模式、列表模式和 var 模式,可以通过布尔逻辑词来组合使用。模式匹配增加编写代码的简便性,并提高代码清晰度。通过 https://sharplab.io/ 可以查看C#编译后的代码。文章详细介绍了各种模式的使用方法和示例,包括类型和声明模式、常量模式、关系模式、逻辑模式、属性模式、位置模式等。

NETCore中实现一个轻量无负担的极简任务调度ScheduleTask

https://www.cnblogs.com/vipwan/p/18194062/biwen-quickapi-scheduletask

文章介绍了如何从零开始制作一个简易的任务调度器。重点包括定义了任务执行的接口和抽象类、通过特性标注任务执行周期等信息的元数据、定义调度器接口用以判断任务是否可执行,以及实现了基于配置文件的任务元数据存储。技术栈主要涉及BackgroundService和NCrontab库。

使用c#强大的表达式树实现对象的深克隆之解决循环引用的问题

https://www.cnblogs.com/gmmy/p/18193549

本文探讨了在C#中使用表达式树实现深克隆时遇到循环引用问题的解决方案。文章解释了循环引用的概念,并通过引入延迟策略和字典来跟踪对象引用,从而避免无限递归。核心思想是如果遇到先前已经创建的类型,则复用该对象,通过延迟赋值确保新对象能够正确复制原对象属性。

SQLServer统计监控SQL执行计划突变的方法

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

动态管理视图(DMVs)可用于监控SQL Server中的查询执行计划和性能统计。主要的DMVs包括sys.dm_exec_query_stats用于查询统计信息,sys.dm_exec_sql_text用来获取SQL文本,sys.dm_exec_cached_plans提供执行计划统计,以及sys.dm_exec_query_plan用于获取执行计划。通过定期运行查询,对比统计数据,可以检测执行计划的变化,并据此优化性能。为了准确监测,建议将数据记录在持久化表中,并可能需要结合多个DMVs来进行综合分析。

记一次asp.net 8 服务器爆满的解决过程

https://www.cnblogs.com/kugar/p/18199022

服务器配置包括2c4g的CentOS作反代和8c16g的Windows 2019运行IIS、SQL Server、MongoDB和Redis。面临的问题是晚间MongoDB、SQL Server和WebAPI进程CPU使用率暴增,导致数据处理不及时。问题源于新迁移的站点前端代码错误,创建多个定时获取数据的实例,造成自我DDoS。通过业务流程优化、MongoDB客户端设置调整、WebAPI缓存、NGINX限流和日志关闭等措施解决,效果明显,减少了CPU占用和数据处理时间。相关技术包括ASP.NET Core 8, EasyCaching, FreeSql和Redis。

ASP.NET Core Web中使用AutoMapper进行对象映射

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

在ASP.NET Core Web中,AutoMapper库可以自动完成对象之间的映射,减少手动编写代码。这样做可以提高开发效率、减少错误和bug,并简化代码结构。AutoMapper是一个.NET对象映射库,它的安装方法是通过NuGet包。你需要创建源对象和目标对象,并在映射配置文件中定义它们之间的映射规则。最终,在程序中通过依赖注入的方式使用IMapper接口来进行对象映射操作。

Dapr 与 .NET Aspire 结合使用获得无与伦比的本地开发体验

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

Dapr是一套帮助简化分布式系统开发的构建块集合,涵盖服务通信、缓存、工作流等领域。与.NET Aspire结合使用可以优化本地开发体验,简化故障排除和调试过程,并且无需繁复的YAML配置。文章中以构建三个服务的示例来展示Dapr与.NET Aspire的整合,并概述了利用.NET Aspire进行Dapr实验的过程。文中提到的服务包括:Alice(ASP.NET Core服务)、Bob(ASP.NET Core服务)和Carol(Node.js Express Web应用程序)。这样的组合让开发者能够关注功能开发,减少设定环境的时间,并通过OpenTelemetry简化本地多应用交互的故障排除。

工业福利!用.NET快速开发物联网扫码器设备的通用扫码功能

https://www.cnblogs.com/weskynet/p/18198774

文章介绍了一个用于快速实现多款扫码器通用扫码功能的方法,无论在.net framework或.net core等环境中均适用。首先须引入Wesky.Net.OpenTools包,在非依赖注入项目中可以直接创建对象使用,在.net core及以上环境建议使用依赖注入,并实现了扫码器的连接和扫码功能。作者还建议存储扫码器客户端实例以保持长连接,并逐步展示了如何在.net环境下注册依赖注入、实现扫码器服务和创建API控制器。文末提供了控制器代码示例。

一款基于C#开发的通讯调试工具(支持Modbus RTU、MQTT调试)

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

大姚分享的Wu.CommTool通讯调试工具使用C#、WPF等技术开发,支持Modbus RTU和MQTT调试,界面色彩丰富。它具有自动解析数据帧、防粘包等特征。相关源码托管于GitHub,并被C#/.NET/.NET Core优秀项目和框架精选收录,有助于开发者了解最新动态和最佳实践。DotNetGuide技术社区提供.NET开发者学习资料与技术交流,促进开发者成长。

初识上位机(下):C#读写PLC数据块数据

https://www.cnblogs.com/edisonchou/p/-/industrial-control-plc-connector-02

Edison介绍了使用C#创建Windows Form项目,通过S7NetPlus库连接西门子S7-1500 PLC,并实现数据读写。文章涵盖了连接、断开PLC,读取PLC数据块和PLC数据块写入等功能的实现。他首先复习了PLC模拟环境的搭建,然后详细讲解了如何使用C#代码操作PLC,针对字符串类型的数据处理也有详尽说明。此外,Edison还提供了读写PLC中字符串类型数据的辅助类S7DataWriter。

EDP .Net开发框架--业务模型

https://www.cnblogs.com/alwaysinsist/p/18190582

EDP平台通过业务模型管理功能来实现数据行视图与列属性的权限管控。业务模型是EDP平台核心,包含了数据的增删改查和权限控制。通过创建业务模型类并继承ModelPermissionBase类,我们可以定义和管理业务模型,从而管控数据行、列的权限。提供的代码示例展示了如何创建并设置一个学生业务对象,包括SQL查询设置和实体属性的定义。

Garnet:微软官方基于.NET开源的高性能分布式缓存存储数据库

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

Redis从7.4版本开始修改为RSALv2和SSPLv1协议,不再开源。微软研究院推出的Garnet项目是一款基于.NET的分布式缓存数据库,开源且对Redis客户端完全兼容。Garnet表现出更好的吞吐量、可扩展性和低延迟,在Azure VM上的测试中表现出色,且支持跨平台。性能测试对比Redis、KeyDB和Dragonfly,显示Garnet在多客户端连接和请求处理上占优。项目源码和使用文档已开源在GitHub,且被收录至C#/.NET/.NET Core优秀项目和框架精选。

.NET实现获取NTP服务器时间并同步(附带Windows系统启用NTP服务功能)

https://www.cnblogs.com/weskynet/p/18194418

本文介绍了如何在Windows系统的远程服务器上启用和设置NTP服务,包括修改注册表中的设置、打开防火墙端口、重启Windows时间服务,及通过命令行验证。另外,介绍了使用Wesky.Net.OpenTools包在程序中进行时间同步的方法,并提供了获取NTP服务器时间的核心代码的详细解析。

.NET使用P/Invoke来实现注册表的增、删、改、查功能

https://www.cnblogs.com/weskynet/p/18191869

文章介绍了使用Wesky.Net.OpenTools包对Windows注册表进行操作的方法,包括创建、设置、读取、删除注册表值和注册表项的操作。代码演示了如何通过IRegistryManager接口完成以上各种操作,及其对应的内核源码部分,其中包括了对 Windows API 函数的调用。

IceRPC之传入响应和拦截器->快乐的RPC

https://www.cnblogs.com/xlgwr/p/18195207

本文介绍了.Net 8.0中IceRPC的传入响应处理和拦截器。传入响应包含状态代码、错误消息、响应字段和有效负载。拦截器可以在发送请求前后进行数据处理,并可实现调用链短路。文章展示了C#中如何编写和安装拦截器,通过调用管道把拦截器串联起来,以便对请求和响应进行处理。作者在结语中鼓励持续实践以提高能力,并开放性地邀请读者交流。

Mono 支持LoongArch架构

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

著名的.NET开源社区Mono增加了对LoongArch(龙架构)的支持,.NET社区主干分支已出现LoongArch64架构。Mono框架是跨平台的,支持Linux、macOS、Windows等操作系统,包含C#编译器、.NET运行环境和类库。LoongArch架构得到支持后,.NET软件生态能原生移植到LoongArch64平台。龙芯.NET团队的Mono已通过多个应用程序测试,包括unity3D。龙芯公司为龙芯版本.NET提供安全更新和性能优化,发布了基于LoongArch64的Mono6.13.0-1,增强了稳定性,并修复了多个bug。

Advanced .Net Debugging 8:线程同步

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

这篇文章是关于《Advanced .Net Debugging》系列中介绍多线程同步问题的一部分,内容涉及多线程应用程序常见问题的解决方法、线程同步组件及原理,以及多线程环境下的最佳实践。文章包含了具体的调试工具和环境设置说明,如使用Windows 10操作系统、Windbg Preview和NTSD调试工具,以及.Net 8.0环境。作者还提供了目录结构以方便读者查看,并举例了一些同步原语的代码,如事件同步原语、互斥体、信号量、监视器、读写锁和线程池等,并介绍了调试源码。

Visual Studio中的四款代码格式化工具

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

大姚在Visual Studio中推荐了四款代码格式化工具和扩展插件,包括ReSharper、CSharpier、CodeMaid VS2022、XAML Styler等,这些都能自动化并优化代码布局和风格,提高代码的可读性。这些工具支持多种语言如C#、XAML、ASP.NET等,并且可以通过Visual Studio的扩展商店下载。另外,介绍了DotNetGuide技术社区,一个针对.NET开发者的交流和学习平台。

.NET ASPIRE 预览版 7 发布

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

.NET Aspire预览版7包含大量API更改,致力于确保最终发布前的API稳定性,版本号为8.0.0-preview.7.24251.11。更改内容涉及属性重命名、类重构、方法签名修改等,旨在提升一致性和易用性。Azure Service Bus等组件的属性名称更新以更清晰表达其含义。仪表板更新增强了视觉效果和多语言支持,容器镜像默认设置现在包含更完整的注册中心和标签信息。GitHub发布页面详细展示了API更新、ASP.NET Core升级、OpenTelemetry HTTP监测包更新、Docker镜像标签更新、组件服务修复改进等内容。此外,文档和测试也得到了增强,目的在于改善性能、稳定性和用户体验。

ASP.NET Core如何禁用模型验证(或者从模型状态中移除某些属性)?

https://www.cnblogs.com/sanshi/p/18194672

本文讨论在ASP.NET Core项目中,如何在不需要验证特定模型属性的情况下处理文件上传。文章从一个实际案例出发,展示了一个模型验证导致的错误,并解决了这个问题。方法是在对应的处理器(Handler)中使用ModelState.Clear()清空模型状态。作者还进一步探讨了如何移除模型状态中的某些属性,给出了修改模型状态的思路和示例。

C#实现图片转Base64字符串.并支持markdown文件打开展示

https://www.cnblogs.com/weskynet/p/18188836

Wesky.Net.OpenTools 1.0.3版提供了图片转Base64字符串的功能,能够自动识别图片后缀名,并转换成标准URI供Markdown使用。用户只需将转换得到的Base64字符串以Markdown格式添加到文本中,即可在支持Markdown的编辑器如Typora里展示图片。此功能支持多种图片格式,如bmp、gif、jpg、png等。

ASP.NET Core的全局拦截器(在页面回发时,如果判断当前请求不合法,不执行OnPost处理器)

https://www.cnblogs.com/sanshi/p/18193981

ASP.NET Core RazorPages中可以在BaseModel基类中重载OnPageHandlerExecuting方法来对回发请求进行身份验证和操作中断。BaseModel继承自PageModel,通过检查请求数据或Cookie来确定访问的有效性,无效访问将弹出错误提示,并中断页面加载和回发事件。此外,开发者还可以使用AppBoxCore.Dapper 中的CheckPowerAttribute过滤器对某些页面进行权限验证,实现更加细致和工程化的权限控制。

C#特性

https://www.cnblogs.com/chi8708/p/18200266

C# 特性是向代码元素添加元数据的一种方法,增强了代码的信息量和灵活性。定义特性类时可以指定其使用场合和是否允许多次应用。间通过反射获取特性信息。特性可以用在多种场景如数据验证、序列化控制、提供描述性元数据、实现依赖注入、单元测试、权限控制和面向切面编程等,对现代C#编程具有重要意义。

EAV模型(实体-属性-值)的设计和低代码的处理方案(2)--数据的查询处理

https://www.cnblogs.com/wuhuacong/p/18193612

本文进一步分析了EAV模型设计和其在Winform场景下的低代码实现。文章讨论了列表界面的重要性,并指出固定字段的界面虽然查询快速、个性化,但需要单独处理。提出了利用EAV模型,通过动态定义的业务表和字段,使用通用窗体来演化界面。此外,文章介绍了动态创建输入控件组以处理不同数据类型的查询字段,使用堆叠面板(StackPanel)以适应控件组的界面长度变化。还探讨了自定义条件查询,通过用户控件实现多条件组合查询,展现了界面效果。文章展示了相关代码段,提供了一系列的界面和控件处理方法。

基于webapi的websocket聊天室(四)

https://www.cnblogs.com/ggtc/p/18190128

本文介绍了在WebSocket基础上实现文件和图片传输功能的方法。主要讨论了文件传输的二种方案:先发送元数据再发送文件数据,和定义协议打包元数据与文件数据一起发送。文章定义了RCP传输协议和相应对象结构,详述了不同类型消息(普通消息、文件、链接、图片)的数据格式,以及RCP在程序中的实体表示和序列化、反序列化方法。

NETCore中实现一个轻量无负担的极简任务调度ScheduleTask

https://www.cnblogs.com/vipwan/p/18194062

文章介绍了如何从零开始制作一个简易的任务调度系统。首先定义了任务执行的接口和抽象类,然后通过特性标注任务执行周期等信息。接下来定义了调度器接口以判断任务是否可执行。最后,如果需要实现可配置的任务调度或动态任务调度,还需定义一个存储所有任务元数据的Store,并实现了一个依赖于配置的Store。

C# 程序集、模块和类型概念及关系

https://www.cnblogs.com/chi8708/p/18196692

在C#中,程序集是包含类型和资源的单位,既可是EXE也可以是DLL。模块对应于源文件,包含类型、IL和元数据。类型是包含字段、属性、方法等的代码结构。程序集包含模块,模块包含类型,类型属于单个模块。这些元素共同构成完整的.NET应用程序。

C#泛型

https://www.cnblogs.com/chi8708/p/18194254

C#泛型是提高代码重用性、类型安全性、性能的编程范式,通过类型参数实现与任意数据类型一起工作的类、方法、接口和委托。泛型的基本语法包括泛型方法与类的定义及实例化,泛型接口、委托的声明和泛型约束的使用。泛型在集合类、数据结构、算法、数据库操作和网络编程等多个场景下都有广泛应用。

Asp-Net-Core开发笔记:使用ActionFilterAttribute实现非侵入式的参数校验

https://www.cnblogs.com/deali/p/18198867

本文围绕ASP.NET Core中利用ActionFilterAttribute实现面向切面编程(AOP)的自定义验证功能展开,详细介绍了创建ValidateClientAttribute以验证客户端ID的过程。文章首先提出了提高API安全性的重要性,然后通过详细的代码示例说明了如何从不同的源(查询参数、请求体、路由参数、请求头)获取客户端ID,并在数据库中进行验证。文章还解释了如何使用HttpContext的Items集合在不同组件间共享验证后的Client对象,同时指出HttpContext的作用和重要性。

C#应用的欢迎界面窗体方案 - 开源研究系列文章

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

作者整理了代码,改善了应用的欢迎界面窗体,创建成一个通用型类库,方便读者在自己项目中使用。提到指导如何利用进度文本显示应用加载进度,并且可设定为自动关闭。也提供了项目目录、源码介绍、运行界面的说明,以及源码下载链接,给出了使用欢迎界面的其他建议。

IceRPC之调用管道Invocation pipeline与传出请求Outgoing request->快乐的RPC

https://www.cnblogs.com/xlgwr/p/18192640

本文介绍了.Net 8.0中IceRPC的调用管道和传出请求的概念。调用管道是指通过调用器(Invoker)来发送请求和接收相应响应的整个过程。其中,IInvoker接口负责发起调用,并对请求进行如添加遥测字段、压缩等额外处理。调用管道有三种常见的类型:Leaf invoker、Interceptor和Pipeline。创建一个传出请求需要目标服务地址、操作名称、请求字段和有效负载等信息,其中请求字段和有效负载对管道内通信至关重要。文章还展示了序列图来解释请求有效负载的发送过程。

【OpenVINO™】在 C# 中使用OpenVINO™ 部署PP-YOLOE实现物体检测

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

OpenVINO™ C# API是OpenVINO™库的一个.Net 包装器,支持在.NET和.NET Framework下使用C#进行深度学习模型推理加速。它与OpenVINO™ C++ API用法一致,并且可以方便地部署在不同硬件上。该API及相关项目示例代码可以在GitHub上获取,项目通过NuGet Package管理依赖。文章展示了如何使用OpenVINO™ C# API搭配PP-YOLOE模型进行对象检测,并具体介绍了依赖安装、项目输出细节。

UnityShader数学基础篇

https://www.cnblogs.com/feng-Ling/p/18146805

Math是C#的数学计算工具类,包含于System命名空间;Mathf是Unity中的数学计算结构体,包含于UnityEngine命名空间。常用Mathf方法包括计算圆周率PI、绝对值Abs、上舍入CeilToInt、下舍入FloorToInt、值钳制Clamp、最大值Max、最小值Min、n次幂Pow、四舍五入RoundToInt、平方根Sqrt、判断2的n次幂IsPowerOfTwo、判断正负数Sign、插值运算Lerp、三角函数和转换以及坐标系的应用。

主题

发布 v8.0.3 · npgsql/npgsql

https://github.com/npgsql/npgsql/releases/tag/v8.0.3

.NET 和 .NET Framework 2024 年 5 月服务更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-may-2024-servicing-updates/

发布 Windows App SDK 1.4.6 (1.4.240512000) · microsoft/WindowsAppSDK

https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.4.6

Entity Framework Core 的 MongoDB 提供程序现已全面可用 | MongoDB 博客

https://www.mongodb.com/blog/post/mongodb-provider-entity-framework-core-now-generally-available

ReSharper 2024.1.2 可供下载 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/05/07/resharper-2024-1-2/

Rider 2024.1.2 现已推出! | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/05/07/rider-2024-1-2/

在 C# 开发工具包中宣布 NuGet 命令 - NuGet 博客

https://devblogs.microsoft.com/nuget/announcing-nuget-commands-in-c-dev-kit/

C# 开发工具包引入包管理和改进的 .NET Aspire 支持 - .NET 博客

https://devblogs.microsoft.com/dotnet/may-release-of-csharp-dev-kit/

版本 8.4.0 · App-vNext/Polly

https://github.com/App-vNext/Polly/releases/tag/8.4.0

发布 v6.6.1 ·domaindrivendev/Swashbuckle.AspNetCore

https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.6.1

为 Build 2024 的 Visual Studio 做好准备:加入数千人在线活动! - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-at-build-2024/

Entity Framework 6.5 Classic 中的新增功能

https://erikej.github.io/ef6/dotnet/2024/05/16/ef6-whatsnew.html

Orleans 8 中针对可扩展分布式应用程序的新增功能 - .NET 博客

https://devblogs.microsoft.com/dotnet/whats-new-in-orleans-8/

.NET Aspire 预览版 7 - .NET Aspire

https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/preview-7

v1.11.0 | Meadow v1.* 发布 |荒野实验室开发者门户

https://developer.wildernesslabs.co/Meadow/Release_Notes/v1/#v1110

文章

可空引用类型与 EF Core Code First - Qiita

https://qiita.com/SurferOnWww/items/67d8e8d86234ac138445

.NET 通用数学库 - NDepend 博客

https://blog.ndepend.com/dotnet-generic-math/

Stephen Toub 的完整 .NET 开发人员指南 - YouTube

https://www.youtube.com/watch?v=5KdICNWOfEQ&list=PLdo4fOcmZ0oX8eqDkSw4hH9cSehrGgdr1&index=5

用NET8的Blazor制作WASM+API的项目

https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-wasm-with-apis

在 Visual Studio 中使用 GitHub Copilot 提高代码质量 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/improve-your-code-quality-with-github-copilot-in-visual-studio/

关于基于C#的开源CMS“Orchard Core”

https://zenn.dev/zead/articles/f604f9ad31f941

在 Visual Studio 中使用 GitHub Copilot 掌握斜杠命令 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/mastering-slash-commands-with-github-copilot-in-visual-studio/

[C#] 使用扩展方法尽可能消除基于类型的 switch 和 if 判断 - Qiita

https://qiita.com/toRisouP/items/12afeb98a0971095d409

Azure Toolkit for Rider v4.0 预览版 - 请求反馈 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/05/14/azure-toolkit-for-rider-v4-0-preview-request-for-feedback/

C#12 中主构造函数简介

https://andrewlock.net/an-introduction-to-primary-constructors-in-csharp-12/

用C#自动测试(剧作家)环境搭建~测试执行流程-Qiita

https://qiita.com/noritama08/items/ed3f79e7feb061e36774

使用ConfigureAwait 避免死锁 - Qiita

https://qiita.com/SurferOnWww/items/2dd628101923419cc44a

与await 和Task.Result 发生死锁 - Qiita

https://qiita.com/SurferOnWww/items/bd4e483cce7acaee4f30

异步编程 - Qiita

https://qiita.com/SurferOnWww/items/06dc1e3df702596272ba

ASP.NET Core、SSR Web 组件和增强 Wasm

https://khalidabuhakmeh.com/aspnet-core-ssr-web-components-and-enhance-wasm

本地化 .NET 控制台或桌面应用程序

https://blog.axantum.com/2024/05/localizing-net-console-or-desktop.html?m=1

将 Nuxt3 构建为静态文件并在 .NET Core 中显示

https://zenn.dev/yorimichi/articles/initial_csharp_nuxt3

readonly 会让你的代码更快吗?

https://steven-giesel.com/blogPost/50b84029-4f1e-4e6d-8fd1-0311b0605562

在 Blazor 中从 JavaScript 调用 .NET 动态(实例)方法 - Qiita

https://qiita.com/yaju/items/44b207477d1cb1c81bfb

使用 Azure OpenAI 服务将代码从 VB 转换为 C#

https://zenn.dev/microsoft/articles/convert-vb-to-cs

领先于游戏:使用 .NET Aspire 和 Aspir8 Preview 7 探索 Helm 功能

https://medium.com/@josephsims1/ahead-of-the-game-exploring-helm-features-with-net-aspire-aspir8-preview-7-d327ade09b91

C# 区分联合:是什么驱动了 C# 社区的关注? - NDepend 博客

https://blog.ndepend.com/csharp-discriminated-union/

加入 Microsoft Build 2024 的 .NET 团队 - .NET 博客

https://devblogs.microsoft.com/dotnet/join-the-dotnet-team-microsoft-build-2024/

[NXUI] C# 中的单行跨平台桌面应用程序 [AvaloniaUI]

https://zenn.dev/inuinu/articles/528550aab764e8

使用 C# 集合表达式重构代码 - .NET 博客

https://devblogs.microsoft.com/dotnet/refactor-your-code-with-collection-expressions/

使用 WinDbg 诊断 .NET 应用程序中的内存泄漏:实践方法

https://levelup.gitconnected.com/diagnose-memory-leaks-in-net-applications-with-windbg-a-hands-on-approach-f41986f69967

使用 Blazor QuickGrid 快速创建丰富的表格 - Qiita

https://qiita.com/higege-amdeker/items/8150dcefe5d891a20c53

使用 GitHub Copilot 作为您的编码 GPS - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/using-github-copilot-as-your-coding-gps/

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

https://blog.jetbrains.com/dotnet/2024/05/06/dotinsights-may-2024/

使用 Dapper 多重映射生成多对多关系

https://zenn.dev/tetr4lab/articles/35cd18af364499

搜索可在 C# 中使用的 1ms 定时器 - Qiita

https://qiita.com/qiitatosh/items/cc88e398be26e00fafe0

Adventures 序列化 C# 中的所有内容 – isadora

https://isadorasophia.com/articles/serialization/

如何使用 MVVM 工具包

https://zenn.dev/maedan/articles/c691e858e3fa44

如何在语义内核中连接 Phi-3 Mini ONNX 模型

https://towardsdev.com/how-to-connect-phi-3-mini-onnx-model-in-semantic-kernel-fc96b758129f

如何在带有 AArch64 (arm64) 的 Linux 上使用 Selenium(C# 版本) - Qiita

https://qiita.com/noobow/items/52ed93726b757e2a3dbc

[OCI] 尝试使用 .NET SDK 将数据发送到 OCI Streaming - Qiita

https://qiita.com/atwits/items/f23283cc58ee2a24a79e

在 Maui Blazor 上使用 Razor ClassLib 将组件与项目分离 - Neko 的博客

https://www.neko3cs.net/entry/separate-component-to-project-maui-blazor

幻灯片

Blazor WASM × 代码优先 从 gRPC 开始 C# 大统一理论

https://speakerdeck.com/sansantech/sansan-20240515-2

.NET GraphQL 客户端现实

https://speakerdeck.com/sansantech/sansan-20240515-1

库、存储库、工具等。

GitHub - NikiforovAll/keycloak-authorization-services-dotnet: 使用 Keycloak 和 ASP.NET Core 进行身份验证和授权 🔐

https://github.com/NikiforovAll/keycloak-authorization-services-dotnet

版权声明

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.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

与.NET周刊【5月第3期 2024-05-19】相似的内容:

.NET周刊【5月第3期 2024-05-19】

国内文章 WPF使用Shape实现复杂线条动画 https://www.cnblogs.com/czwy/p/18192720 文章介绍了利用WPF的Shape和动画功能,模仿CSS/SVG实现复杂的线条光效动画效果。首先,通过Polyline和StrokeDashArray实现了虚线动画,再通过S

.NET周刊【5月第2期 2024-05-12】

国内文章 C#在工业数字孪生中的开发路线实践 https://mp.weixin.qq.com/s/b_Pjt2oii0Xa_sZp_9wYWg 这篇文章探讨了C#在工业数字孪生技术中的应用,介绍了三种基于C#的数字孪生系统实现方案: WPF + Unity:结合WPF技术和Unity引擎,实现客户

.NET周报 【5月第3期 2023-05-21】

## 国内文章 ### C# 实现 Linux 视频会议(源码,支持信创环境,银河麒麟,统信UOS) https://www.cnblogs.com/shawshank/p/17390248.html 信创是现阶段国家发展的重要战略之一,面对这一趋势,所有的软件应用只有支持信创国产化的基础软硬件设施

.NET周报 【5月第2期 2023-05-14】

国内文章 XUnit数据共享与并行测试 https://www.cnblogs.com/podolski/p/17388602.html 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间。从 V2 开始,默认情况下 XUnit 自动配置并行(参考资料),

.NET周刊【5月第4期 2024-05-26】

国内文章 开源低代码框架 ReZero API 正式版本发布 ,界面操作直接生成API https://www.cnblogs.com/sunkaixuan/p/18201175 ReZero是一款.NET6+的中间件,采用MIT许可证开源,目的是降低.NET Core开发的门槛。它提供界面操作生成

.NET周刊【5月第1期 2024-05-05】

国内文章 一个开源轻量级的C#代码格式化工具(支持VS和VS Code) https://www.cnblogs.com/Can-daydayup/p/18164905 CSharpier是一个开源、免费的C#代码格式化工具,特点是轻量级且依赖Roslyn引擎重构代码格式。支持的IDE包括Visua

.NET周刊【6月第5期 2024-06-30】

国内文章 呼吁改正《上海市卫生健康信息技术应用创新白皮书》 C# 被认定为A 组件 的 错误认知 https://www.cnblogs.com/shanyou/p/18264292 近日,《上海市卫生健康“信息技术应用创新”白皮书》发布,提到医疗信创核心应用适配方法及公立医院信息系统。文章中对C#

.NET周刊【7月第5期 2023-07-30】

## 国内文章 ### PaddleSharp:跨越一年的版本更新与亮点 https://www.cnblogs.com/sdflysha/p/20230724-paddlesharp-in-a-year.html 我始终坚信,开源社区是技术进步的重要推动力,也是我抽出我业余时间,投入到`Paddl

.NET周报 【5月第1期 2023-05-06】

国内文章 聊一聊 Valgrind 监视非托管内存泄露和崩溃 https://www.cnblogs.com/huangxincheng/p/17374315.html、 只要是程序总会出现各种莫名其妙的问题,比如:非托管内存泄露,程序崩溃,在 Windows 平台上一般用微软自家的官方工具 App

.NET周报 【5月第4期 2023-05-27】

## 国内文章 ### C#使用词嵌入向量与向量数据库为大语言模型(LLM)赋能长期记忆实现私域问答机器人落地之openai接口平替 https://www.cnblogs.com/gmmy/p/17430613.html 在上一篇[文章](https://www.cnblogs.com/gmmy/