2023-07-02: ReSharper & Rider 2023.2 EAP 6, MagicPhysX

Published on Sunday, 02 July 2023

トピックス

AI Assistant Comes to ReSharper | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/06/26/resharper-ai-assistant/

ReSharper 2023.2 EAP 6 がリリースされた。

このリリースでは大規模言語モデルを活用した AI アシスタントが組み込まれた。これによりチャットによるコードの改善についての質問といったことが Visual Studio 上で行えるようになる。

その他 C# サポート、LINQ のインレイヒント、dotTrace の Linux, macOS のソースビューなど。

AI Assistant Comes to Rider! | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/06/26/rider-ai-assistant/

Rider 2023.2 EAP 6 がリリースされた。

このリリースでは大規模言語モデルを活用した AI アシスタントが組み込まれt。これによりチャット形式でのアシスト、コミットメッセージの生成、ファイル生成といった機能が提供される。

その他 C# サポートの更新、新規ユーザーにおける新しい UI のデフォルト化、プロジェクトごとのカスタムカラー設定、アクセシビリティーの向上、Structure ビューのフィルターとソートの追加、Roslyn (Source Generator) に関する改善とテンプレートの追加、リモートデバッガーでの ARM32 サポートなど。

Cysharp/MagicPhysX: .NET PhysX 5 binding to all platforms(win, osx, linux) for 3D engine, deep learning, dedicated server of gaming.

https://github.com/Cysharp/MagicPhysX

物理エンジンの PhysX 5 の .NET バインディングライブラリーがリリースされた。

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

.NET 8 SDK Preview 4 から AssemblyInformationalVersion 属性に何かハッシュが付くようになった | @jsakamoto

https://devadjust.exblog.jp/29614447/?fbclid=IwAR0xwYcrAFtldsg6H1-jr9OHBo4zSBNIOA7sof4LTakIpqWyyzOpaVvdyco

.NET 8 Preview 4 の SDK でビルドしたアセンブリの AssemblyInformationVersion にソースコードのリビジョンがつくようになったことについて。

記事ではリビジョンを付けないようにするための設定方法についても紹介している。

Implementing WebSocket Client and Server on ASP.NET Core 6.0 (C#)

https://medium.com/bina-nusantara-it-division/implementing-websocket-client-and-server-on-asp-net-core-6-0-c-4fbda11dbceb

ASP.NET Core で WebSocket のサーバーを実装し、クライアントと通信する実装の仕方について。

C# で Semantic Kernel:複数プラグインを連携させる - Qiita

https://qiita.com/fsdg-adachi_h/items/1fe094f4f1a0556045ae

Semantic Kernel で複数のプラグインを連携させる方法について。

Elevating C# Code Quality with Qodana: A Journey Towards Perfection | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/06/29/elevating-csharp-code-quality-with-qodana-a-journey-towards-perfection/

C# をコードを解析してレポートする Jetbrains Qodana の紹介。

Open Source Alternative to Visual Studio Marketplace Avoids Decommission -- Visual Studio Magazine

https://visualstudiomagazine.com/articles/2023/06/27/open-vsx-registry.aspx

Visual Studio Marketplace の代替となる Open VSX Registry について。

Microsoft Store Open Source Series — AppServices library - #ifdef Windows

https://devblogs.microsoft.com/ifdef-windows/microsoft-store-open-source-series-appservices-library/

Microsoft Store アプリにおいて利用している UWP と完全信頼 Win32 アプリで通信する AppService という仕組みとそれを活用するライブラリーを紹介している。

記事では Community Kit Lab にはプロキシーを Source Generator で生成する仕組みを利用することについて触れている。

Using the new configuration binder source generator: Exploring the .NET 8 preview - Part 1

https://andrewlock.net/exploring-the-dotnet-8-preview-using-the-new-configuration-binder-source-generator/

.NET 8 Preview 3 で導入された Microsoft.Extensions.Configuration の Source Generator ベースのバインダーについての解説。

記事では導入方法と実際の仕組み、現時点での問題/制限について触れている。

ASP.NET Coreでクッキー認証+AntiForgery+JWTによるリモートサーバとの認証情報共有と400 Bad Request対策 - Qiita

https://qiita.com/jun1s/items/903570264d1bfb62cf14

ASP.NET Core アプリケーションで Cookie 認証かつ JWT を使用する構成で、AntiForgery を使用している場合に JWT のリフレッシュが発生すると AntiForgery トークンの検証失敗する問題についてと解決方法。

How to use RuntimeHelpers.IsReferenceOrContainsReferences to micro-optimize collections - Gérald Barré

https://www.meziantou.net/how-to-use-runtimehelpers-isreferenceorcontainsreferences-to-micro-optimize-coll.htm

RuntimeHelpers.IsReferenceOrContainsReferences を使用したコレクションのマイクロ最適化について。

例えば Pop するような場面で参照型は内部配列から参照を外す必要があるが、値型の場合に要素を削除せずインデックスを減らすだけにするといったテクニックがあり、その際に IsReferenceOrContainsReferences が役立つ。

Using StringBuilder To Replace Values

https://khalidabuhakmeh.com/using-stringbuilder-to-replace-values

StringBuilder を使用して文字列置換を行うことについて。

StringBuilder を使用した場合、String の Replace で置換した場合よりもアロケーションを削減できる。

System.Diagnostics.Process.GetProcessesByNameのアロケーションに絶望した僕は、異世界で復讐することにした - Qiita

https://qiita.com/gazf/items/085a93cabf10e745e227

Process.GetProcessesByName をアロケーションの少ない形で再実装してみる試み。

モジュール初期化子が呼ばれる順

https://ufcpp.net/blog/2023/6/init-order/

モジュール初期化子 (ModuleInitializer) が複数ある場合の実行順序についての解説。

Writing a .NET profiler in C# — Part 4

https://minidump.net/writing-a-net-profiler-in-c-part-4-c54df903b9ce

C# (NativeAOT) を使用して .NET プロファイラーを作成するシリーズの Part 4。

Swashbuckle.AspNetCore.Cli で FileLoadException が出る場合の対処 - xin9le.net

https://blog.xin9le.net/entry/2023/06/25/230203

Swashbuckle.AspNetCore.Cli が Top-level Statements に対応していないため生成に失敗してしまう問題への対策。

特別に呼び出される IHost を生成するメソッドを実装する方法について紹介している。

ツイート

MessagePack-CSharp が個人のアカウントから Organization に移動したという話(と pre-release 版で Source Generator に対応した話)。

.csproj で MapPath プロパティを設定することでスタックトレースに表示されるパスを変更できるという話。

Visual Studio 2022 17.7 Preview 3 に C# 12 の Inline Arrays がマージされた。