2022-11-15: .NET 7

Published on Tuesday, 15 November 2022

トピックス

.NET 7 is Available Today - .NET Blog

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

.NET 7 がリリースされた。記事では .NET 7 の様々な新機能や変更点について改めてまとめて紹介している。

  • 統合
    • One BCL (一つのベースクラスライブラリー)
    • 新しい TFM
    • ARM64 のネイティブサポート
    • Linux 上での .NET サポートの強化
      • 64-bit IBM Power プラットフォームのサポート
  • モダン
    • 引き続きのパフォーマンス改善
    • コンテナーファーストワークフローのような開発生産性の向上
    • 同じコードベースからのモバイルとデスクトップアプリの構築
  • クラウドネイティブアプリのための .NET
    • 分散したクラウドネイティブアプリのビルドとデプロイを簡単に
      • Day 0 での Azure サポート
      • ビルトインのコンテナーサポート
      • Orleans 7
      • Observability
  • シンプル
    • C# 11 でシンプルで少ないコードを記述
      • Generic Math
      • Raw String Literals
      • .NET ライブラリー
    • クラウドネイティブアプリのための HTTP/3 と Minimal API の改善
  • パフォーマンス
    • 沢山のパフォーマンスの改善
      • On Stack Replacement
      • Profile-Guided Optimization
      • Native AOT

.NET 7 は Standard Term Support (標準期間サポート) のためリリースから18か月間のサポートとなる。

Announcing ASP.NET Core in .NET 7 - .NET Blog

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

.NET 7 の ASP.NET Core に関するアナウンス記事。

記事では新しい機能や変更点について過去の記事へのリンクをまとめて紹介している。

What's new in Windows Forms in .NET 7.0 - .NET Blog

https://devblogs.microsoft.com/dotnet/winforms-enhancements-in-dotnet-7/

.NET 7 の Windows Forms の新しい機能や変更点についての記事。

  • アクセシビリティの改善と修正
  • 高 DPI とスケーリングの改善
  • データバインディングの改善
  • COM ラッパーと Native AOT
  • その他変更点

Announcing .NET MAUI for .NET 7 General Availability - .NET Blog

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

.NET 7 の .NET MAUI がリリースされた。

このリリースでは Map コントロールやモバイルでのレンダリングパフォーマンスの改善、デスクトップでの様々な強化といったものが行われている。

What's new for WPF in .NET 7 - .NET Blog

https://devblogs.microsoft.com/dotnet/wpf-on-dotnet-7/

.NET 7 の WPF の新しい機能や変更点についての記事。

  • パフォーマンス
    • Box 化/Box 化解除
    • アロケーション
    • その他
  • アクセシビリティ
  • 不具合の修正
  • 基盤のアップグレード

Entity Framework Core 7 (EF7) is available today - .NET Blog

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

Entity Framework Core 7 (EF7) がリリースされた。

記事では Entity Framework Core 7 での新機能や変更点について改めて紹介している。

  • JSON カラム
    • JSON 問い合わせに LINQ を使用
    • SaveChanges を使用した JSON の更新
    • その他 JSON カラムについて
  • バルク更新と削除
  • 単一行の更新と削除
  • 高速な SaveChanges
    • 不要なトランザクションの削除
    • 複数行の挿入
  • Table-per-concrete-type (TPC) 継承マッピング
  • カスタムデータベースファーストテンプレート
    • 生成されるエンティティ型のカスタマイズ
  • カスタムモデル構築規則
    • 規則の削除
    • 規則の追加
  • 追加、更新、削除のストアドプロシージャーのマッピング
  • 新しいまたは改善されたインターセプターとイベント
    • マテリアル化インターセプション
    • 接続文字列の遅延初期化
  • 様々な小さな改善

Entity Framework Core 7 は .NET 6 をターゲットとしており、.NET 6 (LTS) または .NET 7 で利用可能。

Announcing F# 7 - .NET Blog

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

.NET 7 で利用可能となった F# 7 についてのアナウンス。記事では次の機能を紹介している。

  • インターフェースの static abstract members のサポート
  • SRTP をより使いやすく
  • 必須プロパティーチェック
    • init スコープと init-only プロパティー
  • リファレンスアセンブリーサポート
  • F# self-contained デプロイメントと Native AOT

Welcome to C# 11 - .NET Blog

https://devblogs.microsoft.com/dotnet/welcome-to-csharp-11/

.NET 7 で利用可能となった C# 11 についてのアナウンス。記事では次の機能を紹介している。

  • UTF-8 文字列リテラル
  • 生文字列リテラル
  • 静的メンバー上の抽象化
  • リストパターン
  • 必須メンバー

Announcing NuGet 6.4 - Signed, Central, Delivered - The NuGet Blog

https://devblogs.microsoft.com/nuget/announcing-nuget-6-4-signed-central-delivered/

NuGet 6.4 がリリースされた。

NuGet 6.4 は Visual Studio 2022 と .NET 7 に含まれ、単体の実行ファイルとしてもダウンロード可能。

記事ではこのリリースに含まれる次の点について紹介している。

  • Central Package Management が運用利用可能に
  • GlobalPackageReference で一つの PackageReference をどこでも使用
    • GlobalPackageReference を定義することですべてのプロジェクトにパッケージを追加できる
  • Visual Studio のすべてのタブでのパッケージ読み込みのパフォーマンス改善
  • NuGet 署名パッケージ検証
  • Visual Studio での認証の改善
  • NuGet.exe ローカライズ

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

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-4/

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

  • .NET 7
  • C++
  • Arm64
  • ロールバック
  • エンタープライズサポート
    • LTSC サポート
    • Windows Updaet for Business からのセキュリティーアップデート
    • Visual Studio 管理テンプレートによる管理ポリシー
    • サポート外のコンポーネントの削除
  • コラボレーションとチーム
    • Git ツーリング
    • マルチリポジトリサポートのリリース
    • Microsoft Teams Toolkit
    • エコシステム
      • Arm64 の拡張と VisualStudio.Extensibility 拡張モデル
  • 生産性
    • 選択マッチハイライティング
    • オーディオキュー
    • データテーブルビジュアライザー
    • コールスタックウィンドウ内での例外スタックフレーム
    • テストエクスプローラーでのテスト結果のクリアとフィルター
  • パフォーマンス
    • Git ブランチ切り替え
    • ファイル保存のレスポンス改善
    • C++ インデックス
    • ファイル内の検索と置き換え
    • 言語サービス設定切り替え最適化
    • ユニットテストパフォーマンス改善
      • テスト検索の並列化
      • テストの実行の効果的な並列化
      • Visual Studio とテストランナープロセス間の通信の最適化

Arm64 対応と Windows Update for Business での更新、Visual Studio のロールバックについては下記の詳細な記事を参照のこと。

最後に次期バージョンのプレビューである Visual Studio 2022 17.5 Preview 1 も利用可能となったことも案内している。

  • Azure Container Registry や Azure Container Apps のサポート
  • SQL Server 2022 のサポート
  • Markdown のより深いサポート
  • 正規表現によるタブの色設定
  • 新しい Quick Add Item 体験
  • Web プロジェクトでの F5 ターゲットとしての統合ターミナル
  • サインインの改善のための Windows Authentication Broker との統合
  • SDK スタイルプロジェクトのためのインプロセス VSIX サポート

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

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

Visual Studio 2022 for Mac v17.4 がリリースされた。

このリリースではドッキングウィンドウ、フォントや行間の設定のようなユーザーインターフェースの改善、デバッガーの UI の改善、MAUI や .NET 7 と C# 11 のサポートといったものが含まれている。

また Visual Studio 2022 for Mac v17.5 Preview 1 も利用可能となり、ランタイムの .NET 7 への更新やフォントサポートの改善が行われていることが案内されている。

Announcing ML.NET 2.0 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-ml-net-2-0/

ML.NET 2.0 と新しいバージョンの Model Builder がリリースされた。

  • Model Builder でのテキスト分類シナリオ
  • センテンス類似性 API
  • トークナイザーサポート
  • AutoML 改善
  • Model Builder の高度な設定

What's new in Orleans 7.0 - .NET Blog

https://devblogs.microsoft.com/dotnet/whats-new-in-orleans-7/

Orleans 7.0 がリリースされた。

Orleans チームは .NET チームの一部となり、.NET 7 と共に改善を進めた結果150%以上のパフォーマンス改善が持たされたとのこと。記事ではパフォーマンスの改善について、開発エクスペリエンスの向上について、Grain と Stream の識別の簡素化についてなどを紹介している。

.NET Conf 2022 - YouTube

https://www.youtube.com/playlist?list=PLdo4fOcmZ0oVlqu_V8EXUDDnPsYwemxjn

.NET 7 のリリース発表を含む .NET Conf 2022 のセッションビデオのプレイリスト。

.NET Information Disclosure Vulnerability - GHSA-8g2p-5pqh-5jmc - GitHub Advisory Database

https://github.com/advisories/GHSA-8g2p-5pqh-5jmc

Microsoft.Data.SqlClient の 1.1.3 以下と 2.0.0 から 2.1.1 以下、System.Data.SqlClient の 4.8.4 以下に情報漏洩の脆弱性が見つかった。

高負荷時にタイムアウトが発生した際に、非同期で実行されたクエリーに誤った結果を返してしまうことがあるという脆弱性がある。

Microsoft.Data.SqlClient の 1.1.4 または 2.1.2、System.Data.SqlClient の 4.8.5 で修正されており、当該パッケージを利用している場合には更新が必要となる。

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

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

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

このリリースでは Microsoft.Data.SqlClient に関する脆弱性 (上記) の修正と WPF とランタイムに関するいくつかの不具合が修正されている。

.NET November 2022 Updates – .NET 6.0.11 and .NET Core 3.1.31 - .NET Blog

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

.NET 6.0.11 と .NET Core 3.1.31 がリリースされた。

いくつかの不具合や改善が含まれている。また、記事では .NET Core 3.1 が今年の12月13日にサポート終了 (EOL) を迎えるため、.NET 6 へのアップデートをあらためて推奨している。

Release 2.2.0 · mysql-net/MySqlConnector

https://github.com/mysql-net/MySqlConnector/releases/tag/2.2.0

Async MySqlConnector 2.2.0 がリリースされた。

このリリースでは .NET 7 のサポートと .NET 4.5 のサポート削除、その他いくつかの改善が含まれている。

Cake v3.0.0 released

https://cakebuildnet.medium.com/cake-v3-0-0-released-b5555129a0f5

Cake v3.0.0 がリリースされた。

このリリースでは .NET 7 と C# 11 のサポート、TaskOf<T>、マルチターゲットサポート、ビルドプロバイダーの改善、アドインが依存する Cake.Core のバージョンを 3.0 推奨するように、その他いくつかの改善と修正が行われている。

NuGet Central Package Management Comes To JetBrains Rider | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/11/07/nuget-central-package-management-comes-to-jetbrains-rider/

Rider で NuGet の Central Package Management をサポートするというアナウンス。

現在 Rider 2022.3 EAP と NuGet 6.2 以降をサポートする SDK があることで試すことができる。記事ではその設定方法と Central Package Management でのいくつかの Tips を紹介している。

Windows Community Toolkit Labs Experiments are Here! - #ifdef Windows

https://devblogs.microsoft.com/ifdef-windows/windows-community-toolkit-labs-experiments-are-here/

Windows Community Toolkit Labs についての記事。

Windows Community Toolkit Labs は Windows Community Toolkit に含まれる前の試験的な実装のライブラリー。記事では Rive プレイヤーや設定カードと設定エキスパンダーといったコントロール、WCT Labs の使用方法について紹介している。

Release v7.0.0 · npgsql/npgsql

https://github.com/npgsql/npgsql/releases/tag/v7.0.0

Npgsql 7.0.0 がリリースされた。

  • DbDataSource を実装する NpgsqlDataSource
  • Microsoft.Extensions.Logging によるロギングの改善
  • 論理レプリケーションプロトコル version 3 のサポート
  • いくつかの破壊的変更

Generally available: Azure Static Web Apps now fully supports .NET 7 | Azure updates | Microsoft Azure

https://azure.microsoft.com/en-us/updates/generally-available-azure-static-web-apps-now-fully-supports-net-7/

Azure Static Web Apps で .NET 7 がサポートされた。

これにより .NET 7 Blazor WebAssembly アプリケーションをデプロイすることや .NET 7 による Azure Functions のビルドなどが可能となった。

Announcing the .NET 7 for Azure functions isolated worker process is generally available - Microsoft Community Hub

https://techcommunity.microsoft.com/t5/apps-on-azure-blog/announcing-the-net-7-for-azure-functions-isolated-worker-process/ba-p/3671398

Azure Functions の 分離ワーカープロセスで .NET 7 がサポートされた。

.NET 7 GA available on App Service - Azure App Service

https://azure.github.io/AppService/2022/11/08/dotnet7_ga.html

Azure App Service で .NET 7 がサポートされた。

JetBrains .NET Days + GameDev Day Online 2022 – Session Recordings Available | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/11/10/dotnet-days-gamedev-day-online-2022-recordings/

10月下旬に行われた JetBrains による .NET とゲーム開発のオンラインイベントのセッション録画が公開となった。

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

C#のカレンダー | Advent Calendar 2022 - Qiita

https://qiita.com/advent-calendar/2022/csharplang

Qiita での2022年の C# Advent Calendar。

新しいバージョンの .NET SDK と Visual Studio の更新 - tech.guitarrapc.cóm

https://tech.guitarrapc.com/entry/2022/11/10/004625

Visual Studio を更新した場合の .NET SDK の取り扱いについての記事。

.NET 7 で WPF を Linux ビルドする - tech.guitarrapc.cóm

https://tech.guitarrapc.com/entry/2022/11/11/031555

Linux 環境で .NET 7 SDK を使用して WPF アプリケーションをビルドすることについての記事。

Visual Studio 2022 17.4 以降で Microsoft.CodeAnalysis.Analyzers の警告が出る

https://zenn.dev/mayuki/articles/c4728ae9cdef8e

Visual Studio 2022 17.4 以降で Microsoft.CodeAnalysis.Analyzers の警告が表示される問題の原因と対処方法。

How to Use DALL-E API With C#.NET

https://betterprogramming.pub/create-a-text-to-image-generator-using-dall-e-api-in-c-net-7df58d940e79

画像生成の DALL-E の API を .NET から呼び出してみるという記事。

Build a stock update notification bot for Microsoft Teams using C# and Teams Toolkit for Visual Studio

https://dev.to/microsoft365/build-a-stock-update-notification-bot-for-microsoft-teams-using-c-and-teams-toolkit-for-visual-studio-mfl

Teams Toolkit for Visual Studio を使用して株式アップデート情報を通知するボットを C# で実装する手順の記事。

Redis as a Database with Redis OM

https://medium.com/@marius.munteann/redis-as-a-database-with-redis-om-2601a48b5c04

Redis OM を使用して Redis をデータベースのように扱う方法についての記事。

ASP.NET Core Web APIのバージョン管理 - Qiita

https://qiita.com/gushwell/items/663538393baef926c4c4

Microsoft.AspNetCore.Mvc.Versioning を使用して API のバージョニング (例: /v1/api, /v2/api など) を行う方法についての記事。

AWS Lambdaで.NET Core 3.1から.NET 6に移行したときにやったこと - Qiita

https://qiita.com/kaz-matsubara/items/7c3284dd6b38fe4489fb

AWS Lambda 向けの .NET Core 3.1 アプリケーションを .NET 6 に移行する際に行ったことをまとめた記事。

What's New in .NET 7 for Authentication and Authorization

https://auth0.com/blog/whats-new-in-dotnet-7-for-authentication-and-authorization/

.NET 7 での認証と認可に関する変更と新機能についてまとめて紹介している記事。

Avoid WebDeploy Locking Errors to IIS with Shadow Copy for ASP.NET Core Apps

https://weblog.west-wind.com/posts/2022/Nov/07/Avoid-WebDeploy-Locking-Errors-to-IIS-with-Shadow-Copy-for-ASPNET-Core-Apps

IIS で動作する ASP.NET Core アプリケーションを WebDeploy でデプロイする際にファイルロックのエラーが発生する問題を回避する方法についての記事。

記事では .NET 6 以降実験的に利用可能となったシャドウコピーを有効にする方法と WebDeploy の方法について解説している。

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

mk3008/SqModel: Select query builder

https://github.com/mk3008/SqModel

SQL 文をパースし、加工したりして再構築するライブラリー。

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

ツイート

.NET の公式サイトがリデザインされたという話。

なお

.NET でグリーンスレッドの実験的実装で Kestrel が動いているという話。

Paint​.NET v5.0 を .NET 7 に移行するのは WinForms の nullable アノテーションで幾つかコンパイルエラーがあったものの5分でできたという話。

ASP.NET Core のフレームワークのスタック図。

Akka.NET を .NET 7 (PGO 有効) でベンチマークを取った速くなったという話。

.NET 7 で文字列を特定の区切り文字で結合するのに一番速いのは何かという話。