.NETエンタープライズWebアプリケーション
開発技術大全

スマートクライアント型システムにおけるVisual Studio .NETのメリット

マイクロソフト コンサルティング本部 赤間 信幸
2004/06/03
Page1 Page2 Page3 Page4

5 サーバ/クライアントへのパッケージ製品の応用

 ここまで、スマートクライアント型システムのアプリケーションを完全にスクラッチで開発するケースについて解説した。しかし特にスマートクライアント型システム形態の場合には、パッケージ製品を活用しながら開発するケースが少なくない。現在のマイクロソフト製品は.NET構想に沿って開発が行われているため、ほとんどの製品が何らかの形でXML Webサービスに対応している。これをうまく活用すれば、案件の特性によってはリッチなシステムを安価に開発できる場合もある。

 例えば、Microsoft Officeはどの製品でもXML Webサービスを呼び出すことができるように作られている※10。これを活用したシナリオを3つ考えてみよう。

※10 Office XPの場合にはMicrosoft Office XP Web Services Toolkit 2.0を、Office 2003の場合にはMicrosoft VisualStudio Tools for the Microsoft Office SystemやOffice 2003 Web Service Toolkit 2.01などを活用することができる。

A.Excelを活用したスマートクライアント型システム

 Office製品の中でも特にExcelは現在多くのお客様にご採用頂いているが、これをうまく活用すればシステムが安価に開発できるケースもある。

 例えば、売り上げ分析用のアプリケーションを開発するケースを考えてみよう。アドホックな分析※11を行えるようにするためには、複雑な分析用クライアントアプリケーションを開発する必要があり、これをゼロから開発するのでは多大なコストがかかる。しかし、

  • 分析用のExcelシートにXML Webサービス経由で売り上げデータを一覧取得するような機能を追加。
  • データ取得後は各エンドユーザに自由にピボット分析してもらう。

 このようにしておけば、開発コストを最小限に抑えて効率的で使い勝手のよいシステムを構築することができる(図13)※12

※11 その場であれこれ考えながら、分析方法そのものを工夫して作業を進めていくことを指す。
 
※12 以下の評価キットを使っていただくとより詳しい情報を入手できるので、是非試してみて頂きたい。「OfficeXP Web Services Toolkit 2.0 評価キット」
http://www.microsoft.com/japan/
office/previous/xp/developer/webservices/evaluationkit/default.asp
 
図13 Excelを使ったスマートクライアント型システムの例

B.Accessを活用したスマートクライアント型システム

 C#やVB.NET、あるいはVBA(Visual Basic for Applications)などのプログラミング言語を利用した開発はプログラマ向けのソリューションであり、開発が容易といってもEUC(End UserComputing)環境としてはそれなりにハードルが高い。しかし、Accessはクエリデザイナとフォームデザイナという2つを組み合わせていくことで、ノンプログラミングな開発を実現することができるツールである。このため、古くからごく小規模なデータ管理アプリケーションを開発するためのツールとして、主に小規模なワークグループで活用されてきた。

 もともとAccessは、ローカルなファイルベースのデータベースを使って動作するものである。このためAccessを単独で利用する方法では、SQL ServerのようなDBサーバ製品が持つようなスケーラビリティを持つことができない。しかし現在でもフォームデザインとクエリデザインによりもたらされる高い開発生産性は、特にアドホックな開発が求められる分析系システムの開発において非常に有益である。

 実は以下のような使い方をすると、エンタープライズシステム開発においてAccessの開発生産性の高さを効果的に利用することができる。

・AccessでUIを開発しつつ、バックエンドデータベースとしてSQL Serverを利用する。
  ・Access 2000からサポートされるようになったAccessプロジェクトファイル(.adpファイル)を利用する。
  ・これを使うと、SQL Serverをバックエンドデータベースとしたシステムのフロントエンドアプリケーションを、Accessで開発することができる。
 
・Accessをローカルの一時データベースとして利用してデータ加工や分析を行いつつ、適宜バックエンドのXML Webサービスとの連携を行う。
  ・Office Web Service Toolkitなどを利用すると、容易にXML Webサービスの呼び出し機能をAccessに組み込むことができる。

 前者に関してはC/S型リッチクライアントシステムとなるため、ここでは説明を割愛する※13。スマートクライアント型となる後者に関してのみ解説する(図14)。

※13 SQL ServerとAccessの活用方法の詳細については以下のWebページなどを参照して頂きたい。「MicrosoftAccess 2002 とSQL Server 2000 の連携で実現するデータベースの共有」(http://www.microsoft.com/japan/sql/Standard/Migrate_MDB_overview.asp
 
図14 Accessを使ったスマートクライアント型システムの例

 まず、Office Web Service Toolkitを利用すると、Accessのマクロ言語であるVBA(VisualBasic for Applications)で記述されたXML Webサービス呼び出しのプロキシを簡単に作成することができる※14

※14 ここではOfficeでのマクロ開発に馴染みの深いVBAを利用するOffice Web Service Toolkitについて示したが、Visual Studio Tools for Officeを利用するとVB.NETやC#を利用したマクロ開発が可能となる。詳細は以下のWebページなどを参照していただきたい。
http://www.microsoft.com/japan/msdn/
vstudio/office/productinfo/features/officetools.asp

 これを併用して開発を進めると、Accessをローカルの一時データベースとして利用してデータ加工や分析を行いつつ(場合によってはエンドユーザが自分に適したビューを開発するようなこともあるだろう)、最終的なデータ書き込みや最新データの取得の際にはXML Webサービスを呼び出す、といったアプリケーションを開発することが可能である(図15)※15

※15 実際、このようなシステム構成を取ることにより、リッチクライアント開発としてのAccessの高開発生産性を生かしている事例もある。
 
図15 AccessでのXML Webサービス利用例
 

 INDEX
  .NETエンタープライズWebアプリケーション開発技術大全
  スマートクライアント型システムにおけるVisual Studio .NETのメリット
    1.本システム形態の特徴/構成例/問題点
    2.Visual Studio .NETによる簡単なXML Webサービス開発
  3.サーバ/クライアントへのパッケージ製品の応用
    4.InfoPathを活用したスマートクライアント型システム
 
インデックス・ページヘ  「.NETエンタープライズ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 記事ランキング

本日 月間