はじめに

ASP.NET Coreの下記のプロジェクトテンプレートはどちらもMVC(Model-View-Controller)を採用しており統合できるとのこと。
イメージ
そこで、統合する際の注意点を把握するため、2つのプロジェクトのサンプルコードを比較しました。

環境

  • Windows 10 64bit
  • Visual Studio Community 2022
  • C#
  • .NET 7.0
  • ASP.NET Core

比較対象

プロジェクトテンプレート

  • ASP.NET Core Web API
  • ASP.NET Core Webアプリ(Model-View-Controller)

プロジェクト構成

設定内容 ASP.NET Core Web API ASP.NET Core Webアプリ
フレームワーク .NET 7.0 .NET 7.0
認証の種類 なし なし
HTTPS用の構成 チェックなし チェックなし
Dockerを有効にする チェックなし チェックなし
コントローラーを使用する チェックあり N/A
OpenAPIサポートを有効にする チェックなし N/A
最上位レベルのステートメントを使用しない チェックなし チェックなし

比較結果

デフォルトのサンプルコードを比較した結果

比較内容 ASP.NET Core Web API ASP.NET Core Webアプリ
フォルダ構成 ビュー関連のフォルダ(ファイル)がない 下記のファルダ(ファイル)がある
Models(cs)
Views(cshtml)
wwwroot(css、JavaScript)
コントローラーの追加方法 コントローラーのみ追加
Program.cs
AddControllers()
コントローラー+ビューを追加
Program.cs
AddControllersWithViews()
ルーティングの方法 属性ルーティング
コントローラー内の属性でルーティングする
Program.cs
MapControllers()
規則ルーティング
引数にパターン{controller=Home}/{action=Index}/{id?}を指定する
Program.cs
MapControllerRoute()

参考サイト