Visual Studioは、設計から開発、テスト、配置までこなすオールラウンダーの素晴らしい統合開発環境です。しかし、最新のVisual Studio 2010で刷新されたヘルプシステムは、残念ながら開発者にとってあまり使いやすいものにはなりませんでした。これは何とかしなければ。という想いから、Visual Studio 2010のヘルプ機能を補完するツール『GrapeCity ヘルプビューワ』は生まれました。

この記事では、プロトタイプを一日足らずで仕上げたという『GrapeCity ヘルプビューワ』の開発者、岡野 勝(おかの まさる)にテクニカルエバンジェリストの八巻雄哉がインタビューを行いました。

技術者の紹介

岡野 勝(おかのまさる) グレープシティツール事業部
写真「岡野 勝」

1972年生まれ、仙台市出身。
1995年GrapeCity入社。テクニカルサポート担当を経てActiveX製品、.NET製品の開発担当となる。
現在はInputMan for SilverlightおよびInputMan for WPFのプロジェクトマネージャー。座右の銘は「明日できることは今日しない」。趣味はドライブ。田舎道をのんびり走るのが好き。
PowerNews250、251号で花嫁募集をしたら見事にゲットできたらしい。昨年娘が生まれ、ただいま子育て奮闘中。

インタビューアの紹介

八巻 雄哉(やまきゆうや) テクニカルエバンジェリスト
写真「八巻 雄哉」

小学生の時に買い与えられたMSXでプログラミングに入門するものの三角関数であえなく挫折。その後、忘れた頃に授業で経験するなどプログラミングとは付かず離れずの関係のまま、国内のSIerに入社。2003年よりグレープシティに入社し、プログラミングよりも自分に向いているものに気づかされる。現在はエバンジェリストとしてWPF/SilverlightとPowerTools製品を啓蒙中。


目次の階層表示ができない!これは何とかしなければ――

八巻 : 岡野さん、今日はよろしくお願いいたします。早速ですが、先日公開されたGrapeCity ヘルプビューワが便利だとあちこちで好評ですね。Twitterやブログなどでも結構取り上げられています。

岡野 : それは良かったです。プログラマはヘルプを参照しながらコーディングすることが多いですから、ヘルプの使いやすさはとても重要なんですよね。

八巻 : そもそも、このヘルプビューワはどういったきっかけで開発しようと思ったのでしょうか?

岡野 : きっかけは、自分がVisual Studio 2010を使ったときにヘルプがずいぶん不便になったなぁと思っていたところ、社内でも同じような声が上がったことでしょうか。Web上で表示する都合なのかもしれませんが、検索機能が不十分でしたし、ヘルプシステム自体が弱いと感じました。
まず、目次の階層表示ができないので目的とするトピックを探すのが困難でした。また、絞り込み検索もできませんでしたので、これは何とかしなければと強く思いました。自分たちが使うことももちろんですが、グレープシティ製品のヘルプもこのシステムで表示されるわけですから、お客さまに不自由させるわけにはいかないだろうと思ったのです。これが一番の動機です。

写真「インタビュー風景(1)」

八巻 : 目次が階層表示されないのは不便ですね。たとえば今見ているページの1階層上の隣のトピックがどのような内容なのかがまったく分かりませんから。加えて私は「ヘルプの同期」も重宝しています。というのも、私はF1キーでヘルプに飛んで、あるトピックが表示された後に、そのトピックがどこにあったのか知りたいことが多いのですが、現行ではできなくてもどかしいです。おそらくそう感じているのは私だけではないと思います。

岡野 : はい。そういった要望を何とかしようと、社内の開発チームでさまざまな改善案が検討されました。たとえば、グレープシティ製品のヘルプはCHM形式を別途作成して提供するのが良いのではないだろうかとか、外部のヘルプビューワを探して紹介するかとか、いろいろな案が上がりました。
その中で、私の意見は「専用のビューワを開発する」だったんです。ただ、そうは言っても見通しが立たなければ説得力がないので、とりあえずプロトタイプを作ろうと考えました。

八巻 : 岡野さんにプロトタイプ開発の依頼が来たわけではなくて、岡野さんからそういったツールを作ろうという提案をしたのですか。

岡野 : そうですね。自分の意見をプレゼンするうえで、やはりプロトタイプがあったほうがいいだろうと思って作りました。

開発スピードを支えているのは、常日頃からの技術研鑽

八巻 : そのプロトタイプというのはどのくらいの期間で開発されたのでしょうか?

岡野 : 思い立ってからすぐに始めたのですが、実質的には1日もかかっていないです。午前中から始めて、夕方には提出しました。

八巻 : あれを実質1日ですか?私もそのプレビュー版を拝見しましたが、正直とても1日で作ったとは思えないくらいの完成度でした。リリース版にあるほとんどの機能が含まれていましたし。あれが1日とは、本当に驚きです。

岡野 : すべてを1から開発したわけではないですよ。その頃、たまたまVisual Studio 2010の拡張機能を使ったツールの開発について個人的に調査していまして、Visual Studio 2010 SDKで提供されるVisual Studio Packageテンプレートを使えば何らかの拡張ツールを作れるだろうと思い、ベース部分は開発済みでした。ですから、このベースの上にヘルプの目次をツリー形式で表示する部分を追加したんです。実際1日で作ったのはこの部分ですね。

八巻 : なるほど。日ごろから技術について勉強していたからこそ、実践で役に立ったということですね。それにしても1日というのは早いと思うのですが、何か早さの秘密というかコーディングを補助するようなツールを使っているんでしょうか?

岡野 : いや、補助ツールとかは使っていません。秘密も特にありません。強いて挙げるなら、自分の経験でしょうか。これまで、製品を開発したりテクニカルサポートをしたりして、とにかくたくさんのサンプルコードやFAQを書きましたので。そういった蓄積された情報やノウハウが今回かなり役に立ちました。

写真「インタビュー風景(2)」

八巻 : ところで、今回のヘルプビューワはWPFで開発されていますが、なぜWPFを採用されたのでしょうか?Visual Studioの拡張ツールはWPFじゃなくても作れると思うのですが。

岡野 : 拡張ツールを作成する手段はいくつかありますが、ヘルプの目次を表示する部分に、Visual Studioのツールウィンドウを採用したかったのです。ツールウィンドウというのはVisual Studio上に表示できるウィンドウのことで、ツールボックスと同じ形式です。これを使うためにはWPFで開発しなければならない、という制約があったんです。

八巻 : では、Visual Studio 2010のツールウィンドウに何かを表示する場合は、もう従来のWindowsフォームではなく、必ずWPFフォームが推奨されるということですか?

岡野 : WPFが推奨されるというよりも、Visual Studio 2010のIDE自体がWPFで作られていますので、揃えたほうが作りやすいということではないでしょうか?

八巻 : なるほど。WPFコンテンツ開発は、開発者の皆さんもまだあまり経験がないと思うのですが、WindowsフォームやWin32といった従来の開発とはどういうところが違うと感じましたか?

岡野 : いちばん大きいのはXAMLの存在ですね。画面デザインをXAMLでコーディングして作るところが、従来のVisual Studioでの開発とはまったく違う。

八巻 : XAMLに対しての抵抗感などはありましたか?

岡野 : デザインという意味ではWindowsフォームやASP.NETとも違いますし、コントロールの内部構造も含めてすべて全部自分でやらなければいけないというところが大きな違いですね。たとえばリストボックスのアイテム表示ひとつをとっても、表示形式を変えたい場合は、自分でデータテンプレートを作らなければなりませんし、やはり今までにない技術が入ってきますので。私自身いろいろ試行錯誤しながら、ようやく理解できたという感じです。

八巻 : 書きながら覚えた?

岡野 : はい。WPFというか、XAML自体はVisual Studio 2005の頃から扱えるようになりましたが、当時はまだデザイン機能が貧弱で基本的にすべて手入力でコードを書く必要がありました。そのようにしてたくさんコードを書いているうちに自然と覚えていったというか…。結局のところ、実際やりながら覚えるのが一番いいんじゃないかな。

八巻 : 今回、苦労した点とか、はまってしまった点はありますか?

岡野 : あります。ヘルプに関する情報があまりにも少なすぎたことですね。ヘルプの呼び出し方とか。トピックを表示するのは当然ですが、それを呼び出すにはどうしたらいいのかという情報があまりにも少なくて困りました。

写真「インタビュー風景(3)」

八巻 : 新しいヘルプ形式に関するすべての情報がなかったということですか?英語ベースで、マイクロソフトから何らかの情報が出ていたような気がしますが。

岡野 : それが開発していたときには、まだなかったんです。かろうじて、コミュニティに所属している方の調べた情報が出ることはありましたが、まとまった文献や情報はまったくありませんでした。つい先日やっとSDKが出たぐらいですから(笑)

八巻 : それは本当に苦労されましたね。ではいったい何を参考にして作られたのでしょうか?

岡野 : 今回のヘルプビューワを作るよりも前に、グレープシティ製品のヘルプをVisual Studio 2010対応させる必要があり、その視点で調査を進めていましたのでなんとか。それを調べる過程でもかなり情報収集には苦労したのですが(笑)。

WPFやSilverlightの魅力はやはりXAMLのデザイン力

八巻 : 岡野さんは、これから発売するSilverlight版のInputManのプロジェクトマネージャーでもありますよね。WPFやSilverlightで開発を行っていて、WPFあるいはSilverlightならではの良いところとか、楽だなと感じたところはありますか?

岡野 : 結局XAMLの話に戻ることになってしまいますが、たとえばカスタムコントロールを作る場合、これまでの技術ではコントロールの形状や動的なスタイル変更といったデザイン部分は組み込まれたものを使うのが主流で、自分でカスタマイズするのは難しかったのです。しかし、WPFやSilverlightならデータテンプレートを使うとかスタイルを設定するとか、XAMLで自由にカスタマイズできます。このデザインを自由に決められるというのが魅力だなと思います。

八巻 : そうですよね。従来はオーナー描画でガリガリ書いていたところが、何行かのXAMLコードで実現できてしまう。私もそういうUIの柔軟性は魅力だと感じています。では、最後になりますがInputMan for Silverlightの宣伝というか、そのへんをお聞かせください。

岡野 : はい。Silverlight版、WPF版ともに開発は順調に進んでいますので、できるだけ早くお客様に提供したいと思っています。多くのお客さまにお使いいただいているInputManということもありSilverlight版での基本機能は従来製品と同様に使えるという設定をしています。そのうえでSilverlightならではの拡張機能を用意していますので、お客様の期待を裏切らないという自負があります。

八巻 : ということは、Silverlight版InputManの役目というか使命は業務アプリケーションで必要とされる入力要件や仕様をきちんと満たすことに加えてSilverlightというプラットフォームで提供される形態変化やスタイル、デザイン性といったところの恩恵にもあずかれるということですね。

岡野 : もちろん、スタイルについては、Silverlight Toolkitで提供されているテーマと同じタイプを用意していますので、標準コントロールと組み合わせて使った場合でも、手間をかけずに外観を統一できます。ぜひ、期待してください。

八巻 : はい。今日はお忙しい中、ありがとうございました。

インタビューを振り返って

「自分が作ったソフトウェアで世の中の困っている人を助けることができる」開発者冥利に尽きるといったところでしょうか。普段の開発作業で分からないことを調べる際、目先の目的達成だけで終わってしまうのではなく噛み砕いて自分のものにする。この辺りが岡野さんの開発力につながっているのかなと感じました。


GrapeCity ヘルプビューワについて

Visual Studio 2010のヘルプ(Microsoft Help Viewer)で不足している、目次の階層表示、キーワード検索、テキスト検索などの機能を補いヘルプの使い勝手や視認性を向上させるための拡張ツール。Visual Studioギャラリーにて無償提供中。
画像「GrapeCity ヘルプビューワ ダウンロード画面」

GrapeCity ヘルプビューワ

撮影協力 GrapeCity ワインスタジオス

ワインスタジオスは、杜の都仙台の豊かな自然を生かした屋外施設と最先端の撮影技術でトータルな映像クリエイティブを提供する東北最大級のスタジオです。
写真「GrapeCity ワインスタジオス」

GrapeCity ワインスタジオス