web2.0
最近流行の web2.0 とは何だろうか?
この問いに対する、2005/11/11現在の俺の回答としては、
「
-
XML-syndicated なコンポーネントの組み合わせで、別のサービスを組み立てておいて、
-
各コンポーネントの組み合わせを、ユーザが自由に変えられるようにしたり、
-
なんだったら、ユーザ自身がコンポーネントの開発に参加できるようにしたり、
-
その勢いで「ソーシャル」展開したり、
みたいなもの
」
としておく(間違ってたら教えてください)。
早い話が、
「最近アツいウェブアプリってこんな感じ」を、なんとなく総称するための、
「そうそう。あなたが今まさに思い描いているアレですよ、アレ」的な、便利な代名詞。
なるほど。
Ajax
そこに登場したのが、
web2.0 を印象付けている仕掛け "Ajax" だ。
この Ajax の登場によって、
ウェブアプリケーション開発手法の見直しを迫られている開発者も少なくないはずだ
(かく言う俺もその一人)。
MVC2.0
これまでのウェブアプリケーションの MVC フレームワークは、
ほとんど全てサーバサイドで完結していた。
【サーバサイド MVC】
M(モデル) = RDB
V(ヴュー) = XHTML + CSS
C(コントローラ) = PHP,Perl,Ruby,...
ところが、Ajax では、
クライアントサイドにも MVC フレームワークが必要だ。
【クライアントサイド MVC】
M(モデル) = XML,JSON
V(ヴュー) = XHTML + CSS
C(コントローラ) = JavaScript
この文脈でのサーバサイドの役割は「M(モデル)に徹する事」になる。
(XML より JSON のほうが断然良いと俺は思う)
OK。ここで、話をまとめる。
問題
「Ajax なウェブアプリケーション」を MVC で設計するには、
「サーバサイドMVC」と「クライアントサイドMVC」とを、
局面毎に使い分ける必要がある。
これだけでも充分メンドウだが、
- single-page で展開するか?
- multi-page で展開するか?
で、MVC の設計が全く違ってくる気がする。
参考
更に、web2.0 というからには、
REST または SOAP な API も提供しておきたくなる。
(XML で提供するのが一般的だけど、XML メンドいし、JSON で良いかなぁ?)
対策
とりあえず、実際にいろいろなフレームワークを試してみて、
感じをつかもうと思う。
ということで、今回オチなかったので、続きます。