.NET周报【10月第2期 2022-10-17】

2022-12-01,

主题

宣布 .NET 7 发布候选版本 2 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-2/

.NET 7 RC2 已经发布。

.NET 7 RC2 已经发布。

文章除了链接到过去关于.NET 7的新特性文章之外,还介绍了一些变化:

System.Text.Json 源代码生成时重新启用反射回退
用于正确使用新的API的分析器
用于正确实现泛型Math接口的分析器
防止IntPtr和UIntPtr的内置操作符中的行为更改

发布 Entity Framework Core 7 候选版本 2: JSON Columns - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-ef7-release-candidate-2/

Entity Framework Core 7 RC2 已经发布。

此版本包含 GA 中包含的所有功能,并修复了 RC1 中的 80 多个问题。

本文详细介绍了Entity Framework Core 7 中的新功能:映射到 JSON 列,包括如何定义和查询

ASP.NET Core 在 .NET 7 候选版本 2 中的更新- .NET Blog

https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-rc-2/

有关在 .NET 7 RC2 中更新 ASP.NET Core的文章。

此版本包括以下新功能,文章介绍了每个新功能:

改进的输出缓存
使用msal.js(MSAL)的动态身份验证请求
Blazor WebAssembly 身份验证诊断的改善
WebAssembly多线程 (試験的)

宣布 .NET MAUI 支持 Xcode 14 和 iOS 16 - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-maui-xcode14/

.NET MAUI 支持 Xcode 14 和 iOS 16。

Visual Studio 2022 和 .NET 6 中 Xcode 14 和 iOS 16 支持的第六个 .NET MAUI 服务版本。 Visual Studio 2022 17.3 或 17.4 预览 3,适用于 Mac 的 Visual Studio 支持 17.4 预览 3。

请注意,.NET 7 MAUI 中的 Xcode 14 支持将在以后(一周后)提供,因此 .NET 7 的 MAUI 是最新的 RC1。

本文介绍了您可以从 Windows 设备连接到 Mac 以开发 iOS 应用程序。

.NET7中 System.Text.Json 有什么新东西 - .NET Blog

https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-7/

介绍 .NET 7 系统.文本.Json 中的新增功能。

自定义契约

IJsonTypeInfoResolverModifiers 使用 和 自定义序列化/反序列化过程
类型层次结构
JsonDerivedType 特性来序列化/反序列化继承类型
JsonPolymorphic 特性 JsonTypeInfo 来自定义多态性
必需成员 (required)
添加JsonSerializerOptions.Default
添加Utf8JsonReader.CopyString
源代码生成的改进
支持IAsyncEnumerable<T>
支持JsonDocument
支持DateOnly, TimeOnly
性能的改进
还有一些破坏性变更

.NET 2022年10月更新 – .NET 6.0.10 和 .NET Core 3.1.30 - .NET Blog

https://devblogs.microsoft.com/dotnet/october-2022-updates/

发布了 .NET 6.0.10 和 .NET Core 3.1.30

此版本包括一些错误修复和改进,以及针对 NuGet 漏洞的安全修补程序。

.NET Framework 2022年10月 安全和质量汇总更新 - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-framework-october-2022-security-and-quality-rollup/

.NET Framework 于 2022 年 10 月发布了安全和累积更新。

此版本包括一些问题修复和可靠性改进。 不包括新的安全修补程序。

Azure Static Web Apps对.NET Core 3.1的扩展支持将于2022年12月3日结束 | Azure updates | Microsoft Azure

https://azure.microsoft.com/en-us/updates/staticwebappsdotnet3deprecation/

Azure Static Web Apps 的 .NET Core 3.1 扩展支持将于 2022 年 12 月 3 日结束。

由于 Azure 静态 Web 应用函数在 Azure 函数上运行,因此需要迁移到使用 .NET 6 的运行时 v4 才能继续接收支持和安全更新。

开发中:对.NET 7的支持 | Azure updates | Microsoft Azure

https://azure.microsoft.com/en-us/updates/in-development-day-0-support-for-net-7/

Azure App Service 的 .NET 7 支持将很快发布。

Cake v2.3.0 发布

https://cakebuildnet.medium.com/cake-v2-3-0-released-b60746a00555

Cake v2.3 已发布。

包括改进的全局脚本缓存和命令别名。

文章、幻灯片等

【C#】隐藏在控制台应用程序中输入的字符,并读取行 - Qiita

https://qiita.com/admiralhetare/items/2de677d90c5ce0ab2659

了解如何实现单行隐藏输入(如密码输入)。

使用FluentValidation向强类型配置对象添加验证

https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-using-flentvalidation/

ASP.NET Core 上使用 Microsoft.Extensions.Configuration 在配置中进行类型化设置时,如何在“当前验证”中验证设置的信息。

使用Playwright对Blazor App 进行端到端测试 [Part 1]

https://medium.com/younited-tech-blog/end-to-end-test-a-blazor-app-with-playwright-part-1-224e8894c0f3

介绍如何使用Playwright对Blazor App 进行端到端测试。

List 在 C#: 实现和功能

https://pvs-studio.com/en/blog/posts/csharp/0995/

.NET 的 List<T> 的实现和功能

[.NET 6] AWS SSM Parameter Store在Generic Host使用

https://zenn.dev/shimat/articles/affbb2ece0ace8

了解Generic Host应用程序如何(如 ASP.NET 核心)使用 AWS 系统管理器参数存储中的值。

Entity Framework Core 7: 强类型ID与自动增量列一起使用

https://david-masters.medium.com/entity-framework-core-7-strongly-typed-ids-together-with-auto-increment-columns-fd9715e331f3

有关在Entity Framework Core 7中对相应的自动增量列使用强类型的 ID 的文章。

Blazor 生命周期事件: 简化版

https://betterprogramming.pub/blazor-life-cycle-events-oversimplified-4b8e1bd5fa4b

文章介绍了 Blazor 的生命周期事件。

在Docker中开发ASP.NET核心应用程序-实时重新编译

https://tymisko.hashnode.dev/developing-aspnet-core-apps-in-docker-live-recompilation

有关在 Docker 中开发 ASP.NET Core 应用程序的文章。

演示如何装载本地源代码并在容器中生成和运行它。

[ASP.NET Core 6] 在模型绑定中使用记录时的注意事项

https://zenn.dev/shimat/articles/ef69b034cd0499

文章总结了在.NET 6中ASP.NET Core中模型绑定record类型时应注意的属性(FromFormJsonPropertyName等)。

在AWS Lambda上优化.NET的经验之谈

https://dev.to/lambdasharp/lessons-learned-on-optimizing-net-on-aws-lambda-2n5m

使用AWS Lambda运行.NET应用程序的优化要点总结。

Stripe支付网关在ASP .NET Core Web API中的实现

https://juldhais.net/stripe-payment-gateway-implementation-in-asp-net-core-web-api-359ad44e2b47

关于如何在ASP.NET Core Web API中使用Stripe支付网关API的总结。

公开演讲及PPT

Victor Nicollet - ILPack:将程序集保存到磁盘 (Dotnetos Conference 2022) - YouTube

https://www.youtube.com/watch?v=t_kBLD5D3_4

关于ILPack的介绍,这是一个用于在.NET Core及以上版本中动态存储程序集的库。

Kevin Gosse - 使用NativeAOT将C#推到新的领域 (Dotnetos Conference 2022) - YouTube

https://www.youtube.com/watch?v=eE0AbO5_XSw

介绍在.NET中用NativeAOT创建本地库做的许多有趣的事情(如.NET分析器、LLDB扩展、.NET中的GC)。

Krzysztof Stolarz - 通往.NET 6的道路:希望和绝望的迁移故事 (Dotnetos Conference 2022) - YouTube

https://www.youtube.com/watch?v=ttsowlY55KM

关于一个具有高负荷实时性的服务器应用程序迁移的案例研究的介绍。

图书、开源库、工具等

chrisnas/Win-pprof: Windows .pprof viewer

https://github.com/chrisnas/Win-pprof

用于查看.pprof文件的Windows应用。

如果您必须查看.prof文件,https://t.co/LktSgqheaP可以帮助:
-dotnet pprof:CLI转储.prof文件
-win pprof:GUI导航到.prof;关注采样、值、标签和调用堆栈

我';我共享工具I';我每天都用它来查看我们的个人资料pic.twitter.com/FPlpRFsCtn

—Christophe Nasarre(@chnasarre)2022年10月11日

网站、文件等。

推特

下面是分层编译在.NET中的大致工作原理。现在猜猜我为什么向调用计数存根添加了两条额外的指令(大小回归!)并在web应用程序中h获得到这些好处? 提示:所有对B()的调用都命中同一内存位置,以减少B()调用计数器pic.twitter.com/iCIpyF8OMw

—Egor Bogatov(@EgorBo)2022年10月11日

结论:关于.NET分层编译工作原理的粗略图示,以及为什么要增加这两个额外的调用,对Web应用程序有什么好处。 这似乎是为了减少在不同线程中执行同一方法时的缓存抖动,即从不同内核(或NUMA)访问同一内存位置。

深入研究

JIT: implement tail merging by AndyAyersMS · Pull Request #77103 · dotnet/runtime

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

版权

原文版权:mayuki

原文链接:https://github.com/mayuki/WeekRef.NET/blob/master/input/2022/2022-10-17.md

翻译版权:InCerry

翻译链接:https://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-10-17.md

.NET周报【10月第2期 2022-10-17】的相关教程结束。

《.NET周报【10月第2期 2022-10-17】.doc》

下载本文的Word格式文档,以方便收藏与打印。