.NET Framework入門

7.ASP.NET(2)

― VBライクなWebアプリケーション開発を可能にするASP.NETのサーバ・コントロール群


デジタルアドバンテージ 遠藤孝信
2000/12/14

p.1 p.2 p.3 p.4 p.5 p.6 p.7 p.8 p.9

本記事は改訂されました。改訂版の「.NETとは何か? ― 基礎解説:.NET初心者のための.NET入門【2011年版】」をご覧ください。

HTMLコントロールとWebコントロール

 今述べたとおり、ASP.NETは.NET Framework上で動作するため、ロジック部分の記述には自分の好きな言語を使用することができる。スクリプトは、初めてそのページが呼び出されたときにサーバ側でコンパイルされ、実行される。2回目以降の呼び出し時には、コンパイル済みのコードが使用される。

 Webアプリケーションを作成するためのベース・クラスは、クラス・ライブラリにおいて「Web Forms」と呼ばれているが、これはWebページをVBでのフォームと同様にプログラミングできるためである。

 Web Formsで扱われるボタンなどのコントロールは、「サーバ・コントロール」と呼ばれる。サーバ・コントロールには「HTMLコントロール」と「Webコントロール」の2種類あり、既存のテキストボックスやボタンなどに1対1に対応したコントロールは「HTMLコントロール」と呼ばれる。このHTMLコントロールも、次のようにこれまでのinputタグにrunat属性を追加することによって、スクリプトと関連付けることができる。

 このコード例は、フォーム内に「OK]ボタンを表示するものだ。このコードでブラウザに表示される「OK」ボタンがクリックされると、スクリプトで記述された「OK_click」という関数(メソッド)が呼び出される。

 一方の「Webコントロール」は、既存のHTMLコントロールを抽象化したもので、HTML中では次のようにaspタグを使用する。これも上と同様に、フォーム内で「OK」ボタンを表示するためのコードだ。

 Webコントロールには、カレンダーやイメージ・ボタンなど、標準のHTMLコントロールにはない、よりリッチなコントロールもいくつか用意されている。これらもHTMLコントロールと同様にWebページに張り付けて使用することができる。WebコントロールがWebブラウザに表示されるときには、標準のHTMLデータとJScript(JavaScript)などを組み合わせたものになるので、ActiveXコントロールのように、あらかじめクライアント側にダウンロードしてインストールしておく必要はない。これらはすべて.NET Frameworkのクラス・ライブラリで実装されている。たとえば次の画面は、カレンダー用のWebコントロールを表示したところだ。

Webコントロールの例、カレンダーWebコントロール

Webコントロールには、カレンダーやイメージ・ボタンなど、標準のHTMLコントロールにはない、よりリッチなコントロールが用意されている。WebコントロールがWebブラウザに表示されるときには、標準のHTMLデータとJScript(JavaScript)などを組み合わせたものになるので、ActiveXコントロールのように、あらかじめクライアント側にダウンロードしてインストールしておく必要はない。

 上の例で使用しているブラウザはInternet Explorer 5.5(以下IE5.5)である。このカレンダーでは、マウスを使って表示している月を変えることもできるし、クリックした日や週は色が変わるようになっている(画面の例では、2000年12月を表示し、第4週を反転表示にしている)。HTMLのソース・コードを覗いてみると、このカレンダーは、JavaScriptとHTMLのテーブル・タグを組み合わせて表示されているのが分かる。ActiveXコントロールをローカルにインストールしているわけではない。

 このWebコントロールは抽象化された存在であり、Webブラウザに対して生成されるHTML+スクリプト・コードは常に同じというわけではない。そのコントロールがどのように表示されるかは(ブラウザに対してどのようなコードが送られるかは)、ブラウザによって自動的に変化する。例えばIE 5.5などの高機能なブラウザならDynamic HTMLのデータを出力するが、Dynamic HTMLに対応しないブラウザには対しては単純なHTML3.2のデータを出力する。さらに相手が携帯電話上のブラウザなら、もっと別のデータになるだろう。つまり、ASP.NETがブラウザの表示能力を自動的に判断し、その結果に応じて、Webコントロールを表現するためのHTMLのコードをブラウザに返すのである。

 Webコントロールは、必要ならユーザーが独自に作成することもできる。Visual BasicやC#など、Visual Studio.NET環境でサポートされる言語処理系でコントロールを作成しておけば、それらを任意のプログラム中でサブクラス化し、再利用することも可能だ。

フォームで入力された値の整合性をチェックしてくれるValidationコントロール

 Webページ上のフォームで入力された値の整合性をチェックしてくれる便利なサーバ・コントロールも準備された。このコントロールは「Validationコントロール」と呼ばれる。これは、ページ上のフォームで入力された値が空でないか、指定された範囲内にあるかなどを検査することができ、再入力が必要な個所にエラー・メッセージを表示することもできる。

 Validationコントロールの実際の挙動もブラウザによって自動的に変化する。例えばIE5.5では、Dynamic HTMLが使用されるので、テキスト・ボックス間でフォーカスが切り替わったときに、入力必須の項目が空でないかどうかはクライアント側だけでチェックされ、その場でエラー・メッセージが表示される(サーバ側はいっさい感知しない)。これに対し、例えばDynamic HTMLに対応しないネットスケープ・ナビゲータでは、いったんサーバにフォームの情報を送らなければチェックすることができないため、フォーカスを切り替えただけでは何も起こらず、「送信」ボタンが押されるなどしてサーバにいったんアクセスした後でエラー・メッセージが表示される。これらどちらのブラウザで実行されるにせよ、開発者はValidationコントロールを配置し設定するだけで、それがブラウザとどのようなデータをやり取りするかを意識することなく、フォームを含むページを設計できるようになる。

 このようにASP.NETは、ASPから大幅に機能が強化され、.NET Frameworkとうまく融合されることによって、洗練されたWebアプリケーションの開発環境を提供している。今回はごく簡単な例しか示していないが、本来のビジネス・ロジックとは関係のないコード(約束事のようにコーディングが必要になるコード)は極力記述しなくてもよくなっているし、オブジェクト指向の特徴を活かして、コードだけでなくコントロールまでも再利用できるようにしている。実際のところWeb Formsには、まだまだ新しい機能が備わっているのだが、この詳細は後の記事に譲るとして、次はWeb Serviceに話を進めよう。


 INDEX
  [特集].NET Framework入門
    1.Microsoft.NETプラットフォームとWeb Service
    2..NETプラットフォームと.NET Framework
    3.Common Language Runtime(1)
   CLRの内部構造とプログラム実行の流れ
    4.Common Language Runtime(2)
   CLRによる複数言語サポート:
    VS.NETで標準サポートされる言語処理系
    5.Common Language Runtime(3)
   CLRによる複数言語サポート:
   サードパーティによってサポートが予定されている言語処理系
    6.ASP.NET(1)
    ASP.NETで何が変わるのか? まずは既存のASPと比較してみよう
  7.ASP.NET(2)
    VBライクなWebアプリケーション開発を可能にするASP.NETのサーバ・コントロール群
    8.ASP.NET(3)
    Web Service開発始めの一歩。サービス公開に必要なのはキーワード指定1つ 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間