.NET周刊【3月第1期 2024-03-03】

国内文章

推荐 10 款 C#开源好用的 Windows 软件

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

DevToys、Microsoft PowerToys、1Remote、ScreenToGif、GeekDesk、QuickLook、Optimizer、ToastFish、WinMemoryCleaner、Files 是十款基于 Windows 的实用工具,功能涵盖代码格式化、系统优化、文件管理等方面,旨在提高开发者工作效率。其中部分项目采用.NET 开发,有的提供源码。这些项目和框架已被收录到 C#/.NET/.NET Core 优秀项目和框架精选中,DotNetGuide 技术社区提供了一个.NET 开发者交流平台。

万字长文学会对接 AI 模型:Semantic Kernel 和 Kernel Memory,工良出品,超简单的教程

https://www.cnblogs.com/whuanle/p/18045341

本文是一个简单入门教程,指导读者如何对接人工智能模型 Semantic Kernel 和 Kernel Memory,无需深入学习 AI 底层知识即可开发聊天工具和知识库工具。文章详细介绍了配置环境、部署 one-api、配置项目环境的步骤,并提供了示例代码和应用场景。作者认为,重要的是能够创建实用的产品,而非深究底层技术细节。

使用 ConfuserEx 代码混淆工具保护你的.NET 应用程序

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

.NET 应用防止反编译的问题值得关注,可使用 ConfuserEx 这个.NET 代码混淆工具。ConfuserEx 支持.NET Framework 的多个版本,但不支持.NET Core。它包含多种混淆技术如控制流混淆和字符串、资源加密,并且支持灵活配置。混淆工具对.NET Fx 的.dll 和.exe 文件都适用,具体的使用方法包括添加文件、设置混淆规则并进行混淆。文章还介绍了 DotNetGuide 技术社区,这是一个提供 C#/.NET/.NET Core 学习资料、技术分享的平台。

可用于智能客服的完全开源免费商用的知识库项目

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

FastWiki 项目是一个利用当前先进技术搭建的高性能知识库系统,支持大规模信息检索和智能搜索。技术体系基于.NET 8 和 MasaBlazor 前端框架,后端结合了 MasaFramework 和 Semantic Kernel 实现高效、强大的搜索能力。项目的核心特征包括智能搜索、高性能、现代化前端界面、稳定可靠的后端以及开源社区驱动。文档上传功能暂时支持 md 或 txt 格式,提供模板引导文档撰写,并介绍了 MasaBlazor 的优势。FastWiki 还提供了详细的界面截图,展示了从文档上传到知识库创建和数据处理的整个流程。项目遵循 Apache-2.0 许可,支持商业应用,并通过 Github 和 Gitee 开放源代码。

.NET 开源功能强大的串口调试工具

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

大姚分享了一款.NET 开源串口调试工具 LLCOM,具备 Lua 自动化、TCP/UDP/SSL 测试等多种功能。这款工具界面直观,能够自动保存日志和重连串口,支持多种编码格式和乱码恢复,并集成了 TCP、UDP、SSL 的测试服务端/客户端功能,同时能监听其他软件的串口通信数据。工具的源代码可在 GitHub 获取,且已被收录在 C#/.NET/.NET Core 优秀项目和框架精选中。

Advanced .Net Debugging 2:CLR 基础

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

这篇文章是《Advanced .Net Debugging》系列的第二篇,旨在指导.NET 程序的有效调试。作者强调了理解.NET 运行时、垃圾收集器、互用性和同步机制的重要性。提及的测试环境包括 Windows 10、Windbg Preview、Visual Studio 2022 和.NET 8.0。文中展示了两个调试源码的例子,还讨论了.NET сост 成和 ECMA 标准的重要性。

WPF 性能优化:性能分析工具

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

本文讲述了在软件性能优化中,开发人员需要关注不同程序的具体性能指标,重点介绍了两种 WPF 性能优化工具——内存使用率和应用程序时间线。内存使用率工具帮助发现内存泄漏及其它内存效率问题,应用程序时间线则用于发现 XAML 应用程序的 UI 性能问题。文章详细说明了如何使用这些工具进行性能数据的收集、分析和解读,且提供了多种场景下的性能瓶颈分析实例。

ASP.NET Core MVC 应用模型的构建[3]: Controller 的收集

https://www.cnblogs.com/artech/p/18031075/mvc_app_model_3

本文介绍了 MVC 应用中的 ControllerModel 构建过程和它的主要组成部分。ControllerModel 描述 Controller 类型,包含多个属性如 Actions, ControllerProperties, Selectors 等,用来描述控制器的行为、属性和路由选择等元素。ControllerModel 实现了几个接口提供额外功能,如 IFilterModel 提供过滤器信息,IApiExplorerModel 提供 API 浏览信息。文章还具体解释了使用 DefaultApplicationModelProvider 如何设置 ControllerModel 的属性,并展示了用于生成路由参数的 IRouteValueProvider 接口和 AreaAttribute 特性的使用。最后,通过一个简单的实例说明了如何构建 Controller 模型的元数据。

细聊 ASP.NET Core WebAPI 格式化程序

https://www.cnblogs.com/wucy/p/18025196/aspnetcore_webapi_formatter

本文阐述了如何在 ASP.NET Core WebApi 中自定义 YAML 格式的转换器以及格式化器的工作原理。ASP.NET Core 默认支持 JSON 的输入输出处理,但文章以实现自定义 YAML 格式处理为例来说明。通过 YamlDotNet 组件实现了 YamlInputFormatter 类,处理 HTTP 请求体中的 YAML 格式数据,并通过 MvcOptions 配置使其生效。文中提供了完整的 YamlInputFormatter 实现代码和如何插入框架的方式。

构建 SatelliteRpc:基于 Kestrel 的 RPC 框架(整体设计篇)

https://www.cnblogs.com/InCerry/p/18033494/satelliterpc-1

针对.NET 性能优化群内高性能网络框架的讨论,作者推广了一个基于.NET Core 的高性能网络框架 Kestrel,并计划连载介绍其使用方法。Kestrel 不仅适用于 ASP.NET Core,同时适用于创建其他类型的服务器。文章中提及九哥已发表详细文章介绍如何利用 Kestrel 创建网络服务,作者则聚焦于 RPC 框架的实现。作者提供了 RPC 框架 SatelliteRpc 的 Github 开源链接,但提醒仅作为学习使用。文中还包括了框架的编译环境、目录结构,并展示了框架的客户端服务示例。

[超实用插件]在 Visual Studio 中查看 EF Core 查询计划

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

EFCore.Visualizer 是一个支持在 Visual Studio 中查看 EF Core 查询计划的工具,有利于开发者分析和优化数据库查询性能。工具目前仅支持 SQL Server 和 PostgreSQL 数据库,并要求 Visual Studio 版本在 17.9.0 以上且 EF Core 版本为 7 或更新。EFCore.Visualizer 可以通过 VS 插件市场进行安装,并只能用于检查 IQueryable 变量的查询计划。本项目代码开源,已收录到 C#/.NET/.NET Core 优秀项目和框架精选中,同时作者还维护一个技术社区,供.NET 开发者交流和学习。

ASP.NET Core MVC 应用模型的构建[4]: Action 的选择

https://www.cnblogs.com/artech/p/18031074/mvc_app_model_4

ControllerModel 中的 Actions 属性包含表述有效 Action 方法的 ActionModel 对象集合。有效的 Action 方法需要是公共的、非抽象、非泛型、非静态方法,并且不能是从 Object 类型继承的方法和 IDisposable 接口的 Dispose 实现。ActionModel 实现了多个接口,其中包括 ICommonModel、IFilterModel、IApiExplorerModel 等,还定义了多个跟 Action 方法相关的属性,例如 Filters、ApiExplorer、Parameters、Selectors、Attributes 等,用于记录过滤器、API 探索信息、参数、选择器和标注在 Action 方法上的特性。通过示例说明了 DefaultApplicationModelProvider 对 ActionModel 构建规则的应用。

ASP.NET Core MVC 应用模型的构建[2]: 定制应用模型

https://www.cnblogs.com/artech/p/18031077/mvc_app_model_2

本文系统地介绍了描述 MVC 应用模型的 ApplicationModel 类型及其相关的模型节点类型,如 ControllerModel、ActionModel 和 ParameterModel。文章着重阐述了 DefaultApplicationModelProvider 如何提取和设置元数据,并深入探讨了几个重要的接口,包括 IPropertyModel、ICommonModel、IFilterModel 和 IApiExplorerModel 等,这些接口帮助理解应用模型的层次结构和各个模型节点的作用。此外,还介绍了自定义 IApplicationModelProvider 和 IApplicationModelConvention 的方法。

骚操作之 持有 ReadOnlySpan 数据

https://www.cnblogs.com/fs7744/p/18043193

ReadOnlySpan<T> 是现代高性能操作的基石,虽然它受到一定限制以确保安全性,但本文讨论了如何通过使用指针等手段来在安全限制之外操作 ReadOnlySpan<T>Span<T>。作者展示了如何在类中创建与 ReadOnlySpan<T>结构相似的结构,并将Span<T> 转换为 Memory<T>,尽管这些方法涉及高风险操作,作者提醒开发者在使用时要谨慎。

C#程序全局异常处理—WPF 和 Web API 两种模式

https://www.cnblogs.com/huangqian/p/18036541

本文概述了在 C#的 B/S 结构项目中采用的全局异常处理方法。文章首先介绍了针对 Web API 项目如何通过自定义全局异常过滤器 AppExceptionFilterAttribute 来集中处理异常,其中包括通过 Override 的 OnException 方法来实现。此外还提出了使用 SkipFilterAttribute 来标记那些不需要经过异常过滤器处理的特定方法。通过这些技术可以帮助开发者更好地管理和记录程序中的未处理异常。

ASP.NET Core MVC 应用模型的构建[1]: 应用的蓝图

https://www.cnblogs.com/artech/p/18031078/mvc_app_model_1

文章讲述 ASP.NET Core MVC 框架如何将 Action 方法映射为路由终结点,并通过应用模型来构建 Action 元数据。应用模型不仅是构建元数据基础,还能自动生成 API 文档和客户端代码。文章从整体设计、ApplicationModel、IApplicationModelProvider 等方面详细介绍了构建应用模型的过程。

在 Winform 界面中使用自定义控件,丰富界面的效果处理

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

《SqlSugar 开发框架》中提到 Winform 界面开发可使用自定义用户控件提高界面统一性与便利性,如分页和附件显示控件。文章回顾了 Winform 中自定义控件的使用,展示了如何创建、添加属性和事件处理,以及动态添加控件到布局中。同时介绍了当用户控件数量过多可能会引起性能问题。为了处理事件通知,可以使用 MediatR 实现事件总线,允许跨平台的消息传递与处理的解耦。

.NET 高级调试之 sos 命令输出看不懂怎么办

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

这篇文章介绍了.NET 开发者如何使用 WinDbg 进行高级调试,通过具体示例讲解了如何分析线程列表中的 lockcount 列,以及它是如何与源码的 m_dwLockCount 字段关联的。文章还展示了相关源代码链接,并通过源码分析和测试代码示例,向读者展示了如何模拟产生高 lockcount 值的情况。

Taurus.MVC WebMVC 入门开发教程 5:表单提交与数据验证

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

本文是 Taurus.MVC WebMVC 教程的第五篇,讲解了在 Web 开发中如何处理表单提交和数据验证。首先指导创建含表单的视图,接着更新控制器以处理提交的数据,并提出如何进行数据验证的方法论。通过代码示例,展示了接收数据、数据验证及验证成功与失败的不同处理逻辑,并最终通过运行应用程序来确认表单数据已成功被获取。整篇文章是系列教程中的一部分,旨在辅导初学者如何在 Taurus.MVC 框架下进行 WebMVC 开发。

AntSK:打造你的本地 AI 知识库——离线运行详细教程

https://www.cnblogs.com/xuzeyu/p/18049860

AntSK 是一个开源的工具,可以离线运行 AI 知识库对话和查询。使用 LLamaSharp 技术,配合本地 gguf 格式模型,不依赖于网络或 OpenAI 的 API。配置过程简单,支持聊天和语义嵌入两种功能。支持本地导入文档到知识库,提高答案的相关性和准确性。文章最后还提供了交流群信息和 GitHub 项目地址,鼓励读者参与交流和探讨。

C# 4.8 实现 Windows 定时任务计划(Task Scheduler)

https://www.cnblogs.com/INetIMVC/p/18040041

这篇文章描述了作者如何动态创建 Windows 定时任务计划,首先定义了一个存储任务配置的类 TaskSchedulerConfig,其中包括引用程序路径、任务名称、说明、执行周期、开始时间范围、月和周的执行日期等属性。接着提供了两个方法,用于将数字转换为对应的周一至周日和限定每月执行日期只能在 1-28 号之间。最后通过 Main 方法读取配置文件,反序列化为 TaskSchedulerConfig 对象,进行任务的动态创建。

.NET 全能 Cron 表达式解析库(支持 Cron 所有特性)

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

TimeCrontab 是一个.NET 类库,可解析 Cron 表达式,支持所有 Cron 特性。具有超高性能、易拓展、小巧无第三方依赖、开源跨平台等优点,并有丰富的单元测试,支持.NET Framework 3.5 及以上版本;能通过 NuGet 包安装。提供了快速入门示例,并有在线 Cron 表达式生成器。项目已被收录于 C#/.NET/.NET Core 优秀项目和框架精选,并推荐加入 DotNetGuide 技术社区交流。

使用 OpenTelemetry 进行监控

https://www.cnblogs.com/azrng/p/18048851

Prometheus、Grafana、Node Exporter 和 Alertmanager 是一组监控和可视化系统性能的开源工具。Prometheus 是监控和警报工具,由 SoundCloud 开发并加入 CNCF。Grafana 是数据可视化平台,支持多种数据源。Alertmanager 处理和管理告警,与 Prometheus 集成。文章还介绍了在.NetCore 项目中如何通过 NuGet 包集成 Prometheus 监控,以及如何使用 Docker 部署监控工具和可视化程序。

Taurus.MVC WebMVC 入门开发教程 2:一个简单的页面呈现

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

本篇教程介绍了如何使用 Taurus.MVC 框架创建一个控制器和视图以呈现网页。首先创建一个‘HomeController’类,定义首页、关于和联系方法。然后,在‘Views’文件夹下创建对应的 HTML 视图。最后,运行应用程序,通过配置'Mvc.DefaultUrl'可以设置默认访问页。本文是教程系列中的一部分,旨在引导读者了解和使用 Taurus.MVC 框架进行 Web 开发。

在 Avalonia 项目中使用 MediatR 和 MS.DI 库实现事件驱动通信

https://www.cnblogs.com/Dotnet9-com/p/18049805

本文介绍了 AvaloniaUI 和 MediatR 框架在.NET 中的应用,讲解了 MediatR 的基本用法和如何在 Avalonia 项目中结合 Microsoft 的依赖注入库实现模块间通信。文章详细介绍了配置容器和注册服务的步骤,并且给出了代码示例。

Taurus.MVC WebMVC 入门开发教程 7:部分视图和页面片段(结束篇)

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

这个系列包括了七篇关于 Taurus.MVC 框架的 WebMVC 入门教程,涵盖了从环境配置、页面呈现、数据绑定、列表绑定、表单提交、数据验证,到路由配置、部分视图和页面片段等多个方面。第七篇详细介绍了如何通过使用部分视图和页面片段提高代码复用与可维护性。文中通过具体代码示范了创建和使用部分视图来组织页面结构,例如用于显示页脚的 foot.html,以及高级用法如统一定义页面 head 部分的 myhead.html。

以解析 csv 数据为例,讨论 string、char[]、stream 不同类型来源是否能进行高性能读取解析封装可能性

https://www.cnblogs.com/fs7744/p/18038661

文章主要介绍了对不同类型数据进行高性能统一抽象的方法,通过对 1 万行 CSV 数据的性能测试,证明了使用 string 类型进行 RFC4180 标准解析的性能高于 StringReader 和 CsvHelper。性能基石是使用ReadOnlySpan<T>优化内存管理和字符比较。文中还讨论了数据类型多样性和类型归类,暗示通过高复杂度抽象能兼容各种数据类型。

项目需要实现国际化?不妨来试试它

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

LinguaNex 是一个使用 Blazor 开发的多语言国际化工具,支持多语言资源的配置、关联、批量导入(JSON 文件)、自动翻译(包括百度、有道、腾讯、阿里、AI 翻译),以及 Json、xml、toml、ts 和 properties 格式的资源文件导出。它要求运行在.NET 8 环境,使用 Redis 和可选的 RabbitMQ,数据库采用 EF Core SQLLite。LinguaNex 支持通过 API 或 SignalR 等方式接入,以便进行国际化资源的即时更新和管理,同时提供了.NET、Java、JavaScript 的 SDK 供不同平台的项目接入。

【XInput】手柄模拟鼠标运作之 .NET P/Invoke 和 UWP-API 方案

https://www.cnblogs.com/tcjiaan/p/18048489

老周在.NET 中使用 XInput API 模拟鼠标和键盘操作。文章介绍了在 64 位系统上正确导入 INPUT 结构的关键步骤:要设置正确的字节偏移。他定义了一系列枚举用于鼠标和键盘事件,解释了将 StructLayoutAttribute 的 LayoutKind 设置为 Explicit 的重要性,并展示了如何导入 SendInput 函数和 XInput 函数。

如何在 C#中解析 Excel 公式

https://www.cnblogs.com/powertoolsteam/p/18025530

葡萄城公司的 GcExcel 是一个服务端高性能表格组件,能够解析 Excel 中的公式并进行修改。它适用于当 Excel 公式无法满足大数据量或复杂场景需求时,通过编程的方式完成数据计算和分析。该组件支持动态数组公式,通过 C#(.NET Core)项目创建工作簿,提取和解析公式,进而修改公式中的特定参数,如替换销售代表姓名。步骤包括使用 NuGet 安装 GcExcel,初始化数据,以及通过公式解析器和语法树打印出公式结构。

记一次 WPF 集成 SemanticKernel+OneAPI+讯飞星火认知大模型实践

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

OneAPI 是一个开源的接口管理与分发系统,能够支持包括 Azure、Anthropic Claude、Google PaLM 2 & Gemini 等在内的多款大型语言模型,并提供 Docker 镜像进行一键部署。用户可以基于 SQLite 或 MySQL 数据库进行部署,设定端口与时间区后,可在本地 3000 端口登录并配置使用。OneAPI 允许用户添加自己的大模型密钥和令牌,通过 Postman 等工具可以测试服务的可用性。此外,文章还介绍了如何创建一个基于 Semantic Kernel 的 WPF 项目,该 SDK 支持将现有代码与大型语言模型结合,用户需创建一个类来修改请求地址,以实现与星火大模型的对话。

C#的托盘窗体显示与隐藏效果 - 开源研究系列文章

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

博主分享了关于 C# Winform 窗体显示与隐藏效果的编码经验,并提供了源码下载链接。文章内容包括项目目录介绍,代码功能说明(包括窗体覆盖判断与显示判断),运行界面演示,使用方法(包含 FormHelper 类的使用),以及源码下载地址。博主也鼓励读者下载代码亲自体验并提出改进建议。

Taurus.MVC WebMVC 入门开发教程 6:路由配置与路由映射

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

本文是 Taurus.MVC WebMVC 系列教程的第六篇,主要讲解如何在 Taurus.MVC WebMVC 中配置和映射路由。文章首先解释了路由及其在 WebMVC 中的作用,然后通过示例代码详细展示了如何使用特性配置方法来自定义控制器和操作方法的路由映射,并提到可以在需要时动态改变路由。此外,文章也提到了运行应用程序、测试路由映射效果的步骤,最后附上了教程的系列目录大纲。

【Azure APIM】验证 APIM 删除后的恢复步骤

https://www.cnblogs.com/lulight/p/18045084

如果在 Azure 门户中不小心删除了 API Management 资源,可以通过 Azure 门户的"一键恢复"功能或使用 API 恢复在 48 小时内被删除的资源。恢复步骤包括:使用 API 列出被删除的 API Management 实例信息、调用恢复接口并等待大约 45 分钟至 1 小时。软删除期间无法重建相同名称的服务,并且在 48 小时后若未恢复系统会自动永久删除资源。

Taurus.MVC WebMVC 入门开发教程 4:数据列表绑定 List<Model>

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

本教程介绍了如何在 Taurus.MVC WebMVC 框架中实现数据列表的绑定。具体步骤包括:更新 Model 类以包含多个数据项的列表,更新控制器以支持向视图传递 User 对象的列表,以及更新视图以显示每个 User 对象的信息。文章还讲解了如何实现循环嵌套,以显示复杂的分类和子项数据,并提供了在框架后台管理中具体实现嵌套循环的示例。

【Openxml】如何为 OpenXml 元素创建超链接

https://www.cnblogs.com/ryzen/p/18047555

OpenXml 超链接功能主要有跳转页面(如跳转到 PPT 的指定页面)、打开文件(包括本地文件及 Office 支持的文档)和打开网页三种类型。示例中演示了如何为 PPT 添加超链接,包括设置跳转到指定页面的超链接、打开下一页的超链接、打开本地文件的超链接以及设置打开网页链接的超链接,并提供了详细的 C#代码实现。

Taurus.MVC WebMVC 入门开发教程 3:数据绑定 Model

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

本文是 Taurus.MVC WebMVC 入门开发教程的第三篇,讲解了如何进行数据绑定。内容包含创建模型类 User.cs,更新 HomeController 以支持数据绑定,并在视图 Index.html 中使用${属性名称}CMS 语法将页面元素与模型属性绑定。还提到了另一种不使用 Model 的数据绑定方法,即使用 View.KeyValue.Add(key,value)。最后通过运行应用查看数据绑定效果。

C#的系统菜单添加自定义项 - 开源研究系列文章

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

这篇文章介绍了如何在 C#应用程序系统菜单中添加自定义项的方法,并提供了示例代码和运行效果截图。作者提供了完整的源码下载链接,并建议读者根据需求自行修改代码。文章还提到,如果窗体有隐藏操作,显示窗体时需要重新调用代码添加菜单项。

Avalonia 跨平台框架中如何以正确的姿势使用 OpenGL ES 渲染。

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

本文记录了作者在 Avalonia 框架中使用 OpenGL ES 的经历。ANGLE 项目让 OpenGL ES 应用能够转换至不同的图形 API 上,而 Avalonia 则利用 SkiaSharp 和 ANGLE 来实现 OpenGL ES 支持,实现跨平台 UI 开发。文章提供了在 Avalonia 中集成 OpenGL ES 的示例代码,并指出需要注意 OpenGL ES 上下文的创建和线程问题,以及支持的扩展功能。

主题

版本 1.5 - Windows 应用程序 SDK 的稳定通道发行说明 - Windows 应用程序

https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-15

Windows App SDK 1.5 已发布。

此版本包括对 XAML Island 中关闭行为的更改、添加基于 WebView2 和 Azure Map 的地图控件、添加 SelectorBar 控件、对 CommandBarFlyout 中的主要命令标签的支持、对 WebView2 中的自定义环境/选项的支持,以及...包括改进,例如与 NET 8 的兼容性。

  • 发布 v1.5.0·microsoft/WindowsAppSDK

版本 1.4.5 - Windows 应用程序 SDK 稳定通道发行说明 - Windows 应用程序

https://learn.microsoft.com/ja-jp/windows/apps/windows-app-sdk/stable-channel#version-145-14240211001

Windows App SDK 1.4.5 已发布。

此版本修复了多个错误,例如挂起和崩溃。

2.7.27 版 · StackExchange/StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.7.27

StackExchange.Redis 2.7.23、2.7.27 已发布。

此版本添加了向连接库名称添加后缀的功能,以及即使在空闲时也可以执行保活检查的选项。

  • 发布 2.7.23 · StackExchange/StackExchange.Redis

NCrunch 博客 | NCrunch V5 现已推出

https://blog.ncrunch.net/post/NCrunch-V5-Now-Available.aspx

NCrunch V5 已发布。

此版本引入了对 JetBrains Rider 和运行时数据检查 (RDI) 功能的支持。

运行时数据检查是一项功能,允许您在测试执行期间捕获各种数据并根据该数据分析代码行为。

  • NCrunch 博客 | 运行时数据检查简介

文章、幻灯片等

Visual Studio Enterprise 中的代码覆盖率功能 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/code-coverage-features-in-visual-studio-enterprise/

引入 Visual Studio Enterprise 代码覆盖率功能的新功能和性能改进。

使用 Entity Framework Core 进行逻辑删除 - Qiita

https://qiita.com/filunK/items/8485c8fcc38fae5d2b40

如何使用 Entity Framework Core 中的拦截器从数据库中的表实现逻辑删除(删除标志)。

C#中获取字符串表达式的计算结果 - Qiita

https://qiita.com/hyukix/items/ac26decee3bb75b32f75

将库与从给定字符串表达式获取计算结果的函数在行为和性能方面进行比较。

Rider 2024.1 EAP 7:C# 更新、新产品图标、捆绑的 Kubernetes 插件 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/03/01/rider-2024-1-eap-7/

Rider 2024.1 EAP 7 已发布。

此版本包括改进的 C# 12 支持、新图标和 Kubernetes 插件捆绑等更改。

Rider 2024.1 EAP 6:更新了新项目对话框、自定义命名规则和 VCS 改进 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/02/27/rider-2024-1-eap-6/

Rider 2024.1 EAP 6 已发布。

此版本包括新的项目对话框更新、Blazor WASM 的热重载调试、改进的 C# 支持、性能改进、对内存分析的冻结对象堆支持等等。

ReSharper 2024.1 EAP 6:迄今为止功能最丰富的更新 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/02/27/resharper-2024-1-eap-6/

ReSharper 2024.1 EAP 6 已发布。

此版本包括更快的重命名、改进了 C# 异步方法中一次性资源的处理、代码格式化和反编译器改进、对 dotMemory 内存分析中的冻结对象堆的支持等等。### 将 Google 的 Magika 从 Python 移植到 C# 的过程(第 1 / 7 天)- Qiita https://qiita.com/mkht/items/64b02b8648266d40380a

一个关于尝试将 Google 基于机器学习的文件类型确定工具 Magika 从 Python 移植到 C# 的故事。我们目前正在执行一系列移植,包括使其成为加载和执行模型的命令行工具。

params collection

https://ufcpp.net/blog/2024/3/params-collections/

关于 params 集合,它允许您为 params 指定除数组之外的任何内容,C# 13 正在考虑这一点。

如何使用 iOS 框架构建 NuGet 包以进行 .NET MAUI 开发

https://www.dynamsoft.com/codepool/ios-ipados-dotnet-maui-mrz-recognition.html

创建包含 iOS Framework for .NET MAUI 的 NuGet 包的说明。

使用 Stride 创建和共享组件 - Qiita

https://qiita.com/skitoy4321/items/ba6fdfedf03d444cac40

如何使用 Stride(游戏引擎)创建组件,以及使用 NuGet 包时需要注意的事项。

将 Unix 域套接字与 ASP.NET Core 和 HttpClient 结合使用

https://andrewlock.net/using-unix-domain-sockets-with-aspnetcore-and-httpclient/

如何通过 UNIX 域套接字与 ASP.NET Core 服务器和 HttpClient 进行通信。

Visual Studio 全年回顾 (2023) - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studios-full-year-in-review-2023/

Visual Studio 2023 年回顾的摘要文章。

快速且流畅:Blazor 故事 - .NET 博客

https://devblogs.microsoft.com/dotnet/the-fast-and-the- Fluent-a-blazor-story/

Fluent UI Blazor 库简介。

它涉及基础 FAST(Web 组件)、其协作以及 Aspire 仪表板中使用的其他内容。

使用 ASP.NET Core 的 Shoelace Web 组件

https://khalidabuhakmeh.com/shoelace-web-components-with-aspnet-core

将 Shoelace Web 组件与 ASP.NET Core 的 Razor Pages 结合使用的说明。

.NET 性能优化:延迟分配

https://petabridge.com/blog/net-performance-deferred-allocation/

解释通过充分利用 Phobos 中的延迟分配来测量 Akka.NET 来抑制性能下降的方法。

.NET MAUI 社区工具包 2023 年亮点 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-maui-community-toolkit-2023-highlights/

回顾 .NET MAUI 社区工具包的 2023 年更新和活动。

32 位 .NET Framework 项目的 WinForms 设计器选择 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/winforms-designer-selection-for-32-bit-net-framework-projects/

关于 Visual Studio 2022 v17.9 中引入的 .NET Framework 中 Windows 窗体的进程外设计器(预览版)。

本文讨论了进程外设计器的局限性以及加载不兼容项目时进行切换的路线图。

ASP.NET Core 的 Docker Init 与 VS 或 VS Code 扩展的比较

http://thedatafarm.com/docker/docker-init-for-asp-net-core-compared-to-vs-or-vs-code-extensions/

Docker 内置“docker init”生成的 ASP.NET Core 项目与 Visual Studio 或 .NET SDK 生成的项目有何不同。

本文比较了 .dockerignore、Dockerfile 和 docker-compose.yml 之间的差异。

我想在 .NET 8 的 ASP.NET Core Blazor 中抑制双击

https://zenn.dev/microsoft/articles/blazor-dotnet8-do-not-double-click

如何在.NET 8 的 ASP.NET Core Blazor 中抑制双击按钮等。

文章还提到了使用表单的实现。

将 Polly v8 与 HttpClientFactory 结合使用

https://truestorydavestorey.medium.com/using-polly-v8-with-httpclientfactory-3f9a64359990

如何将 Polly v8 与 HttpClientFactory 结合使用。

本文还解释了从 v7 迁移到 v8 所需的更改。

neue cc - R3 - C# 响应式扩展的新现代重新实现

https://neue.cc/2024/02/27_R3.html

R3 的解释,一个基于现代视角重新设计/重新实现 Reactive Extensions 的库。

本文解释了重建 R3 背后的设计理念以及它的现代感。

使用 AWS Lambda 从 .NET 6 迁移到 .NET 8 时我做了什么 - Qiita

https://qiita.com/kaz-matsubara/items/259de11eb3f30f9bda1f

关于将在 .NET 6 中实施的 AWS Lambda 项目迁移到 .NET 8。

[WPF] 只能输入数值的文本框

https://zenn.dev/nuits_jp/articles/2024-02-25-numeric-text-box

如何在 WPF 中实现一个只允许输入数值的 TextBox。

Akka.NET Actors 中的 Async / Await 与 PipeTo>T>

https://petabridge.com/blog/async-await-vs-pipeto/

Akka.NET Actor 中 async/await 和 PipeTo 在行为和性能方面的比较。

库、存储库、工具等。

GummyCat - 可视化 .NET 垃圾收集器的活动

https://minidump.net/gummycat/

一个显示.NET 堆的内存布局并可视化 GC 操作的工具。

使用 dotnet-gcstats 查看您的 GC 统计信息!

https://chnasarre.medium.com/view-your-gcs-statistics-live-with-dotnet-gcstats-e670ce949bd9

用于查看 GC 统计信息的命令行工具。

网站、文档等

推文

关于锁定类型支持作为 C# 13 预览功能合并到 Visual Studio 17.10 Preview 2 中的故事。

https://x.com/jcouv/status/1764710194381283497?s=12&t=ggvrrZ7oLogHyNoIGNgjbw

5b1af499ebcf1320cfcf7d09f1d4f0d6.png
image-20240305205049508

如何为只读连接指定“AsNoTracking”。https://x.com/dave_dotnet/status/1764294153851060696?s=12

a39ed2d0279b26cff12b08f97c0378c5.png
image-20240305205109621

一个关于能够在 Visual Studio 中基于每个解决方案覆盖设置的故事。https://x.com/mkristensen/status/1763258040890134701?s=12

87216194549a573b08f723a32a02efcd.png
image-20240305205131809

Visual Studio 编辑器中的斜体支持。https://x.com/mkristensen/status/1761140571970863541?s=12

ffb2171cb40fb1ecffcf3f11c66af51e.png
image-20240305205157187

版权声明

  • 国内板块由 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,欢迎大家加入。

ede4afc371c4ca7cdefcf32d58f49989.png
image-20230703203249615
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值