トピックス
.NET Performance Delivers Again for Bing, From .NET 5 to .NET 7 - .NET Blog
Bing の中央ワークフローエンジンを .NET 5 から .NET 6, 7 へと更新した際の課題や効果について。
.NET 5 から .NET 6 への移行は簡単に完了すると考えていたが、内部の HTTP 呼び出しで使用されていた誤ったペイロードを取りあつかえなくなる問題や、スピンカウントに関するバグによる可用性の低下といった問題に .NET 側が対応する必要があったがそれ以外では大きな書き換えもなく移行は行えたとのこと。
また、起動時に事前の分析を元に JIT を意図的に発生させるよう暖気を行っていたが .NET 6 で JIT 効率が改善されたことで起動時間が劇的に改善された。
.NET 7 への移行ではスレッドプールの動作の変更とリージョンベースの GC という大きな変更があったため、注意深くテストを行った結果 GC にかかる時間は24-30%近い改善を示し、GC の改善とスレッドプールの改善などにより95パーセンタイルレイテンシーは3-7%程度改善されたとのこと。
GitHub Copilot chat for Visual Studio 2022 - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/github-copilot-chat-for-visual-studio-2022/
GitHub Copilot chat for Visual Studio 2022 の紹介。
GitHub Copilot chat ではエディター上から直接 AI に対するチャットの質問文を入力できるようになり、Visual Studio 上のウィンドウで AI とチャットを行いコードに関する問題の改善などが行える。その他例外発生時に AI チャットで例外の内容を調べるといったこともできる。
現在はプライベートプレビューに向けてウェイトリストの登録フォームが公開されている。
Release 4.8.15 · unoplatform/uno
https://github.com/unoplatform/uno/releases/tag/4.8.15
Uno Platform 4.8.15 がリリースされた。
このリリースでは .NET 8 Preview のサポート、スタートアップエクスペリエンスの改善、ThemeShadow for iOS/Catalyst/Android、Skia ターゲットでの影、パフォーマンスとメモリーの改善、その他さまざまな修正が含まれる。
ReSharper and Rider 2022.3.3 Bug Fixes Have Landed | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/03/22/resharper-and-rider-2022-3-3-bug-fixes/
ReSharper と Rider 2022.3.3 がリリースされた。
このリリースではいくつかの細かい不具合が修正されている。
アーティクル、スライドなど
How to perform mutation testing in .NET and C#?
https://medium.com/@RebeldeCuantico/how-to-perform-mutation-testing-in-net-and-c-bd23a530341f
.NET / C# でミューテーションテストを行う方法について。記事では Stryker というツールを使用してテストを行う方法を解説している。
C# .NET Tools with System.CommandLine
https://dev.to/karenpayneoregon/c-net-tools-withsystemcommandline-2nc2
System.CommandLine を使用してコンソールアプリケーションを実装する簡単な紹介。
ASP. Net web app Migration to Azure App Service using PowerShell Scripts
ASP.NET Web アプリケーション (.NET Framework) を Azure App Service に移行する PowerShell ツールの紹介。
Too many timers in .NET? - Gérald Barré
https://www.meziantou.net/too-many-timers-in-dotnet.htm
.NET に含まれる複数のタイマー (System.Threading.Timer, System.Threading.PeriodicTimer, System.Timers.Timer) の違いと使い方の紹介。
Scatter plots in F# and C# using Plotly.NET
https://fslab.org/blog/graph-gallery/scatter/csharp.html
Plotly.NET を使用して散布図を表示する方法について。記事では Interactive (Juptyer Notebook) での使用例を紹介している。
Mastering Blazor - Part 2: Hot Reloading
https://dev.to/florianrappl/mastering-blazor-part-2-hot-reloading-2b87
Blazor でのホットリロードについての解説。
記事ではホットリロードはどのように使用し、どのような制限があるのか、そしてどのように動作しているのかを解説している。
Debugging Multiple .NET Projects in VS Code
https://dev.to/this-is-learning/debugging-multiple-net-projects-in-vs-code-28kn
Visual Studio Code で複数の .NET プロジェクトをまとめてデバッグ実行する方法について。
Remote Development with JetBrains Rider | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/03/22/remote-development-with-jetbrains-rider/
Rider 2022.2 でベータとしてサポートされたリモート開発についての紹介記事。
記事ではどのようにして Rider を使用してリモート開発を始めるのか、どのようなことができるのかといったことを紹介している。
Secure your .NET cloud apps with rootless Linux Containers - .NET Blog
https://devblogs.microsoft.com/dotnet/securing-containers-with-rootless/
.NET 8 で導入される rootless な Linux コンテナーイメージについて。
rootless コンテナーイメージは一般ユーザーで動作することでセキュリティー面でのリスクを軽減することができる。.NET 8 ではコンテナーイメージにアプリケーション用のユーザーが含まれるようになる。
記事では一般ユーザーで実行する方法やその際に必要な対応などを説明している。
Streamlining your Debugging process with Breakpoint Groups - Visual Studio Blog
Visual Studio 2022 version 17.6 Preview 2 で導入されたブレークポイントをグループ化する機能についての紹介。
Visual Studio 2022 C# でIOT(RaspberryPi でLチカ) - Qiita
https://qiita.com/dail1015/items/aa8169c72598865f3bca
Raspberry Pi 4 で .NET 7 を実行してLチカする方法について。
Why is ReSharper suggesting this? | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/03/20/why-is-resharper-suggesting-this/
"Why is ReSharper suggesting this?" という ReSharper が何故その提案を行っているのかについてのヘルプを表示できる機能についての紹介。
Akka.NET v1.5: No Hocon, No Lighthouse, No Problem
https://petabridge.com/blog/akkadotnet-1.5-no-hocon-no-lighthouse-no-problem/
Akka.NET 1.5 で追加された Akka.Hosting, Akka.Management, Akka.HealthCheck についての解説。
Create a portfolio website without installing any tools - .NET Blog
https://devblogs.microsoft.com/dotnet/codespaces-template-blazor-portfolio-website/
GitHub Codespaces を使用して GitHub Pages や Azure Static Web Apps に Blazor WebAssembly のウェブサイトを作る方法について。
ライブラリ、リポジトリ、ツールなど
endecipher/Coracle.Raft: Clusterize your functionality and build your own replicated state machine using this completely extensible implementation of the Raft consensus algorithm in .NET
https://github.com/endecipher/Coracle.Raft
Raft コンセンサスアルゴリズムを使用したクラスターを実装するためのライブラリー。
SteveSandersonMS/DotNetIsolator: A library for running isolated .NET runtimes inside .NET
https://github.com/SteveSandersonMS/DotNetIsolator
.NET ランタイムの上で Wasm の .NET ランタイムをホストすることで隔離環境でコードを実行できるようにするという仕組みを提供するライブラリー。
drasticactions/Drastic.Flex: .NET Binding of FLEX, An in-app debugging and exploration tool for iOS
https://github.com/drasticactions/Drastic.Flex
iOS 向けのアプリ内開発ツールの Flex の .NET バインディング。
In my quest for more iOS Perf tools to help debug MAUI, I bound another iOS Library to .NET: Flex.
— Drastic Actions (@drasticactions) March 19, 2023
Debug your iOS UI, networking features, and much much more, all from within your application!https://t.co/Uciktm6mjv pic.twitter.com/iH9UZgicee
サイト、ドキュメントなど
ツイート
.NET のデコンパイラーについての記事が2023年の情報で更新されている。
.NET Decompilers Compared: A Comprehensive Guide https://t.co/Rwr7458YqY #dotnet #csharp #decompilation pic.twitter.com/tviFpkPZzJ
— ndepend (@ndepend) March 15, 2023
Rx.Async の最初のアルファーリリースが出たという話。
The first alpha release of Async Rx is availablehttps://t.co/SCq7RHRQeo pic.twitter.com/Ta9GapjOgQ
— Howard van Rooijen (@HowardvRooijen) March 18, 2023
Span.CopyTo がアンロール可能になったという話。
Span.CopyTo is now unrollable! https://t.co/OLON4Xom92 it allows us to remove hacks like this one in Boolean.cs and have the same optimized codegen: pic.twitter.com/hf1voKUC4o
— Egor Bogatov (@EgorBo) March 20, 2023
Deep Dive
Optimize stackalloc zeroing via BLK by EgorBo · Pull Request #83255 · dotnet/runtime
https://github.com/dotnet/runtime/pull/83255
ASP.NET Core SPA Templates Need Better Options for Authentication · Issue #42158 · dotnet/aspnetcore
https://github.com/dotnet/aspnetcore/issues/42158#issuecomment-1481742187
.NET 8 での ASP.NET Core SPA テンプレートに関する変更点。
- 既存の Cookie ベースの認証を拡張し、SPA アプリケーションでのカスタマイズのサポート
- 既存のアイデンティティのモダン化によるトークベースの認証のサポート
- SPA テンプレートから Duende IdentityServer の依存の削除
- ASP.NET Core の認証オプションの新しいドキュメントの作成
- 認証ドキュメントへのテンプレートからのリンク