2023-08-06: ILSpy 8.1, Unity extension for Visual Studio Code, Rider & ReSharper 2023.2

Published on Sunday, 06 August 2023

トピックス

Release ILSpy 8.1 · icsharpcode/ILSpy

https://github.com/icsharpcode/ILSpy/releases/tag/v8.1

ILSpy 8.1 がリリースされた。

このリリースでは C# 11 のいくつかの記法への対応や様々な修正が含まれている。

Announcing the Unity extension for Visual Studio Code - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/announcing-the-unity-extension-for-visual-studio-code/

Visual Studio Code 向けの Unity 拡張がプレビュー公開された。

この拡張は C# Dev Kit を元に構築され、コード編集に AI 支援や Roslyn の Analyzer といった機能の利用や Unity でのゲームのデバッグをサポートする。記事では Unity での使用方法についても紹介している。

またこの拡張は C# Dev Kit と同様のライセンスモデルで提供され Visual Studio の Community ライセンスまたはサブスクリプションが必要となる。

Rider 2023.2: Better C# Support, UX/UI Enhancements, AI-Powered Features, and More | The JetBrains Blog

https://blog.jetbrains.com/dotnet/2023/08/02/rider-2023-2-release/

Rider 2023.2 がリリースされた。

  • C# のアップデート
  • UI/UX の改善
    • ビルドツールウィンドウの改善
    • 既定の外観が新しい UI となる
    • カスタマイズと合理化
      • プロジェクトヘッダー、メインツールバーカスタマイズ、Run の構成のピン止め
  • AI 支援 (限定アクセス)
  • バージョンコントロール
    • GitLab 統合
    • バックグラウンドコミットチェック
    • 行のコミットのオプション
  • パフォーマンス向上
    • キャッシュデータの削減 (I/O の削減)
  • ゲーム開発
    • Unity
      • AI 支援、ShaderLab サポート、Unity DOTS サポート
    • Unreal Engine
      • ブループリントインデックス改善、ホットリロードとライブコーディング、Perforce サポート改善
  • .NET SDK
    • Source Generator テンプレートと Source Generator の再起動
    • Docker fast モード
    • .NET MAUI ホットリロード

ReSharper 2023.2: More C#, C++ 20, And C++ 23 Features, the Ability To Create And Navigate Through Unit Tests, Predictive Debugger Mode, And More | The JetBrains Blog

https://blog.jetbrains.com/dotnet/2023/08/02/resharper-2023-2-release/

ReSharper 2023.2 がリリースされた。

  • C# のアップデート
  • C++ のアップデート
  • パフォーマンス向上
    • ソリューション読み込み時間の短縮
  • ユニットテストの作成とナビゲーション
  • AI 支援 (限定アクセス)
  • Predictive Debugger (ベータ)
  • デコンパイラーでのアセンブリーの差分

.NET Conf 2023 - Celebrating the Release of .NET 8! - Save the Date! - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-conf-2023-celebrating-the-release-of-dotnet-8-save-the-date/

.NET Conf 2023 についてのアナウンス。

.NET Conf 2023 は11月14日から16日までの3日間で、.NET 8 のリリースをはじめとして様々なセッションが行われる。

The Microsoft author-signing certificate will be updated as soon as August 14th, 2023 - The NuGet Blog

https://devblogs.microsoft.com/nuget/microsoft-author-signing-certificate-update-2023/

Microsoft がリリースする NuGet パッケージの署名に使用する証明書が8月14日以降に更新される。

この対応で既存のパッケージが更新されることはなく、今後リリースされるパッケージの署名が新しい証明書で行われるようになる。

NuGet のクライアントポリシーで信頼者許可リストを持ち、検証している場合に影響を受ける。

dotCover, dotMemory, dotPeek, and dotTrace 2023.2 Released! | The JetBrains Blog

https://blog.jetbrains.com/dotnet/2023/08/02/2023-2-dottools-release/

dotCover, dotMemory, dotPeek, dotTrace 2023.2 がリリースされた。

  • dotMemory
    • Rider でのスナップショット解析
  • dotTrace
    • サンプリング、トレース、行ごとのスナップショットのスレッド別のグループ化
    • Linux と macOS での Source View ツールウィンドウ
  • dotPeek
    • アセンブリーの比較
  • dotCover
    • バグ修正と安定性の向上

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

C# 12 Interceptors ! An insane feature !

https://dev.to/bugandfix/c-12-interceptors-an-insane-feature--517l

C# 12 でプレビューされている Interceptor を動かしてみるという記事。

Which RDBMS has the fastest .NET Bulk Insert implementation?

https://servicestack.net/posts/bulk-insert-performance

様々な RDBMS とアーキテクチャーや OS でバルクインサートする際のパフォーマンスの比較。

Class vs Struct in C#: Making Informed Choices - NDepend

https://blog.ndepend.com/class-vs-struct-in-c-making-informed-choices/

クラスと構造体の利点と欠点をまとめてどちらを使えばいいのかについて。

C# 汎用ホストのDIにデータベースプロバイダを組み込む - Qiita

https://qiita.com/mxProject/items/232ee4d0feb30a41a2f3

Generic Host のサービスにデータベースプロバイダー (ADO.NET) を組み込んで使えるようにする方法について。

Plugin Architecture in ASP.NET Core – How To Master It

https://dev.to/devleader/plugin-architecture-in-aspnet-core-how-to-master-it-1824

ASP.NET Core アプリケーションでプラグインアーキテクチャーを実現する方法について。

Keyed Services in .NET8's Dependency Injection

https://dev.to/xelit3/keyed-services-in-net8s-dependency-injection-2gni

.NET 8 の M.E.DependencyInjection と ASP.NET Core でサポートされるキー付きサービスについて。

Leveraging Custom PostgreSQL Functions in EFCore: A Guide to Mapping and Usage

https://gor-grigoryan.medium.com/leveraging-custom-postgresql-functions-in-efcore-a-guide-to-mapping-and-usage-53941b10fe89

Entity Framework Core で PostgreSQL のカスタム関数をマッピングして使用する方法について。

Accelerating Your Testing Workflow with Unit Test Creation and Navigation | The JetBrains Blog

https://blog.jetbrains.com/dotnet/2023/08/01/accelerating-your-testing-workflow-with-unit-test-creation-and-navigation/

ReSharper でのユニットテスト作成とナビゲーション機能についての紹介。コード間の移動や新しいユニットテストの作成などで利用できる機能を紹介している。

VisualStudio.Extensibilityを用いた拡張機能開発の導入 - Qiita

https://qiita.com/mngreen/items/d712930b5894aa6ea17f

Visual Studio の新しい拡張モデルである VisualStudio.Extensibility を使用して拡張実装の導入について。

Instrumenting System.CommandLine-based .NET applications

https://dev.to/asimmon/instrumenting-systemcommandline-based-net-applications-1p88

System.CommandLine を使用したアプリケーションでカスタムインストルメンテーションを組み込む方法について。

DateTime.MaxValueの翻訳の誤り - Qiita

https://qiita.com/hiro_t/items/0a8e5ce1c1552366a8f4

DateTime.MaxValue の日本語ドキュメントの説明の誤りについて。

ImmutableArray<T> iteration performance in C#

https://antao-almada.medium.com/immutablearray-t-iteration-performance-in-c-99e490d4d352

ImmutableArray<T> の列挙操作のパフォーマンスについて。 List や配列などとの比較。

Learn Resharper PostFix and Source Templates

https://dev.to/karenpayneoregon/learn-resharper-postfix-and-source-templates-32lo

ReSharper と Rider で使用できる postfix 展開テンプレートの使い方と作り方について。

Generate Sitemaps for All of ASP.NET Core

https://khalidabuhakmeh.com/generate-sitemaps-for-all-of-aspnet-core

DotnetSitemapGenerator を使用した ASP.NET Core Web アプリケーションでのサイトマップ(XML)を生成する方法について。

Translating Exceptions into Problem Details Responses

https://timdeschryver.dev/blog/translating-exceptions-into-problem-details-responses

ASP.NET Core で例外を Problem Details レスポンスに変換して返す方法について。

.NET 8 TimeProvider and Unit Tests

https://khalidabuhakmeh.com/dotnet-8-timeprovider-and-unit-tests

.NET 8 で導入される TimeProvider API とそれを使用したユニットテストの書き方について。

Unleashing the Power of .NET Source Code Generators

https://medium.com/@bnayae/unleashing-the-power-of-net-source-code-generators-3115156df775

Source Generator を使用したライブラリーの紹介。記事では Refit, System.Text.Json, Dunet, Mapperly, Generator.Equals を紹介している。

Application Insights の Code Optimizations 機能を ASP.NET Core アプリケーションで試してみた - しばやん雑記

https://blog.shibayan.jp/entry/20230805/1691227089

Application Insights の Code Optimizations を ASP.NET Core アプリケーションに適用する方法について。

Code Optimizations ではアプリケーションのパフォーマンスの問題点について AI ベースで検出/提案するといったものとなっている。

Length-based switch dispatch | ++C++; // 未確認飛行 C ブログ

https://ufcpp.net/blog/2023/8/lengthbasedswitch/

文字列に対する switch の分岐が Roslyn 4.6 以降で新しい手法で分岐するようになったことについて。

.NETのWebSocketと、切断の扱い - castaneaiのブログ

https://castaneai.hatenablog.com/entry/closing-websocket-connection-in-dotnet

.NET の WebSocket での切断処理について。CloseAsync、CloseOutputAsync、Dispose といったメソッドの違いについて。

[C#][備忘録]ビルド時に不要な言語フォルダが出力されないように設定する - Qiita

https://qiita.com/minoura_a/items/092b141bc6ecde5bbb24

ビルド時に不要な言語のローカライズリソースを含めないようにする方法について。

Azure Functions (.NET 6) のプロジェクトで、NuGet パッケージ参照のバージョンを上げたらエラー | @jsakamoto

https://devadjust.exblog.jp/29654451/

Azure Functions (.NET 6) のプロジェクトの NuGet パッケージをアップデートした際にエラーが発生したことについて。

インプロセスモードで稼働している場合、 Azure Functions のランタイムでは Microsoft.Extensions.* の 6.0 を使用されているため、アプリケーションが依存しているパッケージで 7.0 にアップデートするとバージョンの不整合が発生することによる。