屈強な男性のブログ

チャンピオン・ジャンプの感想を中心に、日々の雑記とか諸々

RazorPagesのチュートリアルをクリア

次の仕事でC#.NETをやることになった。

たぶん実務ではMVCのアプリを作ると思う。

MVCJavaでやった(Struts1x、Struts2x)ので慣れている。

 

だけど、マイクロソフトが執拗にRazorPagesを進めてくる。

こっちのほうが新しい仕組みらしい。

 

古いより新しいほうがイイよね!

そんなわけで、MSDNチュートリアルをやった。

https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/razor-pages/?view=aspnetcore-3.1

 

・感想

単純なページならすごく便利だけど、応用方法がさっぱりわからん。

 

・必要なコードはスキャフォールディング (自動生成)できる。

チュートリアルではMoviesという、ひとつのテーブルに対してCRUD(作成・参照・更新・削除)を行う。

 

Modelを選んで「右クリック→ スキャフォールディング」をポチッとするだけで、なんだかわからないうちに、立派なWebアプリができちゃった感じだ。

優秀過ぎてプログラマが置いてけぼりにされる。

※自動生成されたコードはチュートリアル内で解説される。

 

・必要なエンティティはマイグレーション (自動生成)できる。

マイグレーション」の機能を使うと、Modelから自動的にエンティティができる。

わざわざDDLを書かなくていいわけだ。

code Firstという考え方らしい。

すごい!

けど怖いね。

色々なアプリから参照するエンティティとか、ついうっかり更新しちゃいそう。

 

ルーティングはわかりやすい

MVCと違ってコントローラを挟まないので、View→Model(項目)が一直線につながっていてわかりやすい。

MVVMという考え方になるらしい。

 

View→Model(ビジネスロジック)→Model(項目)ってイメージかな。

直感的でいい。

だけど、「中間的なところでゴニョゴニョしたい」という余裕がない気がする。こんなにガチガチでいいのかなぁ?

 

複数エンティティの扱いがわからん

 しかもModelがエンティティと完全対応している。

これは、わかりやすいけど……大抵のアプリは複数エンティティをロジックでアレコレするものなので、完全対応されても困る。

なので「画面用」「エンティティ用」「加工途中」みたいにModelを用意するのが普通だと思う。

うーん、応用例が見たい。

 

・検証(バリデーション)は素晴らしい!

Modelの項目にアノテーションするだけ。

これだけで「必須だよ」「30文字だけだよ」とかチェックしてくれる。

サーバでリクエストを検証してくれるだけでなく、クライアントでのJavaScript検証までしてくれる。

ちゃんとユーザにわかりやすいようにメッセージを変更する機能もある。

至れり尽くせり。

手放しで「素晴らしい!」と褒めたい。

 

・次はこのチュートリアルをやる

今回は、一番かんたんなチュートリアルをやっただけ。

雰囲気はつかめたけど、これをタネに実際のアプリまで膨らませられない。

もっと具体的なアプリもあったので、これをやってみる。

 

docs.microsoft.com