トピックス
C# Dev Kit - Now Generally Available - .NET Blog
https://devblogs.microsoft.com/dotnet/csharp-dev-kit-now-generally-available/
C# Dev Kit が Generally Available (一般公開) となった。
C# Dev Kit は Visual Studio Code で C# 開発を行うための拡張機能。Visual Studio に含まれているソリューションエクスプローラーやテストエクスプローラーといった機能を Visual Studio Code に持ち込むことで今までの C# 開発拡張以上の機能を提供する。Windows だけでなく Linux, macOS での利用もサポートされる。
この拡張の利用には Visual Studio サブスクリプション (Community 含む) のライセンスが必要となる。
Arm64 Performance Improvements in .NET 8 - .NET Blog
https://devblogs.microsoft.com/dotnet/this-arm64-performance-in-dotnet-8/
.NET 8 での Arm64 向けパフォーマンス改善についての解説。
- 条件的選択
- 条件付き比較
- 条件付きインクリメント、否定、反転
- VectorTableLookup と VectorTableLookupExtension
- 連続するレジスタ割り当て
- のぞき穴的最適化
- 連続する
ldr
およびstr
のldp
およびstp
への置換 - SIMD レジスターでの
ldp
/stp
の使用 str wzr
ペアのstr xzr
への置換- load の
mov
での置換 - mul + neg -> mneg のコンバート
- 連続する
- コード品質の改善
- より高速な Vector128/Vector64 比較
- vector == Vector128<>.Zero の改善
- Memmove のアンロール
- スループットの改善
The convenience of System.Text.Json - .NET Blog
https://devblogs.microsoft.com/dotnet/the-convenience-of-system-text-json/
System.Text.Json の利便性についての解説。
記事では JSON.NET も含めて一般的に使用される API (シリアライザー、リーダーライター) をモデルにパフォーマンスと使用方法を紹介している。
Announcing New Release! | Evergine September 23 - Evergine
https://evergine.com/evergine-release-september-2023/
Evergine の2023年9月版がリリースされた。
このリリースでは iOS と Metal、.NET MAUI のサポートをはじめ、モーフィングアニメーションシステムや XRV フレームワークの新しいモジュールの導入、パフォーマンス改善といったものが含まれている。
アーティクル、スライドなど
Decimalの少数の表示 - Qiita
https://qiita.com/hiro_t/items/b83af07c232ce677cae3
Decimal の文字列フォーマット時の少数部分の指定の比較。
Memory-Mapped Files and Overlaid Structs
https://blog.stephencleary.com/2023/09/memory-mapped-files-overlaid-structs.html
メモリマップトファイル上のデータを構造体として参照する方法について。
How Microsoft Empowers Developers with Disabilities: Celebrating NDEAM - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/celebrating-ndeam-vs-code-visual-studio/
NDEAM (National Disability Employment Awareness Month) を祝い、Microsoft が行ってきた障害を持つ開発者に対する支援についての紹介。
GodotのC#プロジェクトを複数プロジェクトに分けて管理するには?
https://zenn.dev/numani/articles/godot-split-project
Godot で C# プロジェクトを作成し、クラスライブラリープロジェクトにあるクラスをアタッチすることができない問題について。
.NETプロジェクトをgdbデバッグする方法 - Qiita
https://qiita.com/daredeshow/items/aa2b80e4463266ac3cb0
Linux 環境上で .NET アプリケーションが SEGV でのクラッシュする際に gdb でデバッグする方法について。
Can you use the .NET 8 Identity API endpoints with IdentityServer?
https://andrewlock.net/can-you-use-the-dotnet-8-identity-api-endpoints-with-identityserver/
.NET 8 の Identity API と IdentityServer の関連と仕組みについて、IdentityServer テンプレートから .NET 8 Identity API エンドポイントへの置き換えについて。
Resharper 2023.2 Brings Predictive Debugger
https://www.infoq.com/news/2023/10/resharper-predictive-debugger/
ReSharper 2023.2 の Predictive Debugger (予測デバッグ) の紹介。
The .NET Conf Student Zone is Back! - .NET Blog
https://devblogs.microsoft.com/dotnet/the-dotnet-conf-student-zone-is-back/
2023年の .NET Conf Student Zone の開催について。
.NET Conf Student Zone は初心者/学習者向けのセッションイベント。イベントは11月13日に開催される。
Recordings from JetBrains .NET Day Online ’23 are available | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/10/02/recordings-jetbrains-dotnet-day-online-23/
JetBrains .NET Day Online のレコーディングが公開となった。.NET に関連した10のセッションのレコーディングが公開されている。
GitHub Actions Runner Deep Dive: Registration and Setup
https://dev.to/cwprogram/github-actions-runner-deep-dive-registration-and-setup-1ojb
GitHub Actions の Runner のソースコードを読み解いていく記事。記事ではランナーの登録や開始部分について解説している。
IAsyncEnumerable を理解する - Qiita
https://qiita.com/TsuyoshiUshio@github/items/c4b9929d88d1cd8cabb1
IAsyncEnumerable の利用方法とユースケースについての簡単な解説。
Rolling Forward to Major Versions in .NET
https://weblog.west-wind.com/posts/2023/Oct/02/Rolling-Forward-to-Major-Versions-in-NET
アプリケーションを実行するランタイムのバージョンのロールフォワード (.NET 7でビルドしたアプリケーションを .NET 8 で動かすなど) の設定方法について。
Using http/2 with ASP.NET Core - Traefik/Kubernetes/container example
https://josef.codes/using-http2-with-asp-net-core-traefik-kubernetes-container-example/
Kubernetes 上の ASP.NET Core アプリケーションで HTTP/2 を TLS ありでリッスンするための構成について。
Tales from the .NET Migration Trenches - Our First Views
https://www.jimmybogard.com/tales-from-the-net-migration-trenches-our-first-views/
.NET Framework から .NET へのマイグレーションの隙間シリーズ。ビューの移行時のバンドル処理など。
Multiple Result Sets for SQL-Server (C#) including Dapper
https://dev.to/karenpayneoregon/multiple-result-sets-for-sql-server-c-including-dapper-1fpa
Dapper 等で SQL Server から複数の結果セットを受け取る方法について。
C# Tip: Improve memory allocation by initializing collection size
https://www.code4it.dev/csharptips/initialize-collection-size/
List や HashSet の初期サイズを設定することによるメモリーアロケーションの違いについて。
Crap: the application is randomly crashing!
https://chnasarre.medium.com/crap-the-application-is-randomly-crashing-b105a6a5a7e8
Datadog プロファイラーの例をもとにした、アプリケーションがクラッシュした際の WinDbg を利用した調査方法について。
サイト、ドキュメントなど
.NET Multi-platform App UI (.NET MAUI) docs: What's new for September 2023 - .NET MAUI
https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-docs-maui-mod0
2023年9月の .NET MAUI の最新情報のドキュメント。Xamarin.Forms からの移行ドキュメント含んでいる。
ツイート
Stride (ゲームエンジン) に関連した情報をまとめたリポジトリの紹介。
💡 Unlock the full potential of #StrideEngine!
— Stride (@stridedotnet) October 1, 2023
😎 "Awesome Stride" is your gateway to a world of knowledge, featuring tutorials, examples, and more.
🎡 Embrace the Stride community's wealth of resources:https://t.co/R0hgBhgHmn#GameDev #IndieDev #OpenSource #csharp #dotnet pic.twitter.com/6pnDx4nJbB
.NET MAUI と Evergine を使用した 3D グラフィックを組み込んだアプリのサンプル。
You can find an example combining an UI created with .NET MAUI and 3D content with Evergine here https://t.co/xtjSGEHlVz #Dotnet pic.twitter.com/wjF0e16mfK
— Javier Suárez (@jsuarezruiz) October 2, 2023
Deep Dive
Sponsor links for NuGet packages by JonDouglas · Pull Request #12922 · NuGet/Home
https://github.com/NuGet/Home/pull/12922
NuGet パッケージの情報にスポンサーリンクを組み込むという提案 PR。
New proposal on adding sponsor links for NuGet packages. Let's support the open-source projects that power our world and ensure their longevity.
— NuGet (@nuget) October 5, 2023
We'd love your feedback! https://t.co/syoZdpDU0W