酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

最近ASP.NET MVCを本格的に始めました

最近ブログを更新していなかったのですが、最近何をやっているかというと、メインでiOSアプリ開発(多分6月末まではこれだけ)、サブでASP.NET MVCでウェブサイトを作っています。

ASP.NET MVCは、過去にiPhoneアプリ開発案件で「サーバー側のAPIが未実装で提供できません。御社内でなんとかしてください」と言われた際になんとかした時のことを「ASP.NET MVC 2を使ってテスト用の簡易WebAPIを実装する - 酢ろぐ!」で使ったことを書きました。

弊社では企画・デザインがメインなため*1、サーバーに関しては既存のモノがあること前提で、そこに対して接続させてもらうケースが多いです。ですので、前述した案件以降では、サーバー側の準備ができていないかつ動的なWeb APIを使う案件に携わらなくなってしまったので、自前でAPIを作る必要がなくなってしまいASP.NET MVCの知識は失われていきました。

個人的に(社内的にも)Amazon S3の使い勝手が良くて、リクエストに基づいて動的にレスポンスを変更させるよりも、サーバー側で複数の静的コンテンツを生成してアプリ側から用途に応じて取得しに行くモノを変更するという方向にシフトしてしまいました。

なんだかんだとウェブページを動的に生成するという需要はあって、仕事の合間合間にASP.NET MVCを使ったサイトを作り始めました。

んで、ASP.NET MVCの話に戻ります。

ASP.NET MVCは動的にウェブページを構築するのに向いています。ウェブサイトを構築するMVCの「V」はViewはhtmlに当たるわけなのですが、 cshtmlでViewを書くことができます。

最初はかなり取っ付きにくいのですが、慣れるとC#のforeach文とかを使ってhtmlが書けるようになります。PHPやRubyが一人前に使えない自分にとっては、Model、Controllerを含めてC#で一貫して書けるので便利に使っています。

DBにはSQL Azureを使って、DBからのデータ取得にはEntity Frameworkを使っています。フロントエンドにはAzure WebSitesを使っているので、Visual Studioからのデプロイがかなり楽です。

ASP.NETは、登場から結構経つので派生プロダクトが沢山出てきています。ウェブサイトを作る系以外では、「ASP.NET WebAPI」というものがあります。こちらは名前の通りWebAPIを作るためのフレームワークです。htmlの代わりにjsonやxmlを出力することができます。

本来は「ASP.NET MVC」で作ったサイトとの非同期通信のためのものなのかな?と思うのですが、少し前に位置情報をパラメータに指定すると最寄りの駅の位置情報を返すというというAPIをおでさんのために作りました。

また、Microsoft Azureには、iOSとかAndroidとかのデータを保存したり、pushを送ったりすることが可能な「Azure Mobile Services」というサービスがあるのですが、デバイスとAzureの仲立ちをするのにこの「ASP.NET WebAPI」が使われています。*2

…とざっくりとASP.NETの説明をさせて頂きました。 まだまだ使いこなしているレベルではありませんが、調べたりしたことをブログで紹介したり、蓄積したノウハウを使って趣味サイトを作ってみたいなと思っています :-D




とりあえず原稿を早く終わらせたい……

*1:アプリ開発は企画とデザインの表現方法の1つなので、アプリ開発がメイン扱いされることは非常に稀なのです:-o

*2:まだプレビューなのかな?