色んな事を書く

シンプルさを極めたエンジニアになりたい

.NET

Span<T> とか Memory<T> とか

Span 構造体 Span の何が嬉しいの Span の制約 Span と ArraySegment Span を使って配列を安全にスタック上に配置する Memory

値型とか参照型とかその他もろもろ

Span<T> と Memory<T> の違いを言語化しようと思って勉強してたら ref 構造体とは何ぞ???となってしまったので基本から学びなおします。 値型と参照型 値型 GetHashCode と Boxing 構造体のメモリ配置 参照型 クラスのメモリ配置 変数の値渡しと参照渡し ref in</t></t>…

.NET tools を使ってみる

.NET Core ツールとは 一言でまとめると Console App を Nuget Package 化したものです。詳細は以下に記載があります。 learn.microsoft.com マニフェストファイルを作る パッケージのバージョン管理を行うためのファイルを作成します。下記のコマンドを実行…

Azure Function の Timer Trigger の色々

TimerTrigger Attribute で指定出来る事 ここにまとまってます。 learn.microsoft.com Schedule には CRON 式か TimeSpan を指定出来る Schedule は Function の実行間隔を定義できるものです。その定義の仕方として CRON 式と TimeSpan が使えるよという事…

.NET の MetricsQueryClient を使って Azure Resource のメトリクスを取得する

下記を使います。 www.nuget.org Repository はこちら。 github.com この SDK を使えば Azure Monitor に対して ReadOnly なクエリをよしなに実行して結果を得られるみたいですね。これまでは Azure Portal 上からメトリクス見て~と判断していたものを、プ…

Log Ingest API を使って Log Analytics のカスタムテーブルへ書き込む

会社のタスクでミドルウェアの状態を取得し、Log Analytics へ書き込む事で可観測性を高めよう!、ということをやりました。その時に得た知見や手順をまとめておこうと思います。 大前提として、以下の要件のもと開発を行っています。 Azure Function で定期…

SQL Server の Connection Pool について

Database に接続する時に SqlConnection を使っていたんだけど、 毎回インスタンス作っていいの? Pool とか再利用されてるの? みたいなが疑問が出てきたのでまとめる。 learn.microsoft.com をベースに色々試していく。 The pooler maintains ownership of…

IDisposable を実装したクラスを DI Container で使うとき Dispose はいつ呼ばれるのか

備忘用のメモです。 結論、インスタンスが破棄される時です。DI Container で生成されたインスタンスのライフサイクルは DI Container で管理されるので、破棄のタイミングで Dispose を呼び出してくれるみたいです。 雑にサンプルコード。DI Container に登…

Stream の位置を初期化する方法

Stream を使いまわしたい時に Stream の Potision を初期化する方法です。

.NET の Dispose パターンについて

.NET の Disponse パターンって何で必要なんだっけってのとどうやって実装するんだっけってのをまとめときます。 前提 Dispose パターンとは? Dispose パターンの実装方法 StreamWriter, StreamReader の leaveOpen まとめ

Azure Function での Configure について調べる

.NET の Configure について調べたくなったのでまとめます。 GetValue Section Children Option Pattern と Section