共用方式為


部署自訂 - 概觀 (SharePoint Server 2010)

 

適用版本: SharePoint Server 2010

上次修改主題的時間: 2016-11-30

在本章的內容中,將說明如何在 Microsoft SharePoint Server 2010 環境,部署開發人員或是網站設計者自訂的網站元素。

本文內容:

  • 程序概觀

  • 開始之前

  • 關於可自訂網站元素的兩種類型

  • 部署已開發網站元素

  • 部署已製作網站元素

程序概觀

部署自訂可能非常複雜,特別是因為在 SharePoint Server 2010 中可以利用許多部署方法,而且使用其中任何一種方法並未明顯優於使用其他方法。

您可以使用不同的方法,部署這些不同的網站元素或是「成品」 類型。但無法使用單一部署方法來部署整個範圍的可自訂網站元素。因為每種類型的元素可能源自不同設計者群組,而且遵循不同升級考量,所以有其他獨特的部署考量。在本文中稍後的<關於可自訂網站元素的兩種類型>會討論不同的網站元素類型。

如需特定的部署工作和相關考量,請參閱下列文章:

開始之前

將任何自訂程式碼部署至環境之前,應該先建立環境的效能基線,以便分析自訂影響效能的程度。建立效能基線之後,在測試或整合環境中徹底測試自訂程式碼,並比較結果與基線。將任何自訂部署至生產環境之前,請確定已經完成徹底測試。

將協力廠商提供的任何程式碼部署至生產環境之前,一定要進行測試,即使程式碼是從信任的來源取得。

這些文章中的說明和指引適用於已依照<規劃伺服器陣列與環境 (SharePoint Server 2010)>中的要求部署及設定的 SharePoint Server 環境。

關於可自訂網站元素的兩種類型

「已開發的網站元素」是方案成品,通常是由開發人員建立。方案包含組件,這是以 Microsoft .NET Framework 為基礎的語言所開發,並在部署前編譯的 SharePoint 元件。已開發的網站元素 (除了計時器工作組件及網站定義),通常會組合成「功能」,做為方案套件的一部分。已開發的網站元素包括:

  • 網頁組件

  • 工作流程

  • 網站和清單定義

  • 文件轉換程式

  • 事件接收器

  • 計時器工作

  • 組件

「已製作網站元素」通常是由網頁設計者所建立,而且不是明確編譯並放在內容資料庫中。已製作網站元素包括:

  • 主版頁面

  • 階層式樣式表

  • 表單

  • 版面配置頁面

這兩種可自訂網站元素類型的差異如下:

  • 檔案在 SharePoint Server 2010 伺服器陣列中的儲存位置。

  • 由組織中的哪個小組負責管理網站元素。

  • 網站元素需要的部署機制。

某些元素可能是方案成品或是已製作成品。例如,內容類型可以在 XML 檔案中定義為已開發的方案成品,或是透過瀏覽器建立為已製作成品。可以做為方案成品或是製作成品的網站元素包括網站欄及清單例項。方案成品可以用來在網站中佈建檔案,以及設定在前端網頁伺服器的記憶體中快取。

部署已開發網站元素

已開發網站元素一般可以定義為在程式碼開發環境中建立,且直接部署至前端網頁伺服器和應用程式伺服器的網站元素。這些網站元素通常是由開發人員使用 Microsoft Visual Studio 2010 Tools for SharePoint 2010、Microsoft Office SharePoint Designer 或 XML 編輯工具所自訂。如需詳細資訊,請參閱 SharePoint Foundation 開發工具(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=183360&clcid=0x404)(可能為英文網頁)。

注意

本文不會討論已部署為沙箱化解決方案之已開發網站元素的部署。沙箱化解決方案是可以存取伺服器物件模型子集合及功能元素子集合,且網站集合管理員又可加以部署的解決方案。如需詳細資訊,請參閱<沙箱化解決方案概觀 (SharePoint Server 2010)>。

最佳作法是使用方案套件和 Windows PowerShell 部署已開發網站元素。SharePoint Server Solution Framework 可簡化及標準化下列程序:在伺服器陣列之間部署新的網站元素及升級網站元素,然後同步處理前端網頁伺服器,使其狀態與伺服器陣列中其他伺服器的狀態一致。例如,方案套件可簡化重建伺服器陣列的程序。手動處理程式碼和檔案部署網站元素,會導致升級程序產生不一致的狀況,並可能導致伺服器與其他伺服器不同步。您可以使用方案套件,將已開發網站元素從開發人員環境部署至整合伺服器陣列,然後再部署至執行伺服器陣列、試驗伺服器陣列及實際執行伺服器陣列。

您可以使用 Windows PowerShell Cmdlet 建立、匯入、匯出及佈建方案套件,這些套件利用 Solution Framework 散佈已開發的網站元素自訂。在大多數環境中部署網站自訂時,Windows PowerShell Cmdlet 非常實用,原因是 SharePoint Server 2010 及 SharePoint Foundation 2010 都內建此功能,而且您可以單獨使用或是結合其他方法搭配使用。您可以使用 Windows PowerShell Cmdlet 來部署成品及已開發網站元素。您可以使用此 Cmdlet 來啟動在方案套件中部署的「功能」。

部署已製作網站元素

已製作網站元素與已開發網站元素的差異在於,雖然這些元素可以相依於網頁伺服器或應用程式伺服器 (較不常見) 之檔案系統中的現有資源,但是卻會儲存在內容資料庫。在某些情況下,已製作網站元素需要事先部署已開發網站元素才能運作。

在自訂部署完全自動化的環境中,系統可執行必要的部署順序,以消除同步處理問題。但是,如果是局部或完整手動執行自訂部署,則必須確定網頁伺服器和應用程式伺服器上已具有所有必要資源,再部署任何依賴這些資源的內容。

請使用一或多種不同的系統,將已製作網站元素從製作環境部署至執行、試驗和實際執行伺服器陣列。下表說明這些系統及其相關介面和使用情況。

部署系統 使用情況

SharePoint 管理中心網站

在透過網路連線來源和目的地伺服器陣列的環境中,您可以使用管理中心的內容部署功能,在來源伺服器陣列上建立內容部署套件,並將套件匯出至另一個伺服器陣列。

這種方法的設定和使用十分簡單,並可用來自動化已製作網站元素的部署,而且需要的設定時間和維護也很少。

內容移轉物件模型

根據使用的方法 (使用部署命名空間 API 進行程式設計、使用簡易物件存取通訊協定 (SOAP) 呼叫 Web 服務,或使用 Windows PowerShell Cmdlet 移動整個網站),您可以控制要移轉的內容和移轉方式。使用 API 匯入及匯出內容,是保留全域唯一識別碼 (GUID) 唯一支援的方法。

如需詳細資訊,請參閱內容移轉 (https://go.microsoft.com/fwlink/?linkid=183372&clcid=0x404)(可能為英文網頁)。

Windows PowerShell

您可以使用 Windows PowerShell Cmdlet 針對整個網站執行匯入和匯出作業,以保留時間戳記、安全性資訊和使用者資訊。當您想要從整個網站中移動基本內容時,Windows PowerShell Cmdlet 非常實用。

在大多數環境中部署網站自訂時,Windows PowerShell 非常實用,原因是 SharePoint 2010 產品內建此功能,而且您可以單獨使用或是結合其他方法搭配使用。您可以使用 Windows PowerShell Cmdlet 來部署成品及已開發網站元素。

如需詳細資訊,請參閱<使用 Windows PowerShell 管理 SharePoint 2010 產品>。

自訂 Web 服務

您可以建立用來自動化內容移轉和部署的自訂 Web 服務。您可以撰寫自訂指令碼和 Windows 應用程式,以便在這個程序內執行特定工作。

如需撰寫自訂 Web 服務之程式設計方法的詳細資訊,請參閱 Microsoft SharePoint 2010 開發軟體套件 (SDK) 中的下列資源:

手動程式碼處理

在小型且中斷連線的環境或未持續自訂已製作網站元素的環境中,您可以手動部署網站元素和相關資源。而在小型且連線的環境中,請考慮使用管理中心的內容部署功能,來部署已製作網站元素自訂。

方案套件及功能

例如版面配置、主版頁面、表單及樣式表,可以組成群組並在「功能」中部署,做為方案套件的一部分。從方案套件中部署的「功能」,可以在必須佈建已製作元素的範圍中啟動。

如需詳細資訊,請參閱<使用功能部署網站元素 (SharePoint Server 2010)>。

自訂範本

使用者可以將現存的網站 (連同或排除其中特定的內容) 做為自訂範本。此方法可以重複使用自訂網站。自訂網站範本會儲存為 .wsp 檔案。網站範本儲存在網站集合中頂層網站的「方案庫」,網站集合中所有網站建立子網站時都可以使用儲存在此的網站範本。網站範本可以下載及移動到其他網站集合庫。

See Also

Concepts

部署方案套件 (SharePoint Server 2010)
部署已製作網站元素 (SharePoint Server 2010)
部署範本 (SharePoint Server 2010)
部署範本 (SharePoint Server 2010)