ASP.NET Webアプリ開発の裏事情

エピソード7:「ユーザー数無限大?」エンドユーザーと闘う!

―― 想定不可能・再現不可能なトラブルを回避せよ ――

小田原 貴樹(ハンドル・ネーム:うりゅう)
2005/05/21
Page1 Page2

どこまで互換性を保証するか? 動作環境との闘い

 以下は、筆者が開発したインターネット向けWebアプリケーションを納品した先の顧客企業の担当者との会話内容である。

顧客:
「お客さまからのメールで、うちのサイトがちゃんと表示されないっていうクレームが入ってるんだけど」
筆者:
「ええっ? まったく表示されていないということでしょうか?」
顧客:
「いや、そうじゃなくてデザインが壊れちゃって、ちゃんと見れないようだね」
筆者:
「……そのお客さまがお使いのパソコンの環境って分かりますでしょうか?」
顧客:
「マック? オーエス・エックス? って書いてあるそうだ」
筆者:
「えーっと、マックには対応していないです」
顧客:
「ええっ! それじゃあ、お客さまによってはサイトが見れないってこと?」
筆者:
「そうですね。開発させていただいたサイトはWindowsのIEベースでのみ表示を保証しますと、開発時にも納品時にも申し上げていますが」
顧客:
「……そうだっけ? で、どのくらいの人が見れないの?」
筆者:
「IEのシェアが約9割だといわれていますので、10%の人が見れないことになりますね」
顧客:
「1割は多いねぇ。何とかこう、ちょちょいと見れるようにしてくれません?
筆者:
「……ちょちょいとは無理です……」

 最初の方でも述べたが、エンドユーザーが特定できないということは、動作環境の特定もできないということになる。

 いま現在、ブラウザのシェアではWindows上で動作するIE(インターネット・エクスプローラ)が圧倒的ではあるが、それ以外にも歴史の長い「Netscape」や、成長著しい「FireFox」など、さまざまなブラウザの利用者が存在しており、一説にはIEのシェアは近年下がっているともいわれている。

 また、同じIEであってもWindows上で動作するものと、Mac OS上で動作するものでは表現(仕様)が多少異なり、同じサイトでもまったく同じように表示されるとは限らない。そのため、このような会話がよく出てくることになる。

 このブラウザごとの表現の違い、互換性の問題というのは、Webの黎明期からWebデザイナーや開発者を悩ませ続けてきた。開発する側にとってみれば、もちろん幅広く、多くのユーザーにサイトをきれいに見せたい。だが、対応しているHTMLやCSSのタグがブラウザごとに異なっていたり、同じタグであっても表現が違ってしまったりと、互換性を保つのはなかなかに難しい作業なのである。できる限り互換性を保ちたければ、ページの表現力・機能性をある程度犠牲にし、なおかつ開発時には手間を要求される作業を繰り返さなくてはならない。

 ASP.NETという技術は比較的、この互換性の問題に直面しやすいといえる。ASP.NETにしても、開発環境のVisual Studio .NETにしても、IEというブラウザを提供しているマイクロソフト社が展開しているものだからである。もちろんマイクロソフト社は互換性について最大限の努力をしていると思うが、どうしてもASP.NETがIE寄りであることは否めない。

 例えば、Visual Studio .NETを利用してGridLayoutモード(=Webフォーム上にコントロールを絶対位置で指定するモード)でページをデザインしている場合に、文字列を表示するためにLabelコントロールを配置することが多々ある。実際のブラウザでソースを確認すると、Labelコントロールを、SPANタグのLabelとして表現しようとするのだが、この表現はIE以外のブラウザではほとんどサポートされておらず、デザインが大きく崩れることになる。

 もちろん、ASP.NETやVisual Studio .NETを利用しても、Webアプリケーションがさまざまなブラウザに対応するように努力することは可能である。GridLayoutモードを利用せず、きっちりとHTMLタグを記述していくだけでも、かなりの部分が保証される。また、targetSchemaプロパティを利用し、下位のHTMLレンダリングを指定すれば古いブラウザなどにも対応が可能になる。

 だが、それは一方で表現力や機能性を削っていくことにつながるし、何より開発効率の低下に直結する。互換性を相当に意識したとしても、ブラウザやOSごとのフォント・サイズの違いなど、細部では対応しきれないことも多々あり、完ぺきではあり得ない。結局のところ、「このサイトはIE 5.0以上での表示を推奨します」といったようなユーザーへのアナウンスの方が現実的なことは多いのである。

バランスと割り切り、ターゲット層の明示化が重要

 はっきりいってしまえば、インターネット向けWebアプリケーションのようなエンドユーザーの特定が困難な環境の場合に、システム的に完ぺきな対応策を示すことは不可能である。だが、システム的な解決が不可能であるだけに、意識面での現実的な対応が重要となるだろう。筆者の経験上、この問題に対して心掛けるべき事項は、大きく分けて以下の3つになる。

  1. あえて利用者のターゲット層を明示化し、そのうえで不要な機能については割り切る
  2. 動作環境を事前にはっきりと提示し、トラブルを回避する
  3. サポート体制に重点を置き、コミュニケーションでの解決窓口を用意する

 エンドユーザーが特定できないからこそ、1のようなターゲット層の明示化は重要である。これはサイトそのもののコンセプトにもかかわってくることになると思われるが、ターゲットを明確にすることによって、必要とされる対応のバランスは変化するということである。

 例えば、利用者層のPCスキルがある程度は期待できるような内容のサイトを開発する場合には、互換性よりも機能性を重視するべきだと思われる。また、業者間取引を行うようなサイトの開発の場合にも、インターネット向けといえどもユーザー層の特定が可能であり、互換性よりも機能性を重視するべきだ。

 反対に、主婦層・シニア層を対象とするならば機能性よりも互換性・安全性が重要になってくるだろう。完全な対応が不可能であるからこそ、コンセプト・レベルでターゲットを把握することが、正しいバランスを示してくれることになるのだ。

 2に関しては、動作環境の問題が主になるが、上述したようにあらゆる環境で、完全に同様な動作をするサイトを開発するのは不可能であるということが理由となる。どこまで動作環境上の互換性を保証するかも、バランスの問題となるが、完ぺきになり得ないのであれば「このサイトはこのブラウザで表示してください」とはっきり提示する方がトラブルを回避しやすい。ユーザーを切り捨てるのか? という反応もあると思われるが、「手間=金」の開発現場では互換性の追求そのものも、開発コストに跳ね返るため、その判断自体もバランスで考えていくしかないのではなかろうか。

 3に関しては、システム面での完全解決が不可能である以上、コミュニケーションによる解決は必要不可欠であるということである。Webでのエンドユーザーとのやりとりは、原則的にお互いの顔が見えないため、前提として不安感・不信感が存在する。そうした心因的な問題も含めた対応・ケアを考えるならば、サポート窓口によるアナログ的な対応は非常に重要となるのだ。

 開発したインターネット向けWebアプリケーションにまつわる、エンドユーザーとの闘いというのも終わりがなく、限りないものであるのは間違いない。時代の変化をもろに受けやすい部分でもあるため、現実的な対応手法も変化していくことになるだろう。だが、開発側・運用側にとって「より多くの幅広いユーザー」に利用してもらえるというのは、何よりの喜びであることも間違いない。対象となるエンドユーザーが増えれば増えるほど、今回紹介したような問題も飛躍的に多くなるのだが、それすらもうれしく感じることもある。

 より多くのエンドユーザーに安心して利用してもらえる、Webアプリケーションの開発・運用を目指して、筆者ともども、努力していただければ幸いである。End of Article


 INDEX
  ASP.NET Webアプリ開発の裏事情
  エピソード7:「ユーザー数無限大?」エンドユーザーと闘う!
    1.想定できないエンドユーザーの幅
  2.Webアプリの互換性と動作環境の問題に対する対策
 
インデックス・ページヘ  「ASP.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 記事ランキング

本日 月間