2023-06-04: .NET Upgrade Assistant CLI, Avalonia UI v11 RC 1, devtunnel CLI

Published on Sunday, 04 June 2023

トピックス

Announcing an update for .NET Upgrade Assistant with a new CLI tool! - .NET Blog

https://devblogs.microsoft.com/dotnet/upgrade-assistant-cli/

コンソール版の .NET アップグレードアシスタントツールがアップデートされた。

新しいバージョンのアップグレードアシスタントツールは Visual Studio の拡張と同様の恩恵が受けられるようになった。

First Release Candidate of Avalonia UI v11 Now Available!

https://dev.to/avalonia/first-release-candidate-of-avalonia-ui-v11-now-available-34c8

Avalonia UI v11 のリリース候補版が公開された。

API に大きな変更があり破壊的変更などもあるため RC を試してのフィードバックを求めている。

Announcing the public preview of the devtunnel CLI

https://techcommunity.microsoft.com/t5/azure-developer-community-blog/announcing-the-public-preview-of-the-devtunnel-cli/ba-p/3823131

Dev Tunnel のコマンドライン版ツールのパブリックプレビューが公開された。

Dev Tunnel は ngrok のような外部からローカルにアクセスできるような仕組みを提供するもので、Visual Studio 2022 に組み込まれていたがコマンドラインツールとしても利用できるようになる。

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

Using Elasticsearch and NEST in NET

https://medium.com/@lucasgarciaz2018/using-elasticsearch-and-nest-in-net-9821f64cfa76

Elasticsearch .NET クライアントを利用する方法について。

記事では高レベルな操作である NEST についても触れている。

Handling JWT authentication with ASP.NET Core TestServer | Jason Mitchell

https://json.codes/posts/dotnet/handling-jwt-authentication-with-aspnetcore-testserver/

ASP.NET Core アプリケーションのユニットテストを行う際にテストサーバーで JWT 認証を取り扱う方法について。

How to Build a Shared Library in C# and Call it From Java Code

https://medium.com/@sixpeteunder/how-to-build-a-shared-library-in-c-sharp-and-call-it-from-java-code-6931260d01e5

NativeAOT を使用して C# の共有ライブラリーを作り、Java から呼び出す方法について。

Understanding the Dapr Workflow engine & authoring workflows in .NET | Diagrid

https://www.diagrid.io/blog/authoring-dapr-workflows-in-dotnet

Dapr Workflow のワークフローやアクティビティを .NET で実装する方法について。

Typed exceptions for JSInterop in Blazor - Kristoffer Strube’s Blog

https://kristoffer-strube.dk/post/typed-exceptions-for-jsinterop-in-blazor/

Blazor の JavaScript 相互運用で JavaScript 側で発生した例外を .NET 側で固有の例外の型として変換して取り扱う方法について。

Speech Recognition in .NET MAUI with CommunityToolkit - .NET Blog

https://devblogs.microsoft.com/dotnet/speech-recognition-in-dotnet-maui-with-community-toolkit/

.NET MAUI Community Toolkit の Speech-to-Text (音声認識) 機能の紹介記事。

Iterating on your Welcome Experience feedback - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/welcome-feedback/

Visual Studio プレビューで導入されている新しいウェルカムページ(起動時のプロジェクト選択や作成などの画面)体験の紹介。

新しいウェルカムページはより多くの要素を表示できるようになったことやレスポンシブになったこと、MRU リストの取り扱いなどについて。

.NET + AvaloniaUI 制作日誌⑦(ChatGPT APIクライアントアプリ:最終回)

https://zenn.dev/jun_murakami/articles/a2a30d11efd14a

Avalonia UI を使用して ChatGPT のクライアントアプリを作成する中での学びなどをつづった制作記録(の最終回)。

【C#】ソースジェネレータを使ってみる - Qiita

https://qiita.com/dsyuuto/items/4c13cc2234980a906863

Git の情報を埋め込むコードを生成する Source Generator を作ってみるという記事。

Create a Microsoft Power App for your ASP.NET Core Web API - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/create-a-microsoft-power-app-for-your-asp-net-core-web-api/

Visual Studio 2022 17.6 preview 2 で追加された Power App との接続とカスタムコネクター作成のサポートで ASP.NET Core Web API による API を作成する手順の紹介。

Level Up with Live Templates in JetBrains Rider | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/05/30/level-up-with-live-templates-in-jetbrains-rider/

Rider のライブテンプレートの活用について。

記事ではライブテンプレートとは何か、作成の仕方、共有方法について触れている。

Doing AES Encryption Correct in Your .NET Application

https://propertyguru.tech/doing-aes-encryption-correct-in-your-net-application-5d66168b5b44

.NET アプリケーションで AES 暗号化を行う方法について。

記事では簡単なキーローテーションなどについても触れている。

Concurrent B+ Trees — ConcurrentSortedDictionary c#/.net

https://medium.com/@mkrebser/concurrent-b-trees-concurrentsorteddictionary-c-net-f7c1c2a84141

ConcurrentDictionary をベースとした ConcurrentSortedDictionary の B+ ツリーでの実装詳細についての解説。

C# worker services and Kubernetes Liveness probes

https://medium.com/@james.matson_64120/c-worker-services-and-kubernetes-liveness-probes-538c6839bbb5

ワーカーサービス (コンソールアプリや BackgroundService) で Kubernetes 向けの Liveness probe を実装する方法について。

Serilog logging and EF Core logging

https://dev.to/karenpayneoregon/serilog-logging-and-ef-core-logging-25hm

Serilog を使用して Entity Framework Core のログを記録する方法について。

Getting .NET Library Projects to Output Dependent Assemblies

https://weblog.west-wind.com/posts/2023/May/29/Getting-NET-Library-Projects-to-Output-Dependent-Assemblies

ライブラリーの出力として依存しているアセンブリーも出力する方法について。

依存しているアセンブリーそのものは通常のユースケースでは必要にならないが、例えばプラグインのようなケースでは依存しているアセンブリーも必要となる。

How to detect Globalization-Invariant mode in .NET - Gérald Barré

https://www.meziantou.net/detect-globalization-invariant-mode-in-dotnet.htm

Globalization Invariant モードで実行されているかどうかを検出するテクニック。

The Art of HTTP Connection Pooling: How to Optimize Your Connections for Peak Performance - Developer Support

https://devblogs.microsoft.com/premier-developer/the-art-of-http-connection-pooling-how-to-optimize-your-connections-for-peak-performance/

クラウドサービスにおけるアクセスのピーク時にポートの枯渇によるエラーの事例とその対策としてのコネクションプールについて。

Publish your own Nuget packages to Github Nuget Registry with Github actions.

https://pasinduprabhashitha.medium.com/publish-your-own-nuget-packages-to-github-nuget-registry-with-github-actions-939b07e8b6f5

GitHub の Package Registry に NuGet パッケージを発行する方法についての解説。

.NET Micro-Optimization and Refactoring Trick - NDepend

https://blog.ndepend.com/net-micro-optimization-and-refactoring-trick/

Dictionary で文字列をキーにする場合 StringComparer.Ordinal を使用することで .NET Framework でのみ高速化されることと、それを ReSharper のパターン置き換え機能を使ってリファクタリングする方法を紹介。

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

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

ツイート

wasmtime に WASI-http 仕様が含まれるようになったことと、.NET で WASI-http を呼び出すサンプル実装。

AWS Lambda の .NET デモアプリでのベンチマークに .NET 8 Native AOT の結果が追加されたという話。