SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

.NET最新版でASP.NET Core

.NET 6でASP.NET CoreのRazor Pagesアプリケーションにデータ処理を絡めた機能拡張を施す

.NET最新版でASP.NET Core 第3回


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も利用できます。

 これで、ツールとパッケージの準備が整いました。

次のページ
データを取り扱うためのモデルクラスを追加する

この記事は参考になりましたか?

.NET最新版でASP.NET Core連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 山内 直(WINGSプロジェクト ヤマウチ ナオ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15906 2023/05/26 17:21

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー