🏁 はじめに
こんにちは。
僕は普段、WPFアプリを作っているエンジニアです。
最近「Webアプリも作ってみたい!」と思い、ASP.NET Core MVC の学習を始めました。
正直、最初は「なんかよくわからん...」という状態だったので、
自分なりに整理しながら学んだ内容をまとめていきます。
この記事はその 第1章:仕組み理解編 です。
🎯 学ぶ前に思ってたこと
WPFは分かるけど、Webは全然わからない
・「HTMLの中にC#? どうやって?」
・「インスタンス生成はどこから?」
そんな状態からスタートしました。
💡 ASP.NET Coreって何?
ASP.NET Coreは、C#でWebアプリを作るためのフレームワーク。
WPFが「Windows上で動くアプリ」なら、
ASP.NET Coreは「ブラウザ上で動くWebアプリ」。
どちらもC#で書けるけど、動く場所が違います。
| 比較項目 | WPF | ASP.NET Core MVC |
|---|---|---|
| 動作環境 | Windows | Webブラウザ |
| UI構成 | XAML | HTML + Razor |
| 処理トリガ | ボタンクリックなど | URLアクセス(HTTPリクエスト) |
| 出力 | 画面を直接描画 | HTMLを返す |
🧠 「ユーザー操作=イベント」ではなく、「URLアクセス=イベント」になる感じ。
🧱 MVCモデルってなに?
ASP.NET Core MVC の “MVC” は Model / View / Controller の略で、
Webアプリを3つの責務に分けて、コードを整理する仕組みを意味します。
| 役割 | 内容 | 実際の場所 |
|---|---|---|
| Model | データやロジック | /Models |
| View | 表示(HTML) | /Views |
| Controller | 処理の司令塔 | /Controllers |
📊 図で見るとこう
🧩 ControllerとViewの関係
例えば、URLで /Home/Index にアクセスしたとします。
Controller側
public class HomeController : Controller
{
public IActionResult Index()
{
ViewData["Message"] = "こんにちは、ASP.NET MVC!";
return View();
}
}
View側(HTML)
@{
ViewData["Title"] = "ホームページ";
}
<h1>@ViewData["Message"]</h1>
結果(ブラウザ)
こんにちは、ASP.NET MVC!
🧠 Controllerで用意したデータをViewで受け取り、
最終的にHTMLを生成して返している、という流れです。
🧠 Razor構文って何?
ASP.NET Coreでは、HTMLの中にC#を書くことができます。
これを実現しているのが「Razor」というテンプレートエンジンです。
@{
var today = DateTime.Now.ToString("yyyy/MM/dd");
}
<p>今日は @today です。</p>
出力結果👇
<p>今日は 2025/10/28 です。</p>
🧩 プロジェクトの基本構成
ASP.NET MVCのプロジェクトを作ると、だいたいこんな感じです👇
Controllers/
└── HomeController.cs
Models/
└── Todo.cs
Views/
├── Home/
│ └── Index.cshtml
├── Shared/
│ └── _Layout.cshtml
Program.cs
| フォルダ | 内容 |
|---|---|
| Controllers | URLの入口(処理) |
| Models | データ構造・ビジネスロジック |
| Views | HTMLテンプレート |
| Shared | 共通レイアウト |
| Program.cs | アプリ全体の設定 |
⚙️ 動く仕組みを整理
| ステップ | 起きていること | 関係ファイル |
|---|---|---|
| ① |
/Home/Index にアクセス |
URL |
| ② |
HomeController.Index() が呼ばれる |
Controller |
| ③ |
ViewData にデータを格納 |
Controller |
| ④ |
Views/Home/Index.cshtml を読み込む |
View |
| ⑤ | HTMLを生成してブラウザへ返す | 出力HTML |
✨ 学んでみて感じたこと
Controllerは「URLのイベントハンドラ」みたいなもの
Viewは「HTMLを生成するテンプレート」
Modelは「データやルールを持つ構造体」
仕組み自体はシンプル(慣れたらWPFより整理されてる)
最初は「どうやってControllerが呼ばれてるの?」と思ってましたが、
ルーティングの仕組みでちゃんと自動的に呼ばれるんですね。
✅ まとめ
| 要点 | 内容 |
|---|---|
| ASP.NET Coreとは | C#でWebアプリを作るためのフレームワーク |
| MVCモデル | Controller / View / Model に責務を分ける構造 |
| Razor構文 | HTMLの中にC#を書く仕組み |
| URLの流れ |
/Controller/Action → HTML生成 → ブラウザに表示 |