2023-01-13: paint.net 5.0, ReSharper & Rider 2023.1 Roadmap, Swashbuckle.AspNetCore 6.5.0

Published on Friday, 13 January 2023

トピックス

paint.net 5.0 is now available!

https://forums.getpaint.net/topic/121643-paintnet-50-is-now-available/

Paint.NET 5.0 がリリースされた。

このリリースでは筆圧検知の対応、GPU を使用したレンダリングや画像処理、新しいエフェクトプラグインシステム、様々なパフォーマンスの向上や改善などが行われている。

また、.NET 7 を使用してビルドされるようになり、レガシーな C++/CLI コードは TerraFX.Interop.Windows に置き換えられたとのこと。

ReSharper 2023.1 Roadmap | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/01/10/resharper-2023-1-roadmap/

ReSharper 2023.1 のロードマップ。

  • ショートカットのオーバーホール
  • アウトオブプロセスへの移行
  • 文法チェック
    • 組み込みのスペルチェッカーから JetBrains Grazie への移行
  • ユニットテスト自動化
  • ローカリゼーション
    • 簡体字中国語、日本語、韓国語
  • UX/UI の再デザイン
  • その他
    • Web 開発
    • 更新ダイアログ

Rider 2023.1 Roadmap | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/01/10/rider-2023-1-roadmap/

Rider 2023.1 のロードマップ。

  • 設定の同期プラグイン
  • Docker サポートの改善
  • データベーススキーマ比較
  • ゲーム開発
    • Unity
      • DOTS のサポート
    • Unreal Engine
  • 文法チェック
    • 組み込みのスペルチェッカーから JetBrains Grazie への移行
  • その他
    • パフォーマンス
    • 新しい UI の調整
    • ローカリゼーション
      • 簡体字中国語、日本語、韓国語

Release v6.5.0 · domaindrivendev/Swashbuckle.AspNetCore

https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.5.0

Swashbuckle.AspNetCore 6.5.0 がリリースされた。

このリリースではターゲットフレームワークに .NET 7 が追加されたほか、Swagger UI のアップデートが行われている。

Release Release v1.46.6 · grpc/grpc

https://github.com/grpc/grpc/releases/tag/v1.46.6

gRPC 1.46.6 (C-Core) がリリースされた。

このリリースでは zlib に関する脆弱性の対応といくつかの不具合の修正が行われている。

Release 6.9.0 · fluentassertions/fluentassertions

https://github.com/fluentassertions/fluentassertions/releases/tag/6.9.0

FluentAssertions 6.9.0 がリリースされた。

TimeOnly や型やメソッドなどのリフレクションなどに関するアサーションメソッドの追加。

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

【C#】DateTimeの和暦表示 - Qiita

https://qiita.com/ikuzak/items/b0fa005d267041890ed6

DateTime を和暦でフォーマットする際に R (令和) のようなアルファベットにする方法について。

C# で本当の非同期 IO

https://zenn.dev/k_taro56/articles/csharp-true-async-io

FileStream の非同期 I/O を使用するかどうかの useAsync はデフォルトで false となっているので非同期 I/O とならないことについて。

Inheritance Strategies in Entity Framework Core 7

https://medium.com/abp-community/inheritance-strategies-in-entity-framework-core-7-e0cfd42877a5

Entity Framework Core の継承したモデルの格納方法として EF 7 でサポートされた TPC (コンクリート型ごとのテーブル)とそれ以前からサポートされていた TPH, TPT についての簡単な紹介。

SQLitePCLRaw and open source sustainability

https://ericsink.com/entries/sqlitepclraw_sustainability.html

SQLitePCLRaw (SQLite のネイティブバインディング) を維持する上での現状や懸念点、利益など。

Parsing a template language with C# and Pidgin | Zach on Code

https://zachoncode.dev/blog/parsing-template-language-with-csharp-and-pidgin/

パーサーライブラリーの Pidgin を使用してテンプレート言語を実装する方法を解説。

ReactiveProperty v9.0.0 のプレリリース版を出してみました

https://zenn.dev/okazuki/articles/reactiveproperty-v9-0-0-pre1

ReactiveProperty v9.0.0 のプレリリースで行った改善や再構成、新しいクラスの追加などを解説。

The Road to Out-of-Process ReSharper: Asynchronous Typing | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/01/05/resharper-out-of-process/

ReSharper を Visual Studio とは別のプロセス(アウトオブプロセス)で動作させる形に移行するためのハードルや行なっていることを解説。

[オンデマンド版] .NET Conf 2022 Recap Event 東京 ~ Microsoft Japan Community Event Tour Series

https://info.microsoft.com/JA-ModApps-VDEO-FY23-12Dec-23-MKTO-FY23-dotnetconf-2022-Recap-Tokyo-Gated-video-SRGCM8691_LP01-Registration---Form-in-Body.html

.NET Conf 2022 Recap Event 東京 のセッションのオンデマンド動画。

フォルダの書き込みに管理者権限が不要かどうかをC#で判定する - Qiita

https://qiita.com/Alone-and-Slow/items/a2332bcb500051e19fbc

Windows 環境でフォルダーに対する書き込み権限があるかどうかを確認する方法。

Testing ASP.NET Core FastEndpoints | Khalid Abuhakmeh

https://khalidabuhakmeh.com/testing-aspnet-core-fastendpoints

ASP.NET Core 上に構築されたフレームワーク FastEndpoints を使用した際のユニットテストについての解説。

Implement a Custom Configuration Provider in .NET 7

https://medium.com/@gokerakce/implement-a-custom-configuration-provider-in-net-7-c0a195dcd05f

.NET 7 での Microsoft.Extensions.Configuration のカスタムの構成プロバイダーを実装する方法の解説。

記事では SQL Server から値を読み出し、再読み込みが可能なプロバイダーを実装している。

How to run disposable databases for your tests. Improve your integration tests accuracy with Testcontainers

https://blog.genezini.com/p/how-to-run-disposable-databases-for-your-tests.-improve-your-integration-tests-accuracy-with-testcontainers/

Testcontainers を使用して使い捨てのデータベースを起動して、ユニットテストや統合テストを行う方法を解説。

Five shortcuts to boost your productivity - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/the-visual-studio-editor-can-do-that/

Visual Studio で生産性を高める5つのショートカットを紹介。

  • Ctrl+D: 行の複製
  • Ctrl+Shift+L: 行全体の削除
  • Shift+Alt+.: 次の同じ単語を選択
  • Alt+選択: ボックス(矩形)選択
  • Alt+Ctrl+マウスクリック: 複数カーソルの挿入

Confusing .NET Debuggers: Proxy Objects

https://washi.dev/blog/posts/debugger-proxy-objects/

プロキシーオブジェクトを差し込むことで、逆コンパイラーやそれに付随したデバッガーなどを欺く手法について解説。

【C# 12 候補】ラムダ式のデフォルト引数と params 引数 | ++C++; // 未確認飛行 C ブログ

https://ufcpp.net/blog/2023/1/lambda-default/

C# 12の機能の候補であるラムダ式でのデフォルト引数と params 引数を許可する改善について。

Language Injection Improvements in Rider 2022.3 | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/01/12/language-injection-improvements-in-rider-2022-3/

Rider 2022.3 での言語インジェクションの改善の紹介。

生文字列リテラルでの対応や、文字列結合での補完文字列の対応、LanguageInjection 属性の対応、.NET 7 の StringSyntax 属性の対応など。

Debugging Encoded Text - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/debugging-encoded-text/

最新の Visual Studio プレビューで利用できるデバッガーのテキストビジュアライザーの紹介。

プレビューでのテキストビジュアライザーは Base64 や URL のエンコードとデコード、JWT のデコードを行った結果を表示できる。

Extracting metadata from a minimal API handler: Behind the scenes of minimal APIs - Part 2

https://andrewlock.net/behind-the-scenes-of-minimal-apis-2-extracting-metadata-from-a-minimal-api-handler/

Minimal API のエンドポイントのハンドラーとして渡される Delegate からどのようにしてメタデータを抽出し、RequestDelegate を作っているかを解説。

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

jellyfin/jellyfin: The Free Software Media System

https://github.com/jellyfin/jellyfin

Emby や Plex のような .NET で構築されたメディアサーバー。

JonPSmith/Net.LocalizeMessagesAndErrors: This library provides extra code to make it easier to support in different languages in your .NET application

https://github.com/JonPSmith/Net.LocalizeMessagesAndErrors

.NET アプリケーションのローカリゼーションの実装を支援するライブラリー。

LINQ Me Up

https://linqmeup.com/

AI を使用して SQL の SELECT 文を LINQ に変換するツール。

サイト、ドキュメントなど

ツイート

C# はコンテキストキーワードが多いので一見予約語のような識別子を持つものを定義して変なコードを書けてしまうという話。

.NET では同じ完全修飾名で同じアセンブリなのに同一プロセス内で異なる型として認識されるケースがあるという話。(AssemblyLoadContext が異なる場合など)。これは殆どのユーザーには問題がないが、Analyzer や Source Generator といった文脈で問題となることがある。

Deep Dive

Rewrite how Matrix3x2 and Matrix4x4 are implemented by tannergooding · Pull Request #80091 · dotnet/runtime

https://github.com/dotnet/runtime/pull/80091