• システム開発に関わる内容をざっくりと書いていく

.net C#

マイクロサービスの整合:Saga と「イベントをパブリッシュするだけ」

マイクロサービスに分割すると、「複数サービスを跨ぐ更新の整合」がすぐ問題になる。プロセス内なら XA / 2PC も選択肢だが、サービス分割後は事実上使えないことが多く、代わりに Saga パターンが定番になる。 現場で ...

続きを読む

C# async await デッドロック・待ち続けるときの見方

C# の async/await で「終わらない」「UI やリクエストが固まる」ときは、例外より待ち方の設計が原因なことが多い。 この記事では、デッドロックっぽく見える待ちと、よくある直し方をざっくり整理する。 先に結論 ...

続きを読む

ASP.NET Core CORS エラーの原因と設定

フロントと API を分けた瞬間に出やすいのが CORS エラー。ブラウザのコンソールには出るが、サーバログには何も残らないことが多く、初見だと迷いやすい。 この記事では、原因の型とASP.NET Core での設定をざ ...

続きを読む

Entity Framework Core DbUpdateException の切り分け

EF Core で SaveChanges / SaveChangesAsync したときに出る DbUpdateException。内側を見ないと原因が分からないことが多い。 この記事では、よくある中身と切り分け手順を ...

続きを読む

RDS Proxy + Dapper + MySqlConnector で FirstOrDefault 実行時にピン留めが起きるとき

RDS Proxy を MySqlConnector の前段に置き、Dapper でいつも通り QueryFirstOrDefault などを使っている。CloudWatch の DatabaseConnectionsC ...

続きを読む

ArgumentNullException と NullReferenceException の使い分け

ArgumentNullException と NullReferenceException は、どちらも「null」が絡む例外だが、意味も出し方も違う。 現場では「どっちを投げればいい?」「どっちが落ちた?」で迷いやす ...

続きを読む

InvalidOperationException よくある発生パターン(LINQ / DI / コレクション)

InvalidOperationException は「今の状態ではその操作はできない」ときに出る。メッセージだけ見ると抽象的で、現場では LINQ・DI・コレクション周りでよく当たる。 この記事では、よくある発生パター ...

続きを読む

ObjectDisposedException 発生原因と対策

ObjectDisposedException は、「すでに破棄(Dispose)されたオブジェクトを使った」ときに出る。HttpClient・Stream・DbContext・CancellationTokenSour ...

続きを読む

AGENTS.md のベストプラクティスと具体例(C# / ASP.NET Core 想定)

Cursor の Agent に「このリポジトリではこう動いてほしい」を伝える一番手軽な手段が AGENTS.md。プレーンな Markdown なのでチームでも読みやすい。 この記事では、書き方のベストプラクティスと、 ...

続きを読む

ASP.NET Core DI のスコープとライフサイクル(Singleton / Scoped / Transient)

ASP.NET Core の DI(Dependency Injection)で Singleton / Scoped / Transient を選ぶとき、「いつ作られて、いつ破棄されるか」がわからないとハマりやすい。 ...

続きを読む