トピックス
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
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) が含まれるようになった。
📢 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) #dotnethttps://t.co/UCazh39yYahttps://t.co/827aQSwqkt
— Tim (@timheuer) November 21, 2023
ServiceStack v8
https://docs.servicestack.net/releases/v8_00
ServiceStack v8 がリリースされた。
このリリースでは Blazor や認証など様々なプロジェクトのテンプレートが更新されたほか、PHP のための End-to-End 型付き API サポートなど様々な改善が含まれている。
ServiceStack v8 is here!
— ServiceStack (@ServiceStack) November 20, 2023
✅ All packages with .net8.0 builds
✅ All Project Templates upgraded to .NET 8
- GH Actions now use .NET 8 Docker containers
✅New Tailwind Blazor, Razor Pages & MVC Templates
✅Switch to ASP .NET Identity Auth & EF
lots more!https://t.co/yCgbel7FDq pic.twitter.com/xHFaRiO1wN
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
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
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
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 拡張。
This extension keeps a history of builds and debug sessions, and lets you filter the output window data in a super powerful way. I'm a fan!https://t.co/dbttKBa1Vw pic.twitter.com/LIqwUdiFMm
— Mads Kristensen (@mkristensen) November 20, 2023
サイト、ドキュメントなど
ツイート
Win2D 1.27.1 と Windows App SDK 1.1.1 がリリースされた話。
We just released Win2D 1.27.1 (UWP) and 1.1.1 (WinAppSDK) with support for .NET 8! These releases switch to using the portable RID schema for native binaries and include some bug fixes (eg. the interop header now builds correctly). Try it out! 🚀#dotnethttps://t.co/zoOe2CcUaT
— Sergio Pedri (@SergioPedri) November 22, 2023
Service Discovery (Microsoft.Extensions.ServiceDiscovery) が .NET 8 で利用可能となったという話(Aspire は不要)。
Really happy that the new Service Discovery APIs in .NET8 are usable stand-alone, and outside of Aspire.
— David Whitney (@david_whitney) November 21, 2023
Here's a console app, using service discovery, to call a nodejs API that "just works".https://t.co/VrXIn2rGHA pic.twitter.com/J0alXGlJFE
ConcurrentDictionary<K,V>.Count
はロックするのでパフォーマンスで不利となるので空かどうかを判断したいだけであれば IsEmpty を使用すべきという話。
Just a friendly reminder that using `ConcurrentDictionary<K,V>.Count` to check for emptiness is not the right way, since the property would acquire all the locks of the world! Just use `.IsEmpty` property instead!#dotnet #performnace #tips pic.twitter.com/ZJbe79wgq4
— Sergiy Teplyakov 🇺🇦 🇺🇸 (@STeplyakov) November 21, 2023
セッションで GC の動きをビジュアライズしてデモするためのツールを作っているという話。
In preparation for my talk at @update_conf, I've prepared a tool to visualize the activity of the GC. It was initially meant as a gimmick, but it turns out to be a good way to understand some GC mechanisms.
— Kevin Gosse (@KooKiz) November 19, 2023
For instance, here you can see the effect of… pic.twitter.com/Iebli6VHFl