2023-11-26: Cake v4.0.0, NATS.Net v2.0.0, Npgsql 8.0

Published on Sunday, 26 November 2023

トピックス

Cake v4.0.0 released

https://cakebuildnet.medium.com/cake-v4-0-0-released-475ce3ddd987

Cake v4.0.0 がリリースされた。

このバージョンでは C# 12 および .NET 8 のサポート、ファイル API の強化などが含まれている。

Release NATS.Net v2.0.0 · nats-io/nats.net.v2

https://github.com/nats-io/nats.net.v2/releases/tag/v2.0.0

NATS.Net v2.0.0 がリリースされた。

NATS の .NET クライアントライブラリーで v2.0.0 から AlterNats をベースとしたモダンな実装となった。このバージョンではコアとなる NATS コマンドのサポート、JetStream のサポート、NATS Service API サポート、Native AOT サポートなどが含まれている。

Npgsql 8.0 Release Notes | Npgsql Documentation

https://www.npgsql.org/doc/release-notes/8.0.html

Npgsql 8.0 がリリースされた。

このバージョンでは Native AOT および Trimming のサポート、Metrics API による OpenTelemetry メトリクスのサポート、キー付きサービスとしての登録といった新機能が含まれている。その他、いくつかの破壊的変更が含まれている。

バージョン 8.0 が .NET Framework (.NET Standard 2.0) をサポートする最後のバージョンとなり 9.0 からはサポートされなくなるとのこと。

Announcing .NET Chiseled Containers - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-chiseled-containers/

.NET Chiseled Containers のリリースアナウンス。

Chiseled イメージは Ubuntu のリリースした最小限のコンポーネントを含むコンテナーイメージであり、それを元に .NET のランタイムを含めたものをリリースした。

記事では Chiseled での容量や依存関係、脆弱性対応といった部分でのメリット、Distroless を採用する場合との違いなどについて説明している。

Announcing NuGet.exe and NuGet Client SDK Packages Support Policy: Keeping You Informed and Secure - The NuGet Blog

https://devblogs.microsoft.com/nuget/announcing-nuget-exe-and-nuget-client-sdk-packages-support-policy-keeping-you-informed-and-secure/

NuGet.exe と NuGet クライアント SDK パッケージのサポートポリシーについて。

記事では NuGet.exe と NuGet クライアント SDK の今後のサポートについて説明している。原則として更新は現行バージョンおよび Visual Studio と .NET SDK の LTS サポートにのみ提供され、脆弱なバージョンの NuGet は tools.json から削除され、パッケージは非推奨となる。

Visual Studio 2022 – 17.8 Performance Enhancements - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-8-performance-enhancements/

Visual Studio 2022 version 17.8 でのパフォーマンス改善についての解説。

記事ではファイルを開く際の応答性の改善、Razor/Blazor での応答性の向上、F5 (デバッグ実行) の速度向上、Unreal Engine C++ での IntelliSense の最適化、非 SDK スタイル .NET プロジェクトのビルドの最適化について紹介している。

Hosted image runners for Azure Pipelines and GitHub Actions have now completed rollout to include .NET 8 SDK (*-latest) and Visual Studio 17.8 (windows-latest)

https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md

Azure Pipelines および GitHub Actions のランナーイメージに .NET 8 SDK と Visual Studio 2022 17.8 (Windows) が含まれるようになった。

ServiceStack v8

https://docs.servicestack.net/releases/v8_00

ServiceStack v8 がリリースされた。

このリリースでは Blazor や認証など様々なプロジェクトのテンプレートが更新されたほか、PHP のための End-to-End 型付き API サポートなど様々な改善が含まれている。

Release 2.1.0 · microsoft/reverse-proxy

https://github.com/microsoft/reverse-proxy/releases/tag/v2.1.0

Yarp 2.1.0 がリリースされた。

このリリースではいくつかの不具合の修正や改善が含まれている。

The end of the Tye Experiment · Issue #1622 · dotnet/tye

https://github.com/dotnet/tye/issues/1622

ローカルでのマイクロサービス開発ツールを目標としていた Tye は .NET Aspire が公開されたことによりアーカイブされることとなった。

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

tannergooding (@tannergooding@dotnet.social)

https://dotnet.social/@tannergooding/111423937700237917

.NET の Hardware Intrinsics の簡単な歴史とデモなど。

Primary Constructors – Using C# 12 in Rider and ReSharper | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/11/23/primary-constructors-using-csharp-12-in-rider-and-resharper/

Rider と ReSharper での C# 12 のプライマリーコンストラクターの対応についての紹介。

どのような変換/簡素化に対応しているか、二重キャプチャ警告について、パラメータの強調表示、コードスタイルなど。

Building Arm64 Docker Images with .NET 8: A Quick Solution

https://medium.com/medialesson/building-arm64-docker-images-with-net-8-a-quick-solution-5491a94eb507

Arm64 の Docker イメージを作成するにあたり FROM--platform=$BUILDPLATFORM を指定しておくことでビルド時にプラットフォームを決定できる。

.NET 8 の Blazor で InteractiveWebAssembly でプリレンダリングをなるべく避けたい

https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-wasmloading

Blazor で InteractiveWebAssembly を使用しつつ、可能な限りプリレンダリングをする範囲を小さくする方法について。

Set up GitHub Codespaces for a .NET 8 application

https://dev.to/this-is-learning/set-up-github-codespaces-for-a-net-8-application-5999

.NET 8 のアプリケーションのための GitHub Codespaces 環境の作り方について。

New Minimal APIs features in ASP.NET Core 8.0

https://medium.com/abp-community/new-minimal-apis-features-in-asp-net-core-8-0-683d8a79b18d

.NET 8 の ASP.NET Core の Minimal APIs の新機能の簡単な紹介。

Visualize Entity Framework Relationships and Additional Query Analysis in ReSharper 2023.3 | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/11/20/visualize-entity-framework-relationships-and-additional-query-analysis-in-resharper-2023-3/

ReSharper 2023.3 の Entity Framework に関するビジュアライズとクエリーの解析についての紹介。

エンティティ関連図の生成や長さ制限の指定されていない文字列の検査、SQL に変換できないメソッド呼び出しの検出など。

Modernizing Reactive Extensions for .NET | endjin

https://endjin.com/what-we-think/talks/modernizing-reactive-extensions-for-dotnet

Rx.NET の昔から今までの流れと、その中で行ってきたモダナイズのための作業などについて。

A failed experiment with interceptors in C# 12 and .NET 8

https://andrewlock.net/a-failed-experiment-with-interceptors-in-csharp-12-and-dotnet-8/

C# 12 のプレビュー機能である Interceptor を Enum と拡張メソッドで使用しようとしたところ Roslyn の不具合にひかかったことについて。

Community Feedback Building 17.8 & 17.9 Preview 1 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/community-feedback-building-17-8-17-9-preview-1/

Visual Studio のコミュニティーからのフィードバックによる新機能の紹介やコメントを求めている提案の紹介、フィードバックの送り方などについて。

Improvements & Changes in Android resource generation in .NET 8 - .NET Blog

https://devblogs.microsoft.com/dotnet/android-resource-designer-dotnet-8/

.NET 8 で新たに導入された Android のリソースにアクセスするための仕組みについての解説。

新たに導入された仕組みでは起動時間の削減や Trimer フレンドリーとなったことによるサイズの削減といった恩恵を得られる

Create a Pull Request with Summary Difference View Available in GA - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/create-a-pull-request/

Visual Studio 2022 17.9 Preview 1 で実装された IDE からの Pull request 作成機能の紹介。

Fake It Til You Make It...To Production - .NET Blog

https://devblogs.microsoft.com/dotnet/fake-it-til-you-make-it-to-production/

.NET 8 で導入されたフェイクを実現するためのクラス(FakeLogger, MetricCollector, ITimeProvider) などを紹介している。

.NET Night Party@品川 - connpass

https://msdevjp.connpass.com/event/303250/

.NET Conf 2023 Recap Japan の後に行われるオフラインイベント。

Producer/consumer pipelines with System.Threading.Channels

https://blog.maartenballiauw.be/post/2020/08/26/producer-consumer-pipelines-with-system-threading-channels.html

System.Threading.Channels の簡単な解説と Open.ChannelExtensions を使用した簡単なパイプラインの構築方法について。

.NET 8: What's New for Authentication and Authorization

https://auth0.com/blog/whats-new-dotnet8-authentication-authorization/

.NET 8 の Identity API によるトークンベースの認証についての解説。

.NET 8 での Blazor のエラーハンドリングの注意点

https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-errorhandling

ErrorBoundary は異なる実行方式をまたいでハンドリングできない問題について。

Path.GetDirectoryName() は overload によって挙動が異なる - xin9le.net

https://blog.xin9le.net/entry/2023/11/20/212653

Path.GetDirectoryName メソッドはオーバーロードによってパスの区切り文字の正規化の有無が異なることについて。

Native AOT Compilation in .NET 8

https://medium.com/abp-community/native-aot-compilation-in-net-8-3c9b80a77f06

.NET 8 での Native AOT に関する変更と有効化方法、結果などを簡単に紹介。

C# 12 新機能メモ - Qiita

https://qiita.com/habakino094/items/57dca2d0c49c9c02395a

C# 12 の新機能の簡単な紹介。プライマリーコンストラクター、コレクション式、任意の型の別名指定、ラムダパラメータの規定値について。

Blazor で HTML を書きたくないよぉ…(Fluent UI Blazor 編 on .NET 8)

https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-fluentui

Fluent UI Blazor の組み込み方、使い方について。

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

keithwill/VestPocket

https://github.com/keithwill/VestPocket

AOT 向けのファイルベースでのシンプルなデータストレージ。

JonPSmith/EfCore.SchemaCompare: Library to compare EF Core's Model of the database against a database's schema.

https://github.com/JonPSmith/EfCore.SchemaCompare

Entity Framework Core のモデルをベースとしたスキーマの比較ライブラリー。

Debug Output Filter - Visual Studio Marketplace

https://marketplace.visualstudio.com/items?itemName=GrantDavies.NiahTextFilter2022

デバッグ出力をフィルターしたり履歴を確認できたりする Visual Studio 拡張。

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

ツイート

Win2D 1.27.1 と Windows App SDK 1.1.1 がリリースされた話。

Service Discovery (Microsoft.Extensions.ServiceDiscovery) が .NET 8 で利用可能となったという話(Aspire は不要)。

ConcurrentDictionary<K,V>.Count はロックするのでパフォーマンスで不利となるので空かどうかを判断したいだけであれば IsEmpty を使用すべきという話。

セッションで GC の動きをビジュアライズしてデモするためのツールを作っているという話。