.NET FrameworkでRazorページ

2018/07/24 Razor Pages
rp20180707002.png

.NET Frameworkを選択して作成したRazorページのプロジェクトを作成。

rppublish010.png

発行したらこんなことに。フォルダのサイズは18.4MB。
.NET Coreがサーバーにインストールされていなくても動くように依存dllがごっそりついてきました。
そうきたか、と言う感じ。

ちなみに.NET Coreを選択して発行した場合はこんな感じ。
rppublish020.png

Razor ページ

2018/07/07 Razor Pages
rp20180706001.png

Web関連のテンプレートが増え、新規プロジェクトを作成時に迷いそう。
Webアプリケーション(無印)の中身がRazorページになっています。
右隣のWebアプリケーション(モデルビューコントローラ)との使い分けに悩みそうです。

Razorページに関しては下記がまとまっていると思います(必要最低限網羅されている印象)。
https://msdn.microsoft.com/ja-jp/magazine/mt842512.aspx
  • 機能毎にコードが1箇所にまとまり(M,V,Cのフォルダに分散しない)管理しやすい
  • POST/Redirect/GET 以外は実行する必要のない単純なフォームのみを使用する場合に向いている
  • MVCパターンではなくMVVM(Model-View-ViewModel) パターンを踏襲している
  • とはいえ既存のASP.NET Core MVCコントローラーおよびビューとほぼ互換性がある
  • WebFormと同じPage Controller パターンの一種だがWebFormと違ってUnitテストも簡単

2018/07/04(水)ASP.NET Core MVC は非推奨

VS2017の起動直後の画面に表示されているリンク「最新のテクノロジーを活用して、美しく、低コストで信頼できるWebサイトを配置する」をクリックしてみてびっくり。
「Razor ページ」のページへ飛ばされ、あれMVCはと思ってMVCのページをクリックしたら下記のような文言が。
pg20180704001.png

意訳すると「新しく便利なRazorページを作ったのでそっちを使ってね、どうしてもMVCを使うというのならその理由を報告してね」

あえてMVCを選択する理由を覗いて見るとWebFormを思い出す、後退だろうという意見やコロコロ変えすぎ付いて行けないわという意見が。

気持ちは分かりますが、ドキュメント読んでいる感じではMVCの一部だし、ページ単位でコードがまとまるのは管理が楽になりそうで悪くは無いと思います。
最初からこの形にしておけばWebFormからの移行も楽だったんじゃないかと思いますが。
今までは自分でViewModelを作成していましたが、それがPageModelに変わると書き方が統一されそうですし。

Coreの動くサーバーがまだ無いので実際に使うのは随分先になりそうですが…。
プロジェクトを作成する際に.NET Framework選択すればよさげです。
rp20180707002.png


後から切り替えは無理っぽい。
rp20180707003.png

OK キャンセル 確認 その他