鷲ノ巣

C# とか PowerShell とか。当ブログの記事は(特に公開直後は)頻繁に改定される場合があることをご了承ください。

Enriched Capabilities ライブラリの紹介

年の瀬も迫ってまいりました。
本記事は C# Advent Calendar 2024 の16日目の記事です。

本記事は未完成で鋭意執筆中ではありますが、Advent Calendar に穴を空けたままにしておくのも申し訳ないので、一旦プレビュー版として公開します。
年内には完成させたいと思っています。しばらくお待ちください。

GitHubdotnet/extensions というリポジトリがあります。
ここはかつて、Microsoft.Extensions.DependencyInjection 等に代表される Microsoft.Extensions 系ライブラリのソースコード リポジトリだったのですが、.NET 5.0 の頃に、それらは dotnet/runtimedotnet/aspnetcore といったリポジトリ統合されていきました
その後しばらく廃墟になっていたのですが、2023年にリポジトリを再利用して新しいプロジェクトがスタートしました。

それが Enriched Capabilities です。
README によれば

This repository contains a suite of libraries that provide facilities commonly needed when creating production-ready applications. Initially developed to support high-scale and high-availability services within Microsoft, such as Microsoft Teams, these libraries deliver functionality that can help make applications more efficient, more robust, and more manageable.

https://github.com/dotnet/extensions/blob/v9.0.0/README.md

とのことです。なんか便利そうですね。

去る11月12日に .NET 9 がリリースされました。時を同じくして、このリポジトリからも一連のライブラリが、バージョン 9.0.0 としてリリースされました*1
そこで、正式リリースとなったこれらのライブラリを一挙紹介していきます。

なお、一部のライブラリに関しては、本稿執筆時点で、まだプレビュー リリースに留まっています。それらに関しては、文末に簡単にリストアップするに留めます。

*1:8.0.0 もリリースされていたことに気づいていませんでした

続きを読む

.NET のオプション機能を完全に理解した。

完全に理解した記念にブログを書きます。

なんかちょっと前*1にも似たようなものを書いた気がしますけれども、まぁ、完全に理解するのは何度してもいいですからね。軽率に理解していきましょう。
tech.blog.aerie.jp

もう少しちゃんと違いを言うと、前回の記事は ASP.NET Core のミドルウェアの話が半分くらいありました。今回の記事はオプション一色です。
前回と重複する部分もありますが、前回書いていない機能も含みます。

なお、本記事は .NET 8 を前提としています。

*1:3年前はちょっと前。いいね?

続きを読む

UnsafeAccessorAttribute 完全理解

.NET 8 から UnsafeAccessorAttribute というのが登場しました。
learn.microsoft.com
これは、他のクラスの非公開メンバーにアクセスできてしまうという掟破りの機能です。
これまでもリフレクションを使えば出来たのですが、より簡便かつハイパフォーマンスに可能になりました。

続きを読む

転職しました。

新年、あけましておめでとうございます。
昨年中は大変お世話になりました。
本年もどうぞよろしくお願い申し上げます。

さて、本日より、新しい会社に勤めさせて頂く運びとなりました。
というわけで、20歳で社会人になってから20年目という節目の年に、初めての転職ブログというものを書いております*1

三ヶ日明けてから新年のご挨拶というのもアレですが、一応仕事始めに合わせてということで。

*1:なお転職は4回目(5社目)です

続きを読む

AWS のキーのフィンガープリントが実行環境によって違う話

私はお仕事では AWS を使っています。
EC2 で立てた仮想マシンを操作する際には、SSH 鍵が必要です*1
今回は、その鍵の検証でハマったという話。

*1:Linux マシンは言うに及ばず、Windows マシンでも、管理者のパスワードを取得する際などに使用します

続きを読む