2022-08-13: Visual Studio 2022 17.3, .NET MAUI in Visual Studio 2022, .NET 7 Preview 7, .NET Framework 4.8.1

Published on Saturday, 13 August 2022

トピックス

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

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

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

記事では 17.3 で更新された次の機能について触れている。

  • .NET MAUI サポート
  • Microsoft Teams 向けアプリケーション開発サポート
  • C++ のサポートの改善
    • 低優先度ビルド
    • インデクシングの高速化
    • 統合ターミナルでのリモート SSH 接続のサポート
  • Azure Container Apps サポート
  • Live Unit Testing の改善
  • What's New ページ
  • Git ラインステージング
  • タブの複数行表示
  • IEnumerable ビジュアライザー
  • 閉じたドキュメントの再オープン

また、次のバージョンとなる 17.4 のプレビューもリリースされ、17.4 は Arm64 ネイティブのリリースバージョンとなること LTSC (長期サポートチャンネル) バージョンとなるとのこと。

Productivity comes to .NET MAUI in Visual Studio 2022 - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-maui-visualstudio-2022-release/

Visual Studio 2022 17.3 で .NET MAUI のサポートがプレビューからリリースとなったアナウンス。

.NET MAUI 自体の GA はすでに行われていたが、ツールサポートは今までプレビューとなっていたが 17.3 のリリースでリリースとなり一般に利用できるようになった。これには XAML のライブプレビューやホットリロードといったものが含まれる。

Visual Studio for Mac での .NET MAUI サポートは 17.4 Preview ではプレビューとなっており、今年後半にリリースとなる予定とのこと。

Announcing .NET 7 Preview 7 - .NET Blog

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

.NET 7 Preview 7 がリリースされた。開発環境としては Windows, macOS 共に Visual Studio 2022 17.4 プレビューの使用が推奨されている。

記事では Preview 7 でのアップデートについて紹介している。

  • シンプルな LINQ
    • Order, OrderDescending (キーセレクター不要の OrderBy/OrderByDescending)
  • Unix ファイルモードサポート
  • 低レベルな struct の改善: ref フィールド
  • LibraryImport P/Invoke ソースジェネレーター
    • DllImport に代わるネイティブライブラリー呼び出しのマーシャリングコード生成
  • ClientWebSocket アップグレードレスポンスの詳細
    • ClientWebSocket がアップグレードの応答に関する詳細(ステータスコード等)を取得できるように
  • コード生成の改善

また、破壊的変更として次のものがあげられている。

  • トリミングと NativeAOT: すべてのアセンブリがデフォルトでトリミングされる
    • コンソールアプリケーションで PublishTrimmed を指定した場合、ライブラリープロジェクトが IsTrimmable の有無にかかわらずトリミングされる。この挙動を変更するには TrimMode を指定することで以前のバージョンと同等に戻すことが可能。また Windows, Android, iOS, WASM, ASP.NET Core といったプレーンではない .NET アプリケーションは影響を受けない

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

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

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

  • 新しい Blazor WebAssembly のローディングページ
  • Blazor データバインディングの get/set/after 修飾子
  • Blazor 仮想化の改善
  • NavigationManager を使用したステート渡し
  • WebAssembly における System.Security.Cryptography サポートの更なる追加
  • Angular と React のテンプレートの更新
  • gRPC JSON トランスコーディングパフォーマンス
  • 認証で単一スキームを DefaultScheme として扱う
  • Minimal API での認証済みリクエストでの IFormFile/IFormFileCollection のサポート
  • 問題の詳細サービス
  • 診断ミドルウェアのアップデート
  • 新しい HttpResults インターフェース
    • IFileHttpResultIValueHttpResult<TValue> といった IResult の型

Announcing Entity Framework 7 Preview 7: Interceptors! - .NET Blog

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

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

記事では Entity Framework 7 で強化される Interceptor について紹介している。

  • エンティティー作成時のシンプルなアクション (マテリアライゼーション)
  • LINQ 式ツリーのインターセプト
  • オプティミスティック同時実行制御インターセプト

Announcing .NET Framework 4.8.1 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/

.NET Framework 4.8.1 がリリースされた。

.NET Framework 4.8.1 では Arm64 のネイティブサポート、 WCAG2.1 準拠のアクセシブルなツールチップ、Windows Forms でのアクセシビリティーの向上といった新機能が導入される。

対応 OS は Windows 10 Version 20H2 と Windows Server 2022 以降が対象となる。

Visual Studio for Mac 17.3 is now available - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-17-3-is-now-available/

Visual Studio 2022 for Mac 17.3 がリリースされた。

User Secrets のサポート、新しいコードフィックスの追加や StringSyntaxAttribute の対応、タスクウィンドウと正規表現ダイアログのネイティブ UI 化、Apple Developer アカウントサポートが行われている。

また次期バージョンのプレビューである Visual Studio 2022 for Mac v17.4 もリリースされているとのこと。

.NET August 2022 Updates – .NET 6.0.8 and .NET Core 3.1.28 - .NET Blog

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

.NET 6.0.8 と .NET Core 3.1.28 がリリースされた。

.NET 6 および .NET Core 3.1 の特権情報の不正アクセスによる情報漏洩のセキュリティー修正が含まれている。

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

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

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

TLS 1.3 でクライアント証明書を使用している場合にネゴシエーションでハングアップする問題や、WPF の同期に関する問題の修正が含まれる。

Announcing NuGet 6.3 - Transitive Dependencies, Floating Versions, and Re-enabling Signed Package Verification - The NuGet Blog

https://devblogs.microsoft.com/nuget/announcing-nuget-6-3-transitive-dependencies-floating-versions-and-re-enabling-signed-package-verification/

NuGet 6.3 がリリースされた。

NuGet 6.3 は Visual Studio 2022 や .NET 6 に含まれるほか、独立した実行ファイルとしてダウンロードも可能。

このバージョンでは次の新機能や改善が含まれている。

  • PackageReference のパッケージから pdb を使用する
  • Visual Studio での推移的な依存関係の表示 (実験的な機能)
  • PackageReference, PackageVersion または PackageDownload の重複が見つかった場合の新しい警告
  • Visual Studio でのカスタム浮動バージョンのインストール
    • UI 上から 1.* のような形でバージョンを指定できるようになった
  • Linux での署名されたパッケージの検証のデフォルトでの再有効化
  • HTTPS everywhere.
    • HTTP (非暗号化) 利用時の警告 NU1803 の追加、2023年11月以降には HTTP はエラーとなる (オプトアウト可)、2024年11月以降はエラーのオプトアウトも無効化される予定
    • HTTPS everywhere - The NuGet Blog

VisualStudio.Extensibility: A New Way to Write Extensions - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visualstudio-extensibility/

Visual Studio の拡張性 (VisualStudio.Extensibility) の Phase 2 についての記事。

Phase 2 で利用できるようになった次の新機能について紹介している。

  • リモート UI フレームワーク
    • Out-of-Process モデルでの UI サポート
    • ツールウィンドウ
  • 新しいエディタ API の追加
    • 新しい言語コンテンツタイプの定義
    • ドキュメントセレクターを使用した拡張機能の適用可能性の指定
  • 新しいコマンド
    • ツールチップの表示
    • カスタムイメージの表示
  • タスク進捗状況通知
  • インプロセス API によるスムーズな移行

Announcing SynapseML for .NET - Large Scale ML with a Simple API - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-synapseml-for-dotnet/

SynapseML v0.10 のリリースの一部として .NET バインディングが利用できるようになったというアナウンス。

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

Announcing the .NET MAUI Beautiful UI Challenge - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-beautiful-ui-challenge/

Xamarin と .NET MAUI のきれいなデザインを集める Snppts と NET MAUI Good Look UI リポジトリーにデザインを共有することでステッカーをもらえるというキャンペーンのアナウンス。

Microsoft Authentication Library for .NET でリフレッシュトークンを永続化する - present

https://tnakamura.hatenablog.com/entry/2022/08/08/microsoft-identity-client-extensions-msal

Microsoft Authentication Library for .NET を使用して取得したリフレッシュトークンはインメモリのみの保持のため、永続化してプロセス終了後も利用できるようにする方法についての記事。

Trying out Native AOT in .NET 7 Preview 7 - Soundar Anbu Code's

https://code.soundaranbu.com/trying-out-native-aot-in-net-7-preview-7/

.NET 7 Preview 7 での NativeAOT を試してみたという記事。最終的にどの程度のファイルサイズになるかといった部分に触れている。

.NET 7 Preview 7 で、C# 11 の機能が一通りそろったみたい | ++C++; // 未確認飛行 C ブログ

https://ufcpp.net/blog/2022/8/net7p7/

.NET 7 Preview 7 の時点で C# 11 が Preview からデフォルトになり、リリースに向けて機能が確定したという話。

どのバージョンのC#としてビルドされているかを調べるC#コード - Qiita

https://qiita.com/chocolamint/items/1c8635a34e6aa0adbc6d

C# 言語バージョンごとの文法を含むコードを用意することで、コンパイラーがどのバージョンの C# でコンパイルしているか判断できる(どこでエラーが出るかで判断できる)のではないかという記事。

Virtual Formatter – Fixing Tabs versus Spaces and other Problems | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/08/11/virtual-formatter-in-resharper-2022-2/

ReSharper 2022.2 の新機能 Virtual Formatter について紹介している記事。

Virtual Formatter は表示上でのみフォーマットを適用する機能で、アクセシビリティーや既存のコードのフォーマット、企業でのコーディングスタイルとの不一致といったシーンでのメリットを紹介している。

Exploring .NET WebAssembly with WASI and Wasmtime

https://dev.to/azure/exploring-net-webassembly-with-wasi-and-wasmtime-41l5

WASI を実装する Wasmtime で .NET WebAssembly を Dev Container を使用してビルド、動かす方法についての記事。

Lessons learned from optimizing performance in multi-layered .NET projects

https://medium.com/elca-it/lessons-learned-from-optimizing-performance-in-multi-layered-net-projects-136576f61787

多層化(データベース、アプリケーション、ネットワーク等)された .NET プロジェクトでのパフォーマンス最適化で得られた教訓についての記事。

Handling concurrent merges to master in multi-stage Azure DevOps pipelines

https://andrewlock.net/handling-concurrent-merges-to-master-in-multi-stage-azure-devops-pipelines/

Datadog .NET APM Tracer のような複数のステージを持つ Azure Pipelines のビルドで、 Pull request によるマージコミットでビルドしている場合にステージ進行中に master が更新されるとマージコミットが変更されてしまう問題に対する対処についての記事。

Discover the New ASP.NET Core Features in .NET 7! - Dotnetsafer Blog

https://blog.dotnetsafer.com/discover-the-new-asp-net-core-features-in-net-7/

.NET 7 の ASP.NET Core の新機能についての記事。Minimal API や SignalR のソースジェネレーターといったものを紹介している。

Migrating from ASP.NET to ASP.NET Core in Visual Studio - .NET Blog

https://devblogs.microsoft.com/dotnet/introducing-project-migrations-visual-studio-extension/

Visual Studio に実装された ASP.NET から ASP.NET Core に移行するツールを使用する方法についての記事。

.NET Annotated Monthly | August 2022 | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/08/08/net-annotated-monthly-august-2022/

JetBrains による .NET まとめの2022年8月号。

Heap Sort in C# - Code Maze

https://code-maze.com/csharp-heap-sort/

C# でのヒープソートを実装する記事。

Running a .NET application on a local Kubernetes cluster

https://medium.com/@TheLe0/running-a-net-application-on-a-local-kubernetes-cluster-1aff3537f755

.NET アプリケーションを Kind のローカル Kubernetes クラスターで動かす方法についての記事。

LINQ explained with sketches

https://steven-giesel.com/blogPost/d65c5411-a69b-489f-b73f-18ce0ed8678d

LINQ オペレーターの動きを絵で表す、という記事。

【.NET Community Toolkit】ソースジェネレータのファイルサイズ調査 - Qiita

https://qiita.com/myoga/items/79e64ad7d358b281f6da

.NET Community Toolkit の MVVM Source Generator でコード生成した場合に継承ベースの実装とバイナリサイズを比較している記事。

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

microsoft/fluentui-emoji: Fluent Emoji are a collection of familiar, friendly, and modern emoji from Microsoft.

https://github.com/microsoft/fluentui-emoji

Fluent UI の絵文字。

Windows の Fluent UI 絵文字で使用されているものと同じデザインの絵文字画像。 MIT ライセンスで公開されている。

bruce-dunwiddie/tsql-parser: Library Written in C# For Parsing SQL Server T-SQL Scripts in .Net

https://github.com/bruce-dunwiddie/tsql-parser

Transact-SQL を解析するライブラリー。

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

Enterprise Application Patterns Using .NET MAUI | Microsoft Docs

https://docs.microsoft.com/en-us/dotnet/architecture/maui/

.NET MAUI のアプリケーションパターンの E-book。

ツイート

Npgsql と Entity Framework の 7.0.0-preview.7 で PostgreSQL の集計処理を利用できるようになったという話。

中/大規模と超大規模のプロジェクトにおける CI とテストでの違いの話。

Deep Dive

Port Windows/MSDTC distributed transactions support by roji · Pull Request #72051 · dotnet/runtime

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

MSDTC による分散トランザクションのサポートの PR。