ASP.NET Core Webアプリケーションを作成する場合にどのアプリケーションの種類を選択すれば良いか

ASP.NET Core Webアプリケーションを作成する場合にどのアプリケーションの種類、フレームワークを選択すれば良いかを紹介します。

概要

ASP.NET Webアプリケーションは、これまではWebFormアプリケーション、または、ASP.NET MVC を利用して開発していました。 .NET Coreの登場により、今後は.NET Coreがメインストーリームになり、.NET Framework を利用しているASP.NET WebForm アプリケーションはメンテナンスモードになり、徐々に終了に向かう方針です。
ASP.NET Coreを利用したWebアプリケーション構築ですが、Webアプリケーションにはいくつかの種類があり、どの方式を選択すれば良いか迷うこともあるため、それぞれのアプリケーションの特徴をこの記事では紹介します。

チャート

下図のチャートを参考にして、どのASP.NET Core Webアプリケーションを選択すれば良いか確認できます。

ASP.NET MVC

MVCモデルを利用してWebアプリケーションを作成する場合に選択します。
MVCモデルは規模の大きなWebアプリケーションの作成に適していますが、小さなアプリケーションを作成するには、やや冗長で小回りができない傾向にあります。
ASP.NET MVCのアプリケーション作成方法についてはこちらの記事を参照して下さい。

ASP.NET Core / ミドルウェア

シンプルなASP.NET CoreのWebアプリケーションを作成する方法です。HTMLのページ出力が無い場合、つまり、ASP.NET WebFormアプリケーションでのジェネリックハンドラーや、ASP.NETハンドラーと同様の処理ををASP.NET Coreで実装する場合にはこの方法を利用するのが良いかと思われます。

ASP.NET Coreのアプリケーション作成方法は以下の記事を参照して下さい。

アプリケーションの作成

ミドルウェアの利用

ルーティングの利用

ASP.NET Core Razor Pages

ASP.NET CoreのWebアプリケーションでRazor Pages の仕組みを利用してアプリケーションを作成する方法です。WebFormアプリケーションの移行先としては一番選択しやすいアプリケーションの種類かと思われます。
MVCモデルではなく、Razor Pageとページに対応したページモデルを利用するモデルのため、シンプルな構成で動作も把握しやすいです。挙動もASP.NET WebFormアプリケーションに近いです。

ASP.NET Core Razor Pagesのアプリケーション作成方法は以下の記事を参照して下さい。

シンプルなアプリケーションの作成

レイアウトページの利用

ASP.NET WebFormアプリケーションでのマスターページと似た機能です。

ASP.NET Core Blazor Server Application

Razor Pagesを利用した場合、画面の切り替わりは基本的にはページ遷移になります。ページ遷移はリンクをクリックして遷移するGETでの遷移か、FormのサブミットボタンのクリックによるPOSTでの遷移のどちらかになります。JavaScriptを記述して、AJAXの実装もできますが、Razor Pagesの仕組みではあまり考慮されていません。
ページ遷移を伴わずに非同期で画面を書き換えたい場合や、ページ遷移のないインタラクティブなWebアプリケーションを作成する場合は、ASP.NET Core Blazor Server Applicationを利用します。 Update Panelを多用したAJAXページがあるWebFormアプリケーションの移行先に適したアプリケーションの種類です。
ページ遷移を伴わないWebアプリケーションをSPA(Single Page Application)と呼びます。

ASP.NET Core Blazor Server Application のアプリケーション作成方法は以下の記事を参照して下さい。

プロジェクトの作成

シンプルなアプリケーションの作成

レイアウトの利用

ASP.NET WebFormアプリケーションでのマスターページと似た機能です。

Razorコンポーネント

スコープ、コードビハインド

ページ遷移

JavaScriptの呼び出し

ファイルのアップロード

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2021-02-07
作成日: 2020-02-03
iPentec all rights reserverd.