連載:VB研公開ゼミ議事録

第5回 VB開発者がWebアプリで失敗しない方法

デジタルアドバンテージ 一色 政彦
2008/03/11
Page1 Page2

 2008年1月26日(土曜日)、「ベルサール九段」で、オフライン・セミナー「第5回 VB研(VB業務アプリケーション開発研究室) 公開ゼミ」が開催され、約50名の参加者が集まった。

第5回 VB研 公開ゼミ会場の様子

 今回は「VB開発者がWebアプリで失敗しない方法」と題し(「アプリ」は「アプリケーション」の略)、「連載:VB6開発者のためのASP.NET開発入門」の筆者でもある宮崎 昭世 氏を基調講演の講師に迎えて、VB6開発者向けにWebやASP.NET開発の基礎を解説していただいた。

パネル・ディスカッションの様子

 続くパネル・ディスカッションでは、ASP.NET開発に詳しいパネラーをお迎えし、基調講演の内容をベースに「Web開発に本当に移行すべきなのか」「移行時に発生する問題点」「WebやASP.NETの学習方法」「Web開発で起こりやすい失敗」「業務Webアプリの将来」など、Webアプリケーション開発において気になる点について議論した。

 参加したパネラーは以下のとおりだ。

モデレータ 小川 誉久(@IT/Windows Server Insiderフォーラム編集長)
パネリスト

宮崎 昭世 氏(日立ソフトウェアエンジニアリング)
近藤 和彦 氏(マイクロソフト)
八巻 雄哉 氏(グレープシティ)
一色 政彦(デジタルアドバンテージ)

 本稿では、このパネル・ディスカッションの内容を要約してお伝えする(以下、敬称略)。

1. 本当にWebアプリに移行した方がよいのか?

小川 現在、業務アプリとして「Webアプリ形式」を採用するケースが増えています。確かに配布や更新などの展開・運用面を考えるとWebアプリはメリットが大きいです。しかし現実を見ると、以前のVB6 Windowsアプリに比べ、ユーザー・インターフェイス(以下、UI)の操作性は落ちますし、レスポンス(=応答性)も悪くなります。Webのメカニズムを考えると、このようなデメリットは避けられないと思いますが、これらの欠点を差し置いてもWebアプリの方が(Windowsアプリより)メリットが大きいのでしょうか? Webアプリの方が優位なケースとは、どんなときでしょうか?

宮崎 例えばデータを参照するだけの「参照系アプリ」ならば、Webアプリで十分なケースが多いと思います。Webアプリのメリットは、何といっても「Webブラウザさえあれば動作すること」です。Webブラウザは、どのコンピュータにも最初からインストールされているので、アプリの提供者にとっても利用者(=ユーザー)にとっても、Webアプリは便利なテクノロジです。

 またWebアプリの良いところは、「マッシュアップ」に代表されるように、Web上に表示されたデータを抜き出して加工・再利用しやすい点です。例えば、Webアプリで表示されたメール・アドレスを切り出してメーラに取り込む、などが容易に行えます。このようなことをWindowsアプリで行うのは(つまり、Windowsアプリからデータを抜き出すのは)難しい。応用性という面では、Webアプリの方が優れていると思います。

近藤 情報共有をしやすいのも、Webアプリの大きなポイントです。例えばある情報をメールで伝えたいとき、Webアプリなら「このページのこの情報を見てください」と指し示すことができますが、Windowsアプリだとそういうことはできません。

小川 Webアプリには、展開・運用面以外のメリットもたくさんあるのですね。ところで、(お客さんの要望で)「VB6 Windowsアプリの展開・運用面が大変だから、.NET Webアプリに移行したい」ということも実際にあるのでしょうか?

日立ソフトウェアエンジニアリング
宮崎 昭世

宮崎 あります。しかしそういうケースで、実際にプロトタイプ(=実際に動作する簡単なデモ用プログラム)を作ってお客さんに見せてみると、「(いまより)便利にはならないね……」という落胆の反応が多いのも事実です。やはりUIが貧弱にならざるを得ないですからね。最近はGoogle Mapsなど操作性の高いWebアプリが登場していることも影響して、Webアプリに過大な期待をしている人が多いのかもしれません。

小川 なるほど。ところでマイクロソフトは、WebアプリとWindowsアプリの両者をどう使い分ければよいと考えているのでしょうか?

近藤 「Windowsアプリか」「Webアプリか」を選択するうえで、運用管理性や開発生産性という観点を基準にする方は多いと思いますが、本来、アプリケーションはユーザーが使うものなので、ユーザーの視点で考えていくべきだと思います。ユーザー視点から見て、参照系が大事であればWebアプリは有力な候補ですが、入力系(操作性)が重要であればWindowsアプリが最適な選択肢となるでしょう。ユーザー視点でアプリ形態を選択する際には、宮崎さんの話にも出てきた「プロトタイプ」などにより、実際にユーザーに操作性や運用管理性を示して説明するとよいでしょう。なお、最近はSilverlightやASP.NET AJAXなどWebの操作性を高める技術が次々と登場していますので、Webアプリが活躍できる領域は広がっていくと思います。

八巻 Webアプリはとても素晴らしい技術ですが、こと「業務アプリ」というジャンルにおいて、果たして有効な選択肢なのかというと、わたしは疑問を持っています。宮崎さんが話された「マッシュアップ」についていえば、これはインターネット上にサービスが公開されているから行えるわけですが、しかし実際の業務アプリはイントラネット内に閉じた世界で運用されることがほとんどです。従ってそのような世界では、マッシュアップのような「Webの本当の良さ」が発揮できないのではないでしょうか。

 よく「Webアプリのメリット」として語られる運用管理性の高さに関しても、(VB6から).NETという仕組みに変わって、いわゆる“DLL HELL”(=後からインストールした異なるバージョンの.DLLファイルによって既存のアプリが動作しなくなる現象)の問題はほぼ解消されていますし、ClickOnce機能でインストールや自動更新も簡単に行えるようになっています。Windowsアプリでもそれなりの運用管理性を発揮できるようになっているわけです。

 ですから、WindowsアプリではなくWebアプリを選択するという際には、「やっぱりWebアプリじゃないと、これは実現できないね」という結論を得て初めて選択すればよいのだと思います。そういうアプローチを取るためには、お客さんに対して「これをWebアプリとして作ると、なぜダメなのか」を説明できなければなりません。そのために、宮崎さんや近藤さんの話のような「プロトタイプ」を作成することは有益な手段だと思います。

小川 例えば「現在の世の中では“SaaS(Software as a Service)”が普及しつつあり、SaaSなら開発期間も短いし、運用管理は楽だし、展開もあまり考えなくてよい」というような情報があらゆるメディアにあふれており、顧客は常にそういう情報にさらされています。だから、お客さんは「何でもそれ(SaaS)でできるのではないか」と考えてしまうことも多いと思いますが、そういった考えに対してきちんと説明できるだけのWebおよびASP.NETの知識や材料を持っている必要があるということですね。

宮崎 状況に応じて「Webアプリが適切ではない」という判断ができるようになるためにも、ASP.NETのことをよく知ってほしいと思います。お客さんが要求している内容をそのままASP.NETで実現しようとすると無理難題となる可能性もありますから。

2. Webアプリへの移行で発生し得る問題点とは?

小川 では、取りあえず「Web開発を進める」という話になったと仮定しましょう。そのとき、既存のVB6の開発資産はASP.NETでも生かせるものなのでしょうか?

宮崎 VB6のコードを.NETに移行して、すべてがそのまま動くわけではありません。もちろんUIと業務ロジックをうまく分離していれば、UI以外の部分(つまり業務ロジック)は移行できると思います。

 ただし、アップグレード・ウィザードを使って移行した後のコードが以前とまったく同様の動作になるとは限らないので注意が必要です。例えばVB 2005のアップグレード・ウィザードを使うと、VB6のLineコントロールは.NETのLabelコントロールに変換されてしまいます。ちなみにVB 2008では、VB6のLineコントロールは「Visual Basic PowerPack」に含まれるLineコントロールに変換されるように改良されています。

小川 VB6でサードパーティ製のコンポーネントを使っていた場合には、それらをすんなりと移行できるのでしょうか? グレープシティの製品の場合はどうですか?

グレープシティ株式会社
ツール事業部
テクニカルエバンジェリスト
八巻 雄哉

八巻 弊社のコンポーネントはUI部品が多いので、移行は基本的に行えません。特にASP.NETへの移行は難しいです。もちろん弊社のASP.NET向けコントロールはVB6向けのものになるべく近い機能性を実現するように工夫していますが、VB6とASP.NETでは技術的なアーキテクチャがまったく異なりますので、標準のVB6コントロールがASP.NETコントロールに移行できないように、どうしても移行は難しいのです。

小川 UI部品の移行は難しいということですが、画面設計(=フォーム上のレイアウトなど)は移行できるのではないでしょうか?

宮崎 画面設計も本当は移行時に変更した方がよいです。例えばグリッド(表)を表示する場合、Windowsアプリであればバックグラウンドでデータを読み込みながら表示させることで表示パフォーマンスや操作性を高めることがきますが、Webアプリの場合、ユーザーが快適に操作できるデータ量でページを分割するなどの画面設計のやり直しが必要になると思います。また実際にあった画面設計の失敗例ですが、Windowsアプリと同じ感覚でツリー形式にチェック・ボックス(=CheckBoxコントロール)を100個ぐらい並べたところ、チェック・ボックスをチェックするたびにポストバック(=ページの再ロード)が発生してしまい、とても動作が遅いページになってしまいました。このようなことにならないためにも、やはりWebの特性をよく理解しておく必要があると思います。

小川 移行を検討する際、そして実際に移行する際においても、まずはWebやASP.NETについて精通しておく必要があるようですね。次にそれについて聞いていきたいと思います。


 INDEX
  VB研公開ゼミ議事録
  第5回 VB開発者がWebアプリで失敗しない方法
  1.Web開発に本当に移行すべきなのか/移行時に発生する問題点
    2.WebやASP.NETの学習方法/Web開発で起こりやすい失敗/業務Webアプリの将来

インデックス・ページヘ  「VB研公開ゼミ議事録」


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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH