トピックス
Release Release v2.54.0 · grpc/grpc-dotnet
https://github.com/grpc/grpc-dotnet/releases/tag/v2.54.0
grpc-dotnet (gRPC for .NET) v2.54.0 がリリースされた。
このリリースでは認証インターセプターでの CancellationToken のサポートをはじめいくつかの改善と不具合の修正が含まれている。
Microsoft Forms Service’s Journey to .NET 6 - .NET Blog
https://devblogs.microsoft.com/dotnet/microsoft-forms-services-journey-to-dotnet-6/
Microsoft Forms (アンケートを作成するサービス) のマイクロサービスを .NET 6 へ移行した事例について。
Microsoft Forms は .NET Framework 4.7.2 の WebForms と Web API で構築されたマイクロサービスであったが、そのフロントエンド REST API とバックエンド REST API サービスを .NET 6 に移行したとのこと。
記事では移行に向けたアプローチと導入の結果を紹介している。移行のアプローチとしては初めに HttpContext の排除、次に依存の更新とプロジェクトの netstandard2.0 や net472, net6.0 といったマルチターゲットビルドへの変更を行った。その際マルチターゲットビルドが増えることによる問題についても紹介している。導入の結果としても CPU 使用率とレスポンスのレイテンシーが大きく改善されたとのこと。
ReSharper and Rider 2023.1.3 – Another Set of Bug-fixes Is Here | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/06/23/rsrp-and-rd-2023-1-3-bug-fix/
ReSharper と Rider 2023.1.3 がリリースされた。
ReSharper の Visual Studio でのパフォーマンス問題の修正、dotTrace と dotMemory のバグの修正、Rider のアップデータのクラッシュする問題やその他 IDE のバグの修正が含まれている。
What’s New in NPOI 2.6.1
https://tonyqus.medium.com/whats-new-in-npoi-2-6-1-92b5f07c479c
NPOI 2.6.1 がリリースされた。
このリリースではエリアチャートやパイチャートのサポート追加をはじめとしていくつかの改善と不具合の修正が含まれている。
Get ready for fsharpConf 2023! - .NET Blog
https://devblogs.microsoft.com/dotnet/tune-in-for-fsharpconf-2023/
F# のコミュニティーイベントの fsharpConf 2023 の紹介している記事。
fsharpConf 2023 は6月26日に開催される F# のコミュニティーのバーチャルイベント。記事ではイベントのタイムテーブルを紹介している。
Introducing the New T4 Command-Line Tool for .NET - .NET Blog
https://devblogs.microsoft.com/dotnet/t4-command-line-tool-for-dotnet/
Visual Studio 2022 17.6 以降で利用可能となった .NET 向けの T4 のコマンドラインツールの紹介。
Visual Studio 2022 17.6 以降では .NET 6 で動作する新しいバージョンの T4 (Text Template) 実行のコマンドラインツールが同梱されるようになった。
この新しいバージョンのツールは .NET 6 ランタイムで動作することで T4 のテンプレートからモダンな .NET のライブラリーを使用することができるようになる。現時点での制限として IDE から実行と MSBuild Task による実行はサポートされない。
今後に向けてのフィードバックについても求めており、記事からリンクされたアンケートも用意されている。
アーティクル、スライドなど
C#のMSTestでFine Code Coverageでカバレッジを計測する - Qiita
https://qiita.com/YoshijiGates/items/efc700574edbf8eb1ab2
Visual Studio 2022 Community でコードカバレッジを確認する方法について。
記事では Fine Code Coverage 拡張機能を導入して確認する方法を紹介している。
How to Build a Flight Network Analysis Graph-Based ASP.NET Application with Memgraph, C#, and D3.js
Memgraph というインメモリのグラフ DB を使用し、ASP.NET アプリケーションで D3.js でビジュアライズするツールを構築するチュートリアル。
C# で ChatGPT API: AI で作曲する (Function calling を使用) - Qiita
https://qiita.com/fsdg-adachi_h/items/7b2e75fa916cd6d4d804
ChatGPT の API を活用し AI で作曲、 MIDI ファイルを作成する方法について。
記事では ChatGPT の Function Calling を使用する形で実装している。
Parsing websites in C# with Html Agility Pack or AngleSharp
https://blog.elmah.io/parsing-websites-in-c-with-html-agility-pack-or-anglesharp/
Html Agility Pack と AngleSharp を使用して Web サイトをスクレイピングする方法について。
Improved .NET Debugging Experience with Source Link - NDepend
https://blog.ndepend.com/improved-net-debugging-experience-with-source-link
Source Link による .NET のデバッグ体験の向上についての紹介。
Hash Signing and Signature Validation in C# Using the YubiKey .NET SDK
YubiKey の .NET SDK を使用して YubiKey を使用したハッシュ署名と署名の検証を行う方法について。
How to Build a Shared Library in Java and Call it From .NET Code
.NET から共有ライブラリーとしてビルドされた Java のライブラリーを呼び出す方法について。
記事では GraalVM でネイティブライブラリーにビルドされたものを C 言語によるラッパーを通して .NET から呼び出す形を紹介している。
C#で作成したAWS Lambdaの関数をGitHub Actionsで自動デプロイする - Qiita
https://qiita.com/shin4488/items/20660044f6c86cfdead2
.NET の AWS Lambda 関数を GitHub Actions からデプロイする方法について。
NCMBのC#(MAUI/Xamarin) SDKがプッシュ通知の操作に対応しました - Qiita
https://qiita.com/goofmint/items/585b63dcb6374382afb1
ニフクラ mobile backend (NCMB) のコミュニティーによる SDK でプッシュ通知の操作に対応したことと使い方について。
XIAO ESP32C3で始めるnanoFramework ADC
https://zenn.dev/matsujirushi/articles/8bdbccd464d571
Seeed Studio XIAO ESP32C3 で nanoFramework を使用して ADC の値を読み取る方法について。
Xamarin.Macに別れを告げ、.NET 7に移行した話
https://zenn.dev/dogfortune/articles/51d1b2aa17be27
Xamarin.Mac から .NET 7 に移行作業でのポイントをいくつかまとめた記事。
.NET on Power を動かしてみた話 #4 - MariaDBへODBCドライバを使用して接続 - Qiita
https://qiita.com/Nakaji1106/items/429034b3707c65c4d6ff
Power アーキテクチャーで .NET を動かし、MariaDB に ODBC ドライバーで接続してみたという記事。
アプリをMicrosoft Storeに提出してみる - Qiita
https://qiita.com/dhq_boiler/items/781b2ef98ce26a090566
アプリケーションを Microsoft Store に提出し、公開されるまでの流れについての解説。
Reset passwords in ASP.NET Core using delegated permissions and Microsoft Graph
ASP.NET Core アプリケーションから Microsoft Graph を使用してユーザーのパスワードをリセットする方法について。
Getting the .NET Desktop Runtime Installed with a Custom Runtime Checker and Installer
.NET ランタイムのインストール状況をチェックし、インストールするカスタムインストーラーについて。
記事ではランタイムの配布について、自己完結型配布について、共有ランタイムについて、インストーラーの実装解説といった内容が解説されている。
WSL2の .NET SDKが認識されない現象を修復する - kkamegawa's weblog
https://kkamegawa.hatenablog.jp/entry/2023/06/24/191525
WSL 2 で .NET SDK が正常に認識されなくなった場合のトラブルシューティングについて。
Validating nested DataAnnotation IOptions recursively with MiniValidation
https://andrewlock.net/validating-nested-dataannotation-options-recursively-with-minivalidation/
IOptions の検証として標準の ValidateDataAnnotations を使用した場合、ネストされた検証が行われない問題を回避する方法について。
記事では MiniValidation を使用して検証する方法を紹介している。
Windowsインストーラーを作れるwixtoolsetの概要(v4) - Qiita
https://qiita.com/skitoy4321/items/194888be042e5c4c32ad
WiX v4 についての概要をまとめた記事。WiX で使用されるファイルやビルド方法といったことを解説している。
C# 12.0 の新機能 | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/study/csharp/cheatsheet/ap_ver12/
C# 12 (現時点ではプレビュー) で導入される新機能の解説。
.NET の文字列比較でカルチャー未指定を検知する | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2023/6/ca-specify-culture/
文字列比較でカルチャーが未指定の場合に警告/エラーとするようにして事前に気づけるようにする方法について。
記事では .NET 5 で導入された NetAnalyzers と .editorconfig を使用してエラーにする手法を紹介している。
Announcing Create a Pull Request in Visual Studio - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/create-a-pull-request-in-visual-studio/
Visual Studio 2022 17.7 preview 2 で追加された Pull request の作成機能の紹介。
How to detect heap allocations
https://bartwullems.blogspot.com/2023/06/how-to-detect-heap-allocations.html
ヒープアロケーションを検出する方法について。
記事では Visual Studio のプロファイラーと ClrHeapAllocationAnalyzer を使用したコード上での検出を紹介している。
Treat your .NET Minimal API Endpoint as the application layer
https://timdeschryver.dev/blog/treat-your-net-minimal-api-endpoint-as-the-application-layer
ASP.NET Core の Minimal API をアーキテクチャー上のアプリケーション層としてあつかう構成について。
How does List work under the hood in .NET?
https://steven-giesel.com/blogPost/06e2c8e8-0119-4e8d-9227-3cb922a8c916
List<T> の内部の実装についての簡単な解説。
サイト、ドキュメントなど
ツイート
Visual Studio 2022 17.6 では GC や CPU が高負荷な状況をテレメトリーで見るようになったという話。
続くスレッドではどのような体制でどのように活用できているのかを説明している。
In Visual Studio 17.6, we rolled out new a couple of new telemetry systems that capture high-GC and high-CPU usage within Visual Studio. This supplements our existing crash, hang, freeze, thread pool & memory usage performance & reliability telemetry.
— David Kean (@davkean) June 23, 2023