2025-01-09: Godot .NET 8, PostSharp 2025.0

Published on Thursday, 09 January 2025

トピックス

Godot C# packages move to .NET 8

https://godotengine.org/article/godotsharp-packages-net8/

Godot 4.4 から C# のパッケージが .NET 8 をターゲットとするアナウンス。

Godot 4.4 以降、既存のプロジェクトは .NET 8 をターゲットとする必要があり、Godot 4.4 で開くことで自動的にアップグレードが行われる。またライブラリーのターゲットは .NET 8 となっているが、プロジェクトがターゲットとするバージョンは任意で .NET 9 や今後のバージョンを指定することも可能。

PostSharp 2025.0 Generally Available: Support for C# 13, .NET 9 and More

https://blog.postsharp.net/postsharp-2025-0-ga

PostSharp 2025.0 がリリースされた。

このリリースでは C# 13 と .NET 9 のサポートや Windows PDB サポートの向上、ロングパスサポート、WeakEventHandler のパフォーマンス向上などが含まれている。

Top .NET Videos & Live Streams of 2024 - .NET Blog

https://devblogs.microsoft.com/dotnet/top-dotnet-videos-live-streams-of-2024/

2024年の .NET に関する公式のおすすめビデオとライブストリームの紹介。

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

ini ファイルを汎用ホストや ASP.NET Core とかで使う方法

https://zenn.dev/microsoft/articles/how-to-use-inifile

Microsoft.Extensions.Configuration.Ini を使用して .ini ファイルを構成ファイルとして使用する方法について。

phi4 を .NET Aspire で使ってみる

https://zenn.dev/microsoft/articles/phi4-dotnet-with-aspire?redirected=1

Phi-4 モデルを .NET Aspire でホストし、呼び出す方法について。

C#の非同期処理時のCurrentCultureは.NET/.NET Frameworkのバージョンで挙動が変わる - Qiita

https://qiita.com/yamagutiesneo/items/5f81513cd87e1a30f7bd

非同期処理での CurrentCulture の取り扱いが .NET と .NET Framework 4.6 以降/以前で異なることについての解説。

C#定石 - モーダルダイアログに対する最小化の辻褄あわせ - Qiita

https://qiita.com/chai0917/items/eeb70e952e9cda4c3071

サブウィンドウを開いた場合のモーダルダイアログを最小化する際の挙動の考慮について。

[C#]Visual Studio 2022で任意のオブジェクトの変更を通知させるテク

https://zenn.dev/luxiar/articles/b1c5a5b2cf4a78

Visual Studio でデバッグ中に特定のオブジェクトの変更タイミングでブレークする方法について。

IronPython との付き合いかた(その3) - Qiita

https://qiita.com/Mt_SQ/items/b1fbb1a27e0a1a03ad18

.NET 9 に対応した IronPython 3.4.2 について、新しい LINQ オペレーターと共に使用する例を紹介。

Implementing an interceptor with a source generator: Creating a source generator - Part 11

https://andrewlock.net/creating-a-source-generator-part-11-implementing-an-interceptor-with-a-source-generator/

Source Generator でインターセプター使用するものを実装する方法について。

脱PHPプロジェクトが完了しました - Qiita

https://qiita.com/omt_teruki/items/eb0d953198120a2dc7c2

サービスを PHP から C# / .NET へ移行し、その際に当たった落とし穴についての解説。

Unlocking insights with Meter Histogram in the profiler - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/unlocking-insights-with-meter-histogram-in-the-profiler/

Visual Studio 2022 の診断セッション中のメーターヒストグラムをビジュアライズする機能の紹介。

C#定石 - 多重起動抑止 - Qiita

https://qiita.com/chai0917/items/d59c52e4c12ce0a892f4

アプリケーションを多重起動できなくするための方法について。多重起動された場合の処理などについても触れている。

Writing a String Numeric Comparer with .NET 9

https://khalidabuhakmeh.com/writing-a-string-numeric-comparer-with-dotnet-9

文字列+数字(例: "Foo 123", "Foo 456", "Bar 567")を比較する Comparer を実装する方法について。記事では CommonPrefixLength メソッドを使用した共通の先頭文字数を取得する方法を使用している。

Passing images to LLMs in C# with Microsoft.Extensions.AI

https://markheath.net/post/passing-image-content

Microsoft.Extensions.AI で LLM に画像を渡す方法について。

.NET9時代のiOS向けのNative Library Interop

https://zenn.dev/yamachu/articles/5ea515697a3bc1

.NET 9 での iOS 向けのネイティブコードのバインディングの実装方法について。

Adding a fully-bootstrapped Mono — 2024 — Blog — GNU Guix

https://guix.gnu.org/en/blog/2024/adding-a-fully-bootstrapped-mono/

GNU Guix (パッケージマネージャー) に完全にブートストラップ (fully-bootstrapped) された Mono を追加するまでの道のりについて。

.NET MAUI (Android) でWiFi強度の取得をしてみる

https://zenn.dev/aynv/articles/126642179ec18c

.NET MAUI (.NET for Android) で Wi-Fi の電波強度を取得する方法について。

ASP.NET CoreでホットリロードするDocker開発環境を構築する方法 - Qiita

https://qiita.com/fortia/items/d347f575d386f6b9fcb9

Docker イメージから起動した ASP.NET Core アプリケーションでホットリロードする方法について。

AngleSharp で ASP.NET Core ウェブアプリケーションの統合テストをする

https://zenn.dev/masakura/articles/6a6971f7102205

AngleSharp を使用して ASP.NET Core アプリケーションの統合テストをする方法について。

【C#】Timers.TimerのStopでイベントが発火してしまう理由と対策 - Qiita

https://qiita.com/takeo-index/items/5d43e53db22532223f87

System.Timers.Timer を Stop して後でもイベントが呼び出されることがあることについて。

Dock the Code Search window in Visual Studio 2022 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/dock-the-code-search-window-in-visual-studio-2022/

Visual Studio 2022 で利用できるようになったコード検索ウィンドウのドッキング機能についての紹介。

Go to line anywhere with Code Search for Visual Studio 2022 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/go-to-line-anywhere-with-code-search-for-visual-studio-2022/

コード検索から行数を指定して移動ができる機能についての紹介。

ASP.NET Core で実現する「マルチテナント+監査情報」設計ガイド

https://zenn.dev/shink00001/articles/acae9cccf5933c

ASP.NET Core でマルチテナント環境と監査情報を記録するような設計についてのガイド。

Build and Test .NET Runtime repository locally — Part 2— Debugging with Visual Studio

https://dsmblogs.com/build-and-test-net-runtime-repository-locally-part-2-debugging-with-visual-studio-c2400fb26505

.NET ランタイムのリポジトリーをローカルでビルドしてテスト、Visual Studio でデバッグする方法について。

【解決済み】【AngleSharp】.NET 9でCookieのexpiresがGMTではなくlocaltimeで解釈されてしまう - Qiita

https://qiita.com/noobow/items/2764c96d34a869b4c9da

AngleSharp を .NET 9 で使用した場合に Cookie の Expires が UTC ではなくローカルタイムとして解釈される問題について。

【C#】VSCode のデバッグモードでスパンのデバッグビューを表示する - Qiita

https://qiita.com/abetakahiro123/items/2b2077b839ad861433f1

Visual Studio Code でデバッグ中に Span を内容をデバッグビューで表示できない問題について。

TestContainers in .NET with PostgreSQL and PgVector

https://dev.to/chsami/testcontainers-in-net-with-postgresql-and-pgvector-4m93

PgVector と PostgreSQL を Testcontainers で使用する方法について。

Linux process priorities for C# devs

https://medium.com/@ocoanet/linux-process-priorities-for-c-devs-9ed9d9cc4ba1

Linux のプロセスの優先度について。.NET での実装の解説。

Rider 2025.1 Roadmap | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2025/01/08/rider-2025-1-roadmap/

Rider 2025.1 のロードマップ。パフォーマンスプロファイリングの簡略化、混合デバッグ、Windows でのリモート開発、SQL プロジェクトのサポート、Roslyn サポートの強化など。

.NET Aspire Quick Tip - Managing Container & Data Lifetime - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-aspire-container-lifetime/

.NET Aspire でのコンテナーとデータのライフタイム管理についての Tips。

Benchmarking with Visual Studio Profiler - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/benchmarking-with-visual-studio-profiler/

Visual Studio 17.13 Preview で更新された BenchmarkDotNet のベンチマーク診断データの処理エンジンにより、効率的に CPU の使用やアロケーションの計測といったことが簡単に行えるようになったことの紹介。

【C#】Unsafe.BitCast のすゝめ。 - ねののお庭。

https://blog.neno.dev/entry/2025/01/07/182438

同サイズの値型の強制キャストを Unsafe.As よりも安全に使用できる Unsafe.BitCast について。

.NET アップグレード アシスタントでCentral Package Managementに移行する - tech.guitarrapc.cóm

https://tech.guitarrapc.com/entry/2025/01/05/235909

.NET Upgrade Assistant を使用して Central Package Management に移行する手順の紹介。

UTF8 か Utf8 か

https://ufcpp.net/blog/2025/1/pascalcase/

.NET のフレームワークにおける型や名前空間のパスカルケースとその例外ルールについて。

field キーワード

https://ufcpp.net/blog/2025/1/field-keyword/

C# 14 で利用できるようになるプロパティーの field キーワードについて。

RS-WFWATTCH2を使ってPCの消費電力(実測値)をモニタリングしてみよう - Qiita

https://qiita.com/yamaokunousausa/items/2faedd6481093e73e2ca

RS-WFWATTCH2 (スマートプラグ) を使用して PC の消費電力をモニタリングするため、ネットワーク経由で値を読み取る仕組みを実装したことついて。

C#:オブジェクトプールとVersionパターン

https://zenn.dev/ruccho/articles/e9876dadeca78a

ValueTask のようなオブジェクトプールを使用/実装する際に Version を持たせることで、誤った使用を検出するパターンについて。

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

usausa/hardwareinfo-disk: Disk information library supports NVMe, SATA, USB(SAT12 only).

https://github.com/usausa/hardwareinfo-disk

Windows で S.M.A.R.T 情報を取得するライブラリー。

kevingosse/ClipPing: Displays a visual notification in the active window when the clipboard is updated.

https://github.com/kevingosse/ClipPing

クリップボードが更新された際にアクティブウィンドウを光らせて通知するツール。