【ASP.NET Core】各プロジェクトの特徴まとめ

ASP.NET Core MVC、Razor Pages、BlazorなどASP.NET Coreには様々なプロジェクトがあります。

こちらについてまとめたので紹介します。

混同しがちな名称もありますのでそちらも紹介します。

目次

ASP.NET Core 各プロジェクトの特徴

MVC

ASP.NET時代から続くお馴染みのMVC。

Model、View、Controllerの3層に分けてアプリを構築する。

画面をViewに、データをModel、ViewとModelの橋渡しをするControllerのような

役割を果たす。

Razor Pages

MVVMアーキテクチャで構築するアプリ。

MVVMとはModel、View、ViewModelの3層で作成すること。

画面をView、Modelのデータを加工しViewと紐づけるViewModel、データのModel

という役割を果たす。

拡張子が.cshtml.csのファイルがあったらRazor Pagesと思ったらよい。

Blazor

SPA(Single Page Application)を作成するためのテンプレート。

シングルページアプリケーションとはページ遷移なしでページを移動できるアプリケーションのこと。

代表的なアプリにNotion、Gmail、Google Mapなどがある。

SPAとしてJavaScriptの有名なフレームワークとしてReact、Vueがあるが、

ざっくりいうと、ReactのC#版と捉えることもできる。

混同しがちな名称

Razor式

Razor式とはHTMLにC#のコードを埋め込める技術のこと。

@foreachのような形で使用する。

下記はModelをスキャフォールディングしたcshtml。

@model IEnumerable<WebApplication1.Models.Book>

@{
    ViewData["Title"] = "Index";
}

<h1>Index</h1>

<p>
    <a asp-action="Create">Create New</a>
</p>
<table class="table">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Title)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Author)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Price)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Publisher)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
@foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Title)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Author)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Price)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Publisher)
            </td>
            <td>
                <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
                <a asp-action="Details" asp-route-id="@item.Id">Details</a> |
                <a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
            </td>
        </tr>
}
    </tbody>
</table>

HTMLでforeachが使えていることがわかる。

Razor式を使えば上記のようにC#のコードを埋め込むことができる。

Razorコンポーネント

RazorコンポーネントとはBlazorで使用するSPAの技術のこと。

拡張子が.razorのファイルを指す。

おわりに

いかがだったでしょうか。

ASP.NET Coreのプロジェクトには様々な種類があることがわかりました。

その中でもBlazor、Razor Pages、Razorコンポーネントなど

「レイザー」と呼ぶものが多いので混同しやすいです…

私自身、そのような経験があったので今回まとめて記事にしました。

違いがわからなくなったらぜひこの記事を読んでいただければと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

電気制御設計→ITエンジニア
前職は電気系のエンジニアで物流倉庫などの設備を動かしていました。
現在はITエンジニアとして開発に従事。
業務では主にUnity、C#、.NETを利用。
UnityとC#を用いて業務用スマホアプリを完成。
現在、AWS、TypeScript、Nodeの案件に参画中。

コメント

コメントする

目次