これでわかったASP.NET

FEATURE
04
特 集
これでわかったASP.NET
基礎から実践、最適化までWebアプリケーションの秘技と奥義
クライアントに
.NET Framework は
不要?
初音 玲
ロジックはどこで動くのか
HATSUNE, Akira
GUIで実装し、両者の違いについて検
Technology Tools
はじめに
✓ Visual Basic .NET
Visual C# .NET
最近、Visual Basic .NET(以下VB
SQL Server 2000
.NET)になって追加されたWebアプリ
Oracle 9i
ケーション作成機能を誤ったイメージ
Access 2002
✓ ASP.NET
✓ Internet Information Services
Other:
Level
★ ★ ★ ★ ★
Samples
・この記事で取り上げたソースコードおよび
サンプルプログラムは、付録CD-ROMの
¥DOTNET¥F01_04ディレクトリに収
録しています。
¥CS_CALC
クライアントサイドサンプル
¥SS_CALC
(先入観)により誤解してしまっている
XML Webサービスサンプル
¥WEBCALC
XML Webサービス利用(Web版)
・Webブラウザ上でロジックが動作す
るクライアント側プログラム
・Webサーバー上でロジックが動作す
るサーバー側プログラム
と思われる方からの質問を受ける機会
があった。曰く、
「Webアプリケーショ
なお、両者は共にASP.NET上で動作
ンを実行するクライアントにも .NET
するプロジェクトとして作成する。各々、
Frameworkは必要なんですよね。
」と。
Visual Studio .NET(以下VS.NET)の
これは、
「VB.NETで作成したロジック
IDEで、メニューから[新しいプロジ
がどこで実行されるのか」に関する理
ェクト]-[ASP.NET Webアプリケー
解が不足していることと、
「動作効率を
ション]を選択して、指定した場所に
考え、ある程度の入力データチェック
Webアプリケーションのプロジェクト
をWebクライアント上で行ないたい」
を作成してからコードを記述してゆく。
という思いから発せられた質問だった。
そこで、今回は、VB.NETでWebア
サーバーサイドサンプル
¥WS_CALC
討してゆく(図1)
。
プリケーションを開発したときに、ど
コード記述の違い
こでロジックが動くのかを明解にし、
誤解を払拭してみたい。
aspxファイルの記述の違い
¥WINCALC
XML Webサービス利用(Win版)
¥SETUP
取り上げるサンプルについて
ザーインターフェイスファイル」と呼
各サンプルプログラムのインストーラ
78
dotNET Magazine 2003 July
ASP.NETのaspxファイルは、
「ユー
本稿では、2つの数値を四則演算す
ばれるファイルで、ASP.NETは、ここ
る機能を、次の2つのサンプルに同じ
に記述された内容をHTMLに翻訳して
ASP.NET are GO!
図1:サンプルの構成と処理の流れ
クライアント側プログラム(サンプルCS_Calc)
実行画面
プロジェクト構成
Webブラウザ
Webサーバー
図2:クライアントサイドサンプル「CS_Calc」
のCS_Calc.aspx.vb
サーバー側プログラム(サンプルSS_Calc)
実行画面
プロジェクト構成
Webブラウザ
Webサーバー
ックしたときに、クライアントサイド
サンプルとサーバーサイドサンプルで
ページ要求
ページ要求
は、まったく異なる動作を行ない、結
ページ送信
ページ送信
果を表示する。
四則
四則演算要求
求
四則演算
四則演算
結果送信
CS_Calc.aspxの実行
Webブラウザでクライアントサイド
この分離コードクラスを比較したと
サンプルであるCS_Calc.aspxをアドレ
リスト1がクライアントサイドで四則
きに、2つのサンプルの違いがさらに明
スに指定して実行すると、四則演算ペ
演算を行なうサンプル「CS_Calc」の
確になる。クライアントサイドで四則
ージが表示される。
CS_Calc.aspx、リスト2がサーバーサイ
演算を行なう場合は分離コードクラス
画面上の2つのテキストボックス欄に
ドで四則演算を行なうサンプル「SS_
自体が不要になり(図2)
、サーバーサ
数字を入力し、コンボボックスで四則
Calc」のSS_Calc.aspxのコードだ。
イドで四則演算を行なう場合は四則演
演算を選択してから、
[=]ボタンをク
算を VB.NET で記述することになる
リックすると、以下の動作がすべて、
Webブラウザに送信する。
aspxファイルを比較したときの違い
は、クライアントサイドで四則演算を
(リスト3)
。
Webブラウザの中だけで行なわれる。
行なうときにはJScriptで計算ロジック
分離コードクラスがaspxファイルに
を記述しているが、サーバーサイドで
対応したサーバー側のロジックを記述
①[=]ボタンがクリックされると、On
四則演算を行なうときには計算ロジッ
するクラスであることを考えれば、こ
Clickイベントハンドラに記述された
クは記述していないという点だ。
れは比較的簡単に理解できると思う。
「cmdExec_Click」関数がJScriptの
機能により呼び出される。
分離コードクラスの記述の違い
実行時の違い
ASP.NETでは、aspxファイルに対応
<td><INPUT type="button" value=" = "
name="cmdExec"
onclick="cmdExec_Click()"></td>
<td><INPUT id="txtAns" type="text"></td>
したサーバー側ロジックは、
「分離コー
2つのサンプルでは、画面上の2つの
ドクラス」と呼ばれるファイルに記述
テキストボックス欄に数字を入力し、
②「cmdExec_Click」関数の中では、
する。分離コードクラスのファイル名
コンボボックスで四則演算を選択して
ページ上の値を取得して四則演算を
は、コードをVB.NETで記述するなら
から、
[=]ボタンをクリックすると最
行ない、演算結果をページ上の所定
ば、aspxファイルに“.vb”を付けたフ
下行のテキストボックスに演算結果が
の項目にセットする。
ァイル名(XXXX.asax.vb)となる。
表示される。この[=]ボタンをクリ
dotNET Magazine 2003 July
79