2018年1月9日の日記:ASP.NET Core Razor Page アプリを作るのが楽しくなってきてしまった。

執筆日時:

狂風、窓を叩き、昼間っから近所のババアがマンションのベランダから向かいのサンドウィッチ屋さんをヒステリックにディスるカオスな日だった。どんな事情があるのかは知らんが、サンドイッチ屋のおばさんはオマケにパンの耳を恵んでくれる天使だ。大方、猿叫喧しいババアが精神でも病んでるんだろう。お節介かもしれんが、これが続くなら警察でも呼ぼうかと思った。

関係ないけど、ワサビ入りサンドイッチ食べたくなったので、明日のお昼はサンドイッチを買いに行こうかと思う。

Web アプリケーション(仮称:Tsundoku。ヘボン式だとこの綴りでいいのだけど、個人的には Tshumdoku の方がしっくりくる?)の方は、パブリックタイムライン、書籍の検索画面、書籍の個別ページ、ユーザーページが完成した。

f:id:daruyanagi:20180110023404p:plain

パブリックタイムライン。画面はこれだけあるけど、データベースのテーブルは(ユーザー管理と書籍情報のキャッシュ代わりに使っているテーブルを除けば)ユーザーアクティビティを管理するのが1つあるだけで、これは単にそれを引っ張ってきてる。Entity Framework のリレーションシップ回りも慣れてきて、Include()、IncludeThen() が使えるようになってきた。

f:id:daruyanagi:20180110023510p:plain

書籍の検索画面。ちなみに Amazon 関連は Nager.AmazonProductAdvertising というのを使わせてもらっている。

github.com

var authentication = new AmazonAuthentication();
authentication.AccessKey = "accesskey";
authentication.SecretKey = "secretkey";

var wrapper = new AmazonWrapper(authentication, AmazonEndpoint.US, "nager-20"); var result = wrapper.Lookup("B00BYPW00I");

あまり自由度はないけれど、シンプルですごくいいと思った。Amazon アソシエイトのキーも久しぶりにもらったけど、UI がシンプルになってて昔よりハードルがだいぶ下がってる感じがある。

f:id:daruyanagi:20180110023613p:plain

書籍の個別画面。書籍情報と本に紐づいたアクティビティをタイムラインで表示。

読書ステータスの更新もここから可能で、積読 → 読中 → 読了(→ 再読)のサイクルをボタンでぷちぷち変更できる。コメントをつけたり、進捗管理もできるようにするつもり。

f:id:daruyanagi:20180110023533p:plain

ユーザーページ。Twitter みたいにフォローできるようにするつもり。フォロー・フォロワーの表現だけならいいけど、フォロワーのタイムラインとか作るの割と大変そうな感じする?

このアプリは作って遊んでるだけで公開するかどうか微妙だけど、どうにも開発が楽しくなってきちゃって(なんかやっとこさ掌の上でくるくるできる感覚になってきたわけですよ!)、当分は止まらないかなって感じある。

ToDo

  • MVC と Razor Page の混在についてちょっと調べる。謎のルーティングエラーで30分無駄にされた
  • IEnumerable を string にするスマートな拡張メソッドを作りたいけど名前が決まらん件について
  • enum の拡張メソッドをはやしておくとビューがスマートになるなぁ