弊社技術顧問の増田智明の著書紹介をかねた.Net Core MVCのチップスです。

.NET Coreを利用するとLinux、Windowsを問わずに動作するアプリケーションが作成出来ます。2章 “スキャフォールディングの利用”の一部を実際に行ってみます。

スキャフォールディングは、CRUD(create,read,update,delete)処理を行う画面のコードをデータモデルを元にして自動生成する機能です。この自動生成機能はASP.NET Coreだけのものでなく、CakePHPなど他言語のフレームワークにも標準実装されています。つまり、データモデル毎によくある処理を実装する為のコードをまともに書かなくて済みます。

 

環境

  • Visual Studio 2017
  • SQL Server 2016

 

プロジェクトを作りましょう

.Net Core MVC スキャフォールディング scaffold

【新規作成】>> 【プロジェクト】を選択します。

 

 

.Net Core MVC スキャフォールディング scaffold

【テンプレート】>> 【WEB】>> 【ASP.NET Core Web アプリケーション(.NET Core)】を選択します。

 

 

.Net Core MVC スキャフォールディング scaffold

【認証の変更】をクリックします。

 

 

 

.Net Core MVC スキャフォールディング scaffold

【個別のユーザアカウント】にチェックを入れて、【OK】をクリックします。

 

 

この状態で動かしてみる

.Net Core MVC スキャフォールディング scaffold

IIS Expressをクリックして動かしてみます。

 

 

 

 

 

 

 

.Net Core MVC スキャフォールディング scaffold

起動しました。

 

SQL Server Management StudioでDBを作成しよう

.Net Core MVC スキャフォールディング scaffold

サーバー名を任意の環境で選択して【接続】をクリックします。

 

 

.Net Core MVC スキャフォールディング scaffold

【データベース】>> 【新しいデータベース】を選択します。

 

 

.Net Core MVC スキャフォールディング scaffold

データベース名として【testdb】を入力して【OK】をクリックします。

 

 

 

 

 

.Net Core MVC スキャフォールディング scaffold

【テーブル】で右クリックを行い、【テーブル】を選択します。

 

テーブルの作成

.Net Core MVC スキャフォールディング scaffold

 

.Net Core MVC スキャフォールディング scaffold

idに対して主キーを設定しています。スキャフォールディングを利用するテーブルは主キーがないといけません

 

.Net Core MVC スキャフォールディング scaffold

テーブルが出来ました。

 

PowerShellを起動させよう

.Net Core MVC スキャフォールディング scaffold

 

“PowerShell”を起動して、プロジェクトのディレクトリまでカレントディレクトリを移動します。

 

スキャフォールディングでModelを作成します。Server=接続名となっており、この環境ではROOT-PC\SQLEXPRESSになっていますが、環境によって変更して下さい。

.Net Core MVC スキャフォールディング scaffold

ModelsディレクトリにPerson.csと、testdbContext.csが作成されています。

 

 

.Net Core MVC スキャフォールディング scaffold

Startup.csに

を追加しデータベースに接続するように設定します。

 

.Net Core MVC スキャフォールディング scaffold

次はControllerを追加します。【Controllers】>> 【追加】 >> 【コントローラ】を選択します。

 

 

.Net Core MVC スキャフォールディング scaffold

【Entity Frameworkを使用したビューがあるMVCコントローラ】を選択して【追加】をクリックします。また左側に注目すると、ポップアップタイトルに”スキャフォールディングを追加”となっていますね。

 

 

.Net Core MVC スキャフォールディング scaffold

  • モデルクラス:Person
  • データコンテキストクラス:testdbContext
  • コントローラ名:PeopleController

上記にして【追加】をクリックします。Modelが『Person』である場合はコントローラは『People』と複数系になります。Personsではありません。

 

 

.Net Core MVC スキャフォールディング scaffold

コントローラとビューが出来ています。

スキャフォールディングを利用すると、テーブル毎の作成-参照-更新-削除する為の一連の処理(CRUD)をプログラミングする作業から解放されます。便利すぎる。あくまで”足場”なので詰める必要はありますが、便利!

 

 

 動きをチェックしよう

.Net Core MVC スキャフォールディング scaffold

http://ホスト名:ポート/people/create

にアクセスして、任意の値を入力して【Create】をクリックしましょう。

 

 

.Net Core MVC スキャフォールディング scaffold

このように簡単に入力することが出来ました。

スキャフォールディング機能を利用すると、テーブルに合わせたMVCの雛形を簡単に追加作成することが出来ます。

 

 

Views/PeopleのIndex.cshtmlを拡張してみる

スキャフォールドで作成されたビューの雛形に習ってアレンジしてみます。

  • ID列を表示させる。
  • 名前に詳細表示ページのリンクをつける。

 

ビューpeopleにアクセスするとID列が表示され、名前に詳細リンクが付きました。詳細をクリックしてみます。

 

 

.Net Core MVC スキャフォールディング scaffold

大丈夫のようですね。

 

 

続きは書籍で

 

WEB API, WPF, Xamarinなどクライアントを選ばないアプリケーション作成のテクニックがぎゅぎゅっと紹介されています。必読!

 

 

C#, タグ:
金広 優 (エンジニア)
この記事を書いた人:金広 優 (エンジニア)

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM SoftLayerやAWSなどクラウド案件も多くなってきました。