連載:世界のWebサービス
第1回 Web Services for Smart Searching

3.Webアプリケーションから呼び出してみよう

田口景介
2001/01/31


 Webサービスの仕様はだいぶ明確になった。そこで作ってみたのが、次の画面とリストに示す簡単なWebアプリケーションだ。テキストボックス(TextBox1)に検索文字列を入力して、ボタン(Button1)をクリックすると、結果がデータグリッド(テーブル状にデータを表示するWebコントロール)に表示されるだけの単純なモノだ。

Webアプリケーション(フォーム)

Webフォーム上にテキストボックス、ボタン、データグリッドを配置する。そしてボタンをダブルクリックしコードを入力する。
  [テキストボックス]コード上のTextBox1に対応するテキスト・ボックス・コントロール。
  [ボタン]コード上のButton1に対応するプッシュ・ボタン。
  [データグリッド]コード上のDataGrid1に対応するコントロール。実行時にはHTMLのTABLEタグに展開される
 
public void Button1_Click (object sender, System.EventArgs e)
{
 // Webサービスの作成
 com.microsoft.uddi.MSComSearchService css
  = new com.microsoft.uddi.MSComSearchService();
 com.microsoft.uddi.BestBetsData bd
  = css.GetBestBets(TextBox1.Text);
 com.microsoft.uddi.BestBetItem bi;

 // DataGridに対応付けるDataTableの準備
 DataTable dt = new DataTable();
 dt.Columns.Add(new DataColumn("Rank", typeof(string)));
 dt.Columns.Add(new DataColumn("DisplayTerm", typeof(string)));
 dt.Columns.Add(new DataColumn("Title", typeof(string)));

 // テーブルの要素を登録
 DataRow dr;
 for (int i = 0; i < bd.BestBetsCount; i++)
 {
  bi = bd.BestBetsItems[i];
  dr = dt.NewRow();
  dr[0] = bi.Rank;
  dr[1] = bi.DisplayTerm;
  dr[2] = "<A HREF=" + bi.Url + ">" + bi.Title + "</A>";
  dt.Rows.Add(dr);
 }

 // DataViewを作成し、DataGridにバインド
 DataView dv = new DataView(dt);
 DataGrid1.DataSource = dv;
 DataGrid1.DataBind();
}

Webアプリケーション(コード)

ボタンButton1をダブルクリックし、このコードを入力する

 こうして作成したWebアプリケーションは、ローカルマシンのWWWサーバ(IIS)に登録されているので(プロジェクトを作成したときに登録される)、今回はhttp://localhost/WebApplication/WebForm1.aspxをブラウザで表示すると、Webアプリケーションが起動される。次に起動した状態を示す。

作成したWebアプリケーションを起動したところ

作成したWebアプリケーションを実行したところ。ここでは例として、“com”という文字列を入力して検索を実行してみた。検索が完了すると、下側に表形式で検索結果が表示される。
  試しに「com」と入力する。
  このボタンをクリックすると、検索処理が開始される。
  検索結果一覧。今回検索した「com」に関連したタイトルが表形式で表示されている。

 例えばここで、テキストボックスに“com”と入力して右の[検索]ボタンをクリックすると、画面のように結果が表示される。どうもこのWebサービスの趣旨に反した結果のような気がしないでもないが、“com”に関連するフレーズとして「Component Object Model(COM)」(表中の“DisplayTerm”の列)が見つかり、関連するURLとそのタイトル(同じく“Title”の列)を表示している。先頭の“Rank”は、検索キーワードに対する結果としてのふさわしさを表す、適合率というところだろう。おそらくRankの数値が小さいほど、お勧めの結果ということだ。

 あまりに手軽で感慨もないかもしれないが、これがWebサービスの1つの形というわけだ。 Web Services for Smart Searchの裏に存在するデータベースにさまざまな単語が登録されれば、きっと役に立つサービスとなろう。

WebサービスはWWWのサービスにあらず

 ところで、今回はWebサービスの利用例を示すためにWebアプリケーションを作成したが、次回は、Windowsアプリケーション(Windowsプログラマにとっては最も馴染み深いWindows環境用のアプリケーション)でWebサービスを利用するサンプルを作ってみようと思っている。Webサービスの利用例として、Webアプリケーションをサンプルに使う例が多く見られるため、.NET環境ではWebブラウザがアプリケーションプラットフォームになるという一面的な見方をしている読者がいるかもしれないからだ。それは誤解で、すべてのアプリケーションがWebアプリケーションになる必要はないし、ローカルマシンで動作するWindowsアプリケーション(.NET Frameworkをベースに動作する、exe実行ファイルを持つアプリケーション)でもWebサービスを呼び出すことが可能だ。ちなみに、今回作成したWebアプリケーションと同等のWindowsアプリケーションを作成したが、上記リストをわずかに1行変更するだけで動作させることができた。

 まだ登場したばかりの.NETであるため、残念ながら、まだまだ紹介に値するWebサービスが少ないのが現実である。しかし開発環境であるVisual Studio.NETのベータ版の提供も開始された今、水面下では、Windowsプログラマたちが.NETプログラミングにチャレンジしているに違いない。世界各国から優れたWebサービスが登場するのを願うと同時に、本稿の読者ご自身にも、ぜひともWebサービス開発にトライしてみていただきたいと願う。もちろん、優れたWebサービスはどんどん本連載にて紹介させていただきます。End of Article

関連リンク
asmxファイル

 

 INDEX
[連載]世界のWebサービス―― 究極のWebサービスを求めて ――
  第1回 Web Services for Smart Searching
    1.Webサービスはここで探せ!
    2.とりあえずプロジェクトに組み込んでみる
  3.Webアプリケーションから呼び出してみよう
 
「世界のWebサービス」

 



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 記事ランキング

本日 月間