|
Webアプリケーションで使われるコントロールは、Web
Formsコントロールと呼ばれます。これらは、System.Web.UI.WebControlsネームスペースで提供されるクラスであり、Windowsアプリケーション用のコントロールとはまったく異なるものです。ただしプログラミング上は、両者の使い勝手が極力同じになるように、プロパティやイベントの名前や機能が合わせられています。
コードビハンドとなるプログラムは、Webサーバー側で実行されます。したがって、スタンドアロンのWindowsアプリケーションと同じことができても不思議ではありません。ただし、WindowsアプリケーションがWindowsの高度なグラフィックス機能を使って外観を描画するのに対し、Webアプリケーションの外観は、すべてHTMLのタグで描画しなければなりません(見劣りのするものとなります)。すなわち、Web
Formsコントロールとは、サーバー側で何らかの処理を行い、その結果をHTMLのタグでWebブラウザに転送するものなのです。
図3は、Webアプリケーションの作成時にツールボックスに表示されたWeb Formsコントロールのアイコンです。Web
Formsコントロールの種類は大きく4つに分類できます(表1)。
図3 Web Formsコントロールのアイコン

表1 Web Formsコントロールの種類
|
分類
|
機能
|
主なコントロール
|
| 基本コントロール |
1つのHTML要素を表す。 |
Button、ImageButton、CheckBox、CheckBoxList、DropDownList、ListBox、ListItem、Label、Image、Panel、RadioButton、RadioButtonList |
| リッチコントロール |
高度な外観と機能を実現する。 |
Calendar、AdRotator |
| データ関連コントロール |
データベースの内容を表示する。 |
DataGrid、DataList |
| 入力検証コントロール |
入力チェック用のJscriptを生成する。 |
CompareValidator、CustomValidator、RangeValidator、RegularExpressionValidator、RequireFieldValidator、ValidationSummary |
基本コントロールは、1つのHTML要素に対応したコントロールです。「そんなものコントロールでなく、HTMLのタグで書けばいいじゃないか」と思われるかもしれませんが、そうではありません。コントロールを使うからこそ、Webブラウザ側でボタンをクリックしたイベントの処理をサーバー側で行えるのです。さらに、HTML流のタグのパラメータ名を、プログラミング上は.NET流のプロパティ名で取り扱えるようにしてくれます。たとえば、ボタンの表面に表示される文字列はHTML流ではvalueで指定しますが、コントロールのプロパティはTextとなっています。これはWindowsアプリケーション用のコントロールのプロパティ名と同じです。
リッチコントロールは豪華なユーザーインターフェイスを提供してくれます。たとえば、カレンダーコントロールは複数のHTMLのタグを生成して外観を形成します(図4)。
図4 カレンダーコントロール

データ関連コントロールは、Webサーバー側のデータベースの内容を表形式やリスト形式のHTMLのタグにしてWebブラウザに転送します。表を実現するためには、もちろん多数のタグが生成されます。
入力検証コントロールは面白い存在です。会員登録などを行うWebページでは、入力にエラーがあった場合に、それをHTMLに挿入したスクリプトでチェックするのが一般的です。いちいちWebサーバーに転送してチェックを行っていたのではパフォーマンスが低下するからです(ユーザーが怒ります)。入力検証コントロールは、このような入力チェックのためのJScriptを自動生成し、それをHTMLに挿入します。入力エラーがあった場合にはメッセージを表示します(図5)。
図5 入力検証コントロール

.NETのWebアプリケーションは、Web
Formsコントロールを使って作成しなければならないわけではありません。従来のASPのように、個々のHTMLのタグをプログラム的に転送することも可能です。とは言え、Web
Formsコントロールを使えば効率的に楽しくプログラミングできます。Visual Studio .NETを使えば、皆さんのアイディアでオリジナルのWeb
Formsコントロールを作成することもできます。「HTMLのタグとJScriptを生成してWebブラウザで動作する本格的なグリッドを実現できた」なんて人がいましたら、ぜひ筆者にお知らせください。きっと大ヒット商品になりますよ!
|