【T6a】検証メッセージのカスタマイズと集約表示(2/5)
プロジェクトタイプ | ASP.NET Core Web アプリ(Model-View-Controller) |
---|---|
プロジェクト名 | T6a |
ソリューション名 | PIT6 |
ターゲットフレームワーク | .NET 8.0(長期的なサポート) |
最上位レベルのステートメントを使用しない | 使用する(チェックオフ) |
6a-2. 準備作業
まずは「ASP.NET Core Web アプリケーション」タイプのプロジェクトを作成しよう.上表に示すように,
プロジェクト名はT6a
,ソリューション名はPIT6
とする.ターゲットフレームワークとして「.NET 8.0(長期的なサポート)」を選択し,
「HTTPS用の構成」のチェックを外すこと,また「最上位レベルのステートメントを使用しない」にチェックが入っていない ことを確認しよう.
今回は復習を兼ねて以下の一通りの準備作業を自力で行ってみよう.
- 【作業Ⅰ】 作業対象:プロジェクト T6a
- 必要なパッケージをインストールする.
- 参考:【T5a】概要と準備作業
- 必要なパッケージをインストールする.
- 【作業Ⅱ】 作業対象:プロジェクト T6a
- プロジェクトで使用する,「スコア」の情報を表すモデルクラス
ScoreRecord
を定義する.- このクラスには_に示す項目を含める.
- 表示名や値の範囲に関する制限といったデータアノテーションも忘れずに行うこと.
- 参考: 【T4a】モデルバインディングを使ったフォーム処理,【T5a】モデルクラスの作成.
- このクラスには_に示す項目を含める.
- プロジェクトで使用する,「スコア」の情報を表すモデルクラス
- 【作業Ⅲ】 作業対象:プロジェクト T6a
- このプロジェクトで使用するデータコンテキストクラス
T6aContext
を定義する.- このデータコンテキストクラスには
ScoreRecord
のコレクションを表すScoreRecords
という名前のプロパティを持たせる. - 参考: 【T5a】Entity Framework Core を使用するための準備.
- このデータコンテキストクラスには
- このプロジェクトで使用するデータコンテキストクラス
- 【作業Ⅳ】 作業対象: Views/Shared/_Layout.cshtml (ファイル)
- レイアウトページの簡易化(リスト4a-4-2)
- ページタイトル部分に
T6a
という文言を入れ,サイトタイトル(h1要素の内容)をチュートリアルT6a
に変更する.
- ページタイトル部分に
- レイアウトページの簡易化(リスト4a-4-2)
- 【作業Ⅴ】 作業対象: wwwroot/css/site.css (ファイル)
- スタイル指定
body { padding: 1em; }
を追記する(参考:リスト4a-4-4).
- スタイル指定
- 【作業Ⅵ】 作業対象:pgAdmin(データベース)
- 【作業Ⅶ】 作業対象: appsettings.json (ファイル)
- データベースの接続設定の定義(参考:リスト5a-4-5)
- 【作業Ⅷ】 作業対象:
Home
コントローラー&ビュー - 【作業Ⅸ】 作業対象: Program.cs (ファイル)
- 【作業Ⅹ】 作業対象:コマンドラインターミナル(開発用PowerShell,Visual Studio 上)
- 最初のマイグレーションの作成(マイグレーション名は
InitialDB
)とデータベースへの反映(参考:リスト5a-5-1)
- 最初のマイグレーションの作成(マイグレーション名は
項目名(表示名) | 実際のプロパティ名 | 必須/任意 | データ型 | 備考 |
---|---|---|---|---|
ID | Id | 必須 | 整数 | その記録のID. |
名前 | Name | 必須 | 文字列 | スコアネーム. |
スコア | Score | 必須 | 整数 | 得点.0点以上999999999点以下. |
記録日時 | Recorded | 必須 | 日付時刻 | そのスコアをシステムに登録した日時(時刻含む). |
項目 | 値 |
---|---|
接続先 | localhost |
ポート | 5432 |
ユーザー名 | t6a_user |
データベース名 | t6a_db |
パスワード | 7T@6x!mHBA |
ここまでのチュートリアルの内容を十分に理解していればできるはずである.すぐに正解を見ようとせずに まずは自力で調べどのような作業が必要かを考えて行ってみよう.答え合わせをしたい場合は以下を開くとよい.
【作業Ⅰ】
NuGetを使って以下のパッケージを探してプロジェクトにインストールする. バージョンが選択可能な場合は「 最新の安定板 」を選択するのを忘れないようにしよう.
パッケージソース | パッケージ名 | 本校執筆時[^98]の安定版 |
---|---|---|
nuget.org | Microsoft.EntityFrameworkCore.Design | 8.0.2 |
〃 | Npgsql.EntityFrameworkCore.PostgreSQL | 8.0.2 |
〃 | Npgsql.EntityFrameworkCore.PostgreSQL.Design | 1.1.0 |
knzw.tech | KnzwTech.AspNetCore.ResourceBasedLocalization.ja | 6.0.1 |
【作業Ⅱ】
チュートリアル【T4a】,チュートリアル【T5a】を参考に
_の情報を含むモデルクラスを定義する.プロジェクトの Models フォルダ内に新規にクラスを追加し,
_に示すScoreRecord
クラスを定義する.

【作業Ⅲ】
チュートリアル【T5a】を参考にこのプロジェクトで使用する データコンテキストクラスを作成する. プロジェクトに Data という名前のフォルダを追加し,その中に_のクラス定義を追加する.

【作業Ⅳ】
チュートリアル【T4a】を参考に以下のことを行う.
- Views/Shared/_Layout.cshtml をリスト4a-4-2に示すように変更する.
- ↑の5行目の
T4a
をT6a
に変更し,@* サイトタイトル *@
の部分をチュートリアルT6a
に変更する.
正しく編集すると_のようになる.

【作業Ⅵ】
pgAdmin を起動し,「 Servers 」→「 PostgreSQL 16 」→「 Databases 」に表示される データベースの一覧から 「 postgres 」を右クリックし「 Query Tool 」をクリックし,_に示すSQL文を実行する.

【作業Ⅷ】
チュートリアル【T4b】を参考に以下のことを行う.
Home
コントローラーにリスト4b-6-3のアクションメソッドAccessError
を追記する.- プロジェクト内の Views フォルダの Home フォルダに新規に
AccessError
(.cshtml)という名前のビューを追加し,リスト4b-6-4の内容を書き込む
正しく編集すると Controllers/HomeController.cs は_, Views/Home/AccessError.cshtml は_のようになる.


【作業Ⅸ】
チュートリアル【T4a】,チュートリアル【T4b】,チュートリアル【T5a】,チュートリアル【T5b】を参考に Program.cs を編集する.正しく編集すると_のようになる.

【作業Ⅹ】
Visual Studio 上でコマンドラインターミナル(「開発用PowerShell」)を開き_に示すコマンドを実行する.
このコマンドを実行する前にカレントディレクトリを,操作対象のプロジェクトのプロジェクトフォルダに変更しておく ことを忘れないようにしよう(つまりあらかじめcd
を実行しておく).プロジェクト名
このコマンドを実行する前に一度以上プロジェクトをビルドしておく必要がある.また,ソリューションに含まれるプロジェクトに1つでもコンパイルエラーがあるとこのコマンドは失敗することがある.このためこのコマンドを実行する際は,事前にソリューション全体を一度ビルドして一つもコンパイルエラーがないことを確認しておくこと.

ここまでを済ませてプロジェクトを起動してみよう.以下の2点を確認しておこう.
- pgAdmin で,実際にデータベース t6a_db が作られており ScoreRecords テーブルが作成されていること(_).
- 起動すると
404 Not Found
のアクセスエラーが表示されること(_).
以上を確認したら次へ進もう.