トピックス
Introducing the AWS Message Processing Framework for .NET (Preview) | Amazon Web Services
AWS Message Processing Framework for .NET のプレビューが公開された。
.NET で AWS の SQS や EventBridge を使用してメッセージ処理を行うためのフレームワーク。メッセージのハンドラーを記述する形で処理を行え、機能も AWS に特化した調整が行われている。
OpenTelemetry でのインストゥルメンテーションなどもサポートされている。
.NET 7 will reach End of Support on May 14, 2024 - .NET Blog
https://devblogs.microsoft.com/dotnet/donet-7-end-of-support/
.NET 7 が2024年5月14日にサポート終了となることについて。
.NET 7 は STS (Standard Term Support) のためリリースの18か月後である2024年5月14日にサポートが終了となる。.NET 8 へのアップグレードが推奨される。
また、サポート終了後 Visual Studio 17.6 および 17.4 のサービス更新にて .NET 7 はサポート対象外のコンポーネントとなる。
A new MSBuild editing experience - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/experimental-msbuild-editor/
MSBuild ファイルの編集をより良い体験にするための実験的な Visual Studio 拡張のリリース。
.csproj ファイルのような MSBuild のプロジェクトファイルをソースコードエディターで編集する際にクイックヒントやポップアップ、ナビゲーションにコード補完といった高度な支援を受けられるようにする拡張。
現時点では Visual Studio の拡張となっているが、今後 Visual Studio Code 向けにも移植予定とされている。
Release Release v2.62.0 · grpc/grpc-dotnet
https://github.com/grpc/grpc-dotnet/releases/tag/v2.62.0
grpc-dotnet v2.62.0 がリリースされた。
このリリースでは UWP での検出のエラーが修正されている。
Testing Your Native AOT Applications - .NET Blog
https://devblogs.microsoft.com/dotnet/testing-your-native-aot-dotnet-apps/
Native AOT のユニットテストをサポートした MSTest の早期プレビューが公開された。
このプレビューでは MSTest 向けのユニットテストを Native AOT でコンパイルし、テストを実行できる仕組みが提供される。これにより Native AOT として実行した際のランタイムエラーなどをチェックできるようになる。
このプレビューではコードカバレッジと TRX レポートの生成がサポートされているが、テストケースの検出などは最低限のもののみがサポートされているとのこと。
Bing on .NET 8: The Impact of Dynamic PGO - .NET Blog
https://devblogs.microsoft.com/dotnet/bing-on-dotnet-8-the-impact-of-dynamic-pgo/
Bing での .NET 8 の Dynamic PGO の導入について。
実際に .NET 8 で Dynamic PGO をテストしたところ定常的なパフォーマンスは向上したが、一部のワークロードでスパイクの遅延が見られた。調査した結果、コードベースが巨大なため再 JIT キューがたまりすぎていたことに起因していた。これはウォームアップクエリーの追加や設定の変更などで解消できた。
結果として CPU サイクルは 13% 減少するといったパフォーマンスの向上が得られたほか、GC の影響を受けるクエリーの割合も減少したとのこと。
Retirement: Support for the in-process model for .NET apps in Azure Functions ends 10 November 2026.
Azure Functions における .NET アプリのインプロセスモデルのサポートが2026年11月10日にサポート終了となる。
当該アプリケーションは期日までにアウトプロセスモデルへの移行する必要がある。
Retirement: Support for .NET 6 ends on 12 November 2024—upgrade your Azure Functions apps to .NET 8
Azure Functions において .NET 6 のサポートは2024年11月12日で終了となる。
現在 .NET 6 で稼働しているアプリケーションは .NET 8 へのアップグレードが必要となる。
ODP.NET 23c — Major Dev Release Update
https://medium.com/@alex.keh/odp-net-23c-major-dev-release-update-016297dea26c
ODP.NET 23c Developer Release 23.3.2 がリリースされた。
このリリースでは Metrics API や OpenTelemetry への対応、Azure Key Vault や OCI Vault のような構成プロバイダーからの接続情報の取得、mTLS の証明書の選択、接続確立の高速化といった変更が含まれている。
Release ILSpy 9.0 Preview 1 · icsharpcode/ILSpy
https://github.com/icsharpcode/ILSpy/releases/tag/v9.0-preview1
ILSpy 9.0 Preview 1 がリリースされた。
このリリースでは ECMA-335 メタデータや WebCIL の読み取りのサポート、言語のサポートの強化やパフォーマンス改善などが含まれている。
Preview 1 of #ILSpy 9.0 is now available - as usual, we pack lots of breaking changes into P1. But also a few nuggets like WebCIL & ECMA-335 metadata support. For details (eg performance improvements!) and download see https://t.co/7JfzITdWMP
— ILSpy Team (@ilspy) April 1, 2024
アーティクル、スライドなど
Lock クラス | C; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2024/4/lock-class/
.NET 9 および C# 13 で導入される Lock
クラスについて。
ref/ref struct 変数を非同期メソッド中で使えるように | C; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2024/4/ref-in-async/
C# 13 で対応が予定されている ref
/ref struct
を非同期メソッド内で使用できるようにする対応について、Lock/lock に関連した話。
How to use Comments to Prompt GitHub Copilot for Visual Studio - Visual Studio Blog
Visual Studio の GitHub Copilot でのコメントをプロンプトとして使用し、コメントそのものを生成する機能について。
dotInsights | April 2024 | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2024/04/03/dotinsights-april-2024/
JetBrains による .NET 関連情報の2024年4月のまとめ。
Making AI powered .NET apps more consistent and intelligent with Redis - .NET Blog
https://devblogs.microsoft.com/dotnet/redis-makes-intelligent-apps-smarter-and-consistent/
Redis と Azure OpenAI Services を組み合わせた .NET アプリケーションで Semantic Kernel での RAG や、ページ出力のキャッシュを行う方法について。
How to Install GitHub Copilot in Visual Studio - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/how-to-install-github-copilot-in-visual-studio/
Visual Studio に GitHub Copilot をインストールする方法についての解説。
利用者目線での Semantic Kernel v1 入門
https://zenn.dev/microsoft/articles/semantic-kernel-v1-004
Semantic Kernel についての入門。記事では OpenAI の API の呼び出し、テンプレートエンジン、プラグインやプランナーといった仕組みを使用する方法について触れている。
ASP.NET Core でコントローラーやサービスの実行時にログを自動挿入する
https://zenn.dev/kos59125/articles/82b4d827d4a581
ASP.NET Core のコントローラーなどで使用される DI 由来のサービスの呼び出しで自動でロギングを行う方法について。 Microsoft.Extensions.DependencyInjection でのサービス解決時に DispatchProxy を使用してロギングをする方法を紹介している。
.NET Aspire のダッシュボードを単独で使う - Qiita
https://qiita.com/takashiuesaka/items/338ae64ca2033e078f7f
.NET Aspire 向けに提供されているサンプルダッシュボードアプリケーションを Aspire なしの OpenTelemetry の受け皿として使用する方法について。
ASP.NET Core MVCアプリケーションをLambda Web Adapterを使ってLambda上で動かす
https://zenn.dev/awwa500/articles/556d1ea8ca5c9f
Lambda Web Adapter を使用して一般的な ASP.NET Core MVC アプリケーションを AWS Lambda 上で動かす手順について。
.NET Aspire でデータベースを扱う - SQL Server 編 - Qiita
https://qiita.com/takashiuesaka/items/6d5ec4d4994649c5dca5
.NET Aspire アプリケーションで SQL Server を使用する方法について。記事では開発環境向けに SQL Server をコンテナーで動作させたり、初期値を投入する、実際のデプロイ時の考慮といった点についても触れている。
.NET Aspire でデータベースを扱う - PostgreSQL編 - Qiita
https://qiita.com/takashiuesaka/items/137cb1450c3d9fbc8d1e
.NET Aspire アプリケーションで PostgreSQL を使用する方法について。記事では開発環境向けに PostgreSQL をコンテナーで動作させたり、初期値を投入する、実際のデプロイ時の考慮といった点についても触れている。
WinUI 3 の多言語化
https://zenn.dev/shinta0806/articles/winui3-multi-lang
WinUI 3 (Windows App SDK) アプリケーションで多言語対応するための仕組みについて。
C#で型で状態を表しつつJsonで永続化をしたデータのデシリアライズに失敗する理由と解決方法
https://zenn.dev/jtechjapan_pub/articles/28f84dad6b435b
PostgreSQL の JSONB カラムに .NET の型情報を持った JSON を保存した際にデシリアライズに失敗する問題について。
DocFX(C#のXMLコメントをドキュメント化)へプライベートメソッドも出力する方法 - Qiita
https://qiita.com/mounntainn/items/270c8ca34dd67bf257ce
DocFx でドキュメントを作成する際にプライベートメソッドも含めて出力する方法について。
In 4 Weeks: Visual Studio LIVE! Chicago 2024 - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-live-2024-chicago/
4週間後(2024年4月29日)にせまった Visual Studio LIVE! Chicago 2024 というイベントについて。
Blazor C# チュートリアル - Claude APIを使ってみる - Qiita
https://qiita.com/firesign2023/items/702407263cdfff117e05
Claude API を使用した Blazor アプリケーションでのチュートリアル。
The Rider 2024.1 Release Candidate Is Now Available | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2024/03/27/the-rider-2024-1-rc/
Rider 2024.1 Release Candidate がリリースされた。
このリリースでは新しい Monitoring ウィンドウやコレクションビジュアライザー、刷新された Terminal ウィンドウ、Blazor WASM のホットリロードなど様々な新機能が含まれる。
The ReSharper 2024.1 Release Candidate Is Now Available | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2024/03/27/the-resharper-2024-1-rc/
ReSharper 2024.1 Release Candidate がリリースされた。
「自作ライブラリのAspire対応をしてみての感想 ...」に関してC# Tokyoで登壇しました
https://zenn.dev/jtechjapan_pub/articles/685212103358fe
自作のライブラリーを .NET Aspire に対応したことについてのセッションのフォローアップ記事。
新しいBox .NET SDKの使用
Box の新しいコード生成ベースの .NET SDK の紹介と簡単な使い方について。
新しい Box SDK は Box API を広くカバーし、コード生成ベースとなったことになったことにより最新の API の反映が迅速に可能となったとのこと。
Implement API Gateway with Token Handler Pattern using .NET, Redis and Keycloak
YARP と Redis、Keycloak を使用したトークン認証 API ゲートウェイを実装する方法について。
.NET Framework - March 2024 Cumulative Update Preview - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-framework-march-2024-cumulative-update-preview/
.NET Framework 2024年3月の累積アップデートのプレビューがリリースされた。
このリリースではスレッドプールの問題や 32bit アプリケーションで Interlocked.Read の速度が低下する問題、ASP.NET の1月でのアップデートのパフォーマンス問題の修正などが含まれている。
Beautiful .NET Test Reports Using GitHub Actions
https://seankilleen.com/2024/03/beautiful-net-test-reports-using-github-actions/
GitHub Actions でテストやコードカバレッジレポートを生成し、コメントとして反映するといった方法について。
C# Win32API完全入門 - Qiita
https://qiita.com/nekotadon/items/f376d17de85dfb84fbd5
C# (.NET) での Win32 API の利用についての定義や実際の API の紹介とコード例といった入門。
Deploying .NET MAUI Blazor App to ProgramFiles'
https://mitchelsellers.com/blog/article/deploying-net-maui-blazor-app-to-programfiles
.NET MAUI Blazor アプリケーションを Program Files (や書き込み不可)ディレクトリーに配置した際に WebView2 が問題となるケースについて。
20240326_NET Aspire概要 | ドクセル
https://www.docswell.com/s/tanaka_733/ZXYX8N-2024-03-26-aspire
.NET Aspire とはどのようなものや機能、コードの記述かといったものを Preview 4 の時点の情報でまとめたスライド。
イベント、ライブなど
.NETラボ 勉強会 2024年4月&Azureわいがや会 (2024/04/27 13:00〜)
https://dotnetlab.connpass.com/event/314310/
Let's Learn .NET: コンテナー(日本語) - YouTube
https://www.youtube.com/watch?v=PFUy3W-FeAY
ライブラリ、リポジトリ、ツールなど
Cysharp/Utf8StreamReader: Utf8 based StreamReader for high performance text processing.
https://github.com/Cysharp/Utf8StreamReader
UTF-8 テキストを Stream から効率的に読み込むためのライブラリー。
endjin/dotnet-adr: A cross platform .NET Global Tool for creating and managing Architectural Decision Records (ADRs).
https://github.com/endjin/dotnet-adr
Architectural Decision Records (ADRs) を作成するためのツール。
サイト、ドキュメントなど
ツイート
learn.microsoft.com の .NET API ドキュメントからソースコードへジャンプするためのリンクが追加された話。(日本語版にはまだない)
The .NET API ref docs now include links to the source code! We've had many requests for this feature over the years and it's finally here. If the docs don't tell you what you need to know, now you have a direct link to the implementation. Example page: https://t.co/vrxkE67paw. pic.twitter.com/fOBMMAacXE
— Genevieve Warren (@screechowl25) April 4, 2024
Deep Dive
Add Task.WhenEach to process tasks as they complete by stephentoub · Pull Request #100316 · dotnet/runtime
https://github.com/dotnet/runtime/pull/100316
複数の Task を待機し、終わったものから返す Task.WhenEach の追加 PR。