SharePoint 工具擴充功能的程式撰寫模型概觀
當您建立 SharePoint 工具的擴充功能在 Visual Studio 中,您可以透過實作由 SharePoint 工具公開的一個或多個擴充性介面開始。在大多數情況下,您也會使用 SharePoint 工具所提供的其他類型來實作擴充功能中的功能。在大多數情況下,您也可以使用 Visual Studio 和 SharePoint 所提供的其他物件模型中的類型。您必須了解每個這些物件模型的用途,並知道如何將這些物件模型搭配使用,才能建立 SharePoint 工具的擴充功能。
實作擴充性介面以擴充 SharePoint 工具
Visual Studio 使用 .NET Framework 4 中的 Managed Extensibility Framework (MEF),為 SharePoint 工具提供擴充性模型。MEF 是 API (在 System.ComponentModel.Composition 組件中實作),可讓應用程式公開擴充點,並在執行階段探索及載入擴充功能。如需 MEF 的詳細資訊,請參閱 Managed Extensibility Framework (MEF)。
若要擴充 SharePoint 工具,請實作一個或多個由 Visual Studio 公開的擴充性介面。您也必須視需要將 System.ComponentModel.Composition.ExportAttribute 和其他 SharePoint 工具特定的屬性套用至介面實作。下表列出可用來實作以擴充 SharePoint 工具的介面清單。
介面 |
描述 |
---|---|
實作這個介面以定義新的 SharePoint 專案項目類型。如需範例,請參閱HOW TO:定義 SharePoint 專案項目類型。 |
|
實作這個介面以擴充已經安裝在 Visual Studio 中的 SharePoint 專案項目類型。如需範例,請參閱HOW TO:建立 SharePoint 專案項目擴充功能。 |
|
實作這個介面以擴充 SharePoint 專案。如需範例,請參閱HOW TO:建立 SharePoint 專案擴充功能。 |
|
實作這個介面以定義新的部署步驟,可以在部署或撤銷 SharePoint 專案項目時執行。如需範例,請參閱逐步解說:建立 SharePoint 專案的自訂部署步驟。 |
|
實作這個介面以擴充 [伺服器總管] 視窗中 [SharePoint 連接] 節點底下的現有節點。如需範例,請參閱HOW TO:在伺服器總管中擴充 SharePoint 節點。 |
|
實作這個介面以定義 [伺服器總管] 視窗中 [SharePoint 連接] 節點底下的新節點類型。如需範例,請參閱HOW TO:在伺服器總管中擴充 SharePoint 節點。 |
|
實作這個介面以定義自訂功能驗證規則。如需範例,請參閱HOW TO:建立 SharePoint 方案的自訂功能和封裝驗證規則。 |
|
實作這個介面以定義自訂封裝驗證規則。如需範例,請參閱HOW TO:建立 SharePoint 方案的自訂功能和封裝驗證規則。 |
實作 SharePoint 工具的擴充功能後,您必須部署 Visual Studio 擴充功能 (VSIX) 套件中的擴充功能組件,才能讓 Visual Studio 探索及載入擴充功能。如需詳細資訊,請參閱部署 Visual Studio 中 SharePoint 工具的擴充功能。
了解 SharePoint 工具擴充功能中使用的物件模型
建立 SharePoint 工具的擴充功能時可以使用幾種物件模型:
「SharePoint 工具物件模型」(SharePoint Tools Object Model)。這種物件模型提供可用來實作以建立 SharePoint 工具擴充功能和其他相關類型的擴充性介面。
「Visual Studio Automation 和整合物件模型」(Visual Studio Automation and Integration Object Model)。這些物件模型可用來存取 SharePoint 工具物件模型範圍之外的 Visual Studio 功能。
注意事項
您可以使用 SharePoint 專案服務將 SharePoint 工具物件模型中的某些物件,轉換成 Visual Studio Automation 和整合物件模型中的物件,反之亦然。如需詳細資訊,請參閱在 SharePoint 專案系統類型與其他 Visual Studio 專案類型之間轉換。
「SharePoint 伺服器和用戶端物件模型」(SharePoint Server and Client Object Model)。這些物件模型可用來在 SharePoint 工具擴充功能的內容中修改 SharePoint 網站或從 SharePoint 網站擷取資料。
SharePoint 工具物件模型
每個 SharePoint 工具擴充功能都會使用 SharePoint 工具物件模型中的類型,定義擴充功能的核心行為和功能。下表說明此物件模型中包含的命名空間。
Assembly |
命名空間 |
描述 |
---|---|---|
Microsoft.VisualStudio.SharePoint.dll |
包含用來擴充及自動化 SharePoint 專案系統的類型。例如,您可以擴充內建的 SharePoint 專案和專案項目,或是建立自己的專案項目。如需詳細資訊,請參閱擴充 SharePoint 專案系統。 |
|
包含用來擴充 SharePoint 專案之部署程序的類型,例如建立您自己的部署步驟和組態。如需詳細資訊,請參閱擴充 SharePoint 封裝和部署。 |
||
包含用來擴充 [伺服器總管] 視窗中 [SharePoint 連接] 節點底下的節點,或定義新的節點類型。如需詳細資訊,請參閱在伺服器總管中擴充 SharePoint 連線節點。 |
||
包含用來存取 SharePoint 專案中功能定義的類型。 |
||
包含用來存取 SharePoint 方案中封裝定義的類型。 |
||
包含用來自訂 SharePoint 專案的功能和封裝驗證行為的類型。如需詳細資訊,請參閱HOW TO:建立 SharePoint 方案的自訂功能和封裝驗證規則。 |
||
Microsoft.VisualStudio.SharePoint.Commands.dll |
包含可用來建立自訂「SharePoint 命令」(SharePoint Command) 的型別。SharePoint 命令是從 SharePoint 工具擴充呼叫 SharePoint 伺服器物件模型的方法。如需詳細資訊,請參閱呼叫 SharePoint 物件模型。 |
|
Microsoft.VisualStudio.SharePoint.Explorer.Extensions.dll |
包含可用來取得有關內建 [伺服器總管] 節點的相關資訊,這些節點表示 SharePoint 網站上的個別元件,例如表示清單、欄位或內容型別的節點。如需詳細資訊,請參閱在伺服器總管中擴充 SharePoint 連線節點。 |
Visual Studio Automation 物件模型
Visual Studio Automation 物件模型提供可用來自動化 Visual Studio 專案和 IDE 的 API。使用 Visual Studio 物件模型可執行非 SharePoint 專案專屬的專案相關工作,或是執行 Visual Studio 中其他一般自動化工作。通常此物件模型是在 Visual Studio 增益集和巨集中使用,但是也可以在 SharePoint 工具擴充功能中使用。
Visual Studio Automation 物件模型的主要部分是在 EnvDTE.dll 組件中定義。EnvDTE80.dll、EnvDTE90.dll 和 EnvDTE110.dll、EnvDTE100.dll 組件分別提供在 Visual Studio、Visual Studio SP1、Visual Studio Test 和 Visual Studio 2012引入的額外功能。這些組件包含在 Visual Studio。
如需 Automation 物件模型的詳細資訊,請參閱擴充 Visual Studio 環境和 Automation 與擴充性參考。
Visual Studio 整合物件模型
整合物件模型提供許多 API,可透過建立 VSPackage 的方式將功能加入至 Visual Studio。VSPackage 是模組,可透過提供自訂功能如工具視窗、編輯器、設計工具、服務和專案的方式,擴充 Visual Studio IDE。
如果要加入將搭配內建 SharePoint 工具使用的 Visual Studio 新功能,則可以使用整合物件模型。例如,如果您為 SharePoint 網站建立代表自訂動作的自訂 SharePoint 專案項目,則也可以建立實作自訂動作之設計工具的 VSPackage。您可以使設計工具與此自訂動作將捷徑功能表項目加入至代表在 [方案總管] 的自訂動作的專案項目。您可以開啟其捷徑功能表 (以滑鼠右鍵按一下自訂動作專案項目或藉由選取然後選擇 SHIFT + F10 鍵) 然後選取 [開啟] 開啟您的設計工具。
此物件模型是在 Visual Studio SDK 內含的組件集中定義。某些此物件模型的主要組件中 Microsoft.VisualStudio.Shell.11.0.dll、Microsoft.VisualStudio.Shell.Interop.dll 和 Microsoft.VisualStudio.OLE.Interop.dll。
如需整合物件模型的詳細資訊,請參閱 Visual Studio 的開發環境模型和 Visual Studio SDK 參考。
SharePoint 物件模型
SharePoint 工具擴充功能可以使用 SharePoint API 修改 SharePoint 網站或從 SharePoint 網站擷取資料。Microsoft SharePoint Foundation 2010 和 Microsoft SharePoint Server 2010 提供兩種不同的物件模型:伺服器物件模型和用戶端物件模型。
您可以在 SharePoint 工具擴充功能的任一種物件模型中使用 API,但是每個物件模型在 SharePoint 工具擴充功能環境下都有優缺點。如需詳細資訊,請參閱呼叫 SharePoint 物件模型。
物件模型 |
描述 |
---|---|
伺服器物件模型 |
伺服器物件模型可讓您存取 Microsoft SharePoint Foundation 2010 和 Microsoft SharePoint Server 2010 透過程式設計的方式提供的所有功能。此物件模型的設計是提供 SharePoint 伺服器上執行的 SharePoint 方案使用。此物件模型大部分是在 Microsoft.SharePoint.dll 組件中定義。如需伺服器物件模型的詳細資訊,請參閱使用 SharePoint Foundation 伺服器端物件模型 (英文)。 |
用戶端物件模型 |
用戶端物件模型是伺服器物件模型的子集,可用來與遠端用戶端或伺服器上的 SharePoint 資料互通。它的設計在於盡可能減少執行一般工作時必須執行的來回行程次數。用戶端物件模型大部分是在 Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Runtime.dll 組件中定義。如需用戶端物件模型的詳細資訊,請參閱 Managed 用戶端物件模型 (英文)。 |