Skip to content

OTR_CrudScreens

nishi_74322014 edited this page Oct 27, 2026 · 1 revision

CRUD 画面(テーブル・メンテナンス)

概要

テーブル保守の CRUD 画面(一覧・詳細・更新)の作り方。Web Forms・MVC・Windows Forms のそれぞれに、エージェント用のスキルがある。

処理方式 スキル
Web Forms opentouryo-webforms-crud-screens
ASP.NET(Core)MVC opentouryo-mvc-crud-screens
Windows Forms(2 層 C/S・3 層) opentouryo-winforms-crud-screens

詳細

2 つの方式

方式 画面構成 追加・更新・削除 使いどころ
(1) 一覧 → 詳細 検索一覧 → 詳細画面 詳細画面で 1 レコードずつ オーソドックス。Web 系の基本
(2) 一覧&更新 一覧でその場に複数行を編集 一覧で一括(DataTable によるバッチ更新) 一覧で編集したい場合。リッチクライアントで重宝する
  • Web 系では、(2) はオプション。通常は (1) で処理する。
  • [追加] はグリッドの外のボタンで空行を足す(Added)。削除は dr.Delete()。

処理方式ごとの要点

Web Forms MVC Windows Forms
実装の単位 UOC メソッド アクション・メソッド + Razor UOC メソッド
足場 自動生成の CRUD 足場がある(推奨実装に置き換えて使う) 無い。自前で組む DataGridView の自動バインド
編集中の DataTable の保持 Session Session(net10.0 は DTTables の JSON で格納) フォームのメンバ
CSRF 不正操作防止機能 @Html.AntiForgeryToken() + [ValidateAntiForgeryToken] —(Web ではない)
トランザクション 自動 自動 2 層 C/S は手動(CommitAndClose)

MVC の注意点

  • 1 つのフォームから複数のアクションへは、ボタンの formaction で送信先を分ける。
  • フッタのボタンを @section に置くなら、form="<フォームID>" で紐付ける(@section はフォームの外に描画される)。
  • 一覧は <table> を自前で生成し、各行に hidden の Rows[i].RowIndex と各列の input を出して、List<行の ViewModel> にモデル・バインドする。
    Deleted の行は描画しないので、表示の連番ではなく DataTable の行インデックスを持ち回る。
  • 一覧 → 詳細の戻りは、Session を避けて、検索条件をクエリ文字列で詳細へ渡し、[戻る] で再検索する。

ページング

一覧は SQL でページングする(一覧ページ制御方式)。UI のページャだけでページングしない。

コーディング・エージェントに任せる場合

  • 仕様に処理方式・対象テーブル・方式((1) か (2) か)・ボタンを書き、該当するスキルを使わせる(仕様駆動の開発)。
  • Dao はD層自動生成ツールの CLI で生成させる。
  • 表示列は、仕様に明記が無ければ対象テーブルの全列を既定とする(スキルの規定)。

参考


Tags: 再構築

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki
開発基盤部会 Wiki

移行管理: DONE / TODO

Clone this wiki locally