RIA+クラウドでの設計について妄想

Silverlight を使っていて思ったこと

Silverlight ってサクサク動く。 かなり高速。
あとJavaScript も、ブラウザの JavaScript エンジン高速化競争のおかげで、どんどん高速化されている。
Flash は作ったことが無いので分らないけど、Yahoo! メールの新 UI を触った感じではまずまず。

これだけ速いなら…

サーバー側でやっている処理を、クライアント側に持って行ってもよさそうだ。
UI ロジックだけじゃなく、ビジネスロジックの一部もクライアント側で実行。
JOIN もクライアント側でやればいい。

サーバー側のお仕事

サーバー側はレスポンスを XML か JSON で返す Web API を提供するだけ。
Google App Engine なら、appengine-rest-server みたいなフレームワークがあればサクッと作れる。
Windows Azure なら WCF Data Services がある。
リッチな UI を提供しようと思ったら、どうせ Web API は作ることになるので、Web API の作成コストは気にしない。

サーバー側のリソース節約になる?

Silverlight や Flash なら、サーバー側で動的に HTML を生成しないので、その分リソース節約になりそうだ。
JavaScript でも、JavaScript 用の HTML テンプレートエンジン使えば、クライアント側で HTML を生成できる。
それに、GAE や Windows Azure ならお金の節約にもなる。

こんな設計もアリかもね

クラウド時代では、こんな設計も選択肢の1つじゃないかな。
サーバー側が .NET 以外の場合、Silverlight なら Visual Studio の恩恵を受けられる範囲が広がる。この妄想はこれが目的。
JavaScript の場合は、実装やテストが大変だけど。