トピックス
Announcing .NET 7 Preview 2 - The New, 'New' Experience - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-2/
.NET 7 Preview 2 がリリースされた。
Preview 2 では Regex ソースジェネレーター、新しい dotnet new
CLI 体験、NativeAOT のメインラインへの取り込みの進行などが含まれている他、ランタイムや API に様々な改善が行われている。
.NET SDK のコマンドライン周りにも改善が入ったことでタブ補完 (PowerShell, bash, zsh, fish) に対応したとのこと。
ASP.NET Core updates in .NET 7 Preview 2 - .NET Blog
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-2/
.NET 7 Preview 2 での ASP.NET Core のアップデートについての記事。
記事では次のアップデートについて触れている。
- コントローラーのアクションのパラメーター値として DI される値の推測 (Minimal API 同様
[FromService]
が不要となる) - SignalR の Hub メソッドの DI サポート
- Minimal API でのデスクリプションとサマリーのサポート
- Minimal API でのヘッダーとクエリーストリングのバインディングで配列や StringValues のサポート
- Cookie の許可値のカスタマイズ
- IIS でのシャドウコピーのサポート (Experimental)
Announcing .NET MAUI Preview 14 - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-maui-preview-14/
.NET MAUI Preview 14 がリリースされた。
このリリースでは多くの問題や改善が行われたほか、デスクトップアプリ向けのメニューバーのサポートが追加された。
その他記事では Microsoft.Maui.Essentials についても触れている。
Happy 25th birthday Visual Studio! - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/happy-25th-birthday-visual-studio/
Visual Studio がリリースされてから25周年という記事。
25周年を記念してバーチャルイベントが開催されたほか、Swag や Visual Studio 向けの記念テーマなどがリリースされている。
Visual Studio 2022 for Mac Preview 7 - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-2022-for-mac-preview-7/
Visual Studio 2022 for Mac 17.0 Preview 7 がリリースされた。
このリリースでは Xamarin のツールサポートが追加され、.NET 6 と Apple Silicon で動作する Azure Functions V4 ツールが含まれている。その他コードの書式設定などの環境設定画面の macOS ネイティブ UI への移行が完了した。
.NET March 2022 Updates – .NET 6.0.3, .NET 5.0.15 and, .NET 3.1.23 - .NET Blog
https://devblogs.microsoft.com/dotnet/march-2022-updates/
.NET 6.0.3, .NET 5.0.15, .NET 3.1.23 がリリースされた。
このリリースでは様々な不具合等の修正のほか次の3つの脆弱性の修正が行われている。
- CVE-2020-8927: .NET Remote Code Execution Vulnerability
- Brotli ライブラリーのバッファオーバーランの脆弱性 (.NET 5, .NET Core 3.1)
- CVE-2022-24464: .NET Denial of Service Vulnerability
- HTTP フォームリクエストによって引き起こされる DoS 脆弱性 (.NET 6, .NET 5, .NET Core 3.1)
- CVE-2022-24512: .NET Remote Code Execution Vulnerability
- Double のパースに関連するスタックオーバーランの脆弱性 (.NET 6, .NET 5, .NET Core 3.1)
Uno Platform 4.1 - 30% Perf Boost, Android 12, .NET 6 Mobile Preview 13 and more
Uno Platform 4.1 がリリースされた。
パフォーマンスに関する様々な改善、Android 12 のサポートの追加、.NET 6 Mobile Preview 13 (MAUI Preview 13) への対応などが含まれる。
Release Release v2.44.0 · grpc/grpc-dotnet
https://github.com/grpc/grpc-dotnet/releases/tag/v2.44.0
gRPC (grpc-dotnet) v2.44.0 がリリースされた。
いくつかの不具合修正とサブチャンネルの呼び出しをトラックするためのインターフェース (ISubchannelCallTracker
) の追加が行われている。
GNOMEとMonoとXamarinの開発者Miguel de Icaza(ミゲル・デ・イカザ)氏がマイクロソフト退職を発表
https://www.publickey1.jp/blog/22/gnomemonoxamarinmiguel_de_icaza.html
GNOME や Mono、Xamarin の開発者である Miguel de Icaza 氏が Microsoft を退職したことが発表となった。
Today was my last day at Microsoft. Leaving such a great team was a difficult decision, but the world outside grows bigger and more exciting each day.
— Miguel de Icaza (@migueldeicaza) March 5, 2022
I plan to make a dent on my open browser tabs, catch up on TikTok and pet projects before starting something new this fall. pic.twitter.com/mqkwJFDwqx
ReSharper / Rider 2022.1 EAP 5
ReSharper と Rider の 2022.1 EAP5 がリリースされた。
ReSharper はバグフィックスが主な変更点となり、Rider はリモート開発のサポートや Unity のサポートの向上などが行われている。
ReSharper 2022.1 EAP5 is available! As we move closer to the major release this spring, we’re focusing on bug fixes https://t.co/R3IyuZAmLC pic.twitter.com/IRuEBmwHAs
— JetBrains ReSharper (@resharper) March 7, 2022
Rider 2022.1 EAP5 is here with the remote development feature and a number of bug fixes. Learn more about it and download it here: https://t.co/uZcuvk8zQg pic.twitter.com/ekvnUKUqBE
— JetBrains Rider (@JetBrainsRider) March 7, 2022
アーティクル、スライドなど
Logging gRPC on .NET Using Serilog
https://medium.com/@tunadonmez/logging-grpc-on-net-using-serilog-c40a8fbc0426
ASP.NET Core で gRPC サーバーを構築してそのログを Serilog で出力するという構成についての記事。
Building a gRPC Server in .NET
https://dev.to/sahan/building-a-grpc-server-in-net-52gc
ASP.NET Core で gRPC サーバーを実装する方法についての記事。
Xamarin.Formsにおけるスクリーンリーダー対応まとめ - Qiita
https://qiita.com/uhooi/items/ac4945bc3cb6694d5257
Xamarin.Forms におけるスクリーンリーダーの対応状況についての記事。
MAUIがリリースされる前にAvaloniaUIのStylingを試す
https://zenn.dev/t13801206/articles/2203-avalonia-comparison-style
Avalonia での UI のスタイリングを WPF と比較して紹介する記事。
MAUIがリリースされる前にAvaloniaUIのDIを試す
https://zenn.dev/t13801206/articles/2203-avalonia-comparison-di
Avalonia での DI についての記事。
Cancelling await calls in .NET 6 with Task.WaitAsync()
https://andrewlock.net/cancelling-await-calls-in-dotnet-6-with-task-waitasync/
.NET 6 で追加された Task.WaitAsync
メソッドについての記事。Task.WaitAsync
を使用することでタイムアウトを比較的少ないコードで実装できるようになる。
A deep-dive into the new Task.WaitAsync() API in .NET 6
https://andrewlock.net/a-deep-dive-into-the-new-task-waitasync-api-in-dotnet-6/
Task.WaitAsync
メソッドそのものの実装についての解説記事。
Configuring Life Cycle Events in .NET MAUI Apps
https://dev.to/syncfusion/configuring-life-cycle-events-in-net-maui-apps-38ag
.NET MAUI のアプリケーションでライフサイクルイベントを構成する方法ついての記事。
C# 10 PriorityQueue is here !
https://medium.com/@dorlugasigal/c-10-priorityqueue-is-here-5067e2628470
.NET 6 の PriorityQueue の仕組みと使い方についての記事。
Modelling workflows with Finite State Machines in .NET
https://www.lloydatkinson.net/posts/2022/modelling-workflows-with-finite-state-machines-in-dotnet/
Stateless というステートマシンを実装するためのライブラリーを使用して有限ステートマシンでワークフローをモデリングするという記事。
What’s the maximum number of arguments for method in C# and in .NET? | tabs ↹ over ␣ ␣ ␣ spaces by Jiří
C# のメソッドの引数は最大いくつにできるのか、という記事。
記事では T4 で生成したコードをコンパイルしたところ65536個までコンパイルできたが、実際に呼び出せるのは .NET 6.0.2 では8192個までだったとしている。
Executing code before Main in .NET - Gérald Barré
https://www.meziantou.net/executing-code-before-main-in-dotnet.htm
.NET が Main (エントリーポイント) を呼び出すより前に何らかのコードを実行する方法についての記事。
記事では静的コンストラクタ、モジュール初期化、スタートアップフックを紹介している。
Automate code metrics and class diagrams with GitHub Actions - .NET Blog
https://devblogs.microsoft.com/dotnet/automate-code-metrics-and-class-diagrams-with-github-actions/
GitHub Actions を使用して自動的にコードメトリクスやクラスダイアグラムを生成する方法についての記事。
SQLiteの書き込みを高速にする(EntityFrameworkCoreのMicrosoft.Data.Sqlite版) - Qiita
https://qiita.com/ShTair/items/47c15fa65c4523b56e91
System.Data.SQLite では指定できていたパフォーマンスに影響するオプションと同様のプラグマを Entity Framework Core の SQLite 実装 (Microsoft.Data.Sqlite) でセットする方法ついて。
Entity Framework Core で Bulk Insert する
https://zenn.dev/mono_matsu/articles/40e74c0022b9e6
Entity Framework Core での Bulk Insert についての記事。
C#の進化を垣間見てみよう - .NET 20周年を記念して - Qiita
https://qiita.com/gushwell/items/df3ef1f0c583feeead75
C# が20年間で変わってきた部分を C# 3.0 のコードを書き換えながら紹介してる記事。
Live Unit Testing Preview: Better and Faster - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/live-unit-testing-preview-better-and-faster/
Visual Studio Enterprise で提供されているライブユニットテストの新しいビルド体験を提供するプレビュー機能についての記事。
LiteDBとSQLiteのパフォーマンスを計測してみた(C#) - Qiita
https://qiita.com/KyoheiOkawa/items/903768bec2f801ef3c7c
LiteDB (.NET ネイティブなデータベース)と SQLite でのパフォーマンスの比較記事。
ASP.NET Core開発者ロードマップを日本語訳しました - Qiita
https://qiita.com/k2491p/items/ac62468260d002cb5fe1
Moien Tajik 氏が書いた ASP.NET Core でのアプリケーション開発者として学ぶためのロードマップを日本語訳したもの。
ASP.NET Core Blazor Server でオレオレ ログインを作りたい
https://zenn.dev/okazuki/articles/signin-blazor-server
ASP.NET Core Blazor Server で ASP.NET Core Identity や外部の ID プロバイダーを使用した認証を使用しない、独自の認証機構を実装する方法についての記事。
Create a Custom GitHub Action with C#
https://ferrywlto.medium.com/create-a-custom-github-action-with-c-b056de359cb5
Docker ベースの GitHub Actions のカスタムアクションを C# で実装する方法についての記事。
Auto Updating Created, Updated and Deleted Timestamps In Entity Framework - .NET Core Tutorials
Entity Framework Core で更新日時、削除日時のようなタイムスタンプを自動で更新する方法についての記事。
Using EF Core Global Query Filters To Ignore Soft Deleted Entities - .NET Core Tutorials
Entity Framework Core で論理削除された要素を常にフィルターするといった方法についての記事。
ライブラリ、リポジトリ、ツールなど
GitHub - tackme31/howmessy: How messy is your code?
https://github.com/tackme31/howmessy
Visual Studio の CodeLens 上にコードの複雑度を表示する Visual Studio 拡張。
サイト、ドキュメントなど
Rome .NET Conference – The Background on Background Tasks in .NET 6
https://scottsauber.com/2022/03/17/rome-net-conference-the-background-on-background-tasks-in-net-6/
.NET 6 でのバックグラウンド処理を行う際の手法についてのスライド。
deep dive distributed tracing
https://www.slideshare.net/tanakata/deep-dive-distributed-tracing
分散トレーシングの仕組みとその表現についてのスライド。
ツイート
Visual Studio 2022 doesn't support building .NET 4 and .NET 4.5 libraries. Newtonsoft.Json no builds in VS2022.
— James Newton-King ♔ (@JamesNK) March 12, 2022
Should the next version of Newtonsoft.Json drop old, unsupported .NET Framework versions (net20, net40, net45) and require net462 or later? 🤯https://t.co/DpVpaC3pda
Visual Studio 2022 は .NET Framework 4, 4.5 をサポートしていないので Json.NET はこれ以降 .NET Framework 4.6.2 以降のサポートにしようと思うがどうかという話。
Deep Dive
Add Stopwatch.GetElapsedTime by stephentoub · Pull Request #66372 · dotnet/runtime
https://github.com/dotnet/runtime/pull/66372
Stopwatch.GetTimestamp()
が返す値は環境によって異なり Frequency で割るといった必要があったので、タイムスタンプを直接 TimeSpan
に変換するメソッドを追加するという PR。
System.Linq work planned for .NET 7 · Issue #64601 · dotnet/runtime
https://github.com/dotnet/runtime/issues/64601
.NET 7 での System.Linq に関するプランニングされた作業の Issue。
Add gRPC JSON transcoding by JamesNK · Pull Request #40242 · dotnet/aspnetcore
https://github.com/dotnet/aspnetcore/pull/40242
gRPC のリクエスト/レスポンスを JSON 形式に変換することで Web API として効果する仕組みの提供の PR。