天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

詳解Visual Studio 2010中的擴(kuò)展管理器

  擴(kuò)展能夠為核心應(yīng)用程序提供附加的功能或者自定義設(shè)置。在很多應(yīng)用程序中這都是很流行的,包括流行的web瀏覽器IE和Firefox、微軟的Office、媒體播放器、Photoshop、Eclipse、Visual Studio等等。其中有些可能比較新奇,而針對開發(fā)工具——像Eclipse和Visual Studio——的擴(kuò)展讓開發(fā)者的生產(chǎn)力得到了顯著提高。

  Visual Studio早期的版本是構(gòu)建在COM技術(shù)之上的。而Visual Studio的主要擴(kuò)展方式插件是通過COM接口實現(xiàn)的。隨著時間的變化,插件機(jī)制已經(jīng)得到了改善。在2002年,隨著Visual Studio .NET的發(fā)布,微軟引入了.NET和COM之間的互操作性。在Visual Studio 2005中,插件支持使用XML的簡化部署方式。之后不久,微軟發(fā)布了Visual Studio SDK開發(fā)包,這是一種更為新式的機(jī)制,通過底層的API提供了與Visual Studio的IDE更深層次的整合。

  隨著時間的推移,Visual Studio擴(kuò)展的部署技術(shù)也得到了改善。在Visual Studio 2005中引入了Visual Studio 內(nèi)容安裝器(Content Installer VSI),它可以用于部署宏、插件、工具箱控件、代碼片段以及模板。而更廣泛地用于應(yīng)用程序安裝的Windows安裝包(MSI),則成為針對Visual Studio包的主要部署技術(shù)。 VSI和MSI格式的文件中都包含了完整的分發(fā)包。

  這種設(shè)計導(dǎo)致了一些交付問題。為了獲得擴(kuò)展,用戶需要在不計其數(shù)的網(wǎng)絡(luò)站點中搜索、下載和安裝。管理擴(kuò)展的依賴關(guān)系和更新既不簡單,也不易懂。

  在Visual Studio 2010增加的多種新特性中,新的擴(kuò)展管理器就是為了解決擴(kuò)展部署問題的。它遵循了一種新的用于發(fā)布和部署第三方擴(kuò)展的趨勢,這種趨勢是由于像Firefox和Eclipse這樣的項目而變得流行。

  本文會向你介紹Visual Studio 2010的擴(kuò)展管理器。你會了解到如何構(gòu)建簡單的擴(kuò)展,并把它部署到Visual Studio Gallery中。

  嶄新的用戶體驗

  應(yīng)用程序擴(kuò)展是與核心應(yīng)用程序分別發(fā)布的。傳統(tǒng)上認(rèn)為它們更像是獨(dú)立的應(yīng)用程序。盡管隨著時間的推移,Visual Studio擴(kuò)展性的很多方面都得到了改善,然而交付機(jī)制還是沒有太多的改變。它遵循的是雙擊工作流(double-clicking workflow),那并不容易。

  在哪里能夠找到擴(kuò)展?

  如何管理擴(kuò)展的生命周期,包括安裝、更新和卸載?

  在過去,想要找到針對Visual Studio的正確的擴(kuò)展,我們需要做大量的搜索工作。開發(fā)者可以在InterNET上搜索擴(kuò)展,或者可以從雜志的文章中、論壇的帖子中或者博文中獲得擴(kuò)展的信息。但我們很難發(fā)現(xiàn)所有可用的選擇,而且也很難對類似的擴(kuò)展進(jìn)行比較。

  有了Visual Studio Gallery之后,這種狀況已經(jīng)得到了改變。這個站點是Visual Studio擴(kuò)展的官方和集中資源所在。你可以瀏覽并且訂閱擴(kuò)展的RSS。你還可以閱讀評論,并提供你的反饋,對擴(kuò)展打分。

  Visual Studio 2010的擴(kuò)展管理器是與Visual Studio Gallery結(jié)合使用的。它把Visual Studio Gallery帶到了Visual Studio IDE中(如圖1所示)。我們不再需要使用web瀏覽器來搜索或者運(yùn)行安裝程序了。在Visual Studio 2010中,我們可以通過Tools | Extension Manager菜單來打開擴(kuò)展管理器。當(dāng)擴(kuò)展管理器打開之后,它會列出已經(jīng)安裝了的擴(kuò)展。如果對于擴(kuò)展有更新可用,也會在其中列出來。在左邊的面板中,點擊“Online Gallery”標(biāo)簽頁,你就可以瀏覽和搜索在“Visual Studio Gallery”中可用的擴(kuò)展了。當(dāng)你選擇一項擴(kuò)展,相關(guān)的描述就會顯示在右側(cè)的面板中。點擊“下載”按鈕,擴(kuò)展管理器馬上就會開始下載選中的擴(kuò)展。

1

  圖1 Visual Studio 2010的擴(kuò)展管理器

  有時,安裝一項擴(kuò)展需要重啟Visual Studio。這也沒關(guān)系。 IDE會返回之前的樣子,載入最新的解決方案。刪除擴(kuò)展同樣很容易。通過Tools | Extension Manager 菜單打開擴(kuò)展管理器,選擇擴(kuò)展,然后點擊“Uninstall”按鈕。

  它不僅提供了簡單的方式,讓我們可以在Visual Studio IDE中搜索和安裝擴(kuò)展。還提供了對擴(kuò)展完整的生命周期管理。我們還可以在Visual Studio IDE中對擴(kuò)展進(jìn)行啟用/禁用、更新和卸載。

  在擴(kuò)展管理器中啟用和禁用擴(kuò)展的能力是值得一提的。正如你將在本文的下一部分將會看到的,創(chuàng)建擴(kuò)展并把它上傳到Visual Studio Gallery中要比之前容易得多。再也沒有批準(zhǔn)流程。上傳的內(nèi)容馬上就可以訪問。這可能有些風(fēng)險。某些擴(kuò)展會有質(zhì)量問題,或者與其它擴(kuò)展沖突。在那種情況下,禁用特性會為其提供幫助。

  自動的擴(kuò)展更新通知也是很棒的特性。每次你打開VS 2010的一個實例的時候,它就會自動檢查已經(jīng)安裝的擴(kuò)展的更新。當(dāng)找到更新的時候,它就會在系統(tǒng)托盤中顯示通知圖標(biāo)。點擊通知,它就會載入擴(kuò)展管理器來安裝新的更新。這確保你能夠擁有最新的擴(kuò)展更新,而不需要手動地搜索更新。

  有一些擴(kuò)展對于開發(fā)者是必需的。在InterNET上,人們會告訴你他們最喜歡的擴(kuò)展。在此我列出了我所選擇的部分。建議你嘗試使用它們。那很容易,并且如果你不喜歡,總是可以禁用并卸載它們。

  Visual Studio Productivity Power Tool,這是一組用于提高生產(chǎn)力的工具,像解決方案導(dǎo)航器、帶有改良的標(biāo)簽頁的用戶界面、可搜索的添加引用對話框,等等。

  · Snippet Designer,這種擴(kuò)展讓你可以在Visual Studio中創(chuàng)建代碼片段。

  · Spell Check,這種擴(kuò)展為純文本文件、注釋、字符串和HTML/ASP代碼提供了拼寫檢查功能。

  · Tangible T4 Editor,這種擴(kuò)展為T4模板提供了智能提示和語法的突出顯示。

  · GhostDoc,這是一種能夠為C#生成XML文檔注釋的擴(kuò)展。

  · Feature Builder Power Tool,這種擴(kuò)展會幫助你創(chuàng)建擴(kuò)展。

  · PowerGUI,這種擴(kuò)展為PowerShell 腳本提供了智能提示和語法的突出顯示。

  · IronPython IronRuby Console,這種擴(kuò)展讓你能夠在IronPython/IronRuby中與Visual Studio交互?!?/p>

  擴(kuò)展管理器的體驗讓我們想到了一些直觀的流程,像下載軟件到iPhone、下載插件到Firefox、以及從Amazon下載書籍到Kindle上等等。這可能就是消費(fèi)軟件部署的趨勢。它是基于InterNET或者云,并且與應(yīng)用程序整合的部署方式。根據(jù)最近在網(wǎng)上泄露的“Windows Store for Windows 8”,我們可能會在下一版本的Windows中看到這種軟件部署方式。

  現(xiàn)在,Visual Studio 2010擴(kuò)展管理器和Visual Studio Gallery更加以擴(kuò)展為中心。將來,它會更加以用戶為中心。我希望它會記住我所選擇的擴(kuò)展,并在所有我登陸的計算機(jī)中應(yīng)用那些擴(kuò)展。

  在“創(chuàng)建簡單的擴(kuò)展”部分中,我會一步一步地創(chuàng)建Hello World擴(kuò)展。

  在嘗試這些步驟之前,你需要確保已經(jīng)下載并安裝了Visual Studio SDK。

  創(chuàng)建Visual Studio Package項目

  首先,使用“Other Project Types | Extensibilities”下面的Visual Studio Package Project模板創(chuàng)建新的項目。

創(chuàng)建Visual Studio Package項目

  圖2 Visual Studio Package Project 模板

  它會載入Visual Studio Package向?qū)?,它有七頁,我們可以在其中為Hello World包填寫基本的信息。這是很簡單的過程。在第三步中,我選擇了“Menu Command”和“Tool Window”選項,從而展現(xiàn)最初針對菜單項和工具窗口的代碼。(圖3)

創(chuàng)建Visual Studio Package項目

  圖3 創(chuàng)建菜單命令和工具窗口

  檢查項目結(jié)構(gòu)

  在創(chuàng)建了項目之后,讓我們來檢查其中都有什么。有些東西是值得注意和說明的。

  其中有一個source.extension.vsixmanifest文件。在這個文件中,會生成我們在新建項目向?qū)е休斎氲男畔?,還有包的引用和內(nèi)容。它擁有屬于自己的編輯器(圖4)。

創(chuàng)建Visual Studio Package項目

  圖4 編輯器中的source.extension.vsixmanifest文件  

  在項目的屬性頁中,有一個新的VSIX標(biāo)簽頁,讓Visual Studio在調(diào)試擴(kuò)展的時候,構(gòu)建和/或部署VSIX的過程中創(chuàng)建VSIX文件。

3

  圖4.1 項目屬性頁中的VSIX標(biāo)簽頁

  在Visual Studio 2010之前,擴(kuò)展是作為安裝包部署的,這多少和單獨(dú)的應(yīng)用程序有些類似。它們是在Visual Studio之外使用VSI或者M(jìn)SI分別安裝和維護(hù)的。開發(fā)者經(jīng)常會認(rèn)為編寫Visual Studio擴(kuò)展很難,或者那不是一般開發(fā)者所能夠完成的。那是對的。此外,為Visual Studio擴(kuò)展創(chuàng)建安裝包更困難。

  為了給Visual Studio 2008擴(kuò)展創(chuàng)建安裝包,MSDN上的一篇文章“教程:簡單的VSPackage部署”建議使用xcopy、安裝項目,或者使用Windows Installer XML Toolset (WiX)。在所有情況下,開發(fā)者都不得不學(xué)習(xí)MSI、WiX,或者理解注冊表的鍵值以注冊擴(kuò)展。

  使用安裝項目的方法,開發(fā)者需要編寫自定義的安裝動作來注冊擴(kuò)展。使用WiX既耗時又容易出錯,因為那需要手動編輯XML文件,并且維護(hù)很多GUID值。默認(rèn)情況下,WiX安裝只有最少的功能。開發(fā)者需要操作更多的XML文件來提供功能,像定義安裝文件夾以及顯示許可信息等等。

  在Visual Studio 2010中,對于開發(fā)擴(kuò)展至少在兩個方面做出了改進(jìn)。使用VSIX來對擴(kuò)展打包更容易。 VSIX是在Visual Studio 2010中引入的針對擴(kuò)展的部署單元。VSIX文件是一種使用了開放打包協(xié)議(Open Packaging Convention)的壓縮文件。我們可以從本地硬盤中像VSI和MSI的方式安裝VSIX。 Visual Studio會識別出VSIX的文件擴(kuò)展名,把它解壓并把文件安裝在正確的位置中。它還可以通過Visual Studio Gallery進(jìn)行發(fā)布和升級。當(dāng)你構(gòu)建擴(kuò)展項目的時候,Visual Studio 2010擴(kuò)展項目模板就會生成VSIX文件。

  在Visual Studio 2010中,開發(fā)者需要處理XML文件。但是開發(fā)者不需要編輯原始的XML文件,Visual Studio 2010為其提供了編輯器。那就是新的VSIX說明文件編輯器(圖3)。你所需要做的就是指定相同的VSIX ID——唯一的標(biāo)識符,以及新的版本號。然后把它上傳到Gallery中,這樣擁有舊版本的用戶就可以下載更新。

  VSIX本質(zhì)上是一種簡單的xcopy部署方式。安裝就是要對包進(jìn)行復(fù)制和解壓。卸載只是刪除文件夾。它不支持高級的安裝特性,像為GAC添加程序集或者創(chuàng)建桌面快捷方式等等。它也不會在Visual Studio之外寫入注冊表。它不支持自定義的動作。 MSDN上名為“Visual Studio 擴(kuò)展部署”的文章對VSIX和MSI能做的和不能做的做了詳細(xì)的說明。

  VSIX主要是為了Visual Studio擴(kuò)展部署而設(shè)計的,并且使用Visual Studio Gallery來發(fā)布。

  構(gòu)建項目

  在構(gòu)建了項目之后,構(gòu)建的輸出包括封裝后的DLL、包定義文件(pkgdef)以及VSIX文件(圖5)。

  VSIX文件是包的部署文件,你可以把它發(fā)送給用戶來進(jìn)行安裝,或者上傳到Visual Studio Gallery中。

3

  圖5 構(gòu)建輸出

  調(diào)試和運(yùn)行擴(kuò)展

  在項目的屬性頁中,調(diào)試選項被設(shè)置為載入Visual Studio實驗環(huán)境。(圖6)

3

  圖6 項目的調(diào)試設(shè)定

  按下F5,就會載入部署了VSIX的Visual Studio實驗環(huán)境的新實例。 Visual Studio實驗環(huán)境會與Visual Studio開發(fā)環(huán)境并行運(yùn)行。它是用于開發(fā)和測試Visual Studio包的沙盒環(huán)境。部署在實驗環(huán)境中的包不會影響你的主開發(fā)環(huán)境。實驗環(huán)境擁有自己的設(shè)定、注冊表項和擴(kuò)展。我們可以使用開始菜單中的“重置微軟Visual Studio 2010實驗實例”選項,把它重置為干凈的狀態(tài)。 

  我們創(chuàng)建的簡單擴(kuò)展會在Tools菜單下添加“Hello World”菜單項(圖7),并在“View| Other Windows”下添加“Hello World Tool Window”菜單(圖8),我們可以使用它來顯示工具窗口(圖9)。

1

  圖7 Toos菜單下的“Hello World”菜單

1

  圖8 “View| Other Windows”下的“Hello World Tool Window”菜單

1

  圖9 擴(kuò)展的工具窗口  

  包的主要入口點在于Microsoft.VisualStudio.Shell.Package的子類中。它擁有多個與包的注冊相關(guān)的屬性,我們會在安裝和注冊的過程中使用它們。(圖10)

1

  圖10 Package類

  你可以在名為Initialize的重載函數(shù)中編寫代碼,從而在載入你的包時與Visual Studio交互。在我們簡單的包中,“Hello World”和“Hello World Tool Window”菜單都是在這個初始化函數(shù)中創(chuàng)建的。

1

  圖11 Initialize函數(shù)

  菜單的回調(diào)函數(shù)是MenuItemCallBack和ShowToolWindow。當(dāng)點擊“Hello World”菜單的時候,就會觸發(fā)MenuItemCallBack 函數(shù)。默認(rèn)的代碼是要顯示一個消息框。它是你的包邏輯的起始點。當(dāng)點擊“Hello World Tool Window”菜單的時候,就會觸發(fā)ShowToolWindow函數(shù)。默認(rèn)的代碼是以標(biāo)準(zhǔn)的方式彈出工具窗口。

  工具窗口是Visual Studio IDE的子窗口。和工具箱、解決方案管理器和屬性窗口一樣,它可以停靠、浮動或者以標(biāo)簽的形式顯示在文檔框架中。它們是動態(tài)的(或者說是自動可見的)。有了Visual Studio 2010對多顯示器的支持,工具窗口也可以脫離開來,并拖拽到第二臺顯示器中。 Visual Studio Package Project模板默認(rèn)情況下會為工具窗口創(chuàng)建WPF的用戶控件。

  現(xiàn)在我們已經(jīng)有了Visual Studio Package的骨架,可以構(gòu)建他來生成可以分發(fā)的VSIX文件,我們或者可以通過復(fù)制的形式或者通過Visual Studio Gallery來分發(fā)它。

  發(fā)布到Visual Studio Gallery

  想要通過Visual Studio Gallery來發(fā)布擴(kuò)展,只需要三步,就可以發(fā)布你的擴(kuò)展,從而讓全世界的開發(fā)者都能夠訪問到它。

  ·選擇你的擴(kuò)展的類型

  ·上傳VSIX文件

  ·添加附加的類別和描述。

  Visual Studio Gallery會從VSIX中取得元數(shù)據(jù),包括名稱、ID、版本、公司、許可以及產(chǎn)品的圖片。擴(kuò)展管理器會使用版本號來自動管理擴(kuò)展的更新。

1

  圖12 Visual Studio Gallery

  當(dāng)你的擴(kuò)展有新版本時,你所需要做的就是在VSIX的說明文件編輯器中更改版本號,構(gòu)建新的VSIX文件并上傳到Visual Studio Gallery中。這樣,更新就馬上可以提供給用戶下載了。當(dāng)用戶啟動Visual Studio新的實例時,Visual Studio就會在系統(tǒng)托盤顯示新的更新通知。

  有時這是很方便的,因為Visual Studio Gallery沒有驗證過程。發(fā)布擴(kuò)展就像在推特上發(fā)布一條消息一樣簡單。對擴(kuò)展開發(fā)者的一項提示是,你應(yīng)該盡可能地測試以保證質(zhì)量。你不應(yīng)該先上傳擴(kuò)展,然后才開始測試,因為它馬上會被大家所發(fā)現(xiàn)。 VSIX支持雙擊安裝,就像VSI和MSI一樣。如果其中有bug,那么就使用擴(kuò)展管理器來卸載它,創(chuàng)建新構(gòu)建的VSIX,然后雙擊它來安裝并進(jìn)行測試。在開發(fā)過程中,你不需要提升版本號。記著在完整地測試之后在把它上傳到Visual Studio Gallery中。

  這會帶來另一種提示。 Visual Studio Gallery不支持私有分發(fā)。如果你的擴(kuò)展只在你的公司的開發(fā)者中使用,那么你就不應(yīng)該把它上傳到Visual Studio Gallery中。相反,你應(yīng)該在公司內(nèi)部發(fā)布VSIX文件。在這種情況下,想要更新擴(kuò)展,你需要手動地與擴(kuò)展用戶溝通。

  Visual Studio Gallery的目的之一就是要創(chuàng)建Visual Studio擴(kuò)展的生態(tài)系統(tǒng)。自從幾年之前它可以用于Visual Studio 2008開始,人們已經(jīng)上傳了上千個擴(kuò)展。與其說是一種商業(yè)集市,不如說是一種社區(qū)分享站點,就像Apple的App Store和Windows Phone Marketplace一樣。如果開發(fā)者想要銷售他們的擴(kuò)展,那么就需要找到其它廠商和付費(fèi)服務(wù),就像舊式的共享軟件發(fā)布一樣。用戶無法通過擴(kuò)展管理器付費(fèi)。結(jié)果是,擴(kuò)展管理器和Visual Studio Gallery為開源和免費(fèi)的擴(kuò)展項目提供了優(yōu)秀的支持。

  總結(jié)

  Visual Studio 2010的擴(kuò)展管理器和Visual Studio Gallery提升了擴(kuò)展用戶和擴(kuò)展開發(fā)者的用戶體驗。你應(yīng)該始終記著,那里有成千上萬的擴(kuò)展可供你擴(kuò)充Visual Studio的特性。還應(yīng)該始終記著,你可以在Visual Studio中搜索和管理擴(kuò)展的生命周期。如果你對于擴(kuò)展Visual Studio有什么好主意,那么我建議你試著創(chuàng)建一些Visual Studio擴(kuò)展。 Visual Studio擴(kuò)展會提升開發(fā)的生產(chǎn)力。

NET技術(shù)詳解Visual Studio 2010中的擴(kuò)展管理器,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 色翁荡息又大又硬又粗又爽电影 | BL全肉多攻NP高H | 国产伊人久久 | 日本乱hd高清videos | 一本道mw高清码二区三区 | 日韩一区二区三区射精 | 久久国产36精品色熟妇 | 亚洲视频中文字幕 | 末成年美女黄网站色大片连接 | 偷拍亚洲制服另类无码专区 | 嫩草国产精品99国产精品 | 中文字幕在线观看亚洲日韩 | 亚洲免费中文 | 女教师苍井空体肉女教师S242 | 亚洲伊人精品 | 久久麻豆亚洲AV成人无码国产 | 久久精品午夜一区二区福利 | 2020亚洲 欧美 国产 日韩 | 色窝窝亚洲AV在线观看 | 亚洲精品一区国产欧美 | 日操夜操天天操 | 天堂so导航| 91热久久免费频精品99欧美 | 无码日本亚洲一区久久精品 | 97豆奶视频国产 | 亚洲 日本 中文字幕 制服 | 波多野结衣二区 | 九九热在线视频观看这里只有精品 | 国产色综合色产在线视频 | 欧美日韩一区在线观看 | 国产性夜夜春夜夜爽1A片 | 妞干网手机免费视频 | 色情在线avav| 2019久久这里只精品热在线观看 | 欧美精品九九99久久在免费线 | 99精品AV无码一区二区 | 国产成人一区免费观看 | 亚洲精品一二三 | 熟女人妻AV五十路六十路 | 折磨比基尼美女挠肚子 | 在线欧美精品一区二区三区 |