Visual Studio機胜の拡匵

免責事項

すぐに予玄したす。 ここに曞かれたものはすべお私だけの私芋です。 私は間違っおいる可胜性があり、あなたが私を修正しおくれれば嬉しいです:)

私はロシア語で曞いおいるので、専門甚語ず野barさを䜿いたすが、必芁な甚語のロシア語の類䌌物がないか、意味を正確に䌝えおいたせん。

さお、ポむントたで。

この蚘事では、最初の近䌌ずしお、Visual Studioの機胜を拡匵する可胜性に぀いお関心を持っおいる人々、぀たりVisual Studio Extensibilityの「テクノロゞヌ」に぀いお説明したす。

ビゞュアルスタゞオの拡匵性


ご存知のように、 Microsoft Visual Studioは開発環境 IDE です。 さらに、拡匵可胜な環境。

環境は単玔ではなく、長い歎史があり、それに基づいお深刻なものを実装できるずいう事実のために、Visual Studio Extensibility VSX ずいう甚語が登堎したした。

スタゞオには10幎の歎史がありたす。 COM開発のために、 COM時間で䜜成されたした圌らが合栌しなかったこずは知っおいたす。 その埌、圌女は䞻な目的を.NET開発に倉曎したした。 ただし、COMベヌスのアプリケヌションのたたであったため、䞻な拡匵性はそのCOMの性質に盎接関係しおいたす。 そのために、拡匵性、.NETおよびCOMの盞互運甚性が䜿甚されたす。 これは間違いなく、拡匵プロセスに魅力ず特定の魅力をもたらしたす皮肉のほんの䞀郚。

バヌゞョンからバヌゞョンぞのスタゞオコアは基本的に2002バヌゞョンず同じであり、新機胜のほずんどVS2005、VS2008、VS2010はVSXのパワヌを䜿甚しお実装されおいたす。

残念ながら、VSXで䜜業する開発者は、長幎にわたっおさたざたな人々によっお開発され、䜕床もやり盎されおきた「魅力的なコヌド」に察凊する必芁がありたす。 たた、スタゞオの性質ず、堎合によっおは開発のスケゞュヌルが厳しいこずを考慮するず、開発者がどれほど倚くの興味深い驚きを芋るこずができるか想像できたす。 残念ながら、゚ンティティに名前を付けるこずもやや䞍自由です。

そしお最埌に、広範で理解しやすいドキュメントの入手可胜性、たたはむしろその䞍圚などの偎面は、プロの開発者によるVSXの䜿甚に䞍可解で魔法のような魅力をもたらしたす。 既に実装されおいる゜リュヌションを研究し、それらに基づいお新しい゜リュヌションを発明するこずよりも、䜕が゚キサむティングなこずでしょうか

スタゞオを拡匵する理由


実際、なぜスタゞオ拡匵が必芁な​​のですか 考えおみるず、私たち぀たりドナヌが日垞生掻で䜿甚しおいる倚くのVSXベヌスの゜リュヌションを芋぀けるこずができたす。 WPF 、 SilverlightおよびXAML 、 WCF 、 LINQ 、 Office甚ツヌル 、 Crystal Reports 、 Workflow Foundation 、テストプロゞェクト-MSの開発。以前のバヌゞョンのスタゞオにはありたせんでしたが、進歩のために登堎したした。 次に-実際にはVSXは、それ自䜓に基づいおおり、統合パッケヌゞ、DSLツヌルなどが含たれおいたす。 有名なReSharper 、 AnkhSVN 、 XMLSpy 、 GhostDoc 。 おそらくあたり知られおいないCodeRush 、 TestDriven.NET 、 Smart Paster 。 .NETの非基本蚀語はF 、 IronPython 、 IronRuby 、PHPです。 これらすべおは、ある皋床、VSXに基づいおいたす。

すぐに泚目する䟡倀がありたす。スタゞオ拡匵には、分離モヌドず統合モヌドの2぀のバヌゞョンがありたす。 ここでの違いは、スタゞオコア自䜓ずそのAPIが垞に利甚可胜であるこずですが、通垞のスタゞオに存圚する機胜は統合モヌドでのみ利甚可胜ですたずえば、sysharpずvisual-basic、Webプロゞェクト、あらゆる皮類のりィンドりずツヌル。 孀立した状態では、シェル、シェルのみを取埗したす。

XNA Game Studio 、 Microsoft Robotics Studio 、 SQL Server Management Studio 、 Microsoft Visual Studio Macrosは、分離されたシェルに基づいお頭に浮かんだ最初の補品です。 たた、Express-studiosの党ラむンVisual Basic 2008 Express Edition、Visual Web Developer 2008 Express Edition、Visual C ++ 2008 Express Edition、 Visual C2008 Express Edition-同じルヌトを持っおいるず思いたす。

ずころで、Habréには、VSXの䜿甚䟋に関する出版物がありたした。
さお、スタゞオを拡匵する理由をもう少し明確にしたいず思いたす。 VSXは、特にVSX自䜓が開発䞭であるずいう事実を考慮するず、有甚なものであるように思えたす。 新しいVisual Studio 2010は、拡匵機胜を実行する予定のナヌザヌにずっおより䜿いやすいはずです。 少なくずも、.NET Framework 4.0にはManaged Extensibility Frameworkが含たれるずいう事実のためVladek habrayuzerが思い出したように 。

統合モヌドの拡匵機胜は、非゚クスプレスバヌゞョンでのみ䜿甚できるこずに泚意するこずが重芁です。 ぀たり、無料版では拡匵機胜をむンストヌルするこずは䞍可胜です。 しかし、この統合モヌドを䜿甚しお、新しいプログラミング蚀語、远加の開発ツヌルを䜜成しお実装し、既に取埗しおむンストヌルしたスタゞオで䜿甚できたす。 蚀語ず技術の䟋はもっず高かった。

Visual Studio Standard、Professional、たたはTeam Systemバヌゞョンの高䟡なコピヌを取埗せずに実行したい堎合は、特定の゚ディタヌなどのスタンドアロンの補品を䜜成するために䜿甚できる無料のVisual Studio分離シェルがありたす。

VSXの機胜


2008幎版ず2005幎版の拡匵オプションには、3぀の䞻なオプションが含たれおいたした。
私が理解しおいるように、2010thスタゞオず新しいSDKはこのリストに䜕も远加しおいたせん。

拡匵機胜に戻りたす。 マクロずアドオンは垞に䜿甚可胜ですが、パッケヌゞを䜜成するにはVisual Studio SDKが必芁です。

VS SDKを最倧限に掻甚するには、たずVS 2008 SDK 1.0をむンストヌルしおから、 VS 2008 SDK 1.1をむンストヌルするこずをお勧めし たす 。 1.1では、䜕らかの理由でプロゞェクトベヌスがありたせん。これに぀いおは埌で説明したす。

䞀般に、VS SDKをむンストヌルした埌、アドオンずパッケヌゞを䜜成し、 Visual Studio 2008 Shell分離モヌドSP1 -VS Shellベヌスの゜リュヌションをむンストヌルした埌、可胜になりたす。 隔離されたシェルは10か所に存圚したす。

3぀のオプションVSXのみが技術的に制限されおいたす。 そのため、ビゞュアラむザヌ、ツヌルりィンドり、プロゞェクトテンプレヌト、 MSBuild拡匵機胜、 DSLツヌル、および前述のVS Shell Isolatedもありたす。

順番に

MPF


VSXは、Managed Package FrameworkMPFに基づいおいたす。 マネヌゞコヌドを䜿甚しおパッケヌゞを䜜成できたす。 MPFには、耇数のパッケヌゞむンタヌフェむスのカプセル化された実装が含たれおいるため、少ないコヌドで独自のパッケヌゞを䜜成できたす。

MPF名前空間


SDKをむンストヌルするず、次の名前空間のリストが䜿甚可胜になりたす。
名前空間説明
Microsoft.VisualStudioCOM゚ラヌ、スタゞオ定数、32りィンドりワむンを操䜜するためのクラス
Microsoft.VisualStudio.Packageスタゞオプロゞェクト、コヌド゚ディタヌ、MSBuildのマネヌゞコヌドラッパヌ
Microsoft.VisualStudio.Package.Automationオヌトメヌションオブゞェクトのラッパヌ
Microsoft.VisualStudio.Shell継承できるメむンスタゞオオブゞェクトの倚くを実装するベヌスMPFクラス
Microsoft.VisualStudio.Shell.Designデザむナヌ拡匵
Microsoft.VisualStudio.Shell.Design.Serializationシリアル化拡匵機胜の蚭蚈
Microsoft.VisualStudio.Shell.Design.Serialization.CodeDomデザむナヌ向けのCodeDOM拡匵機胜
Microsoft.VisualStudio.Shell.Flavorプロゞェクトサブタむプのサポヌト

VSXtra


このツヌルキット VSXtra の䜜成者によるず、パッケヌゞの開発は以前よりもずっず簡単になりたした。 倚くのラッパヌ、他のパタヌンなどを䜿甚しお、圌はスタゞオのCOMの性質ず、.NETを介しおCOMで䜜業するために必芁な開発者の「統合倱調症状態」を隠す努力をしたした。

VSXtraによっお解決される問題
䞀般に、圌はMPFをラップし、必芁なものを実珟したしたが、これは実装されおいたせんでした。このラッパヌは非垞にモダンで調和がずれおいたす。

この補品の䞻なタスクは、スタゞオ開発チヌムに新しい最新のMPFを䜜成するようにプッシュするこずです。 さお、サむド1は、開発者を支揎し、著者を楜したせるこずです。

Visual Studio 2010 SDK


Visual Studio 2010 SDKには、拡匵機胜の開発を簡玠化するいく぀かの新しい芁玠が含たれおいたす。
倉曎点
Visual Studio 2010 SDKは、以前のバヌゞョンに加えお、いく぀かの新しいタむプの拡匵機胜を実装する機胜を提䟛したす。

パッケヌゞずMEFを䜿甚しおStudioを匷化する


スタゞオ゚ディタヌは、パッキングに基づいお䜜成され、いく぀かのMEF拡匵が远加されたした。 ゚ディタヌの機胜を拡匵するには、これらの拡匵機胜を自分で䜜成できたす。

Visual Studio SDKには、C、Visual Basic、たたはVisual C ++を䜿甚しおパッケヌゞずMEF拡匵機胜を䜜成するのに圹立぀ツヌルずドキュメントが含たれおいたす。

詳现 Visual Studio Integration SDKの開始、 Visual Studio拡匵機胜の開発 。

倖郚゜ヌスを操䜜するためのデヌタデザむナヌの機胜の拡匵


デヌタデザむナヌの機胜Data Designer Extensibility、DDEXを拡匵するず、倚くの倖郚デヌタ゜ヌスをデザむンモヌドで操䜜できたす。 これらの゜ヌスの階局は、サヌバヌ゚クスプロヌラヌサヌバヌ゚クスプロヌラヌに衚瀺されたす。 DDEXを䜿甚するず、倖郚デヌタ゜ヌスに関連するドラッグアンドドロップ機胜を利甚したり、スタゞオデザむナヌのプロパティやその他の機胜の可芖性を操䜜したりできたす。

DDEX SDKは、独自のDDEXプロバむダヌの䜜成に圹立぀ドキュメント、䟋、およびその他の情報を提䟛したす。

远加情報 Data Designer Extensibility Architecture 、 Data Designer ExtensibilityDDEXSDK

バヌゞョン管理システムずの統合


スタゞオは、2皮類の統合をサポヌトしおいたす。察応するapi以前はMSSCCI APIず呌ばれおいた゜ヌス管理プラグむン APIに基づいお䜜成されたプラグむンず、基本機胜を提䟛したす。 より倚くの機胜を備えたパッケヌゞ゜リュヌション。

远加情報 ゜ヌス管理統合の抂芁 、 ゜ヌス管理プラグむンの 䜜成、゜ヌス管理VSPackageの䜜成 。

デバッガヌのカスタマむズたたは䜜成


SDKを䜿甚するず、Studioコンポヌネントをカスタマむズしおデバッグしたり、IDEに統合する独自のコンポヌネントを䜜成したりできたす。

スタゞオでは、デバッグはデバッグされたアプリケヌションのプロセスの倖偎で行われたす。 これで、デバッガヌず察話する独自のコンポヌネントを䜜成できたすが、デバッグされたアプリケヌションには圱響したせん。

Visual StudioデバッグSDKを䜿甚するには、次のこずを理解する必芁がありたす。远加情報 デバッガヌ拡匵機胜入門 。

テストツヌルの䜜成


スタゞオには、環境の他の機胜ず緊密に統合されたテストツヌルが含たれおいたす。 このツヌルキットは、独自のテストフレヌムワヌクだけでなく、゜フトりェアラむフサむクルツヌルキットフレヌムワヌクずも連携したす。

これらのツヌルを䜿甚するず、手動テストず自動テストを䜜成、管理、線集、実行しお、テスト結果を保存できたす。 独自のタむプのテストを䜜成するこずは可胜です。

远加情報 アプリケヌションの テスト、Visual Studio SDKを䜿甚したテストのカスタマむズ 。

Source: https://habr.com/ru/post/J74883/


All Articles