トピックス
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
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
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
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
ライブラリーの出力として依存しているアセンブリーも出力する方法について。
依存しているアセンブリーそのものは通常のユースケースでは必要にならないが、例えばプラグインのようなケースでは依存しているアセンブリーも必要となる。
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
クラウドサービスにおけるアクセスのピーク時にポートの枯渇によるエラーの事例とその対策としてのコネクションプールについて。
Publish your own Nuget packages to Github Nuget Registry with Github actions.
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 を呼び出すサンプル実装。
The latest release of wasmtime now includes support for the WASI-http specification!
— brendandburns (@brendandburns) June 2, 2023
Find examples for C, @golang and @dotnet belowhttps://t.co/XxawwrPeelhttps://t.co/vBtlAGwSQqhttps://t.co/qSnUbYut8W
cc @stevesanderson @davidfowl
AWS Lambda の .NET デモアプリでのベンチマークに .NET 8 Native AOT の結果が追加されたという話。
Benchmarks live for .NET 8 native AOT on AWS Lambda, for single purpose handers and running ASP NET on Lambda.
— James Eastham (@plantpowerjames) May 30, 2023
Performance gains across the board. An important thing to point out, cold starts account for less than 1% of the total invokes.#dotnet #awshttps://t.co/ae4ILrapxo