2022-07-16: .NET 7 Preview 6, Rate Limiting API, .NET Core 3.1 EoS on December 13, 2022

Published on Saturday, 16 July 2022

トピックス

Announcing .NET 7 Preview 6 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-6/

.NET 7 Preview 6 がリリースされた。

このプレビューリリースでは型コンバーターの改善、JSON コントラクトのカスタマイズ、System.Formats.Tar API の更新、.NET プロジェクトテンプレートの制約、コード生成によるパフォーマンス改善などが含まれている。

型コンバーター (TypeConverter) では新たに DateOnly, TimeOnly, Int128, UInt128, Half といった型をサポートした。JSON コントラクトのカスタマイズではプロパティーのシリアライズの挙動をコンバーターなしでコントロールしたりといったことが可能となる。

System.Formats.Tar API にはグローバル拡張属性 (GEA) のサポートや複数のエントリー形式の混在のサポートが対応されている。

.NET プロジェクトテンプレートに制約の概念が導入され、OS やテンプレートエンジンホスト (.NET CLI や Visual Studio)、インストールされているワークロードといった条件を設定できるようになった。現在は CLI でのサポートのみで Visual Studio でのサポートも進めているとのこと。将来的には MSBuild のプロパティーに基づく制約などもサポートするとのこと。そのほか複数項目選択や終了コードの統一といった改善も含まれる。

ASP.NET Core updates in .NET 7 Preview 6 - .NET Blog

https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-6/

.NET 7 Preview 6 での ASP.NET Core のアップデートについてのアナウンス記事。

このプレビューリリースでは次の新機能や改善が含まれている。

  • リクエスト圧縮展開ミドルウェア
  • 出力キャッシュミドルウェア
  • レートリミットミドルウェアの更新
  • Kestrel での HTTP/2 上の WebSockets のサポート
  • Kestrel の多コアマシンでのパフォーマンス改善
  • W3CLogger での付加的なリクエストヘッダーのロギングのサポート
  • 空の Blazor プロジェクトテンプレート
  • WebAssembly での System.Security.Cryptography のサポート
  • Blazor カスタム要素 (Blazor custom elements) の非実験的な位置づけへの変更
  • Blazor の実験的な QuickGrid コンポーネント
  • gRPC JSON トランスコーディングの複数に分割されたパラメータ
  • MapGroup で多くの拡張メソッドをサポート

Announcing Entity Framework Core 7 Preview 6: Performance Edition - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-ef7-preview6/

Entity Framework Core 7 Preview 6 がリリースされたことに合わせてパフォーマンス改善についての記事。

記事では SaveChanges でのラウンドトリップの削減について、SQL Server での複数行の INSERT の改善といったパフォーマンスに関する改善を紹介している。

Announcing Rate Limiting for .NET - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-rate-limiting-for-dotnet/

.NET 7 で導入されるレートリミッターの API についての紹介記事。

記事では .NET 7 のレートリミッターがサポートするアルゴリズムと API について説明している。レートリミッターは「同時実行制限」「トークンバケット制限」「固定ウィンドウ制限」「スライディングウィンドウ制限」の4つのアルゴリズムを提供する。

API についてはそれぞれのアルゴリズムでの使用や、HttpClient と組み合わせた場合の使い方、ASP.NET Core のミドルウェアでの利用にも触れている。

.NET Core 3.1 will reach End of Support on December 13, 2022 - .NET Blog

https://devblogs.microsoft.com/dotnet/net-core-3-1-will-reach-end-of-support-on-december-13-2022/

.NET Core 3.1 が2022年12月13日でサポート終了となるというアナウンス。

2022年12月13日以降セキュリティー修正はリリースされなくなるため、.NET 6 (LTS) への移行が推奨される。またこれによってサポート終了後には Visual Studio 2019 および 2022 では .NET Core 3.1 コンポーネントのインストールがサポート外となりオプションに変更される。インストール済みのものや、手動でインストールした場合には引き続き利用できるが Visual Studio 2022 の .NET 6 への移行が推奨される。

.NET Framework July 2022 Security and Quality Rollup Updates - .NET Blog

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

.NET Framework の2022年7月のセキュリティーと累積アップデートがリリースされた。

このリリースでは新しいセキュリティー修正は含まれないが、6月のリリースが正しく累積されておらず、セキュリティー更新のいくつかが含まれていなかった問題が修正されている。

.NET July 2022 Updates – .NET 6.0.7 and .NET Core 3.1.27 - .NET Blog

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

.NET 6.0.7 と .NET Core 3.1.27 がリリースされた。

このリリースでは新しいセキュリティー修正は含まれておらず、不具合の修正や改善といったものが含まれるものとなっている。

Microsoft open sources Salus software bill of materials (SBOM) generation tool

https://devblogs.microsoft.com/engineering-at-microsoft/microsoft-open-sources-salus-software-bill-of-materials-sbom-generation-tool/

SBOM (ソフトウェア部品表) の生成ツールがオープンソースでリリースされた。

成果物をスキャンしてファイルや各種依存パッケージといった情報を SPDX 形式で出力することのできるツール。

アーティクル、スライドなど

What’s Coming for Blazor in .NET 7?

https://www.telerik.com/blogs/whats-coming-blazor-dotnet-7?dclid=CNH85ZbH-vgCFW6G6QUdOtoLHg

.NET 7 の Blazor で導入される新機能などをまとめて紹介している記事。

Minimal API Validation with FluentValidation

https://khalidabuhakmeh.com/minimal-api-validation-with-fluentvalidation

ASP.NET Core の Minimal API で FluentValidation を使用してパラメータ検証を行う方法についての記事。

neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

https://neue.cc/2022/07/13_Cancellation.html

非同期処理を実装する上で頻出する、CancellationToken を使用したキャンセルやタイムアウトを取り扱うためのパターンとプラクティスについての記事。

.NET MAUI(Android)でも、データをシェア(受信)したい!

https://zenn.dev/test_myname/articles/d856ed8e4d5fa3

.NET MAUI (Android) アプリケーションで外部のアプリケーションからデータを受け取る (Intent) 方法についての記事。

Firebase Push Notifications for Android and iOS Using Ionic and ASP.NET —A Complete Guide

https://dev.to/syncfusion/firebase-push-notifications-for-android-and-ios-using-ionic-and-aspnet-a-complete-guide-16bi

Ionic を使用した iOS/Android アプリケーションに ASP.NET Core アプリケーションから Firebase Push Notification で通知を送る方法について解説している記事。

[.NET 6] System.Text.Json.Nodes.JsonNode の一致を判定する

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

System.Text.Json で JSON をパースし JsonNode となったものを比較して同一の値を持つかどうかを判定する方法についての記事。

単純に JSON を文字列比較した場合はプロパティーの順番などでうまくいかないため、オブジェクトのプロパティー単位で比較していく必要がある。

Binding Lottie (or any other Swift framework with UI) in MAUI

https://dev.to/csaba8472/binding-lottie-or-any-other-swift-framework-with-ui-in-maui-543m

.NET MAUI (Android と iOS) で Lottie (アニメーションを再生する仕組み)を使用するバインディングを実装する方法についての記事。

VS2022 Performance Enhancements: Git Branch Switching - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/vs2022-performance-enhancements-git-branch-switching/

Visual Studio 2022 のプレビューでの Git のブランチ切り替えのパフォーマンス改善について。

ソリューションのの読み込みを回避したり、リロードは30%程度改善するといったことでパフォーマンスを大幅に向上しているとのこと。

Building our first Microsoft Orleans App

https://dev.to/willvelida/building-our-first-microsoft-orleans-app-489l

Orleans でクライアントとサーバーのプロジェクトを作ってみるというステップバイステップ記事。

.NET Debugger.Launch for macOS and Linux

https://khalidabuhakmeh.com/dotnet-debugger-launch-for-macos-and-linux

Debugger.Launch は Windows でのみ使用できるが macOS と Linux でも似たようなことをするにはどうすればよいかという記事。

IsAttached プロパティーは使用できるので起動時にアタッチするまで待機するというワークアラウンドになってしまうとのこと。

【C#】ループの最適化手法 ①配列編 ~境界値チェックと専用命令と~ - Qiita

https://qiita.com/Kujiro/items/fafd3468690a896139b3

配列、 List<T>Span<T> を使った要素の列挙のパフォーマンスをソースコードやアセンブリレベルで比較、解説している記事。

Customizing Controls in .NET MAUI - .NET Blog

https://devblogs.microsoft.com/dotnet/customizing-dotnet-maui-controls/

NET MAUI の既存のコントロールを拡張、カスタマイズする方法についての記事。

IEnumerable Debugger Visualizer Improvements - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/ienumerable-visualizer-improvements/

Visual Studio 2022 Preview で強化された IEnumerable のデバッガービジュアライザーの最新のアップデートについての記事。

フィルタリングや CSV エクスポート、Visual Studio に合わせたテーマといった機能が実装されたとのこと。

#JulyOT 15: .NET nanoFramework networking and Azure

https://dev.to/azure/julyot-15-net-nanoframework-networking-and-azure-2ng5

.NET nanoFramework でネットワーク通信を行い、Azure と接続する方法についての記事。

HTTPSのクライアントや Web サーバー、MQTT や SignalR といったものを使用する方法、Azure IoT サービスを呼び出す方法とったものを紹介している。

ライブラリ、リポジトリ、ツールなど

GitHub - usausa/azure-functions-extension: Azure Functions extension.

https://github.com/usausa/azure-functions-extension

Azure Functions でパラメータのモデルバインディングなどを提供する拡張ライブラリー。

サイト、ドキュメントなど

CUTT System:C#ベクトルプログラミング入門

https://www.cutt.co.jp/book/978-4-87783-524-8.html

System.Runtime.Intrinsics の SIMD サポートを使用して C# でベクトルプログラミングを行うことについての書籍。

ツイート

デバッグ時に R2R/NGEN イメージを読み込まないようにするオプションが 17.3 Preview 3 で追加されたという話。