2022-05-12: .NET 5 End-of-Life, Visual Studio 2022 17.2, .NET 7 Preview 4

Published on Thursday, 12 May 2022

2022年5月10日で .NET 5 のサポートが終了となりました。今後も引き続きセキュリティー更新などのサポートを受けるためには .NET 6 への移行が強く推奨されます。

トピックス

Visual Studio 2022 17.2 is now available! - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-2-is-now-available/

Visual Studio 2022 version 17.2 がリリースされた。

記事では 17.2 について以下のようなトピックを紹介している。

  • Source Link
    • アセンブリがソース情報を提供する場合 Go To Implementation (定義に移動) でソースコードに移動できる
  • Raw string literal
    • C# 11 プレビューの生の文字列リテラルのリファクタリング対応
  • Debugging collections
    • デバッグ時のコレクション (IEnumerable) に対する新しいビジュアライザーの導入
  • Razor editor
    • region やスニペットの対応
  • Web Live Preview for ASP.NET Framework
    • ASP.NET Web Forms のライブプレビューの向上
  • Azure Development
  • C++
  • Git tooling
    • 行ステージング (プレビュー機能) の対応
    • コミットグラフに対応することによるパフォーマンス向上
    • ブランチ切り替え時の UI 改善
  • LTS
    • 17.2 は LTSC リリースとなり、2024年1月9日までのサポート

17.2 がリリースされたことで Preview Channel は 17.3 をターゲットとすることとなり、そちらの Preview 1 もリリースされた。

Announcing .NET 7 Preview 4 - .NET Blog

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

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

ブログでは Preview 4 について以下のようなトピックを紹介している。

  • Microsoft.Extensions の nullable アノテーション
  • Observability
  • TimeStamp, DateTime, DateTimeOffset, TimeOnly へのマイクロ秒とナノ秒の追加
  • System.Text.RegularExpresssions の強化と新 API
  • Microsoft.Extensions.Caching のメトリクスの追加
  • Tar (アーカイブ) 操作の新 API の追加
  • On Stack Replacement (aka OSR)
    • 実行中のメソッドのコードを JIT 最適化されたコードに変更できる
  • Central Package Management

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

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

.NET 7 Preview 4 での ASP.NET Core のアップデートについての記事。

  • HTTP/2 パフォーマンス改善
    • ロックからスレッドセーフキューに変更したことで gRPC のストリーミングのスループットが大幅に向上
  • Minimal API の型付リザルト
    • IResult の実装型が公開されたことでテスタビリティが向上
  • Minimal API の OpenAPI 強化
  • Minimal API の結果として複数型の返却
  • ルートグループ
  • SignalR でのクライアントリザルト
    • サーバーからクライアントを呼び出して結果を受け取る
  • gRPC JSON トランスコーディング
    • gRPC を JSON の RESTful API として表現
  • トップレベル ステートメントの代わりに Program.Main を使用するプロジェクトテンプレートオプション
  • レートリミットミドルウェア

Announcing Entity Framework 7 Preview 4 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-entity-framework-7-preview-4/

Entity Framework 7 Preview 4 がリリースされた。

記事では値生成されるプロパティーにコンバーターを割り当てることができるようになり、キーを Value Object にするといったケースがカバーしやすくなったことを紹介している。

.NET MAUI Release Candidate 3 - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-maui-rc-3/

.NET MAUI Release Candidate 3 がリリースされた。

記事ではナビゲーションの実装方法として新しく用意されている Shell を使用した方法について紹介している。

なお MAUI RC3 の利用には Visual Studio 2022 version 17.3 (Preview 1) が必要となる。

Visual Studio 2022 for Mac Release Candidate 2 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-for-mac-release-candidate-2/

Visual Studio 2022 for Mac 17.0 Release Candidate 2 がリリースされた。

リリースに向けて、パフォーマンスの改善と信頼性の向上と様々な不具合の修正が行われている。

WPF Community-run projects · Discussion #6556 · dotnet/wpf

https://github.com/dotnet/wpf/discussions/6556

WPF リポジトリーでコミュニティーベースのプロジェクトを開始するというアナウンス。

まずは .NET 7 に向けて Issue とバグへの対応をリアクションの多いものを優先的に行っていくとのこと。

.NET Framework May 2022 Security and Quality Rollup - .NET Blog

https://devblogs.microsoft.com/dotnet/framework-may-2022-updates/

.NET Framework の2022年5月のセキュリティー修正と累積更新がリリースされた。

このリリースではローカルユーザーが細工をされたファイルを開いた場合にシステムに対してサービス拒否が発生するセキュリティー問題の修正とサードパーティーの .NET アプリケーションがディレクトリーサービスを使用した際にクラッシュする問題の修正が含まれる。

.NET May 2022 Updates – .NET 6.0.5, .NET 5.0.17 and, .NET Core 3.1.25 - .NET Blog

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

.NET 6, 5, .NET Core 3.1 の2022年5月のアップデートについてのアナウンス。

.NET 6.0.5, 5.0.17 および .NET Core 3.1.25 では3つのサービス拒否のセキュリティー問題についての修正が含まれている。

また、.NET 5 は2022年5月10日がサポート終了日となるため、今回が最後の更新となる。引き続きサポートを受けるには .NET 6 への移行が必要となる。

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

Update all Visual Studio installations with a single click! - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/update-all-visual-studio-installations-with-a-single-click/

Visual Studio Installer で複数の Visual Studio インストールをまとめてアップデートできる機能が付いたというアナウンス。

Visual Studio 2022 のテストエクスプローラー上で、Blazor 用 Razor クラスライブラリ中の JavaScript コードに対する単体テストを実行する - Qiita

https://qiita.com/jsakamoto/items/68c07a79bca043af3f0e

Visual Studio 2022 のテストエクスプローラーに .NET プロジェクトに含まれる JavaScript のテストを統合して実行できるようにする方法についての記事。

C#のコレクション初期化子とインデックス初期化子、またはDictionaryの初期化について | Yucchiy's Note

https://blog.yucchiy.com/2022/05/csharp-collection-index-initializer-and-dictionary/

C# のコレクション初期化子とインデックス初期化子についての改めて解説している記事。

Windows App SDK 1.1 Preview 3 で追加された Desktop Acrylic と Mica のサポートを試した - しばやん雑記

https://blog.shibayan.jp/entry/20220510/1652191991

Windows App SDK 1.1 Preview 3 で利用できるようになった Windows 11 の質感デザインである Mica と Acrylic を適用するのを試すという記事。

Testing ASP.NET Core gRPC services in JetBrains Rider

https://andrewlock.net/testing-aspnetcore-grpc-services-in-jetbrains-rider/

Rider で ASP.NET Core の gRPC サービスを呼び出してテストする方法についての記事。

ユニットテストではなく Rider の組み込みクライアントでリクエストを送信するといった手法。

OpenTelemetry in Action: Identifying Database Dependencies

https://dev.to/lightstep/opentelemetry-in-action-identifying-database-dependencies-17ml

OpenTelemetry でデータベースへの依存情報を取得して、LightStep (外部サービス) へ送信するという方法を紹介している記事。

Deploy .NET Blazor WebAssembly Application to AWS Amplify | Amazon Web Services

https://aws.amazon.com/jp/blogs/devops/deploy-net-blazor-webassembly-application-to-aws-amplify/

.NET Blazor WebAssembly アプリケーションを AWS Amplify にデプロイする方法を紹介する記事。

Using C# libraries in Dart | by Steve Hamblett | May, 2022 | Medium

https://medium.com/@stevehamblett/using-c-libraries-in-dart-ec630848d52c

C# のコードを Dart から呼び出すにはどうすればいいのかという記事。

記事では NativeAOT を使用してライブラリーを生成して FFI によって呼び出す方法を紹介している。

[.NET 6] 認証情報を redis に保持しログアウト時に無効化する - Qiita

https://qiita.com/pi2ji79/items/6ad967a0bda1d5c52af1

Redis にログイン状態を保持することでログアウト時に削除して認証情報を無効にする方法についての記事。

How to use pub/sub in C# .NET to build a chat app

https://medium.com/@marcduiker/how-to-use-pub-sub-in-c-net-to-build-a-chat-app-bfad51d38f59

Pub/Sub メッセージングなどを提供するサービス Ably を使用してチャットアプリを作ってみるという記事。

Upgrading a WCF service to .NET 6 with CoreWCF - .NET Blog

https://devblogs.microsoft.com/dotnet/upgrading-a-wcf-service-to-dotnet-6/

.NET Framework の WCF サービスを使ったアプリケーションを .NET 6 と CoreWCF に移行する手順について紹介している記事。

Visual Studio on an ultra-wide monitor - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-on-an-ultra-wide-monitor/

Visual Studio をウルトラワイドモニターで使うときの Tips を紹介している記事。

Tips for Moving Your Xamarin Library to .NET MAUI - Xamarin Blog

https://devblogs.microsoft.com/xamarin/tips-for-porting-your-xamarin-library-to-dotnet-maui/

Xamarin ライブラリーを .NET MAUI に移行する際の Tips を紹介している記事。

Structure and Organize .NET Projects with Rider | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/05/11/structure-and-organize-net-projects-with-rider/

Rider で .NET プロジェクト(ソリューション)の構成についてフォルダーやファイル、名前空間、global using の活用といった Tips を紹介している記事。

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

nuitsjp/KAMISHIBAI: KAMISHIBAI is a navigation library for WPF that supports MVVM pattern on Generic Host.

https://github.com/nuitsjp/KAMISHIBAI

WPF 向けの Generic Host の上で MVVM パターンでアプリケーションを構築するためのフレームワーク。

Cysharp/AlterNats: An alternative high performance NATS client for .NET.

https://github.com/Cysharp/AlterNats

Pub/Sub 等のメッセージングをサポートする NATS サーバーのクライアントライブラリー。

ゼロアロケーションと公式クライアントに比べて3倍以上のパフォーマンスを提供することが特徴。(ただし NATS/nats.net の提供する機能のフルサポートではない)