みんなの現場、全部ここに。
図鑑・記事・現場メモ・キャリア論。タブで部屋を切り替えて読める。

ASP.NET MVC の CSRF 対策 — AntiForgeryToken でトークンを埋める仕組みと Ajax でハマる所
ASP.NET MVC の CSRF 対策をレビューで指摘された業務SE向け。CSRF がなぜ成立するかの仕組みから、@Html.AntiForgeryToken() と [ValidateAntiForgeryToken] でトークンを埋

ASP.NET MVC5 から Core への移行、最初に変わる3つ(DI標準 / Startup / appsettings)
ASP.NET MVC5 Core 移行で最初に変わる3つ(Program.cs / DI標準 / appsettings.json)を、旧 Framework 版と Core 版の実コード対比で解説。全部を一度に移すのではなく新規から C

ASP.NET の Web API と MVC コントローラの違い(JSON を返す社内 API はどっち)
ASP.NET の Web API と MVC コントローラの違いを、JSON を返す社内 API はどっちで作るかの判断軸つきで整理。MVC でも JsonResult で返せるが REST 作法は Web API が素直、という使い分け

C# 拡張メソッドの使い方 — 作り方と実務3パターン(既存型を汚さず .Xxx() を足す)
C# 拡張メソッドの使い方を作り方から実務3パターンまで。this 付き static メソッドで既存の string や DataRow に .Xxx() を生やし、Utility.Trim(x) を x.Trim() に整理する。業務S

C# LINQ の遅延実行と即時実行の罠(同じクエリを2回回して DB に2回問い合わせる事故)
C# LINQ 遅延実行の仕組みを知らずに、同じクエリを2回回して DB に2回問い合わせる・ループ変数をキャプチャする・DbContext 破棄後に列挙して落ちる、といった業務SEが踏む5つの罠と、ToList/ToArray での回避を

SQL Server の CROSS APPLY / OUTER APPLY でグループごとの上位N件を取る3パターン
SQL Server の CROSS APPLY 使い方を、グループごと上位N件・テーブル値関数の行適用・STRING_SPLIT 展開の3パターンで解説。CROSS と OUTER で行が消える違い、JOIN では書けないケースの判断軸も

C# の日付計算3パターン|Nヶ月後・日付の差・営業日を月末またぎで事故らせない
C# の日付計算でハマりやすい3パターン — Nヶ月後(AddMonths の月末ずれ)・2つの日付の差(TimeSpan に月と年がない)・土日祝を飛ばす営業日計算を、コピペで動くコードと現場のハマりポイント付きで解説します。請求の締め処

【C#】複数キー・独自ルールのソートを実装する3パターン(IComparer / Comparison / OrderBy)
C# のソートを IComparer / Comparison / OrderBy で書く3パターンをコピペで動くコードで解説。複数キーや特定コード先頭固定などの独自ルール、List.Sort が不安定で OrderBy が安定という業務S

C# の値型と参照型の違い(引数を書き換えたのに反映されない/される、の正体)
C# 値型 参照型 違いを、代入や引数渡しでのコピー挙動・ref/out・struct と class の使い分けまで、コピペで動くコードで解説。「引数を書き換えたのに反映されない/される」の正体を業務SE目線で腑に落とすところまで、スタッ

SQL Server の ROLLUP / GROUPING SETS で帳票の小計・総計行を出す
SQL Server の ROLLUP / GROUPING SETS で GROUP BY の結果に小計・総計行を足す方法を、実テーブルで解説。小計行の集計キーが NULL になる問題を GROUPING() で見分ける肝と、UNION

ASP.NET MVC でフォームの値がモデルにバインドされない時に見る3箇所(プレフィックス / コレクション / Bind)
ASP.NET MVC でフォームを POST したのにモデルバインディングが効かない・一部 null になる時に見る3箇所(name プレフィックス不一致 / コレクションのインデックス記法 / [Bind] と過剰バインディング)を、仕

ASP.NET MVC のフォーム入力検証 — DataAnnotations と ModelState.IsValid を業務SEが4ステップで組む
ASP.NET MVC バリデーションを DataAnnotations 属性 + ModelState.IsValid で組む4ステップ手順。WinForms の Validating イベントから属性ベース検証への橋渡しつき。クライアン