トピックス
Support for C# - Oracle Cloud Infrastructure Release Notes
Oracle Functions のサポート言語として C# が追加され、C# での開発が行えるようになった。
言語サポートのページによればランタイムは現時点で .NET Core 3.1 のみがサポートされているとのこと。
- Languages Supported by Oracle Functions
- Oracle Cloud Functions Now Supports C# -- Visual Studio Magazine
Rider 2022.1 Comes With Full Unreal Engine Support and Remote Development | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/04/19/rider-2022-1/
Rider 2022.1 がリリースされた。
記事で紹介されている新機能、改善は次のようなものがある。
- Unreal Engine と Unity でのゲーム開発の統合
- Unity プロジェクトの読み込み時間の改善
- .asmref/.asmdef といったアセンブリ参照/定義ファイルのサポートの向上
- リモート開発 (Beta)
- JetBrains Gateway でのリモート開発に対応
- その他
- 新しいツールバーのカスタマイズ
- Docker および docker-compose の高速モード
- "Search Everywhere" での全文検索
- C# 10 のサポート:
global using
へのリファクタリングの対応など - .NET 6 の新しい属性のサポート:
EditorRequired
- 新しい通知ツールウィンドウ
- 新しいズームウィジェット
- .NET と .NET Core プロジェクトへの Web 参照の追加機能
- バージョンコントロール: Preview Diff アイコンをツールバーから歯車メニューに移動し Show Diff Preview on Single Click にリネーム
その他細かい新機能や改善は別ページにまとまっているので参照のこと。
ReSharper 2022.1 Released | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/04/19/resharper-2022-1/
ReSharper 2022.1 がリリースされた。
- C# のサポートの向上
global using
に関連するリファクタリングの追加- null 許容参照型のサポート強化
- C# 11 のジェネリック属性の実装
- 機能
- Endpoints として ASP.NET Core の Minimal API と規約ベースのルーティングをサポート
- Razor と Blazor では Razor 内でのローカル関数サポートやナビゲーションの追加
- フォーマッティングのアクションの整理
- パフォーマンス
- デコンパイラー
- XML ドキュメントコメントのプラットフォームアセンブリなどのサポート
- Assembly Explorer での転送された型 (forwarded types) のサポート
- バグ修正
- ReSharper C++
- Unreal Engine のサポート
- dotTrace, dotCover, dotMemory
- dotTrace での SQL Server イベントのサポート (Windows 上での .NET Core または .NET 5 以降)
- ドラッグアンドドロップでのアタッチ
- dotCovert での "not coverable" としてコードをマークできるように
- The 2022.1 Release of dotTrace, dotMemory, dotCover, and dotPeek! | The .NET Tools Blog
Release Release v2.45.0 · grpc/grpc-dotnet
https://github.com/grpc/grpc-dotnet/releases/tag/v2.45.0
gRPC (.NET) の 2.45.0 がリリースされた。
WriteAsync
メソッドで CancellationToken
がサポート、再接続バックオフの構成といった改善のほか、いくつかの不具合が修正されている。
Release Diagnostics Release - v6.0.320703 · dotnet/diagnostics
https://github.com/dotnet/diagnostics/releases/tag/v6.0.320703
.NET の診断ツール v6.0.320703 がリリースされた。
アーティクル、スライドなど
The future of .NET and Unity | Unity at GDC 2022
https://m.youtube.com/watch?v=6UiKtnDQeEg
GDC 2022 における Unity の .NET ランタイムとエコシステムに関する今後についてのセッション。
セッションでは MSBuild/SDK-style プロジェクトについてや、CoreCLR への移行について、Unity での async/await 対応についてといった点に触れている。
Using C# and Auto ML in ML .NET to Predict Video Game Ratings
https://dev.to/integerman/using-c-and-auto-ml-in-ml-net-to-predict-video-game-ratings-j8j
ML.NET/Auto ML と C# を使用してゲームの ESRB レーティングラベル予測するものを作ってみるという記事。
View .NET collections with the new IEnumerable Debugger Visualizer
Visual Studio 2022 17.2 Preview 2 で強化された、デバッグ時に IEnumerable をビジュアライズする機能についての記事。
記事ではプロパティーの展開、複数の IEnumerable の実装の切り替え、ソートとエクスポートといった機能について触れている。
'Alternative to Blazor' Wisej 3 Ships -- Visual Studio Magazine
https://visualstudiomagazine.com/articles/2022/04/21/wisej-3.aspx
ASP.NET 上に構築された C# ベースで Web アプリケーションを構築する有償フレームワーク Wisej 3 がリリースされたことについての記事。
Wisej 3 は C# のみでインタラクティブな Web アプリケーションを構築できるという意味で Blazor の代替に近い位置づけとなるフレームワーク。なお、Wisej 3 は .NET Framework 4.8 と .NET 6 で利用できるマルチターゲットなフレームワークとしてリリースされている。
- Wisej.NET 3 released for .NET Framework 4.8 and .NET 6 – Wisej.com
- Wisej.com – Rapid .NET Web Development
Blazor の EditForm で ReactiveProperty を使う
https://zenn.dev/okazuki/articles/reactiveproperty-editform
Blazor の EditForm の入力値検証で ReactiveProperty を使用する方法についての記事。
Use browser dev tools with Blazor Hybrid
https://dev.to/rogihee/use-browser-dev-tools-with-blazor-hybrid-18nh
MAUI Blazor Hybrid をデプロイしたモバイル環境(エミュレーターなど)に対して Microsoft Edge の DevTools を接続する方法についての記事。
Running JavaScript inside a .NET app with JavaScriptEngineSwitcher
https://andrewlock.net/running-javascript-in-a-dotnet-app-with-javascriptengineswitcher/
.NET アプリケーションで JavaScript を動作させたいケースで使用できる様々な JavaScript のエンジンを抽象化/ラップする JavaScriptEngineSwitcher についての記事。
記事では Jurassic (ピュア .NET 実装のエンジン) を使用して JavaScript を実行する例を載せている。
.Net Core Microservice Metrics with Prometheus and Grafana
.NET アプリケーションの CPU 使用率やリクエストなどのメトリクスを Prometheus と Grafana で可視化する方法についての記事。
.NET Core Microservice Logging with Grafana and Loki
.NET アプリケーションのロギングを Loki と Grafana で取り扱う方法についての記事。
Nullable reference types in C# - Migrating to nullable reference types - Part 1
null 許容参照型についてとその移行について解説する記事シリーズ。
ASP.NET Core MVC 公式チュートリアルから実開発への橋渡し - Qiita
https://qiita.com/pepepe_90/items/795dadb8757ec0c5f948
ASP.NET Core MVC アプリケーションの公式チュートリアルで作った部分から実際のプロジェクト開発へと進んだ際に必要となるパーツを埋めることを目的とした記事。
記事では認証の追加、フィルター処理、appsettings.json のカスタマイズといった部分を解説している。
Introducing a New Way to Search Your Code and Visual Studio Features
Visual Studio 2022 17.2 Preview 3 で導入された All-In-One 検索体験についての記事。既存の VS Search (Ctrl+Q) Go To (Ctrl+T) を合わせて一つの検索ウィンドウで検索できるようになる (ReSharper の Search Everywhere と似ている)。
記事では検索時にファイルや型、メンバーでフィルターできるといった点について触れている。
C#でzipを展開するときに気をつけること
https://zenn.dev/throw_exception/articles/7202956e9824d5
.NET Framework 4.5 から導入された Zip ファイルを操作可能となった API を使用してファイルを展開する際に注意すべき点についての記事。
記事では ExtractToFile
メソッドではディレクトリトラバーサルが発生してセキュリティー上の問題となることがある点とその対策について解説している。
.NET用 MVVMライブラリ CommunityToolkit.Mvvm ver8 (preview3) - Qiita
https://qiita.com/hqf00342/items/d12bb669d1ac6fed6ab6
.NET Community Toolkit 8.0.0 Preview 3 の新しい MVVM サポートを利用する方法についての記事。
.NET Framework April 2022 Cumulative Update Preview
https://devblogs.microsoft.com/dotnet/framework-april-2022-updates/
.NET Framework の2022年4月の累積アップデートのプレビューがリリースされた。
3rd パーティーのアプリケーションがディレクトリーサービスを呼び出した場合にアクセス違反となる不具合が修正されている。
Combining Bearer Token and Cookie Authentication in ASP.NET
https://weblog.west-wind.com/posts/2022/Mar/29/Combining-Bearer-Token-and-Cookie-Auth-in-ASPNET
ASP.NET Core アプリケーションでの認証に Bearer トークン方式と Cookie を使用する方式の両対応を行う方法についての記事。
サイト、ドキュメントなど
ツイート
@Docker now supports heredocs
— Rahul Rai (@rahulrai_in) April 22, 2022
I wrote a @dotnet API inside a Dockerfile and it works 🤯
Thanks for the tip @iximiuz @shanselman @davidfowl @aspnetcore_news pic.twitter.com/iFtJW4VZjg
Dockerfile でヒアドキュメントをサポートしたのでそのままソースコードを書けば、Dockerfile 完結の .NET アプリコンテナーイメージを作れるというネタ。
Guess what I have just prototyped. (I have left one core for the Task Manager, otherwise it can't refresh the charts at reasonable rate). pic.twitter.com/nKS9r4sXm9
— Adam Sitnik (@SitnikAdam) April 23, 2022
BenchmarkDotNet でベンチマークを各コアで並列に動かすというプロトタイプを作ったという話。
Did I mention @JetBrainsRider has an amazing file explorer for #docker containers? pic.twitter.com/2KIVf3jPFV
— Khalid - khalidabuhakmeh@mastodon.social (@buhakmeh) April 25, 2022
Rider では Docker コンテナーの中をブラウジングするといった便利機能があるという Tips。(Files タブはDocker | JetBrains Rider には書かれていないので比較的最近実装されたのかもしれない)
Deep Dive
Vectorized MemoryExtensions.CommonPrefixLength by gfoidl · Pull Request #68210 · dotnet/runtime
https://github.com/dotnet/runtime/pull/68210
Span 同士で同じプレフィックスの長さを取る MemoryExtensions.CommonPrefixLength
メソッド (.NET 7) をベクトル化して高速化するという PR。
Implement minimal RateLimitingMiddleware by wtgodbe · Pull Request #41008 · dotnet/aspnetcore
https://github.com/dotnet/aspnetcore/pull/41008
RateLimiting API を使用した ASP.NET Core 向けのミニマルな RateLimiting ミドルウェアの実装 PR。