2022-08-30: built-in container support, C# 11 preview, ReSharper and Rider 2022.2.2

Published on Tuesday, 30 August 2022

トピックス

Announcing built-in container support for the .NET SDK - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-builtin-container-support-for-the-dotnet-sdk/

.NET 7 の dotnet コマンドからワンストップでコンテナーイメージをビルドするサポートパッケージのプレビューのアナウンス。

このサポートにより dotnet publish でアプリケーション発行時にコンテナーイメージとしてビルドできるようになる。ベースイメージの変更といったカスタマイズが行えるほか、今後のリリースではさらなるイメージのカスタマイズポイントの追加とコンテナーレジストリーへのプッシュや Windows コンテナーイメージといったものが予定されている。

C# 11 preview: generic math, required members, and more - .NET Blog

https://devblogs.microsoft.com/dotnet/csharp-11-preview-august-update/

完成が近づいてきた C# 11 の機能 (オブジェクト初期化関連、Generic Math、開発者生産性) について紹介している記事。

  • オブジェクト初期化関連
    • ref フィールド
    • 必須メンバー
  • Generic Math
  • 開発者生産性
    • メソッドパラメーターを対象とした nameof

ReSharper and Rider 2022.2.2 – More Bug Fixes Delivered | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/08/22/resharper-and-rider-2022-2-2-bug-fixes/

ReSharper と Rider 2022.2.2 がリリースされた。

このリリースではそれぞれいくつかの不具合の修正が含まれている。

.NET MAUI Cloud Skills Challenge - Learn .NET MAUI, Get Stickers! - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-maui-cloud-skills-challenge/

.NET MAUI Cloud Skills Challenge が9月30日までに延長された。

.NET MAUI Cloud Skills Challenge は Microsoft Learn 上の .NET MAUI のトレーニングを行うとステッカーがもらえるというキャンペーン。

.NET Framework August 2022 Cumulative Update Preview Updates - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-framework-august-2022-cumulative-update-preview-updates/

.NET Framework の2022年8月の累積アップデートのプレビューがリリースされた。

このリリースにはローカリゼーションの問題と WinForms の問題の修正が含まれている。

アーティクル、スライドなど

金融の基幹システムを1年半かけて.NET 6に移行した話

https://zenn.dev/nuits_jp/articles/2022-08-26-migration-to-net6

.NET Framework で実装された金融の基幹システムを .NET 6 へと移行した事例紹介。

実例をもとに .NET 6 への以降をどのように進めたのかといったことを紹介している。

.NETのサポートポリシーのおさらい #csharptokyo

https://www.slideshare.net/YutaMatsumura/net-csharptokyo-252711803

.NET のサポートポリシーをおさらいして解説しているスライド。

System.Drawing 周りの話

https://www.slideshare.net/masatoru/systemdrawing-252711487

.NET 5/6 での System.Drawing の扱いについてのスライド。

file ローカル型 | ++C++; // 未確認飛行 C ブログ

https://ufcpp.net/study/csharp/misc/file-local/

C# 11 で導入される file ローカル型について解説している記事。

file ローカル型は型のアクセシビリティがそのファイルの中となるもの。記事では使い方や効果のほか導入の背景なども紹介している。

Mapping Multiple Static File Folders in ASP.NET Core - Rick Strahl's Web Log

https://weblog.west-wind.com/posts/2022/Aug/23/Mapping-Multiple-Static-File-Folders-in-ASPNET-Core

ASP.NET Core の静的ファイル配信において複数のローカルパスから配信できるようにする方法についての記事。

Detours: redirecting C# methods at runtime

https://tryfinally.dev/detours-redirecting-csharp-methods-at-runtime

Unity や Mono ランタイムで動作するアプリケーションのメソッドを実行時に差し替える方法についての記事。

[WinUI3] WinUI3でウインドウプロシージャをフックする(最大/最小ウインドウサイズの指定にも使える) - Qiita

https://qiita.com/tera1707/items/75609595f4d42e0ac160

WinUI 3 のアプリケーションでウィンドウプロシージャーをフックしてサブクラス化する方法についての記事。

[ Malware Analysis #4] —Eternity Project — Eternity Stealer

https://0xm3h51n.medium.com/malware-analysis-4-eternity-project-eternity-stealer-682df3f0dafd

"Eternity Project" というマルウェアサービスのサンプルマルウェアを解析するという記事。

記事では .NET 製のマルウェアを解析してどのようにして難読化されているか、どのようなことを行っているのかといったことに触れている。

ASP.NET Core 6: Handling gRPC exception correctly server side

https://anthonygiretti.com/2022/08/28/asp-net-core-6-handling-grpc-exception-correctly-server-side/

ASP.NET Core の gRPC サービスでのサーバーサイドの例外ハンドリングについての記事。

記事では Interceptor を使用することで各メソッドの呼び出し中に発生した例外をハンドリングしてクライアントに伝える情報をコントロールしている。

Strongly Typed Middleware in ASP.NET Core

https://www.mikesdotnetting.com/article/359/strongly-typed-middleware-in-asp-net-core

ASP.NET Core のミドルウェアを規約ベースではなく IMiddleware インターフェースによって実装することについての記事。

Add persisted parameters to CLI applications in .NET

https://dev.to/nikiforovall/add-persisted-parameters-to-cli-applications-in-net-5cgd

System.CommandLine を使用した CLI アプリケーションで、設定ファイルにコマンドのパラメーターを永続化しておく方法についての記事。

C# Source Generator で将棋の指し手生成を生成して高速化してみた

https://zenn.dev/tomori_k/articles/f2bcaf312bc946

Source Generator を使用して、元となるコードを読み込み、書き換えを行ったうえで生成することで処理を高速化するというテクニックについての記事。

Xamarin のサポート終了と .NET 統合の話

https://zenn.dev/mayuki/articles/64f86fbc1d3da0

Xamarin のサポート終了による .NET への統合、MAUI の位置づけについてまとめた記事。

.NET7.0 の Generic Math についてメモ - Qiita

https://qiita.com/YuHima03/items/11dd31f8f380b1c1311d

C# 11 / .NET 7 の Generic Math で使用されるインターフェースを紹介している記事。

Deploy a C# & .NET Core Website to Kubernetes in 5 Minutes with Jetpack.io

https://dev.to/robrich/deploy-a-c-net-core-website-to-kubernetes-in-5-minutes-with-jetpackio-17da

Kubernetes に簡単にデプロイできるようにパッケージングなどを行う Jetpack.io というツールを使用して .NET アプリケーションをデプロイする方法についての記事。

.NET MAUI eBook Now Available - Enterprise Application Patterns - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-maui-ebook-released/

.NET MAUI の eBook "Enterprise Application Patterns using .NET MAUI" が利用できるようになったというアナウンス。

Use Keycloak as Identity Provider in ASP.NET Core 6

https://dev.to/nikiforovall/use-keycloak-as-identity-provider-in-aspnet-core-6-4c7g

オープンソースのアイデンティティとアクセス制御管理の Keycloak を ASP.NET Core から Identity Provider として使用する方法についての記事。

Entity Framework Core and Multiple Database Providers | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/08/24/entity-framework-core-and-multiple-database-providers/

Entity Framework Core で複数のデータベースプロバイダーを扱う方法についての記事。

このようなケースが必要になるものとしてアプリケーションをセルフホストできるようにする場合、顧客の環境やニーズに合わせたデータベースでの対応が必要となる場合があるとしている。

Using the new Composition Renderer in Avalonia 11

https://dev.to/adirh3/using-the-new-composition-renderer-in-avalonia-11-1k0p

Avalonia 11 の新しいコンポジションレンダラーに関する記事。記事では特にアニメーションについて触れている。

Using CancellationTokens in ASP.NET Core minimal APIs

https://andrewlock.net/using-cancellationtokens-in-asp-net-core-minimal-apis/

ASP.NET Core での CancellationToken の取り扱いの必要性と Minimal API での使用方法についての記事。

リクエストに長時間かかるようなケースなどでは CancellationToken をケアすることが価値を持つこと、ミドルウェアでハンドリングできることなどが書かれている。

Processing Open Street Map data with F# and .NET Interactive

https://dev.to/cognipla/processing-open-street-map-data-with-f-and-net-interactive-4lh6

Open Street Map から生成したデータを F# と .NET Interactive で処理するという記事。

ASP.NET Custom Metrics with OpenTelemetry Collector & Prometheus/Grafana

https://dev.to/cdennig/aspnet-custom-metrics-with-opentelemetry-collector-prometheusgrafana-1hp

ASP.NET Core アプリケーションから OpenTelemetry でカスタムメトリクスを Prometheus、Grafana を使用して取り扱う方法についての記事。

ライブラリ、リポジトリ、ツールなど

dodyg/practical-aspnetcore: Practical samples of ASP.NET Core 2.1, 2.2, 3.1, 5.0, 6.0 and 7.0 projects you can use. Readme contains explanations on all projects.

https://github.com/dodyg/practical-aspnetcore

ASP.NET Core の様々な幅広いユースケース(Minimal API から YARP, gRPC などまで)のサンプルコード集。

microsoft/peeker: Roslyn analyzers on .NET binaries

https://github.com/microsoft/peeker

コンパイル済みの .NET アセンブリーを逆コンパイルして Roslyn Analyzer にかけ、その結果を SARIF として出力するツール。

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

ツイート

Visual Studio のエディター拡張のパフォーマンステストにちょうどいい巨大な C# ファイルはないか?という質問に対する答え。