Azure Services Platform 開発コンテスト
今回は番外編ということで、「Azure Services Platform 開発コンテスト」に応募したサイトの宣伝をさせてもらいます。
「Azure Services Platform 開発コンテスト」とは、マイクロソフトのクラウドサービスであるAzure上で動作するwebサイトを作成するプログラミングコンテストです。
コンテストについては、こちらを参照してください。
- 「Pair Programming 」というサイトを作成しました。
ペアプログラミングのためのwebサイトです。同じページを見ている人達とリアルタイムでペアプロが行えます。Google Waveと同じようなコラボレーションツールを作りたいと思い、作成しました。プログラミング以外にも、執筆活動とかのコラボレーションに使えるかもしれませんし、まったく使えないかも知れません。
※7月10日より、一般投票が始まりますので、もし面白いと思ったら、投票いただけますとうれしいです。
◇サイトイメージ
◇アーキテクチャ
ASP.NETの非同期ハンドラとprototype.jsを使用し、Cometを実装し、リアルタイム通信を行っています。
今回はデモのため、1サイトの仮想マシンしか使用しません。クライアントの接続も1サイトになるため、いちサイトで完結する単純なCometになっています。Webサーバが複数サイト存在する場合は、クライアントがどのサーバに接続するかわからないため、Webサーバ間での通知機能が必要となりますが、今回は実装していません。
WorkerRoleとかキュー機能とか使えばできそうな気がしますけど、気のせいかも知れませんし、そこまでの才能と暇がありません……。
JavaScriptのSyntaxHighlighterライブラリを使用して、ソースコードの色分け表示を行いたかったのですが、リアルタイムでviewを更新するのと相性が悪い? のか、簡単にできず見送りました……。(html上に残骸が残っています。)
◇制限事項
- difff & Patch 機能を付けたかったなぁ……。
- このURLで全てのデータが更新されてしまいます。権限などはありませんので、無条件に書き換えられます。
- 完全に後勝です。ファイル名がかぶった場合、上書きされます。
- ファイル名が違うデータを修正しているつもりでも、URLは共通ですので、viewエリアは、リアルタイムで更新されます。
- コメント履歴は保存されません……。すいません。
◇雑感
デモとはいえ、いいかげんに作り過ぎていてペアプロというより、邪魔のしあいのようなサイトになってしまいました。しかし、不特定多数とのリアルタイム更新を楽しんでもらえれば幸いです。
Azureのプログラミングは、ストレージサービス以外は、普通のASP.NETと同じですね。わたしは、最近ASP.NETから離れていたので、微妙な感じの仕上がりですが、慣れている方はすんなりとAzureライフがおくれることと思います。
ローカル環境からAzureプラットフォームへのデプロイは簡単ですね。GAE/Jには負けますが……。ローカル環境のテーブルを自動生成してくれているようなのですが、ここら辺がどのような仕組みでやっているのかよくわかっておらず、何だか気持ち悪いです。
ローカル環境からでもAzure上のストレージサービスは使えますので、ネットに繋がる環境で開発するのであれば、Azureストレージを使った方がよい気がします。
◇参考
- 開発環境構
・無償開発環境で試すWindows Azureクラウド開発
Azureの開発は、全て無料のツールで行えます。
※ただし、パソコンとWindows Vistaまたは、2008 Serverが必要です。 - ASP.NETの非同期ハンドラ
ASP.NETでCometを利用したチャットを実装する
Cometで通信するために非同期ハンドラを使用します。
このページを参考にしました。というより、通信ライブラリは、”ほぼ”そのままです。 - ストレージサービス
Windows Azureアプリケーションの実践(1)~環境構築とプロジェクト作成
ストレージサービスを利用する場合に参考になります。