SlideShare a Scribd company logo
1 of 14
Download to read offline
~ めとべや #9~
Visual Studio 拡張機能の作り方
五十嵐 祐貴(いがらし ゆうき) @bonprosoft
Microsoft MVP for .NET / Microsoft Student Partners Fellow
サトヤ仙台
自己紹介
• 五十嵐 祐貴 ( @bonprosoft )
• Microsoft MVP for .NET
• Microsoft Student Partners Fellow
• サトヤ仙台 代表
• あおばやまぐらし!
サトヤ仙台
• 仙台発のIT系コミュニティ
o 八巻さん(@yamaki00)
o 木村さん(@kimura016)
o 山本さん(@nnasaki)
o 五十嵐
• ステッカー配布中
このセッションでお伝えしたいこと
• Visual Studio 拡張機能の概要
• Visual Studio 拡張機能の開発方法
まずはアクセス!
• http://goo.gl/rrEjEL
Visual Studio 拡張機能とは
• Visual Studioの拡張を行うツール
o エディタのカスタマイズ,カスタムツールウインドウなど
o Visual Studio内部のイベントも取得可能
• 主要な2つの開発方法
o MEF
o VSPackage
• VSIXファイルとして配布可能
o 中身はただのZIPファイル
開発の主な2本柱
• Managed Extensibility Framework
o 拡張可能なアプリケーションを作成する仕組み
o Visual Studioも2010から採用
 特にエディタ部分などは拡張しやすいような様々な仕組みが
用意
• VSPackage
o Visual Studioの様々な部分をCOMを通して操作
 特にメニューバーやツールバーのカスタマイズには必須
プロジェクトの作成
• Visual Studio 2015からはセッ
トアップでインストール可能に
o 今までは個別にVisual Studio SDKをインス
トールする必要有り
o 2015からはセットアップツールで”Visual
Studio 拡張性ツール”(Visual Studio
Extensibility Tools )を指定することで導入
プロジェクトの作成
Demo
プロジェクトの作成
• テンプレートの刷新
o Roslynなども組み合わせて1
つのVSIXソリューションへ
o 項目を追加すると自動的に
vsixmanifestファイルを調整
簡単な拡張機能の構築
Demo
開発に役立つリンク集
• Extensibility in Visual Studio
o https://msdn.microsoft.com/en-us/library/dn919654.aspx
o Visual Studio SDKやRoslyn拡張についてのドキュメント
• Visual Studio SDK Reference
o https://msdn.microsoft.com/en-us/library/bb166217.aspx
o 拡張機能で使うことの出来る各種クラス/インターフェ
イスのリファレンス
開発に役立つリンク集
• Get Started with Extending Visual Studio
o https://msdn.microsoft.com/en-us/vstudio/ff677564
o 各種ドキュメントへの見やすいリンク集
ところで…
Q. MEFもVSPackageも使いたい!どうすれば?
A. Visual Studio shellを使いましょう
o https://msdn.microsoft.com/en-
us/library/vstudio/dd884850(v=vs.140).aspx

More Related Content

What's hot

What's hot (20)

挫折しないRedmine (2022)
 挫折しないRedmine  (2022) 挫折しないRedmine  (2022)
挫折しないRedmine (2022)
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集
 
ワンランク上のゲームデザイン・レベルデザイン・UIデザインを考える 「コンテキスト」「コンフリクト」「コントラスト」デザイン
ワンランク上のゲームデザイン・レベルデザイン・UIデザインを考える 「コンテキスト」「コンフリクト」「コントラスト」デザインワンランク上のゲームデザイン・レベルデザイン・UIデザインを考える 「コンテキスト」「コンフリクト」「コントラスト」デザイン
ワンランク上のゲームデザイン・レベルデザイン・UIデザインを考える 「コンテキスト」「コンフリクト」「コントラスト」デザイン
 
リーン開発の本質 公開用
リーン開発の本質 公開用リーン開発の本質 公開用
リーン開発の本質 公開用
 
アジャイル開発はWhyから始まる
アジャイル開発はWhyから始まるアジャイル開発はWhyから始まる
アジャイル開発はWhyから始まる
 
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 (  Redmine of one plant 2022 ...ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 (  Redmine of one plant 2022 ...
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
 
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
 
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiAオーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなす
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
 
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
 
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYOIncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
 

Viewers also liked

20150608 初心者によるazure machinelearning入門
20150608 初心者によるazure machinelearning入門20150608 初心者によるazure machinelearning入門
20150608 初心者によるazure machinelearning入門
Toshiyuki Manabe
 

Viewers also liked (20)

Azure MLで何かやる
Azure MLで何かやるAzure MLで何かやる
Azure MLで何かやる
 
Azure MLで機械学習をやってみよう
Azure MLで機械学習をやってみようAzure MLで機械学習をやってみよう
Azure MLで機械学習をやってみよう
 
Tuning maniax 2014 2nd stage Windows Server 2012 R2編
Tuning maniax 2014 2nd stage Windows Server 2012 R2編Tuning maniax 2014 2nd stage Windows Server 2012 R2編
Tuning maniax 2014 2nd stage Windows Server 2012 R2編
 
Microsoft Azureの機械学習サービス (Azure Machine Learning/Microsoft Cognitive Services)
Microsoft Azureの機械学習サービス (Azure Machine Learning/Microsoft Cognitive Services)Microsoft Azureの機械学習サービス (Azure Machine Learning/Microsoft Cognitive Services)
Microsoft Azureの機械学習サービス (Azure Machine Learning/Microsoft Cognitive Services)
 
//publish/ MSPTutorial 応用編
//publish/ MSPTutorial 応用編//publish/ MSPTutorial 応用編
//publish/ MSPTutorial 応用編
 
EXTREME AZURE 2
EXTREME AZURE 2EXTREME AZURE 2
EXTREME AZURE 2
 
君も今日からWebMatrixMan(仮)
君も今日からWebMatrixMan(仮)君も今日からWebMatrixMan(仮)
君も今日からWebMatrixMan(仮)
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
VBCPP - ICT+R 2012
VBCPP - ICT+R 2012VBCPP - ICT+R 2012
VBCPP - ICT+R 2012
 
Visual Studio付きWindowsインスタンスの利用方法
Visual Studio付きWindowsインスタンスの利用方法Visual Studio付きWindowsインスタンスの利用方法
Visual Studio付きWindowsインスタンスの利用方法
 
Kinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考えるKinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考える
 
わんくま同盟大阪勉強会 Vol.68 - Visual Studio Code 拡張機能作成入門
わんくま同盟大阪勉強会 Vol.68 - Visual Studio Code 拡張機能作成入門わんくま同盟大阪勉強会 Vol.68 - Visual Studio Code 拡張機能作成入門
わんくま同盟大阪勉強会 Vol.68 - Visual Studio Code 拡張機能作成入門
 
論文紹介:The wavelet matrix
論文紹介:The wavelet matrix論文紹介:The wavelet matrix
論文紹介:The wavelet matrix
 
続・Kinect v2を通してMicrosoft技術を考える
続・Kinect v2を通してMicrosoft技術を考える続・Kinect v2を通してMicrosoft技術を考える
続・Kinect v2を通してMicrosoft技術を考える
 
🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
 
大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと
 
Microsoft Azure 概要
Microsoft Azure 概要Microsoft Azure 概要
Microsoft Azure 概要
 
それっぽく感じる機械学習
それっぽく感じる機械学習それっぽく感じる機械学習
それっぽく感じる機械学習
 
2014 08-30 life with roslyn
2014 08-30 life with roslyn2014 08-30 life with roslyn
2014 08-30 life with roslyn
 
20150608 初心者によるazure machinelearning入門
20150608 初心者によるazure machinelearning入門20150608 初心者によるazure machinelearning入門
20150608 初心者によるazure machinelearning入門
 

Similar to Visual Studio 拡張機能の作り方

Similar to Visual Studio 拡張機能の作り方 (20)

Microsoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめMicrosoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめ
 
インフラエンジニアに送るVSCode 入門
インフラエンジニアに送るVSCode 入門インフラエンジニアに送るVSCode 入門
インフラエンジニアに送るVSCode 入門
 
Visual Studio UserのためのMicrosoft Learn入門
Visual Studio UserのためのMicrosoft Learn入門Visual Studio UserのためのMicrosoft Learn入門
Visual Studio UserのためのMicrosoft Learn入門
 
Microsoft Stream について
Microsoft Stream についてMicrosoft Stream について
Microsoft Stream について
 
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
 
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
 
Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門
 
User groupandfuture
User groupandfutureUser groupandfuture
User groupandfuture
 
マイクロソフトにおけるエバンジェリズム活動
マイクロソフトにおけるエバンジェリズム活動マイクロソフトにおけるエバンジェリズム活動
マイクロソフトにおけるエバンジェリズム活動
 
Uno Platform か Blazor
Uno Platform か BlazorUno Platform か Blazor
Uno Platform か Blazor
 
LightSwitchでWebアプリ開発
LightSwitchでWebアプリ開発LightSwitchでWebアプリ開発
LightSwitchでWebアプリ開発
 
Microsoft Viva Insights Overview 概要.pdf
Microsoft Viva Insights Overview 概要.pdfMicrosoft Viva Insights Overview 概要.pdf
Microsoft Viva Insights Overview 概要.pdf
 
目的を持って楽しく仕事をしよう Let's work with objectives happily
目的を持って楽しく仕事をしよう Let's work with objectives happily目的を持って楽しく仕事をしよう Let's work with objectives happily
目的を持って楽しく仕事をしよう Let's work with objectives happily
 
Microsoft Teams で Web ミーティング
Microsoft Teams で Web ミーティングMicrosoft Teams で Web ミーティング
Microsoft Teams で Web ミーティング
 
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
 
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
 
スマートフォンアプリエンジニアのための最新プロトタイピング講座
スマートフォンアプリエンジニアのための最新プロトタイピング講座スマートフォンアプリエンジニアのための最新プロトタイピング講座
スマートフォンアプリエンジニアのための最新プロトタイピング講座
 
Comcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTSComcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTS
 
DevLove(20140124)
DevLove(20140124)DevLove(20140124)
DevLove(20140124)
 
【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化
 

Visual Studio 拡張機能の作り方