.NET Framework SDKで始める.NETプログラミング(前編)

10.Hello World展覧会(7)
- Webサービス -

デジタルアドバンテージ 遠藤孝信
2001/02/10

p.1 p.2 p.3 p.4 p.5 p.6 p.7 p.8 p.9 p.10 p.11 p.12

Webサービス版Hello World

 次はWebサービス版のHello Worldである。といっても、WebサービスはSOAP/XMLインターフェイスを持つコンポーネントであり、それ自体はユーザー・インターフェイスを持たない。したがってWebサービス版のHello Worldプログラムとしては、クライアントのプログラムに対して“Hello World”の文字列を返すだけのものを作る。すぐ次で述べるWebアプリケーション版のHello Worldにおいて、このWebサービスを呼び出し、得られた文字列をブラウザに表示することにする。

 以下がWebサービス版Hello Worldのソース・リストである。

 1: // helloservice.asmx
 2:
 3: <%@ WebService Language="C#" Class="HelloClass" %>
 4:
 5: using System;
 6: using System.Web.Services;
 7:
 8: public class HelloClass {
 9:  [WebMethod]
10:  public String HelloService() {
11:   return "Hello Web Service World!";
12:  }
13: }
Webサービス版Hello Worldのソースコード
  3: このファイルがWebサービスを記述したもので、言語にはC#を用いており、公開するメソッドがHelloClassクラスに含まれていることを指示する。
  6: WebMethod(9行目)のためのネームスペース。
  8: 今回は“HelloWorld”クラスを作成する。
  9: Webサービスとして公開したいメソッドに対して、この[WebMethod]属性を指定する。
  10: 公開されるWebサービスの名称。
  11: クライアントに対して、文字列を返す。

 Webサービスは拡張子.asmxのファイルとして作成する。コンパイルする必要はない。URLを指定してアクセスできるように(「http://〜/helloservice.asm」という形式でWebブラウザからアクセスできるように)、IISのディレクトリにファイルを配置するだけである。Webサービスのプログラムは、最初にアクセスされたときに、これを管理するASP.NETによってコンパイルされ実行される。

 Webサービスといっても、通常のプログラムと比べて特別な処理はほとんど必要ない。具体的には、文字列を返す通常のメソッドに[WebMethod]属性を付けるだけである。ただし、この属性が使用するネームスペースを指定する必要がある(6行目)。

 またファイルの先頭で、このファイルがWebサービスを記述したものであることを示すWebServiceディレクティブ(directive:「指示」の意味)が必要となる。3行目がそれで、ここではWebサービスとして公開するメソッドはC#で記述され、クラスHelloClassに含まれていることを示している。この行だけは特別だが、それ以外の部分は通常のC#のソースコードだ。

 Webブラウザでこの.asmxファイルにアクセスすると、次のようなWebサービス用のテスト・ページが表示される。

Webサービスのテスト・ページ
IISのディレクトリに配置されたWebサービスの.asmxファイルをWebブラウザで表示すると、このようなテスト・ページが表示される。上端にクラス名(“HelloClass”)が表示されていることが分かる。
  このWebサービスが含まれるクラスの名称。
  Webサービスの起動ボタン。このボタンをクリックすると、Webサービスが実行され、今回の例では、文字列が返される。

 このテスト・ページの下部に配置された[Invoke]ボタンをクリックすると、Webサービスを実行することができる。今回のWebサービスは“Hello Web Service World!”という文字列を返すので、ブラウザにこの文字列が表示されるはずだ。[Invoke]ボタンをクリックした結果は次のとおりである。

上のテスト・ページで[Invoke]ボタンをクリックしたところ
テスト・ページで[Invoke]ボタンをクリックすると、Webサービスが実行される。今回のWebサービスは、“Hello Web Service World!”という文字列を返すので、この文字列がXML形式にエンコードされてWebブラウザに表示される。

 画面から、“Hello Web Service World!”という文字列がXML形式にエンコードされて送られていることが分かる。

関連記事(Insider.NET内)
特集
.NET Framework入門
Insider's Eye
Visual Studio.NETベータ1日本語版の入手法を総括する
関連リンク
マイクロソフトの.NET Framework SDKベータ1 日本語版のダウンロード・ページ
.NET Framework SDKベータ1(英語版)のダウンロード・ページ
IEのホームページ
Microsoft Data Access Components (MDAC) 2.6 RTM (2.60.6526.3) 日本語版 ダウンロード・ページ
最新障害情報ページ
 

 INDEX
  [特集] .NET Framework SDKで始める.NETプログラミング(前編)
    1..NET Framework SDKとは?
    2..NET Framework SDKをインストールする前に
    3..NET SDKのインストール
    4.Hello World展覧会(1)
    5.Hello World展覧会(2) - C# -
    6.Hello World展覧会(3) - VB.NET,JScript.NET -
    7.Hello World展覧会(4) - マネージド C++ -
    8.Hello World展覧会(5) - MSIL -
    9.Hello World展覧会(6) - Windows Forms -
 10.Hello World展覧会(7) - Webサービス -
   11.Hello World展覧会(8) - Webアプリケーション -
 
  [特集].NET Framework SDKで始める.NETプログラミング(後編)

更新履歴
【2001.2.11】本ページの冒頭にある「Webサービス版Hello Worldのソースコード」として、誤って他ページのソースコードと同一のものが掲載されていました。お詫びし、正しいソースコードに訂正させていただきます。


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

本日 月間