2023-04-15: .NET 8 Preview 3, .NET 7.0.5 & 6.0.16, Windows App SDK v1.3.0

Published on Saturday, 15 April 2023

トピックス

Announcing .NET 8 Preview 3 - .NET Blog

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

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

記事では次の機能や改善点について紹介している。

  • SDK
    • 簡略化された出力先パス
    • dotnet workload clean コマンド
  • ランタイム
    • ValidateOptionsResultBuilder
    • 構成バインディングソースジェネレーター
    • ネイティブコード生成の改善
  • コンテナー
    • 複数のプラットフォームのイメージのビルド
    • 非 root ユーザー UID 値の環境変数

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

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

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

このリリースでは ASP.NET Core の Native AOT でのサポートとサポート範囲/互換性、テンプレートなどについてをはじめとして、様々な新機能を紹介している。

  • Native AOT での ASP.NET Core サポート
  • Blazor でのサーバーサイドレンダリング
  • ASP.NET Core の外で Razor コンポーネントのレンダリング
  • Blazor でのセクションのサポート
  • Blazor Server の回線アクティビティのモニター
  • Blazor WebAssembly アプリケーションでの SIMD のデフォルト有効化
  • リクエストタイムアウト
  • ショートサーキットルート

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

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

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

このリリースでは品質の向上やメモリー管理の改善などが行われている。

Check out new C# 12 preview features! - .NET Blog

https://devblogs.microsoft.com/dotnet/check-out-csharp-12-preview/

C# 12 のプレビュー機能の紹介。

  • 非レコードなクラスと構造体でのプライマリーコンストラクター
  • あらゆる型に対する using エイリアス
  • ラムダ式のパラメーターのデフォルト値

.NET April 2023 Updates – .NET 7.0.5, .NET 6.0.16 - .NET Blog

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

.NET 7.0.5 および 6.0.16 がリリースされた。

このリリースにはセキュリティー修正は含まれず、不具合の修正や小さな改善が含まれている。

v1.3.0 - Stable channel release notes for the Windows App SDK - Windows apps

https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-13

Windows App SDK v1.3.0 がリリースされた。

このリリースでは XAML Backdrop API (ウィンドウ背景への Mica の適用など)、アプリウィンドウにアクセスするための Window.AppWindow API などいくつかの新機能が導入されている。

Release 2.3.0 Beta 2 · mysql-net/MySqlConnector

https://github.com/mysql-net/MySqlConnector/releases/tag/2.3.0-beta.2

Async MySQL Connector 2.3.0 Beat 2 がリリースされた。

このリリースでは MariaDB でのメタデータスキップによるパフォーマンスの改善や MySqlDataReader のリサイクルなどの改善が含まれている。

NuGet.org Terms of Service Update on Unexpected Behavior and Hate Speech - The NuGet Blog

https://devblogs.microsoft.com/nuget/nuget-org-terms-of-service-update-on-unexpected-behavior-and-hate-speech/

NuGet.org の利用規約のアップデートについて。

利用規約が更新され、不正行為に関する二つのルールが追加された。一つはパッケージの説明や README にない予期しない動作(悪意あるバックドアなど)についてのルール、もう一つはヘイトスピーチについてのルールについて追加となっている。

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

Debugging native memory issues in a C# application

https://ayende.com/blog/199265-A/debugging-native-memory-issues-in-a-c-application

C# アプリケーションでアクセス違反でクラッシュする問題を調査した話。

Avx2 でメモリーを読み取るときに無効なメモリーも読み取ってしまうことによって発生した問題。

Data validation with Fluent Validation for ASP NET Core

https://medium.com/c-sharp-progarmming/data-validation-with-fluent-validation-for-asp-net-core-6613c71211f8

ASP.NET Core で Fluent Validation を使用した入力検証の導入方法について。

.NET + AvaloniaUI 制作日誌①

https://zenn.dev/jun_murakami/articles/87c79a3c622b6f

Avalonia UI v11 プレビューを使用しての変更点などのメモ。

Improving Visual Studio performance with the new Instrumentation Tool - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/improving-visual-studio-performance-with-the-new-instrumentation-tool/

Visual Studio の新しいインストルメンテーションツールの紹介として Visual Studio のパフォーマンスを改善する記事。

📈 Boost Your Integration Testing for REST APIs with Snapshot Testing in .NET

https://dev.to/kamilbaczek/boost-your-integration-testing-for-rest-apis-with-snapshot-testing-g2b

データを比較して検証する Verify を使用してユニットテストを行う方法について。

[C#11] Generic Mathで桁あふれしないように足し算を実装する

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

Generic Math で独自の Vector 構造体を定義し、足し算を行うときに桁あふれしないような実装を行う。

What’s New in .NET 8 🧐 ? Discover ALL .NET 8 Features⚡🚀

https://medium.com/abp-community/whats-new-in-net-8-discover-all-net-8-features-bf98bc9cf68c

.NET 8 の新機能や Random.GetItems など API を紹介している。

Looking at C# 12 Proposals and Beyond

https://michaelscodingspot.com/csharp-12-proposals/

C# 12 での提案やその先にある C# の機能を紹介している。

  • プライマリーコンストラクター
  • 半自動プロパティー
  • リストパターンマッチングの IEnumerable への拡張
  • Pure Union と Discriminating Union

Normalize and compare URLs with C#

https://blog.elmah.io/normalize-and-compare-urls-with-csharp/

URL に含まれる ID などをつぶして正規化して比較する方法について。

ExternalFinalizer: Adding a finalizer to 3rd party objects

https://ravendb.net/articles/externalfinalizer-adding-a-finalizer-to-3rd-party-objects

ファイナライザーを持たないオブジェクトを外部からファイナライザーを使用して破棄するというテクニック。

LINQ on steroids with SIMD

https://steven-giesel.com/blogPost/faf06188-bae9-484d-804d-a42d58d18cad

SIMD を使用して LINQ の高速化を試み、ライブラリーを実装したことについて。

The Journey with multi-tenancy accesses continues with some issues

https://danielwertheim.se/the-journey-with-multi-tenancy-accesses-continues-with-some-issues/

マルチテナントアクセスを行う際の実装と注意すべき取り扱いについて。

Working With Nested Tasks

https://itnext.io/working-with-nested-tasks-9acd700c0e86

ネストされた Task の挙動とその制御について。

GitHub、ソフトウェア部品表の作成機能を無償公開--脆弱性管理を容易に

https://japan.zdnet.com/article/35202341/

GitHub で SBOM のエクスポートがサポートされたことについての紹介。

WASM, WASI, WTF? WebAssembly 101 – for .NET developers

https://speakerdeck.com/christianweyer/wasm-wasi-wtf-webassembly-101-for-net-developers

.NET 開発者向けの WebAssembly や WASI、Blazor の現状と今後についてのスライド。

C#によるクライアント/サーバーの開発言語統一がもたらす高効率な開発体制 ~プリコネ!グランドマスターズ開発事例~

https://speakerdeck.com/cygames/sabanokai-fa-yan-yu-tong-gamotarasugao-xiao-lu-nakai-fa-ti-zhi-purikone-gurandomasutazukai-fa-shi-li

プリコネ!グランドマスターズでの C# を用いたクライアントとサーバーでの言語統一環境での開発事例についてのスライド。

.NETラボ 勉強会 2023年4月 - connpass

https://dotnetlab.connpass.com/event/279139/

  • Azure OpenAI Service 概要とサンプルアプリ等のご紹介
  • Microsoft PowerToysを使ってみよう
  • Windows 365 Frontline すべての働く人にクラウド PC を!
  • Azure OpenAIサービスでChatGPTをC#で使ってみる
  • モノレポなライブラリ群をCICDでデプロイした話

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

HoloLabInc/IwasmUnity: Unity C# wrapper of iwasm

https://github.com/HoloLabInc/IwasmUnity

Unity 向けの WebAssembly Micro Runtime の iwasm のバインディング。

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

ツイート

AVX-512 サポートの話。

アラインの有無によるメモリーアクセスのパフォーマンスの差の話。

ネイティブビルドをしたコード (SeeSharpSnake) を 486 の MS-DOS で動かすという話。最終的にリアルな PC の上で動かしている。