トピックス
Announcing .NET Conf - Focus on .NET MAUI, Reactor, and Community Events
https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-focus-reactor-community-events/
.NET MAUI にフォーカスしたライブストリーミングイベントの .NET Conf が8月9日に行われるというアナウンス。
Profiling QuestPDF: In Pursuit of Performance | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/07/27/profiling-questpdf-in-pursuit-of-performance/
JetBrains のオープンソース支援の一環で QuestPDF を dotTrace と dotMemory でプロファイリングしてパフォーマンスの問題の突き止めと修正を行ったことについて。
ラムダによるキャプチャーの削減、キューの再利用、オブジェクトの生成削減、サイズ削減といった様々な最適化を行っている(記事内に実際の Pull request へのリンクがある)。
.NET Framework July 2022 Cumulative Update Preview
https://devblogs.microsoft.com/dotnet/dotnet-framework-july-2022-cumulative-update-preview/
.NET Framework 2022年7月の累積アップデートのプレビューがリリースされた。
TLS 1.3 でクライアント証明書を使用している場合にネゴシエーションでハングアップする問題や、WPF の同期に関する問題の修正が含まれる。
アーティクル、スライドなど
C#: Modify Claims via Middleware in ASP.NET
https://dev.to/kenakamu/c-modify-claims-via-middleware-in-aspnet-335m
ASP.NET Core で JWT 認証などを行っている場合に、開発/テスト時にミドルウェアでクレームを変更することで認証をパスできるようにする方法についての記事。
Using IAsyncEnumerable in a Razor component - Gérald Barré
https://www.meziantou.net/using-iasyncenumerable-in-a-razor-component.htm
IAsyncEnumerable を Blazor の Razor コンポーネントで使用することについての記事。
愚直に実装した場合 StateHasChanged を呼び出す頻度が高くなるので、スロットリングしたほうがいいといったことが書かれている。
5 tricks every C# dev should know about LINQPad - Code4IT
https://www.code4it.dev/blog/5-linqpad-tricks
LINQPad で役立つ5つの機能を紹介している記事。
Dump やスタイリング、xUnit サポートなど。
MAUIのカスタムコントロールの所感
https://zenn.dev/muak/articles/876fa1d62a3f40
.NET MAUI のカスタムコントロールを実装する際のポイントを解説している記事。
カスタムコントロールに必要なものについてや、各プラットフォームごとのファイル構成について触れている。
[C#] Why function pointers can’t be used on instance methods
https://minidump.net/c-why-function-pointers-cant-be-used-on-instance-methods-8a99fc99b040
インスタンスメソッドに対して C# 9 の関数ポインターを使用すると正常に動かないことがあることを解説している記事。
インスタンスメソッドには隠し引数として this があること、レジスターに収まらない構造体を返す場合にリターンバッファーを用意して渡すといったことが行われていることといった理由があるとしている。
Real time analytics using .Net & Redis
https://dev.to/c_arnab/real-time-analytics-using-net-redis-4c5d
Redis で RedisTimeSeries モジュールを使用して時系列データを扱うことでリアルタイム分析を実現するアプリケーションを構築するという記事。
Ways to navigate and explore codebases | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/07/25/ways-to-navigate-and-explore-codebases/
Rider に備わっているコードを移動/探索するための様々な機能の紹介をしている記事。
.NET v7.0 Features Will Change the Way You Code - Nile Bits
https://www.nilebits.com/blog/2022/07/net-v7-0-features-will-change-the-way-you-code/
.NET 7 で導入される新しい API のいくつかをコード例と合わせて紹介している記事。
OpenTelemetry in Dotnet
https://dev.to/mrblonde91/opentelemetry-in-dotnet-398
.NET アプリケーションで OpenTelemetry を使用してトレースやメトリクスを収集する構成について例をあげて紹介している記事。
Running .NET Core Applications as a Linux Service - Code Maze
https://code-maze.com/aspnetcore-running-applications-as-linux-service/
.NET のアプリケーションを Linux のサービスとして動作させる方法についての記事。
記事では Systemd での実行に必要な手順を解説している。
Exploring Communication of Rate Limits in ASP.NET Core With Rate Limit Headers
https://www.tpeczek.com/2022/07/exploring-communication-of-rate-limits.html
ASP.NET Core での API レートリミットに関して、レートリミットの HTTP ヘッダーの取り扱いについての記事。
.NET 7 の Rate Limiting API、AspNetCoreRateLimit パッケージを使用した方法、HttpClient での呼び出しの制限に触れている。
Asynchronous Programming in .NET - Introduction, Misconceptions, and Problems | Blog
https://wapplegate.com/asynchronous-programming/
.NET の非同期プログラミング (async/await) に関するまとめ記事。
I/O バウンドと CPU バウンドの処理の違い、非同期で得られるメリット、async/await での誤解、避けるべき操作、スレッドプールの枯渇といった点が書かれている。
Microsoft Releases New .NET Rate Limiter in .NET 7 - And It's Amazing!🤯
https://blog.dotnetsafer.com/new-microsoft-dotnet-rate-limiter-for-rate-limiting/
.NET 7 の Rate Limiting API について、各レートリミットのアルゴリズムについて図解つきで説明している記事。
Microsoft Tests Tutorials Inside Visual Studio, Starting with Blazor -- Visual Studio Magazine
https://visualstudiomagazine.com/articles/2022/07/28/vs-tutorials.aspx
Visual Studio 内でチュートリアルを進められる仕組みがテストされていることについての記事。
Visual Studio のプレビューを使用する一部のユーザーが Blazor のチュートリアルを Visual Studio のペインで進められるという仕組みがテストされているとのこと。
Digging into the CLR Diagnostics IPC Protocol in C#
https://chnasarre.medium.com/digging-into-the-clr-diagnostics-ipc-protocol-in-c-4d4cbe57826c
C# で CLR の診断用プロセス間通信プロトコルを取り扱うことについてのシリーズ。
この記事では簡単に扱うためのパッケージについて触れている。
Auto-Update UWP Apps over Azure BLOB Storage Static Websites - medienstudio.net
UWP アプリケーションの自動更新メカニズムを使用して Azure Storage BLOB から更新する方法についての記事。
現在、ms-appinstaller プロトコルハンドラーはデフォルトで無効となっているためポリシーで有効化する必要があるとのこと。
ライブラリ、リポジトリ、ツールなど
GitHub - microsoft/NugetNinja
https://github.com/microsoft/NugetNinja
.NET プロジェクトの依存関係を検出し、最適なパッケージ参照状態の提案などを行うツール。
ハッカソンで実装されたツールで現在開発中のプロジェクトというステータス。
サイト、ドキュメントなど
xamarin-android/WindowsOnArm64.md at main · xamarin/xamarin-android · GitHub
https://github.com/xamarin/xamarin-android/blob/main/Documentation/guides/WindowsOnArm64.md
ARM64 版 Windows 上の Windows Subsystem for Android で Android アプリケーション (Xamarin, MAUI) を動作させる方法についての手順ドキュメント。
Deep Dive
Implement UnixFileMode APIs by tmds · Pull Request #69980 · dotnet/runtime
https://github.com/dotnet/runtime/pull/69980
Unix ファイルモードを取り扱う API が .NET 7 で導入されるという PR (マージ済み)。