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

主題

宣布 .NET 7 發佈候選版本 2 – .NET Blog

//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

//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

//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

//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

//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

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

發佈了 .NET 6.0.10 和 .NET Core 3.1.30

此版本包括一些錯誤修復和改進,以及針對 NuGet 漏洞的安全修補程序。

.NET Framework 2022年10月 安全和質量匯總更新 – .NET Blog

//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

//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

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

Azure App Service 的 .NET 7 支持將很快發佈。

Cake v2.3.0 發佈

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

Cake v2.3 已發佈。

包括改進的全局腳本緩存和命令別名。

文章、幻燈片等

【C#】隱藏在控制台應用程序中輸入的字符,並讀取行 – Qiita

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

了解如何實現單行隱藏輸入(如密碼輸入)。

使用FluentValidation向強類型配置對象添加驗證

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

ASP.NET Core 上使用 Microsoft.Extensions.Configuration 在配置中進行類型化設置時,如何在「當前驗證」中驗證設置的信息。

使用Playwright對Blazor App 進行端到端測試 [Part 1]

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

介紹如何使用Playwright對Blazor App 進行端到端測試。

List 在 C#: 實現和功能

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

.NET 的 List<T> 的實現和功能

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

//zenn.dev/shimat/articles/affbb2ece0ace8

了解Generic Host應用程序如何(如 ASP.NET 核心)使用 AWS 系統管理器參數存儲中的值。

Entity Framework Core 7: 強類型ID與自動增量列一起使用

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

有關在Entity Framework Core 7中對相應的自動增量列使用強類型的 ID 的文章。

Blazor 生命周期事件: 簡化版

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

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

在Docker中開發ASP.NET核心應用程序-實時重新編譯

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

有關在 Docker 中開發 ASP.NET Core 應用程序的文章。

演示如何裝載本地源代碼並在容器中生成和運行它。

[ASP.NET Core 6] 在模型綁定中使用記錄時的注意事項

//zenn.dev/shimat/articles/ef69b034cd0499

文章總結了在.NET 6中ASP.NET Core中模型綁定record類型時應注意的屬性(FromFormJsonPropertyName等)。

在AWS Lambda上優化.NET的經驗之談

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

使用AWS Lambda運行.NET應用程序的優化要點總結。

Stripe支付網關在ASP .NET Core Web API中的實現

//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

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

關於ILPack的介紹,這是一個用於在.NET Core及以上版本中動態存儲程序集的庫。

Kevin Gosse – 使用NativeAOT將C#推到新的領域 (Dotnetos Conference 2022) – YouTube

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

介紹在.NET中用NativeAOT創建本地庫做的許多有趣的事情(如.NET分析器、LLDB擴展、.NET中的GC)。

Krzysztof Stolarz – 通往.NET 6的道路:希望和絕望的遷移故事 (Dotnetos Conference 2022) – YouTube

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

關於一個具有高負荷實時性的服務器應用程序遷移的案例研究的介紹。

圖書、開源庫、工具等

chrisnas/Win-pprof: Windows .pprof viewer

//github.com/chrisnas/Win-pprof

用於查看.pprof文件的Windows應用。

如果您必須查看.prof文件,//t.co/LktSgqheaP可以幫助:
-dotnet pprof:CLI轉儲.prof文件
-win pprof:GUI導航到.prof;關注採樣、值、標籤和調用堆棧

我’;我共享工具I’;我每天都用它來查看我們的個人資料pic.twitter.com/FPlpRFsCtn

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

image-20221018092541888

網站、文件等。

推特

下面是分層編譯在.NET中的大致工作原理。現在猜猜我為什麼向調用計數存根添加了兩條額外的指令(大小回歸!)並在web應用程序中h獲得到這些好處?🙃 提示:所有對B()的調用都命中同一內存位置,以減少B()調用計數器pic.twitter.com/iCIpyF8OMw

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

image-20221018092019967

結論:關於.NET分層編譯工作原理的粗略圖示,以及為什麼要增加這兩個額外的調用,對Web應用程序有什麼好處。 這似乎是為了減少在不同線程中執行同一方法時的緩存抖動,即從不同內核(或NUMA)訪問同一內存位置。

深入研究

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

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

版權

原文版權:mayuki

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

翻譯版權:InCerry

翻譯鏈接://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-10-17.md