トピックス
AWS App Runner launches support for PHP, Go, .Net, and Ruby managed runtimes
AWS App Runner で .NET を含む複数の言語のランタイムがサポートされた。
AWS App Runner はイメージまたは設定ファイルをソースコード共に用意することでビルド、デプロイ、実行まで簡単に行える仕組み。ランタイムとして .NET 6 がサポートされ、例として以下のような設定ファイルで ASP.NET Core アプリケーションをビルド、デプロイできるとのこと。
version: 1.0
runtime: dotnet6
build:
commands:
build:
– dotnet publish -c Release -o out
run:
command: dotnet out/HelloWorldDotNetApp.dll
network:
port: 5000
env: APP_PORT
env:
– name: ASPNETCORE_URLS
value: "http://*:5000"
Introducing AWS Toolkit for .NET Refactoring, a new Visual Studio extension
AWS Toolkit for .NET Refactoring という Visual Studio 拡張がリリースされた。
これはレガシー .NET Framework アプリケーションをクラウド環境向けに更新するための機能を提供する拡張。.NET Core/.NET に移行するにあたっての依存関係や API 利用をスキャンや、IIS の web.config から Linux 環境で動作させるためのコードの変更、 AWS へのデプロイ支援といったことを行える。
Copy with proper indentation - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/copy-with-proper-indentation/
コードのインデントを正しく維持した形でコピーできるようにする実験的な Visual Studio 拡張について紹介している記事。
この拡張を利用すると、ネストしたコードブロックの途中のブロックをコピーした場合でもインデントを整えて維持された状態にできる。メッセージングアプリやブログなどにペーストする際に一行目のみインデントが失われ、それ以降がインデントされすぎているといった状態を防ぐことができる。
.NET Framework October 2022 Cumulative Update Preview - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-framework-october-2022-cumulative-update-preview/
.NET Framework の2022年10月の累積アップデートのプレビューがリリースされた。
このリリースでは WPF をはじめとしたいくつかの品質改善の更新が含まれている。
アーティクル、スライドなど
Making AnimationEvent safe for the CoreCLR garbage collector | Unity Blog
https://blog.unity.com/technology/making-animationevent-safe-for-the-coreclr-garbage-collector
Unity を CoreCLR で動作させる上で AnimationEvent を CoreCLR の GC と共に統合して動かすために行ったことについての記事。
速度のために Blittable にしたこと、GCHandle を再利用すること、それらのコードが Mono, IL2CPP で CoreCLR と同等の速度で動くように修正したことなど。
Visual Studio 2022 で使っている拡張機能 - tech.guitarrapc.cóm
https://tech.guitarrapc.com/entry/2022/10/27/023608
Visual Studio 2022 で利用できる拡張機能の紹介記事。エディターからビルド状況の表示など様々な拡張を紹介している。
Blazor Wasm 実動作デモはじめました | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2022/10/blazorwasmdemo/
ソートについての記事で動作デモを Blazor WebAssembly で作り直したという記事。
複数の .NET プロジェクトに対し、共通の1箇所で同じバージョン情報を設定する、6 つの方法 | @jsakamoto
https://devadjust.exblog.jp/29404286/
ソリューションなどに含まれる複数の .NET プロジェクトのバージョン情報などを一か所から共通して設定できるようにする方法を紹介している記事。
共通して設定する方法として記事では6つの手法を紹介している。
- Directory.Build.props
- props の Import
- AssemblyFileVersion を含むソースコードのリンク
- ファイルからの読み込み
- dotnet build の引数による指定
- 環境変数によるビルド時の指定
OpenSearchの.NETクライアントがGAになったので使ってみる
https://zenn.dev/shimat/articles/d2ae99acaf022f
Amazon OpenSearch (旧 Elasticsearch Service) の .NET クライアントライブラリーについての記事。
Elasticsearch のクライアントライブラリーは v7.14 以降 OpenSearch に接続できなくなったため、OpenSearch によるクライアントライブラリーが待たれていた。今回リリースされた .NET 版クライアントライブラリーの使用方法と使用感について。
Build your own OAuth 2.0 Server and OpenId Connect Provider in ASP.NET Core 6.0
.NET 6 の ASP.NET Core で OAuth 2.0 サーバーと OpenId Connect Provider を独自実装してみるという記事。
Managed pointers, Span, ref struct, C#11 ref fields and the scoped keyword - NDepend
https://blog.ndepend.com/managed-pointers-span-ref-struct-c11-ref-fields-and-the-scoped-keyword
ポインターから Span、ref 構造体とフィールドといったものをおさらいして解説している記事。
Automatically version and release .Net Application
https://blog.antosubash.com/posts/automatic-version-and-release
Versionize というツールを使用して GitHub Actions で自動バージョニングを行ってリリースする方法についての記事。
記事では Husky.Net を使用して Git の pre-commit フックでコメントの lint を行う方法についても触れている。
Learning Series: Get started with GitHub in Visual Studio
https://devblogs.microsoft.com/visualstudio/learn-github-in-visual-studio-learning-series/
Visual Studio を使用して GitHub を学ぶメールシリーズの紹介記事。
.NET7 で LINQ の集計関数がめっちゃ高速化した話 (あるいは、ベクトル化の難しさ) - Qiita
https://qiita.com/Kujiro/items/dc90366325fffcd3675d
.NET 7 で高速化した LINQ の集計関数 (Sum, Max, Average) の具体的な実装について解説している記事。
Project Volterra 改め Windows 開発キット 2023 を購入した - しばやん雑記
https://blog.shibayan.jp/entry/20221027/1666807751
Windows 開発キット 2023 のレビュー記事。
Windows 開発キット 2023を買ってみた | DevelopersIO
https://dev.classmethod.jp/articles/try-windows-dev-kit-2023-project-volterra/
Windows 開発キット 2023 のレビュー記事。PowerShell や AWS のツールといったものの動作についても触れている。
Fighting with nullable reference types in Razor Pages
https://andrewlock.net/fighting-with-nullable-reference-types-in-razor-pages/
Razor ページで null 参照型との付き合い方についての記事。
Razor は外部から値が差し込まれるといった都合もあり、警告や不適切な握りつぶしでは NullReferenceException の可能性を高めてしまうためどのようにするのがよいのかという話。記事では C# 11 の required
を使用することである程度緩和できる案などを紹介している。
C#でSQLiteをマルチスレッドで利用する
https://zenn.dev/kn64872/articles/90ae674d5332a7
System.Data.SQLite をマルチスレッドで利用する際の挙動について調べている記事。
Slaying Zombie ‘No Repro’ Crashes with Infer# - .NET Blog
https://devblogs.microsoft.com/dotnet/slaying-zombie-no-repo-crashes-with-infersharp/
静的なコード分析を行う Infer# を使用して、見つけにくいリソースリークやセキュリティー問題を検出する紹介記事。
ライブラリ、リポジトリ、ツールなど
corvus-dotnet/Corvus.UriTemplates: Low-allocation URI Template parsing and resolution, supporting the Tavis.UriTemplates API.
https://github.com/corvus-dotnet/corvus.uritemplates
URI Template (RFC 6570) を取り扱うアロケーションの少ないライブラリー。
サイト、ドキュメントなど
ツイート
It's official now! @dotnet Current releases have been renamed to Standard Term Support and the changes are live on the sitehttps://t.co/d25vW0BnlG pic.twitter.com/oz3g5oVQIc
— Maira Wenzel (@mairacw) October 28, 2022
.NET の Current リリース (1年サポート) は Standard Term Support という名前に変わったという話。
.NET8 now instruments hot AOT code (re-jits it) and in general instruments only hot code - we already can see nice benefits from that (RPS🔼, Start-time🔽)🙃https://t.co/WvS3IkZDxI (merged) pic.twitter.com/mknbA6sPPl
— Egor Bogatov (@EgorBo) October 27, 2022
.NET 8 ではホットな AOT コードを計測(再 JIT)し、計測もホットなコードのみを対象とするようにしたことで RPS と起動時間が改善するという話。