2023-10-08: C# Dev Kit GA, Evergine expands to iOS with Metal API

Published on Sunday, 08 October 2023

トピックス

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 および strldp および 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 (ゲームエンジン) に関連した情報をまとめたリポジトリの紹介。

.NET MAUI と Evergine を使用した 3D グラフィックを組み込んだアプリのサンプル。

Deep Dive

https://github.com/NuGet/Home/pull/12922

NuGet パッケージの情報にスポンサーリンクを組み込むという提案 PR。