Scaffoldingに必要なツールとパッケージを準備する
まずは、必要なツールとパッケージをインストールしましょう。
ツールのインストール
ツールは、dotnet-aspnet-codegeneratorとdotnet-efの2つです。dotnet-aspnet-codegeneratorは、ASP.NET CoreでScaffoldingを行うためのツールです。今回は、これを使ってアプリケーションにCRUDページを付加していきます。dotnet-efは、Entity Framework Core(EF Core)のためのCLIツールです。EF Coreは、.NETにおけるORM(Object Relational Mapper)のためのフレームワークで、モデルはEF Coreを通じてデータベースとやり取りします。
本連載ではmacOSにおけるVSCodeの利用を想定しているので、VSCode上でターミナルを開いて操作していきます。以下のように、dotnet tool installコマンドを使って2つのツールをインストールしてください。
% dotnet tool install --global dotnet-aspnet-codegenerator 次のコマンドを使用してツールを呼び出せます。dotnet-aspnet-codegenerator ツール 'dotnet-aspnet-codegenerator' (バージョン '6.0.2') が正常にインストールされました。 % dotnet tool install --global dotnet-ef 次のコマンドを使用してツールを呼び出せます。dotnet-ef ツール 'dotnet-ef' (バージョン '6.0.3') が正常にインストールされました。
[NOTE]ツールディレクトリのPATHへの追加
dotnet tool installコマンドの実行後、以下のように表示されることがあります。
ツール ディレクトリ '/Users/nao/.dotnet/tools' は現在、PATH 環境変数にありません。 zsh を使用している場合、次のコマンドを実行してプロファイルに追加できます: cat << \EOF >> ~/.zprofile # .NET Core SDK tools export PATH="$PATH:/Users/nao/.dotnet/tools" EOF `zsh -l` を実行して現在のセッションで利用できるようにします。 これは、次のコマンドを実行することによってのみ、現行のセッションに追加できます: export PATH="$PATH:/Users/nao/.dotnet/tools"
メッセージにあるように、~/.zprofileファイルを修正してzsh -lコマンドを実行してください。あるいは、exportコマンドでPATHをシェルに反映させてください(Windowsでは、「システムのプロパティ」から設定)。ツールディレクトリ(ここでは/Users/nao/.dotnet/tools)がPATHにない場合には、ツールはパスを付加して実行する必要があります。
パッケージのインストール
続けて、パッケージ(NuGetパッケージ)をインストールしていきます。これには、まずcdコマンドでアプリケーションのルートフォルダに移動しておきます。パッケージは、アプリケーションごとにインストールが必要なためです。そして、以下のようにdotnet add packageコマンドを使って3つのパッケージをインストールしてください。
% dotnet add package Microsoft.EntityFrameworkCore.SQLite …略… % dotnet add package Microsoft.EntityFrameworkCore.Design …略… % dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design …略…
Microsoft.EntityFrameworkCore.SQLiteは、今回使っていくデータベースであるSQLiteのためのデータベースプロバイダです。これをインストールすることで、依存関係にある他のEF Coreパッケージもインストールされます。Microsoft.EntityFrameworkCore.DesignとMicrosoft.VisualStudio.Web.CodeGeneration.Designは、Scaffoldingに必要なパッケージです。
[NOTE]データベースプロバイダ
今回はデータベースにSQLiteを使いますが、Production環境などでSQL Serverを使う場合には、Microsoft.EntityFrameworkCore.SqlServerもインストールしてください。なお、macOS環境ではSQL Serverはサポートされないので、SQLite以外の選択肢としてMySQL(MariaDB)やPostgreSQLなどの利用を検討できます。それぞれ、Microsoft.EntityFrameworkCore.MySql、Microsoft.EntityFrameworkCore.PostgreSQLをインストールします。また、データの恒久化が必要でない場合には、インメモリデータベースMicrosoft.EntityFrameworkCore.InMemoryも利用できます。
これで、ツールとパッケージの準備が整いました。
