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

第8回 業務アプリケーションに最適なUI/UXを考える

デジタルアドバンテージ 遠藤 孝信
2009/01/23
Page1 Page2

■Windows 7について

【小川】ところで、最近Windows 7についてのニュースで見たんですが、先日米国の雑誌で、「遅くとも2009年の6月には正式出荷される」という記事を読みました*1。Windows 7は、おおかたの予想よりも早期に出てくるのではないかという予測がありますが、どうでしょうか。

*1 マイクロソフトの説明では、Windows 7の正式発表は2009年末から2010年初めとされている。

【高橋】ご存じのとおり、Windows 7自体はWindows Vistaのカーネルがベースになっているので、そういった意味では早いというのは順当というか、予想はつくところであると思います。

【小川】時期が早いのも気になりますが、WPFなどのAPIについては、いまのVistaから変化するのでしょうか? .NET Frameworkはどのバージョンが?

【高橋】.NET Frameworkのバージョンはまだ決まっていないと思います。ただ、現在の最新が3.5 SP1ですので、それ以降のものが入ると思います。もしかしたら4.0の可能性もあります。ただWPFはというと、ご存じのとおり、マルチタッチやリボン・インターフェイスなどのWindows 7固有のものに対応しているはずです。

【小川】ではWindows 7で増えているインターフェイスの要素などに関しては、当然新しい部分もあるということですね。開発自体はそんなに大きく変わらないと考えてよいですか?

【高橋】はい、使える機能がまた1つ増えるというぐらいですね。

●Windows 7でもVB6?

【小川】Windows 7が出ると、WPFアプリケーションは盛り上がるんでしょうか? あまり関係ないですか?

【八巻】例えばWindows 7にVB6のランタイムが入っていなかった場合、当然いまあるVB6のアプリケーションを何とかして移行しなければという動きは、多少は出てくるとは思います。Windows 7では動かないわけですから。そういう中で、.NETのWindowsフォームに移行するのか、WPFに移行するのか、あるいはいっそSilverlightに移行するのかなど、そういう話も増えてくるのかなと考えています。

【高橋】標準で入るかどうかについては分かりませんが、ランタイムをWindows 7に持っていけば、VB6のアプリケーションがまったく動かないということは、いまの現状からして恐らくないと思います。ただご存じのとおり、VB6はすでに完全にメンテナンス・モードに入っていますので、Windows 7で何か致命的な問題があったとしても、それが直るかというと、そこを期待するのは難しいですね。

一色*2:昨年米国で開催されたPDC 2008で聞いたことですが、Windows 7ではリボン・コントロールにかなり多くのアプリケーションが対応する方向ということらしいのですが、WPF用のリボン・コントロールが標準搭載されるのに対して、Windowsフォーム用はどうやら入らないようです。そうするとWPFのアプリケーションというのは自然に増えてくるのではないでしょうか。さらには、次のVisual StudioであるVisual Studio 2010では、UIがWPFベースで作られており、コード・エディタなどにもグラフィカルな要素が取り入れられているようです。

 このように、マイクロソフト自身もWindowsアプリケーションからWPFの方へシフトしている兆しもあるので、今後はWPFでアプリケーションを作るというのが一般的になる可能性も高いのではと感じています。

*2 本@IT Insider.NET副編集長。スタッフ席からの発言。

■Silverlightについて

【小川】次にSilverlightについて話したいのですが、私個人的には、WPFよりもSilverlightの方がチャンスはあるんじゃないかと思っています。

 やはり皆さんが従来のクライアント/サーバ型業務アプリケーション開発でさんざんいわれているのは、バージョン管理や配布の問題がすごく大変で、入れた後に手間とお金がかかってしまうということです。これがSilverlightになると、リッチでグラフィカルなことを除いても、配布の手間がなくなり、入力生産性の悪さなどのWebアプリケーションの欠点も同時にクリアできるのではないかと期待しています。

 それでまず気になるところとして、マイクロソフトさんは決してそのようにはおっしゃいませんが、Silverlightというのは、基本的には、Flashのマイクロソフト版の技術として理解してよいですか? その位置付けというか、できることという意味においてですが。

【高橋】それはもう「耳タコ」なんですが、どうやって動いているのか、何ができるのかという意味では、Flashとだいたい同じような方式ですね。実行時にブラウザを介してサーバ側にあるコンポーネントがクライアント側に落ちてきて、クライアントにあるランタイム上で動くといったような流れです。考え方によっては、ActiveXも同じといえば同じですよね。

【小川】もちろんSilverlightならではの特徴はいろいろあると思います。濱田さんはFlashも実際に使って開発されているということですが、Silverlightと両方使われていかがですか? どのあたりが一番違いますか?

【濱田】今日は高橋さんがいいにくいことを、ぼくは全部いってやろうと思っているんですが(笑)、まず第1に少なくとも当社はFlashから早く離れたいと思っています。これはうちの開発者の意見です。もうあんな大変な思いはたくさんだと。とにかく構造化しにくくて、開発者泣かせのコードであると私は聞いています。ソースが非常に読みにくいといっていました。

 弊社ではSiliverlightBOOKというサービスを企業ユーザー向けに無償で公開していて、登録してもらえれば、パラパラめくりながら見ることができるSilverlightの「ブック」をPDFファイルから自動作成できます。PDFファイルにしおりを付けていれば目次も作成されるし、全文検索や一部分の切り取りもできます。

 実は、これはもともとFlashで開発していて、いまでも弊社のサンプル・サイト(DO!Cat)に行ってもらえれば2つを比較できるんですが、Flashでパラパラとスムーズに動作させるのは非常に難しかったですし、Silverlight版ほどはきれいにできませんでした。開発者の視点から見ても、Silverlightの方が圧倒的に優れているようです。

【小川】ただ、コンシューマはともかく、業務として社内で利用するとなると、初回のみですが、Silverlightのランタイムのインストールが問題になることもありますか?

【濱田】情シス(=情報システム部門)の人が、そういったもののインストールは許さないというケースは、やはりまだあるようです。ある大手旅行会社さんでも、社内システムでSilverlightを採用してもらったんですが、そのときはそこだけファイアウォールに穴を開けてもらい、外部からダウンロードしてインストールするという形を取ったことがあります。最初は、そういうものをインストールするのはイヤだな、という顔はされましたが、運用はスムーズにできました。

【高橋】ファイアウォールに穴を開けるのではなくて、社内にインストール・ポイントを置くという方法もありますね。

 OS側にインストールする.NET Frameworkのようなランタイムは情シスからものすごく反対されるんだけど、ブラウザ用のランタイムならまぁいいでしょうというのが最近の傾向のようです。

【小川】従来の業務アプリケーションと同じようなことができるのであれば、WPFよりもSilverlightの方がよさそうに見えますが、そうでもないですか?

【八巻】Silverlightではデータアクセスのモデルが全然異なるので、そこがハードルになるかもしれません。Silverlightの場合、データベースからデータを取得するにはWebサービスを経由する必要があります。つまり、サーバ側にデータを提供するWebサービスを実装しなければなりませんし、しかもその呼び出し処理は基本的に非同期となりますので、呼び出してからデータが返ってくるのを待ち、データが返ってきたときにそれを反映するというような処理が別に必要となります。

【小川】それはかなり難しい?

【八巻】そうですね。これまでVB6で開発していた人がいきなりSilverlightでやろうとすると、それがネックになるかもしれません。

【高橋】確かにSilverlightでは、セキュリティの面からWPFアプリケーションなどに比べると、できることがものすごく制限されています。例えばSilverlightアプリケーションがアクセスできる場所というのは、自分のサーバだけに限られているんですよね。最終的には自分のPC上で動くのに、そのPCのハードディスクにはアクセスできません。同じように、異なるドメインのサービスにも直接アクセスできず、その場合には、自分のサーバにWebサービスを置いて、そのWebサービスが外部のサービスにデータを取りに行くといった実装になります。セキュリティを考慮すると、そういう設計にせざるを得なかったということなのですが。

【小川】インターネット越しではセキュリティの問題があると思うんですが、例えば社内のイントラネット限定で使うということにした場合、Active Directoryのグループポリシーなんかをうまく設定すると、そういう制限がなくなるということはないですか?

【高橋】Silverlightにはそんな穴は設けていないので、イントラであろうがインターネットであろうが無理です。結局それをやってしまうと、どこかでセキュリティ・ホールとなってしまう可能性があるんですよね。

【小川】なるほど、そうなると業務アプリケーションをSilverlightでというのは現実的には難しいという感じですか?

【高橋】いえ、VB6でずっと開発されていた方にとっては、たぶんそこが障壁になるでしょうというだけであって、逆にその方法をきちんとマスターさえすれば、業務アプリケーションで使うことも可能です。

■次世代業務アプリケーションの開発方法

【小川】最後に、WPFやSilverlightなどを使ったリッチな業務アプリケーションをどう作るかというところを聞きたいのですが、やはりデザイナーがUIを設計し、開発者はデザイナーと共同作業をするということになるのでしょうか?

【濱田】うちでは、いわゆるデザイナーが、デザイナーといってもHTMLが作れるという程度なんですが、Expression BlendでUIを作成し、そのレベルで動かしてみながら試行錯誤する一方で、開発者がコードを並行して記述するという方法で作業しています。アプリケーションには取りあえずボタンを配置しておけば、デザイナーはExpression Blendレベルでいろいろプロトタイピングできますし、開発者はそのコードを書き始めることができます。

 以前のCGIベースのWebアプリケーションなどでは、両者のコミュニケーション・ミスがすごく多かった。HTMLが変わっているのに教えてくれなかったじゃないか、など。そもそも、デザイナーと開発者って仲が悪かったりするんですよね。「あいつにいっても分からないから」とお互い思っていたりして。

 それが今回のように離れて作業していると、なぜかむしろ仲良くなっちゃったみたいな感じがあったのがちょっと不思議でした。面と向かって作業していると仲が悪いくせに、それぞれが別で仕事を進めていると、お互いにありがとう、ありがとう、みたいな。非常に面白いアプローチでした。

【小川】ちなみに、デザイナーは技術的なことやコストなんかを考えないで、こんなことやりたい、と主張する場合があると思いますが、そのような場合にはどちらを優先すべきですか?

【濱田】それはやはりデザイナーだと思いますね。ただし、それを実現するのは技術者なので、私はその仕事を大げさに褒めるというのを心掛けていますね。うまく実現できたら、デザイナーを褒めるんじゃなくて、技術者を褒める。それが大事ですね。褒めるだけで給料が上がったりするわけでないのが、この方法のいいところなんですが(笑)。

【八巻】先ほどいったUIを分離するということがきちんと達成されれば、それは分業のしやすさにもつながります。完全にUIを独立できれば、分業はすごく容易です。

【小川】しかし、そもそも優れたUIを作るにはデザイナーを雇うしかないんでしょうか?

【高橋】そこはたぶん多くの開発者が悩んでいるところですよね。やはりFlash系のデザインや開発をやっている人たちは、そういったデザインや操作性についてのノウハウを多く持っていますね。ですので、そういった人の手を借りられればよいのですが。現状、開発者の皆さんが自分でやらなければいけないようであれば、いろんなところのまねをしてください。ガンガンまねしてください。そしてそれにはまず、リッチなUIのアプリケーションにたくさん触れ、こんなインターフェイスがあるんだといったところを、どんどん吸収してもらいたいです。

 Silverlightショーケースには、すでに400を超えるSilverlightのアプリケーションが登録されています。また、家系図を表示できるFamily.Showや、フライト情報を検索できるSilverlight Airlinesなども非常に参考になると思います。

 もし自分でデザインまでしなくてはいけない立場であれば、こういったアプリケーションで使われているUIの要素を応用したり、組み合わせたりして、日ごろから自分の引き出しを増やしていくしかないと思います。

 もう1つ、私がよくいうのですが、日本には非常に優れたUIを作っている企業がたくさんあります。それはゲーム業界です。例えば、RPG(ロールプレイング・ゲーム)で遊ぶのに、すでにいくつかをプレイしたことがあれば、マニュアルを読まずに始めますよね。でもすんなりプレイできる。小学生や幼稚園ぐらいの子どもでも、たくさんのウィンドウが開くようなインターフェイスを使えるんです。使いやすさという意味では、そういったところを参考にするのも大事かと思います。End of Article

 

 INDEX
  VB研公開ゼミ議事録
  第8回 業務アプリケーションに最適なUI/UXを考える
    1.パネル・ディスカッション/WPFについて
  2.Windows 7/Silverlight/次世代業務アプリケーションの開発方法
 
インデックス・ページヘ  「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