🦁

dotnet new mvc -n (プロジェクト名)で作られたもの 3日目

2024/10/25に公開

はじめに

「ASP.NET Core」技術でMVCのテンプレートを展開した際に、その内容がわかることを目的としています。

Gitに登録する前にプログラムの理解

よし、「Hello World」を作ったぞ!と意気込んでみたいところだけど、コード書いてないよね。
なんで、何をしたかの振り返りと、自動生成で作られたソースの中身を確認していこう。
「dotnet new mvc -n」のコマンドを調べてみようと思う

dotnet new mvc -n コマンドについて

dotnet new mvc -n コマンドを実行すると、ASP.NET Core MVC プロジェクトのテンプレートを使って新しいプロジェクトを作成します。このコマンドの各部分について説明します。

コマンドの構成

  1. dotnet
    dotnet コマンドは、.NET SDK のコマンドラインインターフェース (CLI) を使用して、プロジェクトの作成やビルド、実行、パッケージ管理などを行うための基本コマンドです。ASP.NET Core を含む .NET の様々な作業を、コマンドラインで行う際の入り口となります。

  2. new
    new コマンドは、プロジェクトやファイルを作成するためのサブコマンドです。このコマンドを使うことで、テンプレートに基づいた新しいプロジェクトやファイルを作成できます。ASP.NET Core MVC のプロジェクト以外にも、コンソールアプリケーションやクラスライブラリなど、他のテンプレートも作成可能です。

  3. mvc
    mvc は、新しいプロジェクトのテンプレートとして ASP.NET Core MVC を指定するためのオプションです。このテンプレートを使うことで、モデル (Model)・ビュー (View)・コントローラー (Controller) の構造を持つ ASP.NET Core MVC アプリケーションが生成されます。ASP.NET Core の Web アプリケーションを作成するための、最も一般的なテンプレートの一つです。

  4. -n
    -n は、「名前」を指定するオプションです。このオプションの後に、作成するプロジェクトの名前を入力する必要があります。このオプションを使用することで、プロジェクトフォルダやプロジェクトファイル (.csproj ファイル) が指定した名前で作成されます。たとえば、dotnet new mvc -n MyMvcApp と入力すると、MyMvcApp という名前のプロジェクトが作成されます。

mvcというテンプレートを展開して、プロジェクト名だけ引数で入れて作った、そんな感じみたい。

mvcというテンプレートの中身を見てみよう

D:.
│  appsettings.Development.json  # 開発環境用の設定ファイル
│                                (データベース接続文字列などの環境設定を記述)
│  appsettings.json              # 共通のアプリケーション設定ファイル
│                                (環境に依存しない設定を記述)
│  HelloWorldApp.csproj          # プロジェクトファイル
│                                (依存関係、ビルド設定などを記載)
│  Program.cs                    # アプリケーションのエントリーポイント
│                                (ASP.NET Coreアプリの設定や初期化)
│
├─bin                            # ビルド後にコンパイルされたバイナリ
│                                (ファイルが配置されるディレクトリ)
│
├─Controllers                    # コントローラークラスが置かれるディレクトリ
│      HomeController.cs         # HomeController(デフォルトのコントローラー)
│                                (IndexやPrivacyなどのアクション)
│
├─Models                         # モデルクラスが置かれるディレクトリ
│      ErrorViewModel.cs         # エラーメッセージを保持するためのモデルクラス
│
├─obj                            # ビルドプロセス中に生成される一時ファイル
│                                (.NETの中間コードなどが配置される)
│
├─Properties                     # プロジェクトのプロパティや設定ファイル
│      launchSettings.json       # ローカル開発環境での起動設定ファイル
│
├─Views                          # ビュー(UI)ファイルが置かれるディレクトリ
│  │  _ViewImports.cshtml        # 共通で使用されるディレクティブ
│                                (View内で使うクラスやタグヘルパーのインポート設定)
│  │  _ViewStart.cshtml          # 各Viewファイルのレンダリング前に
│                                共通で実行される設定
│  │
│  ├─Home                       # HomeControllerに対応するビュー
│  │      Index.cshtml           # HomeコントローラーのIndexアクション
│                                (ホームページの表示)
│  │      Privacy.cshtml         # プライバシーポリシーページの表示
│  │      
│  └─Shared                     # 共有レイアウトや部分ビューの配置
│          Error.cshtml          # エラーページの表示
│          _Layout.cshtml        # 全体のレイアウト(ヘッダー、フッターなど)
│          _Layout.cshtml.css    # _Layout.cshtmlに関連付けられたCSSファイル
│          _ValidationScriptsPartial.cshtml  
│                                # フォームバリデーション用スクリプトの部分ビュー
│
└─wwwroot                        # 静的ファイルが配置されるディレクトリ
    │  favicon.ico               # ブラウザのアイコン(タブで表示される)
    │
    ├─css                        # CSSファイルが配置されるディレクトリ
    │      site.css              # サイト全体で使用するスタイルシート
    │
    ├─js                         # JavaScriptファイルが配置されるディレクトリ
    │      site.js               # サイト全体で使用するJavaScriptファイル

不要なのは削除したけど、主要なものは上記のようですと。。
こちらをベースに手直ししてみて理解を深めてみたいと思う。

準備は整ったんで、次回はGitだ!

Discussion