特集:初めてのVisual Studioアドイン(前編)

開発環境Visual Studioをカスタマイズせよ!

株式会社NTTデータ
技術開発本部 ソフトウェア工学推進センタ
瀬下 真吾
2009/01/20
Page1 Page2 Page3 Page4

第1章 Visual Studioの機能を拡張する3つの方法

 .NETアプリケーションを開発している方の多くは、その開発環境としてVisual Studioを使用していると思います。Visual Studioには、強力な入力支援機能や多彩なウィザード、高度なソース・レベル・デバッガなど、アプリケーション開発の生産性を向上してくれる機能が標準で備わっています。そのため、Visual Studioをインストールするだけで、優れた開発環境を手にすることができます。

 しかし、Visual Studioに独自の機能を追加したいと思ったことはないでしょうか? 実は、Visual Studioは拡張のための機能も非常に充実しており、次の3つの方法が用意されています。

  • マクロ
  • アドイン
  • Visual Studio SDK

 中でもアドインは、「メニューバーにコマンドを追加する」などのマクロにはできない機能拡張をアドイン・ウィザードにより簡単に実現でき、またVisual Studio SDK(詳細後述)よりも手軽なので、最も利用局面の多い機能拡張方法といえます。そこで、本稿ではアドインの作り方について紹介します(コードはC#で記述します)。

 まずは、Visual Studioにおける機能拡張の全体像を見てみましょう。

機能拡張方法の種類

 先ほど述べた3つの機能拡張には、それぞれどのような特徴があるのでしょうか。

マクロの特徴

  • Visual Studio上での一連の操作を記録し、自動的に実行できる
  • 記録したマクロを、マクロIDEと呼ばれる専用の開発環境で拡張できる
  • 使用できる言語はVisual Basic .NET(=Visual Basic 2005やVisual Basic 2008)のみである
  • 配布する場合は直接ソース・コードを渡す必要がある

アドインの特徴

  • メニューバーやツールバーへのコマンドの追加、ツール・ウィンドウ(=Visual Studio内の各種ウィンドウのこと。例えば[ツールボックス]など)の作成、[オプション]ダイアログ上に表示されるカスタム・プロパティ・ページの作成など、マクロでは実現できない高度な機能拡張ができる
  • Visual Studioのアドイン・ウィザードを使用して、アドイン開発に必要なプロジェクトのひな形を作成できる
  • Visual C++、C#、Visual Basicなど、あらゆる.NET言語で実装できる
  • ソース・コードを配布する必要がないため、知的財産を保護することができる

Visual Studio SDKの特

  • 新しいプロジェクト・タイプの作成、カスタム・エディタの作成、高度なデバッグ機能など、アドインよりもさらに高度な機能拡張ができる
  • Visual Studioの機能拡張を目的とした市販製品の多くが、Visual Studio SDKにより開発されている
  • VSIP(Visual Studio Industry Partners)プログラムと呼ばれるマイクロソフトのパートナー向けサービスに登録が必要(Affiliateメンバシップ・レベルは無料)
  • 開発に必要なツールや技術サポートが、VSIPプログラムから提供されている

【参考】 MSDN:Visual Studio 機能拡張の概要

機能拡張方法の選択

 このように、機能拡張とひと言でいっても、方法によって実現できる機能や開発スタイルに特徴があります。それぞれの方法を比較するために、次の表では開発の容易性、機能の高度性、配布の安全性という観点で特徴をまとめています。

機能拡張の方法 開発の容易性 機能の高度性 配布の安全性
マクロ
×
アドイン
Visual Studio SDK
×
各機能拡張の特徴の比較

 それでは、開発者が自分で機能拡張をする場合、どの方法を選択すればよいのでしょうか? 本稿では次のような指針を示したいと思います。

  • 拡張する機能が簡単なもので、Visual Basic .NETによる実装やソース・コードの配布が問題ない場合
    ⇒ マクロ

  • メニューバーへのコマンドの追加など、マクロでは実現しにくい高度な機能拡張を使い慣れた言語で実装し、ソース・コードを保護して配布したい場合
    ⇒ アドイン

  • 新しいプロジェクト・タイプの作成、カスタム・エディタの作成、高度なデバッグ機能など、非常に高度な機能拡張をする必要がある場合
    ⇒ Visual Studio SDK

【参考】 MSDN:Visual Studio .NET オートメーションの範囲

 Visual Studioにおける機能拡張の全体像についてご理解いただけたでしょうか? 次ページでは、いよいよ本稿の主題であるアドインの作り方の解説をしていきます。なお、今回は簡単なアドインの作成方法とその中身についての解説が中心となります。コマンドを右クリック・メニューに表示させたり、条件によってコマンドのステータスを変更したりするなど、アドインの少し高度な拡張方法や、作成したアドインの配布方法については、次回解説する予定です。


 INDEX
  [特集]初めてのVisual Studioアドイン(前編)
  開発環境Visual Studioをカスタマイズせよ!
  1.Visual Studioの機能を拡張する3つの方法
    2.アドインを作成してみよう
    3.アドインを実行してみよう
    4.アドイン・プロジェクトの中身を見てみよう
 
  [特集]初めてのVisual Studioアドイン(中編)
  Visual Studioアドインを実装しIDEで使う!
    1.コンテキスト・メニューにコマンドを表示する
    2.コマンド実行時にXMLファイル編集画面を表示する
    3.コマンドをいろいろな場所に表示してみよう
 
  [特集]初めてのVisual Studioアドイン(後編)
  Visual Studioアドインを配布する!
    1.Visual Studioにアドインが登録される流れ/アドインの配布に必要な作業
    2.インストーラの作成手順


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 記事ランキング

本日 月間