Biz/Browserと.NETでのシステム構築 〜Biz/Browserと.NETはベストパートナー!?〜
第1回
株式会社ディー・ティー・ピー 佐藤関也
0.はじめに
マイクロソフトの.NETは既に2000年7月の発表以来すでに9年を迎え、Windows XP、Vista、2003、2008、Windows
7などのOSに標準搭載されています。
近年サーバ系OSとしてWindowsが評価されてきており、ASP.NETなどの.NETテクノロジーを採用する企業も増えてきています。
しかし、ASP.NETあるいはASP.NETAJAXのHTML画面で作った場合、レスポンスや操作性などWebアプリの宿命ともいえる問題に必ず突き当たります。
これを超えるのがマイクロソフトのClickOnceやSilverlightなどのRIA技術です。
ところで、.NETがこれほど普及している中で、Webアプリケーションを Biz/Browserと.NETでつくる意味は何処にあるでしょうか?
それはズバリ、Biz/Browserのレスポンス、開発の容易さ、実績 の3つがポイントになります。
.NET+.NETのWebアプリケーションは実はサーバ側、クライアント側の作り方があまりにも豊富にありすぎるために、状況に応じたベストな開発手法が異なります。そのため、クライアントサーバ型システムの経験だけでWebアプリケーションを作ろうとすると100%失敗します。
.NET+Biz/Browserの場合、開発スタイルはほぼ一意に決まるため.NET、Biz/Designerそれぞれ適切な技術をもった開発者がいれば失敗することはありません。
また業務システムであれば凝ったアニメーションなどはほとんど必要ないため、Biz/BrowserのGUI部品で十分な品質のアプリケーションを構築することができます。
今回は簡単なWebアプリケーションを通して、
第1回目では、.NET側でのWebサービスはどうつくるのか、
第2回目では、Biz/Designer側の開発はどうするのか、
第3回目では、ワンポイントアドバイスと全体を通した解説を、
それぞれ行っていきます。
どれだけ手軽に .NET+Biz/Browserのアプリを構築できるか、その開発イメージをとらえていただきたいと思います。
1.サルでも分かる超簡単サンプルシナリオ
サーバ側はASP.NETWebサービスを使います。SOAP 1.1 というプロトコルを使いますが、特に意識する必要はありません。
クライアント側は当然Biz/Browserです。
「文字を表示したい」(textboxに入力した文字列をWebサービスに渡し、結合した文字列を取得する)
「足し算をしたい」(textboxに入力した数値をWebサービスに渡し、足し算した結果を取得する)
「XMLを使ってみたい」(サーバ上に置かれたXMLファイルをWebサービス経由で取得する)
この3つの機能を実現するようなアプリケーションを作っていきます。
やりたいことは超簡単ですね?
しかしこれができると、文字列、数値、XMLデータをWebサービスで扱うことができるのでほとんどの処理はこの応用パターンが使えるはずです。
2.まずは無償ツールをダウンロードしよう! (VS2008のダウンロード)
マイクロソフトのVisual Studio 2008のExpress Editionページから、ASP.NETのアプリケーションをつくることができる
Visual Web Developer 2008 Express Edition が無償でダウンロードできるようになっています。
これを使うと、ASP.NETアプリケーションを開発したり、デバッグしたりすることができるようになります。


「Webインストール(ダウンロード)」をクリックすると、自動的にインストールが始まります。
ついでにSilverlightのRuntimeをインストールしておくと幸せになれるかも知れません。今回は使いませんが。
インストールが終了したら、「新しいプロジェクト」で「ASP.NETWebアプリケーション」を選択します。
(言語はVBでもC#でもどちらでも可。ここではC#を選択)
自動的にプロジェクトにいくつかのファイルが追加されます。
「新しい項目の追加」で「Webサービス」を選択、ファイル名を「WebServiceBiz.asmx」に変更します。

3.さっそくASP.NETでWebサービスをつくってみよう!
WebServiceBiz.asmxの中身は以下のようにして下さい。
「ここから」〜「ここまで」の箇所を追加で記述します。
Addメソッドは足し算、GetStringメソッドは文字の表示、GetMasterListメソッドはXMLの取得です。
コード中で使用しているlocalmaster.xmlは、ここからからダウンロードできます。
asmxと同じディレクトリに置き「既存の項目の追加」でプロジェクトに追加します。
(なお下のコードで実際に動いているWebサービスはここにあります)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
namespace WebApplication1 {
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// この Web サービスを、スクリプトから ASP.NETAJAX を使用して呼び出せるようにするには、次の行のコメントを解除します。
// [System.Web.Script.Services.ScriptService]
public class WebServiceBiz : System.Web.Services.WebService {
[WebMethod]
public string HelloWorld(){
return "Hello World";
}
// ------- ここから ----------------
[WebMethod]
public int Add(int a, int b){
return a + b;
}
[WebMethod]
public string GetString(string in_str){
return "ようこそ " + in_str + " さん!";
}
[WebMethod]
public DataSet GetMasterList(){
DataSet dset = new DataSet();
dset.ReadXml(this.Server.MapPath("localmaster.xml"));
return dset;
}
// ------- ここまで ---------------
}
}
これで終わりです。
え!?これだけ?
そうです。画面は Biz/Browserでつくるので、.NET側はロジックのみの記述でよくなります。
だから一つ一つの処理は数行のコードですんでしまうんですね。
ASP.NETでHTML画面までつくるよりもずっと簡単です。
それでは実行してみましょう。
デバッグ実行を行うと、ランダムなポートでASP.NET開発サーバが起動します。

余談ですが、名前空間がテンプリのままだと「既定の名前空間を変更してください」と怒られます。
(本当は http://tempuri.org はテンプリではなくテンポラリURI の意味です)
また、今回の記事は、2005年3月に寄稿した「Biz/Browserと.NETWEBサービスでの3階層システム構築」と一部重複する内容が含まれます。
さらにJavaと.NETの選択で迷っておられる方は、2007年6月に寄稿した「.NET開発者のためのリッチクライアント開発ガイド」を一読してみて下さい。

