2023-06-18: .NET 8 Preview 5, Visual Studio 2022 17.7 Preview 2, Polly 8.0.0-alpha.1, .NET 7.0.7 & 6.0.18

Published on Sunday, 18 June 2023

トピックス

Announcing .NET 8 Preview 5 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-5/

.NET 8 Preview 5 がリリースされた。

  • SDK: メトリクス API の改善
    • Dependency Injection (DI) フレンドリーなメトリクス API
    • タグ付きのメーターやインストルメントの作成
  • SDK: .NET SDK の一部となったソースリンク
  • SDK: 新しい .NET ライブラリーのアナライザー
  • SDK: Linux での self-contained ビルド
  • SDK: self-contained の非デフォルト化
  • Alpine ASP.NET Core Docker コンポジットイメージ
    • アセンブリーを単一のバイナリーにまとめる新しい形式(コンポジット)の Ready-to-Run で ASP.NET Core をコンパイルすることでサイズの削減などが行える半面、複数のバージョンを取り扱うことはできなくなる
  • ランタイムホストはデフォルトで RID グラフを使用せず、RID 固有のアセットを決定
  • Codegen
    • Dynamic PGO のデフォルト化
    • GC 型の ThreadStatic フィールドアクセスの最適化
    • Arm64, AVX-512
  • C# Dev Kit 拡張と VSCode での生産性の向上

Visual Studio 2022 17.7 Preview 2 is here! - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-7-preview-2-is-here/

Visual Studio 2022 17.7 Preview 2 がリリースされた。

  • IDE 生産性とパフォーマンス
    • ファイルの比較の改善
    • Pull Request の作成
    • 複数ブランチグラフサポートの強化
    • パラレルスタックのフィルタリング
    • F5 の速度の改善
    • 編集速度の最適化
  • .NET 開発
    • 外部 .NET コードの自動デコンパイル
    • CPU 使用率の新しい自動インサイト
  • モダン C++ とゲーム開発
    • Build Insights for C++
    • Unreal Engine Blueprint Find All References
    • Doxygen オーバーロード解決の強化
  • C++ クロスプラットフォームと組み込み開発
    • リモートファイルのアップデート
    • WSL 自動取得
  • JavaScript と TypeScript 開発
    • React と Vue の Vite 新規プロジェクト作成サポート
  • エンタープライズ管理
    • 標準ユーザーによる Visual Studio のアップデートと更新
    • インストーラーの「利用可能」タブへの管理者によるプライベートなレイアウト追加

ASP.NET Core updates in .NET 8 Preview 5 - .NET Blog

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

.NET 8 Preview 5 での ASP.NET Core のアップデートについて。

  • ASP.NET Core デバッグ体験の向上
    • HttpContext, HttpRequest, HttpRequest, ClaimsPrincipal に DebuggerDisplay 属性がついた
  • サーバーとミドルウェア
    • IHttpSysRequestTimingFeature
    • ITlsHandshakeFeature での SNI ホスト名
    • IExceptionHandler
  • Blazor
    • 新しい Blazor Web アプリプロジェクトテンプレート
    • Blazor ルーターのエンドポイントルーティングとの統合
    • Blazor サーバーの個別コンポーネントの対話の有効化
    • Webcil パッケージの強化
    • Blazor Content Security Policy (CSP) 互換性
  • API オーサリング
    • ジェネリック属性のサポート
  • SignalR
    • SignalR シームレス再接続
  • Native AOT
    • AsParameters とコンパイル時生成 Minimal APIs の自動メタデータ生成のサポート
  • 認証と認可
    • ASP.NET Core SPA テンプレートの認証のアップデート
    • AuthrizationBuilder の推奨使用方法に関する新しいアナライザー

Announcing .NET MAUI in .NET 8 Preview 5 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-preview-5/

.NET 8 Preview 5 での .NET MAUI のアップデートについて。

  • iOS キーボードスクロール
  • テストの強化
  • パフォーマンスの改善
  • バグ修正

Release 8.0.0-alpha.1 · App-vNext/Polly · GitHub

https://github.com/App-vNext/Polly/releases/tag/8.0.0-alpha.1

Polly 8.0.0-alpha.1 がリリースされた。

Polly v8 では API を大きく変更し、オーバーヘッドの少ない新しい API で構築される。このリリースはその最初のプレビューリリースとなる。

.NET Framework June 2023 Security and Quality Rollup - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-framework-june-2023-security-and-quality-rollup/

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

このリリースでは6つのセキュリティー修正と複数の不具合修正が含まれている。

  • CVE-2023-24897: リモートコード実行 (MSDIA SDK による PDB が引き起こすヒープオーバーフロー)
  • CVE-2023-29326: リモートコード実行 (WPF の BAML による特権昇格)
  • CVE-2023-24895: リモートコード実行 (WPF XAML パーサーの脆弱性)
  • CVE-2023-24936: 特権昇格 (DataSet や DataTable の XML デシリアライズの脆弱性)
  • CVE-2023-24936: サービス拒否 (AIAのクライアント証明書取得プロセスの脆弱性)
  • CVE-2023-29330: サービス拒否 (X509Certificate2 ファイルのファイルハンドリングの脆弱性)

.NET June 2023 Updates – .NET 7.0.7, .NET 6.0.18 - .NET Blog

https://devblogs.microsoft.com/dotnet/june-2023-updates/

.NET 7.0.7, 6.0.18 がリリースされた。

このリリースでは様々なセキュリティー修正といくつかの不具合修正や品質向上の修正が含まれている。

  • CVE-2023-24895: リモートコード実行 (XAML Frame 要素のハンドリングの脆弱性)
  • CVE-2023-24897: リモートコード実行 (MSDIA SDK による PDB が引き起こすヒープオーバーフロー)
  • CVE-2023-24936: 特権昇格 (DataSet や DataTable の XML デシリアライズの脆弱性)
  • CVE-2023-29330: サービス拒否 (X509Certificate2 ファイルのファイルハンドリングの脆弱性)
  • CVE-2023-29337: NuGet クライアントリモートコード実行 (レースコンディションによるシンボリック攻撃可能な脆弱性)
  • CVE-2023-32032: サービス拒否 (Tarファイルの展開の脆弱性)
  • CVE-2023-33126: サービス拒否 (クラッシュとスタックトレースのシナリオ中の脆弱性)
  • CVE-2023-33128: サービス拒否 (P/Invoke の Source Generator の生成コードのメモリ解放の脆弱性)
  • CVE-2023-33135: サービス拒否 (.NET SDK のツール復元での特権昇格の脆弱性)

Introducing CreatorKit - ServiceStack

https://servicestack.net/posts/creatorkit

.NET で実装された Mailchimp のセルフホスト代替ソリューションとなる CreatorKit がリリースされた。

メーリングリストやニュースレターの購読管理、カスタマイズ可能なメール送信といったことが行え、管理ダッシュボードも含めた一式のツールとなっている。

ServiceStack に含まれる製品で、個人やオープンソースプロジェクトでは無料で利用できる。

Release 2.6.116 · StackExchange/StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.6.116

StackExchange.Redis 2.6.116 がリリースされた。

不具合の修正と Native AOT サポートのためのアップデートなどが含まれている。

Blazor Essentials – New Guide Tutorial | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/06/13/blazor-essentials-new-guide-tutorial/

JetBrains による Blazor の入門ガイドコンテンツが公開となった。

Blazor について、から、フォームの実装、JavaScript との相互運用、パブリッシュといった部分をカバーする。

Releasing .NET Framework 4.8.1 to the Release Preview Channel

https://blogs.windows.com/windows-insider/2023/06/13/releasing-net-framework-4-8-1-to-the-release-preview-channel/

.NET Framework 4.8.1 が Windows Insider の Release Preview チャンネル向けにリリースされた。

Windows 11 21H2, Windows 10 21H2, 22H2 の Insider Preview Release Preview チャンネルに配信される。

.NET Framework 4.8.1 には Arm64 アーキテクチャー対応やアクセシビリティーをはじめとする改善の含まれている。

Rider 2023.2 EAP 5: Improved Support for C#, Better Performance Profiling, and More. | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/06/16/rider-2023-2-eap-5/

Rider 2023.2 EAP 5 がリリースされた。

このバージョンではラムダのデフォルトパラメーターのサポート、Disposable のインスペクションの改善、ターミナルの WinPTY から ConPTY への移行、dotTrace のスレッドによるグループ化表示などが含まれている。

ReSharper 2023.2 EAP 5: Improved Control Over Object Disposal, Support for Default Lambda Parameters, and C++23 Standard Library Modules. | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/06/16/resharper-2023-2-eap-5/

ReSharper 2023.2 EAP 5 がリリースされた。

このバージョンではラムダのデフォルトパラメーターのサポート、Disposable のインスペクションの改善、C++ での C++ 23 標準ライブラリーのサポート、dotTrace のスレッドによるグループ化表示などが含まれている。

Introducing the Microsoft Store channel on Discord - #ifdef Windows

https://devblogs.microsoft.com/ifdef-windows/introducing-the-microsoft-store-channel-on-discord/

Discord に #microsoft-store チャンネルが開設された。

このチャンネルは UWP コミュニティーサーバーにあり、Microsoft Store アプリやサイト、パートナーセンター、MSIX パッケージやインストーラに関するトピックについて話し合うことのできる。

コミュニティーでのディスカッションや Microsoft のチームとの交流などが行えるとのこと。

Release v1.0 Windows Maps: Introducing the Maps control for Windows · CommunityToolkit/Maui

https://github.com/CommunityToolkit/Maui/releases/tag/1.0.0-maps

.NET MAUI Community Toolkit で Windows 向けの Map コントロールがリリースされた。

Windows はプラットフォームの機能としてマップを持たず .NET MAUI の Map コントロールがサポートされていないため、コミュニティー実装として Bing を WebView2 でホストする形の Map コントロールを提供する。

Public Preview: App Service support for .NET 8 | Azure updates | Microsoft Azure

https://azure.microsoft.com/en-us/updates/public-preview-app-service-support-for-net-8/

Azure App Service で .NET 8 の早期アクセスについてのアナウンス。

Azure App Service (Windows および Linux) での .NET 8 の早期アクセスによる利用が可能となる。

Configure Visual Studio policies using Microsoft Endpoint Manager (Intune) - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/configure-visual-studio-policies-using-microsoft-endpoint-manager-intune/

Microsoft Endpoint Manager (Intune) の設定カタログに Visual Studio のグローバルポリシーが追加された。

これにより Intune から Visual Studio の構成オプションを展開するにあたり ADMX の手動アップロードが必要だったものが、Intune から直接管理できるようになる。

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

ASP.NET (.NET Framework) 向けの各 Session State Provider が大規模アップデート - しばやん雑記

https://blog.shibayan.jp/entry/20230618/1687080471

ASP.NET (.NET Framework) 向けの Session State Provider の更新についてのまとめ。

ASP.NET 向けの Session State Provider として SQL Server と Cosmos DB、Redis を使用するものがありそれぞれ今年に入って更新されたポイントについて詳しく解説している。

【VSCode, C#, AWS Lambda】C#で作成したLambda Functionをローカルで動作確認する - Qiita

https://qiita.com/shin4488/items/a01fdf54daf626cb8742

.NET で実装した AWS Lambda のファンクションをローカルの Visual Studio Code で動作確認する方法について。

Running Large Language Models locally – Your own ChatGPT-like AI in C#

https://dev.to/maartenba/running-large-language-models-locally-your-own-chatgpt-like-ai-in-c-jco

LLamaSharp を使用してローカルの環境で ChatGPT のような LLM による AI チャットを実装する方法について。

Compile F# to Rust 🦀

https://jkone27-3876.medium.com/compile-f-to-rust-22cf5aa9021

F# のコードを Rust に変換して実行する方法について。

Fable を使用することで F# のコードを Rust のコードに変換して実行する方法を紹介している。

Implementing Dapr State Management in ASP.NET Core Web APIs

https://dev.to/willvelida/implementing-dapr-state-management-in-aspnet-core-web-apis-42lk

Dapr の状態管理を利用して ASP.NET Core Web API アプリケーションを実装する方法について。

Speed up your app search engine using Sonic

https://medium.com/@jesielpadilha.ti/speed-up-your-app-search-engine-using-sonic-a4ae788c4d6a

セルフホストの検索エンジン Sonic を使用して検索、追加などを実装する方法について。

C#でChatGPT APIを触りたい 2 ~ ReadableStream ~ - Qiita

https://qiita.com/TellMin/items/9059423600a6897cef0c

ChatGPT API のレスポンスをストリーム(単語単位で徐々に返答が返ってくる形式)で扱う方法について。

How to Implement a Soft Delete Strategy with Entity Framework Core | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/06/14/how-to-implement-a-soft-delete-strategy-with-entity-framework-core/

Entity Framework Core で論理削除を実装する方法について。

記事ではインターセプターによる削除処理のフック、自動的なクエリーフィルターといった手法を紹介している。

食わず嫌いのBulkCopy(C# SqlClient実装例)

https://zenn.dev/panda728/articles/55f45ba18cf29f

SqlClient (SQL Server) での BulkCopy についての簡単な紹介。

Using Project Orleans to Build Actor-Based Solutions on the .NET platform

https://www.infoq.com/articles/project-orleans-actor-based/

Orleans についての紹介と実装、メリットについての紹介。

ASP.NET Core でローカルにシークレットをサクッと用意する - Qiita

https://qiita.com/higege-amdeker/items/f403cb10b4c8337a7980

ASP.NET Core アプリケーション開発時にローカルでのみ保持するシークレットを取り扱うユーザーシークレットについて。

Supporting legacy browsers and SameSite cookies without UserAgent sniffing in ASP.NET Core.

https://andrewlock.net/supporting-legacy-browsers-and-samesite-cookies-without-useragent-sniffing-in-aspnetcore/

古いブラウザーで SameSite クッキーをユーザーエージェントによらずサポートするためのテクニック。

ASP.NET Core 8: Expose Timestamp data request processing with IHttpSysRequestTimingFeature when using HTTP.sys

https://anthonygiretti.com/2023/06/16/asp-net-core-8-expose-timestamp-data-request-processing-with-ihttpsysrequesttimingfeature-when-using-http-sys/

.NET 8 の ASP.NET Core で追加された IHttpSysRequestTimingFeature を使用して HTTP.sys 環境下でリクエストのタイムスタンプを取得する方法について。

Kubernetes mutating admission webhook for dotnet-monitor?

https://www.poppastring.com/blog/kubernetes-mutating-admission-webhook-for-dotnetmonitor

dotnet-monitor を Kubernetes の admission webhook でサポートするかどうかフィードバックを求めている。

(C#) ValueTuple のサイズとレイアウト - ネコのために鐘は鳴る

https://ikorin2.hatenablog.jp/entry/2023/06/14/184523

ValueTuple のメモリー上のサイズとレイアウトについて。

ValueTuple は StructLayout(LayoutKind.Auto) が指定されているため、サイズとレイアウトは一定ではないことについて。

Installing Visual Studio from an Internal Website - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/installing-visual-studio-from-an-internal-website/

内部 Web サイトから Visual Studio をインストールする方法について。

Visual Studio 2022 17.6 以降ではイントラネットのサイトから Visual Studio のレイアウトを配布出来るようになったことについての解説。

Qt/.NET — Hosting .NET code in a Qt application (1/3)

https://www.qt.io/blog/qt/.net-hosting-.net-code-in-a-qt-application

Qt アプリケーションで .NET をホストする方法について。

記事では Qt/.NET を使用して .NET のコードをホストすることで Qt アプリケーションから .NET のコードを呼び出す方法やラッパーの実装方法について紹介している。