在Visual Studio.NET中使用自定義插件最大化您的生產(chǎn)力(一)
發(fā)表時間:2024-02-22 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]這篇文章假設(shè)您已經(jīng)熟悉C#, Visual Basic .NET和CLR難度程度 1 2 3摘要對于開發(fā)者來說,不管多么強大的集成開發(fā)環(huán)境(IDE)都需要具有自定義插件的功能;谶@個原因,Visual Studio. NET IDE提供了一個可擴展的、添加方便的而且還沒有數(shù)量限制的自定...
這篇文章假設(shè)您已經(jīng)熟悉C#, Visual Basic .NET和CLR
難度程度 1 2 3
摘要
對于開發(fā)者來說,不管多么強大的集成開發(fā)環(huán)境(IDE)都需要具有自定義插件的功能;谶@個原因,Visual Studio. NET IDE提供了一個可擴展的、添加方便的而且還沒有數(shù)量限制的自定義插件功能。這個自定義插件可以用Visual Basic、C、C#或則其它的.NET的使用的語言來編寫。這篇文章解釋了如何在Visual Studio. NET中增加一個自定義插件的例子。這個例子將演示如何通過自定義插件完成一個自定義的文本編輯功能,其中實現(xiàn)了兩個功能,一個是在文本中簡單的插入當(dāng)前的日期,另一個是更加復(fù)雜的功能是實現(xiàn)重新格式化一段文本。最后您將學(xué)習(xí)如何在選項對話框中增加一個頁。
如果您開始使用Microsoft Visual Studio .NET你應(yīng)該知道他充滿了新特征和技術(shù)。雖然,你肯能認為集成開發(fā)環(huán)境(IDE)是一個編寫代碼的簡單的文本編輯器,它已經(jīng)非常強大了。它提供的框架支持開發(fā)工具的插入而且是單一的無縫的可開發(fā)的。當(dāng)然,IDE并不能滿足所有的人,你或則我所要的功能可能并沒有在這里。幸運的是IDE已經(jīng)提供了可擴展的功能,它允許您擴展你所需要的任何東西。
開始
插件和宏是擴展IDE的兩種方法。宏是可以被記錄的和被立即執(zhí)行的。因此,這是一種探索對象模型的強大的方法。宏使用一個以 .vsmacros 文件的形式來分布,通過雙擊這個文件來加載到宏編輯器中。宏在加載可用之后,宏就可以被使用者非常容易的修改。
另一方面,插件是編譯的而且在分布之后就不能被修改。這樣保護了你的知識財產(chǎn)。通過插件,你可以創(chuàng)建工具窗口這些操作對于Visual Studio.NET就像操作本地的功能一樣。插件可以動態(tài)的改變菜單、工具條事件的狀態(tài)和在幫助對話框中增加信息。插件是通過微軟的安裝文件(.MSI)來進行部署的,它可以輕易的安裝和通過控制面板中的添加/刪除程序?qū)υ捒蜻M行卸載。
創(chuàng)建一個插件的步驟在Visual Studio.NET的在線幫助中已經(jīng)隱藏起來,同樣也在Visual Studio.NET Automation Examples Web site中被隱藏了。我在這里不想介紹每一個的具體過程,但是可以回顧一下我創(chuàng)建一個插件所選擇的過程。
創(chuàng)建一個插件首先要創(chuàng)建一個項目,在新建項目(New Projects)對話框其他項目(Other Projects)下面,你會發(fā)現(xiàn)擴展性項目(Extensibility Projects)。選擇Visual Studio.NET外接程序(Visual Studio.NET Add-in)。圖一顯示了在一個點上的新建工程對話框。點擊確定按鈕開始向?qū)А?br>
圖1創(chuàng)建一個新工程
對于我的插件,向?qū)е械那叭蕉急容^容易。第一步,我選擇了C#語言作為插件的開發(fā)語言。第二步,我選擇了Microsoft Visual Studio.NET作為插件的主機(host)。在您的插件中你當(dāng)然可以包括VSMacros IDE。第三步,插件命名為“Text Editing Utilites”,并給出了適當(dāng)?shù)拿枋觥?br>
圖2
在向?qū)е械牡谒牟,如圖2所示,需要一些操作。
l 選擇“是的,創(chuàng)建工具菜單項”。
l 確定“我的外接程序不提供……”沒被選中。這個例子中我沒有準(zhǔn)備提供一個模式用戶界面,但是如果你真的想更多的擴展你的插件功能,你可以選擇此項。
l 確定“我希望我的外接程序在宿主程序啟動時加載”沒被選中。這樣可以使調(diào)試是容易一些。插件的用戶可以在以后的插件管理的操作中改變此選項。
l 我選擇了“我的外接程序不僅僅……”選項。在我的計算機中我是真正的用戶,同樣我確認這個例子也是為了更多的開發(fā)者。這個選項僅僅是改變插件已經(jīng)注冊的用戶。
第五步,你可以包含一些幫助信息。選中復(fù)選框,在下面輸入任何的聯(lián)系信息。現(xiàn)在,你可以完成向?qū),開始我們的插件。
下面列出了Connect對象的方法。這些方法是不完整的,可以在Connect.cs文件找到該類。這些你的新建項目的一部分。
l Connect::Connect。這是構(gòu)造函數(shù),在這里你可做簡單初始化。
l Connect::OnConnection。這個方法是在IDE真正加載您的插件時調(diào)用。在這里你可以初始化你的插件,而且必須為IDE提供命令信息、制定鍵盤綁定等等。
l Connect::QueryStatus。這個方法是在適當(dāng)?shù)臅r候IDE確定當(dāng)前狀態(tài)時被調(diào)用。
l Connect::Exec。這個方法是IDE真正的執(zhí)行命令是被調(diào)用的。
現(xiàn)在,所有的基礎(chǔ)內(nèi)容在這里,讓我們開始開發(fā)一個簡單的插件例子。