|
さて、今回が実践の部屋の初回になりますので、本題に入る前に今後、実践の部屋で扱っていく内容について
お話したいと思います。実践の部屋では、「ClickOnceを使用して業務アプリケーションを構築する」ために
必要なプログラミング技術、(すなわち.NETの開発技術になるわけですが)を紹介していきたいと思っています。
特に私のようにWebシステムを長らくやってきたエンジニアにとっては、WindowsFormを使用したアプリケーションは未知
の世界?になると思いますので、Webとの違い(画面デザインの仕方)等についても力をいれてご紹介したい
と思います。 初回の題目は「ASP.NET XML Webサービスを使用してみよう」です。 ClickOnceアプリはWebシステムとは異なり、いわゆる中間層が無い形の構成を取ることが可能です。 Webシステムでは最小構成でも「ブラウザ」−「Webサーバー(Webアプリサーバー)」−「DBサーバー」 の構成をとる必要がありました。しかし、ClickOnceアプリでは「ClickOnceアプリ」−「DBサーバー」という 構成を取ることが可能になります。しかし、この場合、DBサーバーのポートを全クライアントに向けて 開いておく必要がある為、情報の保護という観点から見るとかなり危険です。この点から、ClickOnceアプリでも Webのように少なくとも3つの階層を持つことが望ましいと思います。つまりWebシステムで「ブラウザ」が担っていた 部分を「ClickOnceアプリ」を置き換えて、「ClickOnceアプリ」-「アプリケーションサーバー」−「DBサーバー」 といった構成にするのです。 この構成をとった場合、「ClickOnceアプリ」と「アプリケーションサーバ」との間で、なんらかの手段を使って 通信を行う必要がでてきます。.NETではこのようなケースでリモート処理を行う手段が豊富に提供されています。 今回はその中の一つのASP.NETのWebサービスを使用する場合の、プログラミングを解説していきたいと思います。 他のリモート処理のオプションとの比較等は今後、行っていきたいと思います。 今回、作成するアプリケーションは、クライアント側のテキストボックスに入力された文字列を サーバー側に送信し、サーバー側で、その文字列の前に「Hello!」という文字列を付けて、 クライアントに戻すというものです。
ClickOnceアプリは「Visual C# 2005 Express Edition Beta 」で作成し、Webサービスは「Microsoft .NET Framework SDK v2.0」 で作成します。(CodeBehindにしない場合は必要ありません。) まずはWebサービスの方から作成していきます。ASP.NETではWebサービスは、「asmx」という拡張子という が付いたファイルに記述します。以下が今回作成したWebサービスのソースです。 「SampleService.asmx」
それではソースの方を見ていきます。1行目はWebサービスを作成するためのおまじないです。 Language属性には、今回使用する言語である「C#」を、Class属性にはWebサービスのクラス名を 記述します。
5行目以降がWebサービスのクラスの記述になりますが、ポイントが2点にあります。
まず1つは、System.Web.Services.WebServiceクラスを継承する点です。これはASP.NETで
Webサービスを作成するためのお約束事項です。 クライアント側での最初の作業は「Web参照」を追加する事です。 以下がでWeb参照を追加するための画面です。
URLに先ほど作成した[SampleService.asmx]が置かれている場所を指定します。
すると「このURLで見つかったWebサービス」欄にSampleServiceが表示されます。
パッケージ名になるWeb参照名を入力して、「Web参照の追加」をクリックします。
さて、ここまでくれば後は簡単です。 以下のようにしてSampleServiceクラスのメソッド「Hello」を呼び出して下さい。
| |
private void sendButton_Click(object sender, EventArgs e)
{
SampleService service = new SampleService();
String result = service.Hello(nameText.Text);
MessageBox.Show(result);
}
|