オナ禁レコーダーの開発雑感

ASP.NET MVC5

オナ禁レコーダーはASP.NET MVC5で作った。 開発ツールVisual Studio 2013で、Azureで公開という、MSに囲い込まれた世界だ。

MSベッタリに囲い込まれた世界って、なかなか快適だったりする。 Visual Studioでプロジェクトを作るととりあえず動く状態のWebサイトができる。 Visual StudioのIntelliSenseは優秀で、タイプ数を減らすことに貢献してくれる。 デプロイはGUIに従えば、なんとなくAzureで公開できてしまう。

プロジェクトを作るといきなりたくさんのファイルができてビビる。が、だいたいお約束で作られているファイルらしく、ほとんど触る必要がない(とはいえ、なんだか知らないファイルがたくさんあるのは気持ちわるいものではある)。

作業を始めるのは、このなんだか知らないファイルがたくさん作られた状態から。 ここから、コントローラーやら何やらを作っていけばいい。

プログラムの流れはシンプルだ。フレームワークがURLに対応したコントローラーのアクションメソッドを呼び出してくれる。その中で、DBやフォームからデータをかき集め、テンプレートに投げてHTMLを作ればいい。

DB周り

ASP.NET MVCはDB周りもなかなか良く出来ている。 Entity Frameworkのマイグレーションという機能を使うと、 DBのテーブルは自分で作ったC#のクラスから自動的に作られる。 C#のクラスを更新したら、コマンドによってそれをDBに反映させることができる。 インデックスを張りたいときは、対象とするクラスメンバにC#の属性をつければいい。 複数メンバに対するインデックスも普通に扱える。

DBを意識せずに全自動でいい感じにやってくれるわけではないが、手順さえ覚えてしまえば開発の手間はずいぶん削減できる。 DBからのデータを格納するクラスは必ず自作することになるので、これを作るだけでテーブルを作ってくれるのはかなりありがたい。

C#LINQは、悪くはないのだけど、こういう構文糖はどうでもいいや。 SQLと同じように使えると期待していたが、全然違うのでちょっとガッカリだ。

テンプレートエンジン

Razorという、MSの新型を利用。テキストの中に目印をつけてプログラムを埋め込むという、よくあるタイプのテンプレート。良い点は、目印が「@」だけで済むので、見た目がスッキリすることくらいか。構文的には、生成するものがHTMLじゃなくても使えそうだ。

フォーム処理

オナ禁レコーダーにも、少ないながらフォームがある。

ASP.NET MVCの素晴らしい機能は、コントローラーの属性に指定できるValidateAntiForgeryTokenだ。いわゆる、CSRF対策が簡単にできる。 テンプレートでHtml.AntiForgeryToken()を使ってトークンを埋め込んでおくと、フレームワークがコントローラーのアクションメソッドを呼び出す前にリクエストの正当性を検証してくれる。

もちろん、アクションメソッドを呼び出す前に、フォーム用のクラスにフォームの入力値を入れておいてくれる。定形処理を自分で書かなくていいのは、やはりありがたい。

デザイン

Visual Studio 2013でASP.NET MVCプロジェクトを作ると、デザインは最初からBootstrap3でレスポンシブに対応している。

デザインの変更は、Jumbotronの背景に拾ってきた画像を設定するとか、色を変えるくらいしかしていないので、オナ禁レコーダーのデザインはいわゆるBootstrap臭がすると思う。

画像は、写真AC のものを使わせて頂いている。

参考にした本

はじめてASP.NET MVCを使うにあたり、参考書が必要だった。以下の本しか見ていないが、わかりやすくてよかった。

こうしてみると

初めて使うフレームワークなので、いろいろ苦労しながら作っている。次からは少しは楽できるに違いない。

とか言いつつ、次のWebサイト「嬢助」はPlayframeworkとかに手を出してしまった。気軽にいろんなものを使っていこう。