2023-03-24: .NET 5 to .NET 7 @ Bing, GitHub Copilot chat for Visual Studio 2022, Uno Platform 4.8.15

Published on Friday, 24 March 2023

トピックス

.NET Performance Delivers Again for Bing, From .NET 5 to .NET 7 - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-performance-delivers-again-for-bing-from-dotnet-5-to-dotnet-7/

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

https://techcommunity.microsoft.com/t5/apps-on-azure-blog/asp-net-web-app-migration-to-azure-app-service-using-powershell/ba-p/2814513

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

https://devblogs.microsoft.com/visualstudio/streamlining-your-debugging-process-with-breakpoint-groups/

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 バインディング。

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

ツイート

.NET のデコンパイラーについての記事が2023年の情報で更新されている。

Rx.Async の最初のアルファーリリースが出たという話。

Span.CopyTo がアンロール可能になったという話。

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 の認証オプションの新しいドキュメントの作成
  • 認証ドキュメントへのテンプレートからのリンク