C#たんと学ぶ/わりと硬派なソフトウェア開発講座
第3回「Webアプリケーション」(前編)
C#たんと学ぶ わりと硬派なソフトウェア開発講座(6)
Web
|
|
まあ、まずはWebの基本から。
|
|
|
Webって言っても、アプリケーションの作り方には大まかに2通りあるわよねー。サーバー上でHTMLを作るか、データだけ返してクライアントで描画するか。
|
Webアプリケーション(HTMLを作る)
一番オーソドックスなスタイルのWebアプリケーションは、サーバー上でHTMLを作って、ブラウザーに表示してもらうものね。
初回にWebアプリケーションとして紹介したのはこのタイプ。今回の説明のターゲットも、これね。
これのいいところは、HTMLというものが標準化ベースで作られていて、どのブラウザーでも表示できるところ。ブラウザーごとに対応状況が違ったりして悩むこともあるけども、少なくとも、こなれてきた部分に関しては、どんな環境でも表示できるわ。
一方、標準化ベースというのには、悪いところもある。1つは、いろんな環境に共通する部分しか使えないこと。機器の力を最大限引き出すことは無理なの。もう1つは、標準化に時間がかかること。仕様を決めるの自体にも時間がかかるし、バグなくそれに準拠するのにも時間がかかるわ。あとから仕様の穴が見つかることもあって、互換性を取り直すのにはさらに時間がかかったりも。
あと、標準化と関係なく心配なのは、HTMLってのは、あくまでドキュメント記述用の言語なの。もともとGUIアプリケーションを書くためのものじゃなかったし、表現力はあまり高くないわ。
|
|
といっても、HTML5で、かなり表現力が上がって、HTMLだけでもずいぶんいろんなことができるようになったわね。
|
|
|
本体の用途を逸脱して汎用化するのって、あんまりいい結果は招かないのよね…
それに、JavaScriptへの依存度の高さも心配だわ。それを差し引いても、標準であることのメリットが大きいのだけども。 |
Webサービス(データだけ作る)+ネイティブクライアント
そんなHTMLと相補的な位置にあるのが、サーバーではデータだけを送り返して、ネイティブクライアントで描画する方法ね。
ここでいうネイティブってのは、機器やOS固有の開発フレームワークを使うことね。C++(CPUのネイティブコード)を使うってことじゃなくて、Windows PCであれば、第2回で説明したような、デスクトップアプリケーションになるわ。iPhone/iPadならObjective-Cで、AndroidならJavaでの開発のこと。
この話は、次回以降に改めてすることになると思う。
Webアプリケーションを作るには
|
|
話をWebアプリケーションに戻すわね。Webアプリケーションを作るためには、大まかにいうと、3つの処理が必要なの。
|
- ルーティング
- アプリケーション本体の処理
- HTMLテンプレーティング
このうち、1.と3.は、フレームワークに手伝ってもらうことになる。開発者が注力すべき点は2.の、アプリケーション本体ね。
1.のルーティングは、URLと、呼び出される処理を結び付けておくことね。HTTPリクエストをどこに送るか、経路指定(ルーティング)するという意味なの。
2.のアプリケーション本体の処理は、デスクトップアプリケーションと同様、第2回でも説明した通り、GUIに依存しないように作るべきよ。今回説明するASP.NETにも依存しないように作らないとダメ。Webページに表示したいデータだけ作って返して。
そして、3.のHTMLテンプレーティングで、データをHTML化するの。HTMLを生成するためのテンプレートには「どこにどの値を表示する」という印だけを入れておいて、そこに値を当てはめていく処理(テンプレーティング)を掛けるわけ。
この記事は参考になりましたか?
- C#たんと学ぶ/わりと硬派なソフトウェア開発講座連載記事一覧
-
- C#たんと学ぶ/わりと硬派なソフトウェア開発講座 第3回「Webアプリケーション」(前編)
- C#たんと学ぶ わりと硬派なソフトウェア開発講座 番外編「Windows Phone 7」
- C#たんと学ぶ/わりと硬派なソフトウェア開発講座 第2-2回「デスクトップアプリケーション...
- この記事の著者
-
C#たん ソフトウェア開発講座 制作委員会(シーシャープタン)
ソフトウェアに求められる要求の高度化とともに大きくなる開発者への負担を、開発ツールやフレームワーク、時には萌え力を頼りに軽減できないか考えるプロジェクト。C#たんは単なるマスコットかと思いきや、割と毒舌。自分のことは棚に上げて、「萌えればいいってもんじゃないですよ?」が信条。twitter: @cs...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
