トピックス
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 バインディングライブラリーがリリースされた。
MagicPhysXという .NET で PhysX 5を動かすバインディングライブラリを公開しました!サーバーサイドで物理エンジンがないなら動かせばいいじゃない、という発想により、Rustとcsbindgenを経由することで持ち込みに成功しました!https://t.co/AgRLtQY50a
— neuecc (@neuecc) June 30, 2023
アーティクル、スライドなど
.NET 8 SDK Preview 4 から AssemblyInformationalVersion 属性に何かハッシュが付くようになった | @jsakamoto
.NET 8 Preview 4 の SDK でビルドしたアセンブリの AssemblyInformationVersion にソースコードのリビジョンがつくようになったことについて。
記事ではリビジョンを付けないようにするための設定方法についても紹介している。
Implementing WebSocket Client and Server on ASP.NET Core 6.0 (C#)
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
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
.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é
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 に対応した話)。
MessagePack for C#、neuecc配下から専用organizationに移行しました!なお直近のpre-release版ではついにSource Generator対応(Unityも対応済み!)しています。https://t.co/E5XlxsMX9Z
— neuecc (@neuecc) June 28, 2023
.csproj で MapPath プロパティを設定することでスタックトレースに表示されるパスを変更できるという話。
Did you know when logging exceptions you can remove the path to lines of code? pic.twitter.com/z2srKipRdf
— Karen Payne MVP (@KarenPayneMVP) June 28, 2023
Visual Studio 2022 17.7 Preview 3 に C# 12 の Inline Arrays がマージされた。
We merged a preview C# 12 feature into VS 17.7 (preview 3): inline arrays.
— Julien Couvreur (@jcouv) June 27, 2023
It provides a general-purpose and safe mechanism for declaring inline arrays within classes, structs, and interfaces using the `[InlineArray(size)]` attribute.https://t.co/VxQNdB3pav