Web
![]() |
まあ、まずはWebの基本から。
|
![]() |
Webって言っても、アプリケーションの作り方には大まかに2通りあるわよねー。サーバー上でHTMLを作るか、データだけ返してクライアントで描画するか。
|
Webアプリケーション(HTMLを作る)
一番オーソドックスなスタイルのWebアプリケーションは、サーバー上でHTMLを作って、ブラウザーに表示してもらうものね。
初回にWebアプリケーションとして紹介したのはこのタイプ。今回の説明のターゲットも、これね。
![](http://cz-cdn.shoeisha.jp/static/images/article/6411/6411_fig1.gif)
これのいいところは、HTMLというものが標準化ベースで作られていて、どのブラウザーでも表示できるところ。ブラウザーごとに対応状況が違ったりして悩むこともあるけども、少なくとも、こなれてきた部分に関しては、どんな環境でも表示できるわ。
一方、標準化ベースというのには、悪いところもある。1つは、いろんな環境に共通する部分しか使えないこと。機器の力を最大限引き出すことは無理なの。もう1つは、標準化に時間がかかること。仕様を決めるの自体にも時間がかかるし、バグなくそれに準拠するのにも時間がかかるわ。あとから仕様の穴が見つかることもあって、互換性を取り直すのにはさらに時間がかかったりも。
あと、標準化と関係なく心配なのは、HTMLってのは、あくまでドキュメント記述用の言語なの。もともとGUIアプリケーションを書くためのものじゃなかったし、表現力はあまり高くないわ。
![]() |
といっても、HTML5で、かなり表現力が上がって、HTMLだけでもずいぶんいろんなことができるようになったわね。
|
![]() |
本体の用途を逸脱して汎用化するのって、あんまりいい結果は招かないのよね…
それに、JavaScriptへの依存度の高さも心配だわ。それを差し引いても、標準であることのメリットが大きいのだけども。 |
Webサービス(データだけ作る)+ネイティブクライアント
そんなHTMLと相補的な位置にあるのが、サーバーではデータだけを送り返して、ネイティブクライアントで描画する方法ね。
ここでいうネイティブってのは、機器やOS固有の開発フレームワークを使うことね。C++(CPUのネイティブコード)を使うってことじゃなくて、Windows PCであれば、第2回で説明したような、デスクトップアプリケーションになるわ。iPhone/iPadならObjective-Cで、AndroidならJavaでの開発のこと。
![](http://cz-cdn.shoeisha.jp/static/images/article/6411/6411_fig2.gif)
この話は、次回以降に改めてすることになると思う。
Webアプリケーションを作るには
![]() |
話をWebアプリケーションに戻すわね。Webアプリケーションを作るためには、大まかにいうと、3つの処理が必要なの。
|
- ルーティング
- アプリケーション本体の処理
- HTMLテンプレーティング
このうち、1.と3.は、フレームワークに手伝ってもらうことになる。開発者が注力すべき点は2.の、アプリケーション本体ね。
1.のルーティングは、URLと、呼び出される処理を結び付けておくことね。HTTPリクエストをどこに送るか、経路指定(ルーティング)するという意味なの。
![](http://cz-cdn.shoeisha.jp/static/images/article/6411/6411_fig3.gif)
2.のアプリケーション本体の処理は、デスクトップアプリケーションと同様、第2回でも説明した通り、GUIに依存しないように作るべきよ。今回説明するASP.NETにも依存しないように作らないとダメ。Webページに表示したいデータだけ作って返して。
そして、3.のHTMLテンプレーティングで、データをHTML化するの。HTMLを生成するためのテンプレートには「どこにどの値を表示する」という印だけを入れておいて、そこに値を当てはめていく処理(テンプレーティング)を掛けるわけ。
![](http://cz-cdn.shoeisha.jp/static/images/article/6411/6411_fig4.gif)