之前已經(jīng)報道過,在Visual Studio 15中Microsoft優(yōu)先要處理的問題就是縮減啟動時間和編輯器安裝包的大小,而這勢必會改變插件的使用方式。正如Microsoft公司的Tim Sneath所說,為了支持這些新功能插件開發(fā)者需要做出一些改變。
Microsoft在Visual Studio插件方面始終面臨著一個困境:為了讓插件既有用又功能強(qiáng)大,Microsoft將很多本來只能自己使用的Visual Studio API開放了出來。這樣做的負(fù)面影響就是難以禁用具有不良行為、影響編輯器性能的插件。而在Visual Studio 15中,當(dāng)插件對編輯器的性能有負(fù)面影響的時候,用戶會收到相應(yīng)的反饋。
在主編輯器啟動時,如果有插件要加載,那么Visual Studio會測量加載時間。一旦該加載時間超過了內(nèi)部定義的閾值,Visual Studio就會通知用戶,如果之后插件依然需要很長的加載時間,那么Visual Studio就會為用戶展現(xiàn)禁用該插件的選項。在使用編輯器的時候,對輸入響應(yīng)有消極影響的插件也會觸發(fā)單獨的通知,讓用戶可以選擇禁用該插件。
因為Microsoft的目標(biāo)是讓Visual Studio盡可能快地運(yùn)行,所以Visual Studio 15的一項非常重要的改進(jìn)就是用戶可以非常容易地根據(jù)需要安裝組件(Web、移動手機(jī)等),而首次未安裝的組件將來也可以在需要的時候繼續(xù)安裝。改進(jìn)后的安裝方式可能會對現(xiàn)有插件造成一定的影響,因為它們可能依賴于現(xiàn)有的一些特定功能。此外,Microsoft還修改了插件所使用的VSIX manifest文件,以便讓Visual Studio能夠識別出插件運(yùn)行所必需但是缺失的組件并自動安裝,該修改有望在Visual Studio 15的下一個預(yù)覽版中發(fā)布。
插件開發(fā)者也將受益于這些新特性:插件可以在安裝的時候編譯成本地鏡像以提升性能;可以將文件安裝到插件文件夾之外的位置,也就是說MSBuild這樣的組件以后可以由插件安裝。
Visual Studio 15為插件帶來了很多新特性,但是也帶來了一些問題:利用新特性編寫的插件會向后兼容么?來自于Microsoft的Justin Clareburt透露,通常兼容性將會維護(hù)到Visual Studio 2012,但是他沒有介紹現(xiàn)在使用Visual Studio 15新特性編寫的插件在將來的版本中會如何處理。可以想象,雖然插件可以非常容易地繞過本地鏡像支持,但是如果一個Visual Studio插件試圖在2013上將文件安裝到插件文件夾之外時會發(fā)生什么呢?InfoQ將會持續(xù)關(guān)注并對此進(jìn)行報道。
查看英文原文:Extending Visual Studio "15"