みなさんこんにちは!ヒロポンです!!
「来週から ASP.NET 案件アサインね」と言われて、画面の前で固まったこと、ないですか??
WinForms で 5 年やってきた業務 SE が、いきなり Web 案件に放り込まれる。
Razor とか IIS とか routing とか、別世界の単語が一気に押し寄せてくる。
X 見てると、流通系・金融系の SES から「来月から Web 案件、頼むね」って言われて凍ってる業務 SE、ほんま多い。あーー、みんな同じ顔してるんだなーって思いますよ。
連載「WinForms 業務SE のための ASP.NET 生存ガイド」は、その瞬間に開く 1 本目として書きました。全 10 回完結のシリーズです。
私自身、流通系 SIer で WinForms から ASP.NET MVC 5 案件に放り込まれた時、最初の 2 週間で踏んだ罠と、踏まずに済んだ判断軸を全部まとめてあります。
今回 (Root) は連載の目次です。2 週間で恥かかない 4 ステップに各章をマッピングして、業務 SE が「どこから読むか」「何を飛ばすか」を決められるように組みました。
忙しいあなた向けに最初にまとめ
- ASP.NET MVC 5 案件を 2 週間でキャッチアップする最短ルートは、①環境作る ② ADO.NET 触る ③ Todo アプリ作る ④ ハマり先取りの 4 ステップ
- 連載全 10 章を 4 ステップに対応させた早見表 (中盤の compare-table) で、業務 SE は読む順番を 3 分で決められる
- Razor / DI / IIS は 後回しでいい。動くものを自分の手で 1 つ作るのが「恥かかない最低限」の最短ルート (私の流通系 SIer 時代の実体験ベース・案件初週で習得)
- 朝礼で「ASP.NET 案件入ったが、ここを 2 週間で押さえる」と言える弾薬として、今回の 10 章マップを 1 枚化したのがこの目次
以上!!!
誰のための連載か
今回の連載は、以下のような業務 SE 向けに書いてあります。
- WinForms 経験 3 年以上、業務系の基幹システム保守チーム経験あり
- C# 7.3 / .NET Framework 4.7.2 / SQL Server 2016 / Oracle 12c の世界で生きてきた
- ASP.NET は触ったことがない or 学生時代に触ったきり
- 現場で「来週から ASP.NET 案件」と言われて、家で 2 週間で何をするか迷ってる
- モダンな .NET 8 + Blazor + Tailwind の世界はまだ要らない。業務系のレガシー Web 案件を回せるレベルが欲しい
私自身、流通系 SIer で WinForms 5 年やった後、ASP.NET MVC 5 (.NET Framework 4.7.2 系) のリプレース案件に入った経験があります。
連載はその時の「2 週間で何を押さえれば DBA や元 PG リーダーに『あいつ大丈夫か??』と思われずに済むか」を逆算した内容です。
最先端の .NET 8 + Minimal API とか、Blazor Server とかは触れません。Razor も、業務系で使う最低限まで。捨てる判断が連載の通奏低音です。
連載 10 本の俯瞰 — 2 週間で恥かかない 4 ステップに対応する読み順
連載は 10 章ありますが、業務 SE が 2 週間で消化する読み順で並び替えると、こんな感じ。

Razor / DI / IIS デプロイは Step ④ まで来てから読めば十分。
最初の 1 週間は環境構築と ADO.NET だけで終わるくらいの粒度で進めてください。
これ、煽りなしの実体験ベースです。1 週目は環境と ADO.NET だけ、2 週目で Todo を組みながらハマりを潰す。こんな感じのリズム。
通奏低音 3 軸 — 連載全章で繰り返し出てくる判断軸
10 章を貫いてる軸が 3 つあります。
これを最初に押さえておくと、各 child を読む時の咀嚼速度が変わります。
軸① HTML レイヤーか ASP.NET レイヤーかの分離思考
ASP.NET でハマった時、最初にやるべきは「今のエラーは HTML 側か ASP.NET 側か」を切り分けること。
これだけで原因切り分けが半分終わります。
たとえば「ボタン押しても画面が動かない」時、HTML 側 (form タグの action 属性 / submit) と ASP.NET 側 (Controller のメソッドが呼ばれているか) を別々に検証する。
WinForms の Designer がない世界では、この分離思考が判断軸の柱になります。
軸② 困ったらミニマム検証
業務 SE が本番事故を起こさないための鉄則です。
「再現する最小コードを書く」。
何かハマった時、案件のコード一式で再現しようとしないで、新規プロジェクトで 10 行のサンプルから組み上げる。
これだけで原因 8 割が見えてきます。
連載 child の各章で「最小サンプル」のコードブロックを必ず置いてあるのは、この軸を実演するため。コピペで動く 10-20 行を業務 SE の手元に置きます。
軸③ 生 HTML + CSS → そこに Razor 式を入れていく
UI 構築は、いきなり Razor を書こうとしない。
まず生の HTML + CSS で見た目を組んで、それから C# 変数の差し込み箇所に @変数 を入れていく。
これが私の流通系 SIer 時代から変わらない流儀で、WinForms の Designer 操作を頭の中で HTML 構造に投影する練習法にもなります。
X で同業から「Razor 触り始めた瞬間に画面が崩れる」って話を何度か聞いたことがあるんですが、これは大抵 HTML 側のマークアップを後回しにして Razor 式を先に書いてるパターン。
逆の手順でやるとほぼ崩れません。
全 10 章の早見表 — 通奏低音 × 4 ステップで整理

合計読了時間は約 116 分。
2 週間で消化する想定なら、1 日あたり 8-9 分。朝の電車の中で 1 章ずつでも回せる粒度です。
Step ① 環境作る — 連載 child #1, #2
ASP.NET 案件アサインを受けたら、まず手元の VS 2019 (or 2022) で「ASP.NET Web アプリケーション (.NET Framework)」テンプレートからプロジェクトを 1 個作ります。MVC を選択。
これだけで動く Web プロジェクトが起動する状態を作るのが Step ①。
ここで業務 SE が一番戸惑うのが「Form がない、Designer がない」。
WinForms の感覚だと「ボタン置いてダブルクリックでイベント書く」だったのが、Razor View (HTML) と Controller (C#) に分かれます。
- WinForms の Form と Razor View の対応関係を業務SE が一日で腹落ちさせる — Form = View + Controller の 2 段構造として再認識する記事 (連載 #1)
- Controller は WinForms の Form_Load 拡張版だと理解する — ASP.NET MVC 5 業務SE 入門 — Form_Load のロジックを Controller のアクションメソッドに対応付ける読み替え (連載 #2)
この 2 本を読んでから VS で 1 プロジェクト作ると、「あ、これ Form_Load と一緒や」という腹落ち感が来ます。
所要時間 1 日 (実質 30 分の作業 + 90 分のコード理解)。
Step ② ADO.NET 触る — 連載 child #4
環境ができたら次はデータアクセス層。
ここで業務 SE が誘惑されるのが 「Entity Framework Core 入れた方がモダンっぽいかな…」 という思考なんですが、入れなくていい。
業務系の ASP.NET MVC 5 案件では、DataAdapter + DataTable + 生 SQL の世界でほぼ回せます。
WinForms 時代の知識がそのまま流用できる。Step ② はそれを確認するフェーズです。
- ASP.NET MVC 5 で使える ORM 3 択 — EF6 / Dapper / ADO.NET の業務SE 視点比較 — ORM 選定の判断軸を業務系の現場感で整理 (連載 #4)
X で見た現場の声で「読み込みは Dapper、作成・削除は EF6 のまま」というハイブリッド運用してる業務系チームの話、結構あるんですよね。
連載 #4 はその判断を業務 SE 視点でフォローした記事です。
EF6 → EF Core 移行の落とし穴 (LINQ 抽象化が本番の足を引っ張る) も同業から何度か聞いたことがあって、業務系では EF6 のまま運用が現実解という結論にしてます。
Step ③ Todo アプリ作る — 連載 child #3, #5, #6
環境と ADO.NET が触れるようになったら、Todo アプリの最小機能 (一覧 / 追加 / 削除) を自分で作ってみる。これが Step ③。
この 1 個のアプリを作る過程で、ASP.NET MVC 5 の主要 4 要素 (Form↔View / Controller / Routing / DataAccess) が全部 1 巡します。
本やドキュメントで章ごとに学ぶより、動くものを 1 個作る方が業務 SE には早い。
- ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する — Form 切替 (MDI / モーダル) と URL ルーティングの対応関係 (連載 #3)
- ASP.NET MVC 5 で DI は業務系に要るのか — 入れない派の論点も書く — Todo アプリレベルでは DI なしで十分という判断軸 (連載 #5)
- 業務イントラの認証 — Windows認証 / Forms認証 / Cookie の使い分けで業務SE が踏む選択 — 業務系で出てくる認証 3 形態の選び方 (連載 #6)
Todo アプリは 3-5 日で組めるはず。
組む過程で 「自分がハマりそうなポイント」 が自然に浮かび上がります。
それを Step ④ で先に潰しに行きます。
Step ④ ハマり先取り — 連載 child #7, #8, #9
Todo アプリを組んでて「あれ、なんかボタン押しても画面が動かないんだけど??」となった時に開く章群です。
本番に出てから踏むと信頼回復コストが重いので、Step ③ の段階で先取りして潰しておくのがコツ。
- ASP.NET MVC 5 で CSS が効かない時に確認する 10 項目 — 業務SE が踏むキャッシュとパスの罠 — bundle / キャッシュ / 物理パスの 10 個の罠 (連載 #7)
- ASP.NET MVC 5 を IIS にデプロイする初手 — 業務SE が踏むアプリプールと物理パスの罠 — IIS デプロイ 5 ステップ + アプリプール選択の判断軸 (連載 #8)
- ASP.NET MVC 5 で本番がおかしい時のトラブルシューティング チェックリスト — 画面真っ白 / 500 返る等の典型ケース別の最初の 3 箇所 (連載 #9)
連載 #7 (CSS) は私の流通系 SIer 時代の本番事故ベースで書いた章です。
ブラウザキャッシュで「直してデプロイしたのに直ってない」と業務側に電話で謝った経験を晒してます。
同じ事故、X で見ててもほんま多い。Step ④ で先取りしておく価値があるやつ。
連載読破した方向けの次ステップ
連載 10 本を読破して Todo アプリが組めるようになったら、業務 SE としての「ASP.NET 案件を回せる最低限」はいい感じに到達してます。
次に進むなら 2 方向あります。
(A) 技術軸の次連載へ: 次の連載「TypeScript Web 生存ガイド」を準備中です。C# 業務 SE が TypeScript + Web フロントの世界に踏み込む時の壁を 5 つに分けて、連載 #1 から順次公開予定。csproj と tsconfig.json の対応関係から入る予定です。
(B) キャリア軸: ASP.NET MVC 5 が触れる業務 SE は、業務系 SIer / 受託 / SES の市場で単価レンジが見えやすい人材。次のステップとして案件単価交渉や転職を考えてるなら、業務 SE のキャリア軸記事も書いてます (関連記事末尾参照)。
ASP.NET 連載は 「ASP.NET 案件で恥かかない」までを担保した連載です。
その先 (.NET 8 / Blazor / Tailwind / マイクロサービス) は別連載で扱う予定。
捨てる判断 + 段階構築は連載の通奏低音そのものなので、ここで一旦区切るのも作戦のうち、ということで。
まとめ
ASP.NET MVC 5 案件アサインを受けた業務 SE が 2 週間で恥かかないレベルまで到達するには、①環境作る ② ADO.NET 触る ③ Todo アプリ作る ④ ハマり先取りの 4 ステップを順に踏むのが最短ルートです。
連載全 10 章を 4 ステップに対応させた早見表 (中盤に置いた compare-table) を見て、業務 SE は「今どの章を読むべきか」を 3 分で決められるようにしました。
Razor / DI / IIS は後回しで OK。動くものを自分の手で 1 個作るのが最初の優先事項です。
朝礼で「ASP.NET 案件入ったが、2 週間でここを押さえる」って言える弾薬として、この目次ページを業務 SE の手元に 1 枚化しました。
連載読破後の次連載 (TypeScript / Web 生存ガイド) は近日公開予定なので、合わせて手元に置いてもらえると、業務系 SES から Web 軸への横展開で先回りできます。
よくある質問
Q1.連載は順番通り (#1 → #9) に読むべきですか?
A. 順番通りでも良いんですが、業務 SE には 「2 週間 4 ステップ」順で読むのを推奨します (今回の早見表参照)。具体的には #1 → #2 → #4 → #3 → #5 → #6 → #7 → #8 → #9 の順。ORM (#4) を Routing (#3) より先に読むことで、Step ② → ③ の流れに沿った頭の整理になります。
Q2.ASP.NET Core 5/6/8 に飛ばずに、なぜ MVC 5 (.NET Framework 4.7.2) なんですか?
A. 業務系の現場で実際に動いてるレガシー資産が ASP.NET MVC 5 (.NET Framework 4.7.2) 中心だから、です。流通系・金融系の SIer で 2020 年前後に作られた業務 Web 案件は、ほぼこの世代。.NET Core 5 / 6 / 8 への移行案件はまだ「次フェーズの話」のところが多い。業務 SE が 今アサインされたら直面する技術スタックから書いてあります。.NET 8 へのジャンプは別連載で扱う予定。
Q3.Razor を触らずに ASP.NET 案件は回せますか?
A. 完全には回せませんが、連載 #1 (Form ↔ Razor View) + #2 (Controller) の 2 章だけで Razor は最低限の読み書きができるようにしてあります。Razor の全機能 (Helper / Section / Layout の応用) を覚えなくても、業務系画面なら 8 割は組める粒度です。深く掘り下げたければ連載読破後に Microsoft Learn の Razor 構文ドキュメントを参照すれば十分。
執筆者
ヒロシ — 業務 SE 7 年 (正社員 2 / フリーランス 5)。現職は SEO 直轄部の AI アドバイザー兼 PL、副業で中小 SIer の CTO。SES 複数社・フリーランスエージェント複数経由の経験ベースで「業務 SE 視点」の技術 + キャリア記事を書いています。
🐦 X: @hiro_progra0524 (日々の現場メモ更新中)
📝 About Me で経歴詳細を見る
連載全 10 章 + 関連記事
連載「WinForms 業務SE のための ASP.NET 生存ガイド」全 10 章 (この記事は #0 Root):
- #1 WinForms の Form と Razor View の対応関係を業務SE が一日で腹落ちさせる — Form = View + Controller の 2 段構造として再認識する
- #2 Controller は WinForms の Form_Load 拡張版だと理解する — Form_Load のロジックを Controller のアクションメソッドに対応付ける
- #3 ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する — Form 切替と URL ルーティングの対応関係
- #4 ASP.NET MVC 5 で使える ORM 3 択 — EF6 / Dapper / ADO.NET — ORM 選定の判断軸を業務系現場感で整理
- #5 ASP.NET MVC 5 で DI は業務系に要るのか — 入れない派の論点も書く — Todo アプリレベルでは DI なしで十分という判断軸
- #6 業務イントラの認証 — Windows認証 / Forms認証 / Cookie の使い分け — 業務系の認証 3 形態の選び方
- #7 ASP.NET MVC 5 で CSS が効かない時に確認する 10 項目 — bundle / キャッシュ / 物理パスの 10 個の罠
- #8 ASP.NET MVC 5 を IIS にデプロイする初手 — 業務SE が踏む罠 — IIS デプロイ 5 ステップ + アプリプール選択
- #9 ASP.NET MVC 5 で本番がおかしい時のトラブルシューティング チェックリスト — 画面真っ白 / 500 返る等の典型ケース別の最初の 3 箇所
以上!
連載読破した方、ASP.NET MVC 5 案件で迷ったらいつでもこの目次に戻ってきてください。どんどんシェア待ってるぜ!!

コメント