2024-04-26: Uno Platform 5.2, MySqlConnector 2.3.7, .NET Aspire preview 6

Published on Friday, 26 April 2024

トピックス

Announcing the first-ever true .NET Single Project for Mobile, Web, Desktop, and Embedded apps

https://platform.uno/blog/the-first-and-only-true-single-project-for-mobile-web-desktop-and-embedded-in-net/

Uno Platform 5.2 がリリースされた。

このリリースでは Skia レンダラーの強化によるパフォーマンスの向上やマルチウィンドウのサポート、Uno SDK の改善、.NET 9 Preview のサポートなどが含まれている。

またプロジェクトテンプレートの更新により、単一のプロジェクトですべてのプラットフォームをサポートできるようになったとのこと。

Release 2.3.7 · mysql-net/MySqlConnector

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

MySqlConnector 2.3.7 がリリースされた。

このリリースではいくつかの不具合が修正されている。

.NET Aspire preview 6 - .NET Aspire

https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/preview-6

.NET Aspire の Preview 6 がリリースされた。

このリリースでは Obsolete な API の削除や変更、Aspire ダッシュボードのトークンによる認証、Qdrant ベクターデータベースのサポート、その他細かい変更が含まれている。

Introducing Elastic's OpenTelemetry SDK for .NET

https://www.elastic.co/jp/blog/elastic-opentelemetry-distribution-dotnet-applications

Elastic .NET OpenTelemetry SDK のアルファーバージョンが公開された。

Elastic OpenTelemetry ディストリビューションは Elastic による OpenTelemetry のデフォルト構成や OpenTelemtry SDK を使用した拡張。現時点でのアルファリリースではバニラバージョンとの差異はほとんどないが今後機能追加を行う予定とのこと。

Building a scalable gateway with .NET for Microsoft AI - .NET Blog

https://devblogs.microsoft.com/dotnet/building-a-scalable-gateway-for-microsoft-ai/

Microsoft の Bing や Copilot といった AI サービスのフロントエンドゲートウェイを .NET と YARP で構築した事例について。

記事ではミラーリングやレートリミット、動的構成変更など YARP の柔軟な構成を活用した例を紹介している。

Release v8.1.0 · dotnet/orleans

https://github.com/dotnet/orleans/releases/tag/v8.1.0

Orleans v8.1.0 がリリースされた。

このリリースでは Aspire との統合がサポートされたほか、様々な修正と改善が含まれている。

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

Detecting blocking calls using async in C# | James Crosswell | Code Blog

https://www.jamescrosswell.dev/posts/async-detecting-blocking-calls

非同期メソッドにおいてブロッキングコールを調査する方法について。

記事では Ben.BlockingDetector を使用した検出とそれを Sentry に組み込んだことについて、Sentry 上で確認できるようにしたことについて書かれている。

.NETの正規表現 - キャプチャ

https://zenn.dev/sayurin/articles/76f6739d7ac75f

.NET の正規表現におけるキャプチャーについて。

名前付きキャプチャーが複数ある場合についてや F# での名前付きキャプチャーを自然に取り扱えるようにする方法など。

Refactor your C# code with primary constructors - .NET Blog

https://devblogs.microsoft.com/dotnet/csharp-primary-constructors-refactoring/

プライマリーコンストラクターを使用したリファクタリングについて。

記事では ILogger のようなものをコンストラクターで渡すパターンをプライマリーコンストラクターで置き換える例について紹介している。

Hacking together an AsciiMath parser for .NET

https://andrewlock.net/hacking-together-an-asciimath-parser-for-dotnet/

AsciiMath パーサーを .NET から扱う方法について。

記事ではいくつかの言語の AsciiMath パーサーを紹介して、最終的に JavaScript 実装を Jint を使用して .NET から実行できるようにするという方法を解説している。

ASP.NET Core Minimal API を本番でも大規模でも使えるように構成する - Qiita

https://qiita.com/takashiuesaka/items/654c6e0d0bb7c92854a8

ASP.NET Core Minimal APIs で API を定義、実装する際のコードを整理する手法の紹介 (翻訳)。拡張メソッドによる集約や MapGroup でのグルーピングなど。

https://dev.to/koma_koma_d/how-to-create-a-link-between-two-spans-in-opentelemetry-424i

OpenTelemetry の Span 間の関連付けをする span-link を作る方法について。

【JWT】デコード時に発生したエラー Unable to decode the payload の解決方法

https://zenn.dev/o0rororo0o/articles/028202490cc99d

Microsoft.AspNetCore.Authentication.JwtBearer 7.0.14 以降で JWT の iat フィールドが数値以外となっているとエラーになることについて。

Optimizing String Searches in C# with SearchValues

https://dev.to/admirmujkic/optimizing-string-searches-in-c-with-searchvalues-1105

.NET 8 で追加された特定の値が含まれていることを検索することに特化した定義が可能な SearchValues クラスの使い方とパフォーマンスについて。

The First Set of Bug Fixes for ReSharper and Rider 2024.1 Are Here! | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2024/04/17/the-first-set-of-bug-fixes-for-resharper-and-rider-2024-1-are-here/

ReSharper と Rider 2024.1.1 がリリースされた。

このリリースは ReSharper と Rider 2024.1 の最初のバグフィックスで、いくつかの細かい不具合が修正されている。

itsmattkc/dotnet9x: Backport of .NET 2.0 - 3.5 to Windows 9x

https://github.com/itsmattkc/dotnet9x

.NET Framework 2.0-3.5 を Windows 9x にバックポート(移植)を試みるプロジェクト。

-【やじうまPC Watch】 .NET FrameworkをWindows 95にバックポートした強者現る

Will Visual Studio Be Migrated to .NET Core and Become Multi-Platform? - NDepend Blog

https://blog.ndepend.com/visual-studio-multi-platform/

Visual Studio は .NET CoreCLR 化するのかということを考えるべく、現状の Visual Studio のアセンブリの構成を調査し推察している。

イベント

C#パフォーマンス勉強会 (2024/04/27 13:30〜)

https://cs-reading.connpass.com/event/309714/

イマドキのC# .NET Web開発 〜gRPC, GraphQL, Blazorもあるよ〜 (2024/05/15 19:00〜)

https://sansan.connpass.com/event/316664/

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

Cysharp/KcpTransport: KcpTransport is a Pure C# implementation of RUDP for high-performance real-time network communication

https://github.com/Cysharp/KcpTransport

KCP(UDP ベースの RUDP 的なプロトコル) の .NET 移植実装。

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

ツイート

ローカル関数がコンパイルされて IL になった際、g_ で始まる名前のメソッドになるが、その g_ について。

IList<T>IReadOnlyList<T> になるかもしれないという話。

Deep Dive

List Add is way slower (almost 3 times) in net9.0 preview 3 than with net8.0 · Issue #101437 · dotnet/runtime

https://github.com/dotnet/runtime/issues/101437

JIT の変更により .NET 9 の List が遅くなることがある問題について。現状 Apple Silicon (Arm64) でのみ発生している。