visual studio 外掛程式開發

來源:互聯網
上載者:User

標籤:

外掛程式的定義

所謂外掛程式,就是根據平台介面開發的第三方程式。第一次聽到這個名詞很是不瞭解,聽瞭解釋也不是很明白,那我們來舉個例子,比如說一輛房車,現在裡面只有基本的一些設施,但是你現在想在頂部有一個曬太陽的躺椅,ok,這個功能需求你自己清楚的,那要怎麼實現?是不是買個躺椅來就可以了?是的,只要買個躺椅。如果僅僅買個躺椅你是不是就能安裝到房車頂部?那肯定不行吧,你得看看房車頂上有沒有螺絲柱給你安裝吧。可以看到,這個螺絲柱就是房車提供給使用者的介面,你的躺椅就是外掛程式實現的功能,而將躺椅安裝到螺絲柱上,對於不同的房車肯定是有不同的方法的。所以外掛程式是獨立開發的,但是他要依賴一個平台,vs中的外掛程式也是這麼回事,vs這個平台提供了一些介面,比如你想開發編輯器相關的外掛程式,有DTE介面,這些介面可以讓你訪問到vs的其他外掛程式或者功能,你開發外掛程式也必須安裝到vs上才能正常工作。

vs中的外掛程式類型

我最開始學習的時候搜尋外掛程式,發現很迷糊,因為vs支援的外掛程式類型實在是有點多,所以每搜尋一個,都感覺不太相同。
有很多方法去擴充Visual Studio(甚至是Team Foundation Server),VS擴充是對這些方法的一個統稱。如果只有一種方式擴充它,Visual Studio就不會是一個偉大的微軟式產品。對於編程方面來說,VS擴充的主要方式是通過宏、Add-ins和Visual Studio擴充包(Package)。
在vs中主流的外掛程式開發方式有三種。

  • 宏 我們對Office產品中的宏已經很熟悉了,和在Office裡面一樣,我們也可以通過宏來擴充Visual Studio 2008。這是擴充VS的最簡單的方式——我們甚至不需要VS SDK。Visual Studio提供了功能允許我們去錄製宏,宏可以訪問的Visual Studio 2008的物件模型,並且可以很容易和和VS的命令融合,並提供非常有用的、自動化的屬性值。
    要成為一個非常專業的VS宏開發人員,你需要知道在宏後面的物件模型以及一些使用他們的方法。Visual studio 提供了一些例子。最好的辦法是自己錄製一些宏然後查看其中的代碼,你可以通過這些代碼來增加你的對宏的掌握。
    儘管宏對於任務自動化非常棒,但是它並不能用於建立全新的功能。簡單來說,宏利用了VS IDE的自動化介面,但是它並沒有真正和和VS整合。當用宏開發的時候,你必須認識到任何人都可以通過宏來查看你的原始碼。
  • Visual studio Add-ins Add-ins具有更加強大的功能來擴充visual studio,因為它可以訪問Visual studio 2008的所有物件模型並添加新的UI元素,例如工具視窗、選項頁、菜單以及工具列命令等等,這些添加的功能看起來就行IDE的一部分。Add-ins還可以訪問由IDE自己以及其他的Add-in提供的service。
    品牌也被得到保證,因為外掛程式資訊會在Visual studio啟動時顯示的介面裡或者“關於”對話方塊中顯示。如果你用宏來擴充VS,宏那麼所有人都可以看到你的原始碼,但是一個Add-in是編譯了的程式集,所以你可以像其他.NET 程式集一樣,使用一些保護技術來保護你的代碼。
    要發布外掛程式,你只需要簡單的建立一個安裝項目並編譯出.msi檔案就可以了。msi程式會做你的Add-in需要的所有的安裝和註冊任務,安裝後你就可以立即使用外掛程式了。 對於一些簡單的功能來所,外掛程式是最簡單的開始方式。但在這個系列中,我並不會關注如何開發Add-ins,不過Add-in中那些用於VS Package的技術,尤其是如何使用VS IDE提供的物件模型,是非常有用的。
  • Visual Studio Package 毫無疑問VS擴充包是擴充Visual studio最強大的工具。最直接的證據就是整個visual studio的功能就是建立在以Visual studio外殼(shell)為核心的擴充包上的。所有的Language、編輯器、調試器、Project System以及其他很多的組件都是Package。 從開發人員的角度來看,添加新的VS Package與微軟添加VS IDE的核心功能是一樣的。VS IDE並不會區別對待微軟開發的Package和第三方開發的Package。 Package可以用你最喜愛的語言(c#, VB.NET, C++)開發,所以從智慧財產權保護的角度來講他們可以像其他的.NET library一樣的安全。 VS SDK提供了Package安裝以及註冊工具,regpkg.exe。 Visual Studio通過所謂的PLK(Package load key)來檢查一個擴充包是否合法,這個PLK可以從微軟網站上擷取到,它是你的package的數字散列碼。如果你的package部署到了產品環境下,它的PLK會被檢查。(譯者註:在開發與調試下不需要PLK)

註:對於vs外掛程式類型的解釋引用了這位博主的內容,大家也可以結合多方資料,來協助學習。 明年我18

如何選擇外掛程式類型

上文已經說過了,vspackage無疑是最好的外掛程式方式,原因有幾點,對於宏和add-in ,vs已經逐步的拋棄了他們,這和vs平台的架構是有關係的,vs其實只是一個平台,或者可以說是vspackage的一個集合,它管理著這些package,很多vs內建的功能也是用vspackage來開發的,所以用vspackage來開發外掛程式,從根本上來說和vs原生的功能是沒有區別的,我們這個方式來開發,保證了通用性,不會隨著版本的遷移導致外掛程式被廢棄



文/最怕認真(簡書作者)
原文連結:http://www.jianshu.com/p/894fb6a4e8e4
著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。

visual studio 外掛程式開發

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.