2022-11-01: AWS App Runner now supports .NET managed runtime, AWS Toolkit for .NET Refactoring, Copy Nice

Published on Tuesday, 01 November 2022

トピックス

AWS App Runner launches support for PHP, Go, .Net, and Ruby managed runtimes

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-app-runner-support-php-go-dot-net-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

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-toolkit-net-refactoring-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

https://dev.to/mohammedahmed/build-your-own-oauth-20-server-and-openid-connect-provider-in-aspnet-core-60-1g1m

.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) を取り扱うアロケーションの少ないライブラリー。

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

ツイート

.NET の Current リリース (1年サポート) は Standard Term Support という名前に変わったという話。

.NET 8 ではホットな AOT コードを計測(再 JIT)し、計測もホットなコードのみを対象とするようにしたことで RPS と起動時間が改善するという話。