はじめに
Web系のアプリケーションを作るにあたり、どうしても避けて通れないのがHTMLを使ったWebページの仕組みです。Windowsアプリケーションや、JavaのSwingといったWindowベースのGUIアプリケーションの作成とは、かなり違った面があります。このあたりの違いを理解することがHTMLを使ったWeb系のアプリケーションを作成する際、部品の再利用性を高める上で非常に有効なのではないかと筆者は考えます。
これまでの記事
対象読者
この記事の対象読者としては、
- JavaやPHPでWebのアプリケーションを書いたことがある人
- Visual BasicやJavaやDelphiなどでGUIアプリを書くと、どうなるかある程度分かる人
として記事を書いています。
HTMLとWindowベースのアプリの違い
まずは、HTMLとWindowベース(Windows上で動作するデスクトップアプリケーション等)の違いについて考えていこうと思います。
とっつきやすいのがWebアプリケーション
ここ数年で、HTMLをメインにしたWeb系のアプリケーションの開発が一気に増えました。これは、Webアプリケーション作りが簡単に開始できることを示していると思います。Windowベースのアプリケーションの場合、必ず最初に、
- Windowの定義
- イベントハンドラの登録
という手続きを踏み、このイベントハンドラの中でまた新しいWindowを作って初期化して、という処理の実装を求められます。この処理は入門者にとっては理解しにくいものとなっています。それに対してWebアプリケーションはどうでしょうか?
- HTMLとその中にフォームを書く
- フォームのactionに設定したページに自動的に遷移して、次のページでモデルの処理を行い、HTMLを表示する
という手続きを取ります。そのため、HTMLさえ書ければ、とりあえず動くものが作れるため、入門の敷居は非常に低くなります。では、本当にHTMLの方がすべてにおいて簡単なのでしょうか?
部品化が難しいHTMLベースのアプリケーション開発
実は、HTMLベースのアプリケーションは部品化が難しいのです。皆さんは、こういう経験がないでしょうか? 下図のような構成のWebアプリケーションを作るとします。当然Webアプリケーションなので、デザインも重要です。このような時に、一部デザインが変わったりすると、一部分を変えるのではなくて、そのデザインを使っているすべてのファイルを変える羽目になります。
一方、このようなことは、Windowベースのアプリケーションでも起こりうるのでしょうか? 実は起こりません。どんなに下手にプログラムしても、逆にこのような問題を発生させることの方が難しいくらいです。