本文章是由機器翻譯。

SharePoint

10 個 For 建置 SharePoint 解決方案的最佳作法

E. Wilansky, T. Stojecki, P. Olszewski and S. Kowalewski

可從 MSDN 程式庫 的程式碼下載
瀏覽線上的程式碼

本文將告訴您:

  • 善加利用內建的 SharePoint 功能
  • 部署 SharePoint 解決方案
  • 建立測試的程式碼
  • 商標 SharePoint,縮放和維護
本文將使用下列技術:
WSS,SharePoint3 的 Visual Studio Extensions

內容

1。知道何時跨,地界
2。利用原生的 SharePoint 功能的
3。知道重大 SPDev 工作和資訊來源
4。開發解決方案 Off-伺服器
5。測試程式碼] 及 [管理相依性
6。連續的整合和自動化的組建
7。有 SharePoint 管理的自訂組態設定
8。知道屬於組態設定的位置
9。縮放和維護的品牌 SharePoint
10。建立可部署的解決方案
夠說
其他秘訣
使用相對連結,當有可能
建立自訂主版頁面
InfoPath 專案的自動化的組建中處理

挑戰面臨的開發人員使用 Windows SharePoint Services 3.0 (WSS) 和 Microsoft Office SharePoint Server 2007 (MOSS) 會是以深層和寬做為本身的 SharePoint 平台。如果您不熟悉這個平台,實務本文的探討,我們將引導您正確的方向。如果您是經驗豐富的 SharePoint 程式開發人員,就應該說明這些秘訣,加強您的知識、 促進討論,及最終會導致建置好 SharePoint 應用程式。此外,我們已提供線上的參考,您可以學習數我們討論的主題的詳細資料。

1.知道何時跨,地界

會發生在早期的 SharePoint 開發專案中出現的問題是如何最佳方式與其他系統互動。因為 SharePoint 複合應用程式平台這個問題就是就可能會經常回答。檢視 SharePoint 架構,從 Web 應用程式層級是進行相關,最簡單方式。SharePoint 的執行個體將包含您,多個 Web 應用程式。如果您不熟悉 SharePoint 應用程式架構,您應該檢閱 >Office SharePoint Server 2007 的架構概觀."

[圖 1 ] 顯示互動 SharePoint Web 應用程式之間 Web 的應用程式中與外部系統的一般方法。我們將說明每個這些互動,本節的其餘部分中。

fig01.gif

[圖 1 SharePoint 系統互動的模型

使用 SharePoint 物件模型 ,當您正在撰寫 Web 組件,ASP.NET 表單程式碼後置或 Web 控制項在特定的 Web 應用程式的內容中執行時 (請參閱 [圖 1 )。SharePoint 的物件模型會提供一套豐富的類別,透過它與 SharePoint 進行互動。[Windows SharePoint Services 3.0 和 Microsoft Office SharePoint 伺服器的 SDK 所提供這些類別的良好的涵蓋範圍。

處理 SharePoint 網站 (SPWeb) 或網站 (SPSite) 處置時,內容是重要考量。如需有關當您需要明確的重要資訊使用 Dispose 方法,這些物件的 Dispose 或使用陳述式,請參閱 <取得參考至網站、 Web 的應用程式和其他金鑰物件「 和 」最佳作法: 使用可處置的 Windows SharePoint Services 物件."

從 [SharePoint 物件模型的觀點,SharePoint Web 應用程式會是一個重要的安全性界限。通常,您不應該使用 SharePoint 物件模型的 SharePoint Web 應用程式之間的互動。請參閱 > (英文)SharePoint 2007 中的安全性程式設計「 如需 [其他重要的 SharePoint 安全性主題資訊。

進行呼叫時 SharePoint Web 應用程式之間,以及 SharePoint] 和 [等 Office 用戶端應用程式的外部應用程式之間使用 SharePoint 網站服務整合層。這會是一個很好的方法,嘗試在 Visual Studio 的 off-伺服器的開發工作時。請參閱 「 開發解決方案 off-伺服器 > 一節,如需詳細資訊。

與其他的系統進行互動 外部 Web 服務呼叫中,是最常見的方法,但它不一定最好的方法。某些替代方案可能更容易實作,且可能也有其優點的明顯地更快 — 例如,LDAP 呼叫透過 Microsoft 目錄服務程式設計架構,或呼叫透過 ADO.NET 以專案的伺服器報告的 Project Server 儲存區資料庫而不是 Project Server 透過介面 (PSI) Web 服務層。當資料來源,是 Web 服務或資料庫時,請考慮使用 Business Data Catalog (BDC)。如需詳細資訊,請參閱本文中的下的一節,「 取得原生的 SharePoint 功能的優點 」。

Microsoft 是很清楚 其文件,您應該無法進行直接呼叫 SharePoint 內容 」 和 「 組態資料庫。即使如此,某些應用程式使用這個方法。效能是否此存取技術或只是缺乏知識,SharePoint 架構,引數有更安全的方法。

是 Microsoft 可以變更這些的資料庫中的基礎架構,而且可以有一個以上的內容 data­Base,每個 Web 應用程式。因此,看似良性的直接查詢作業可能會導致 brittle 的解決方案。而,利用其他本文所述的方法,或開發不同的策略,以避免不理危害您的 SharePoint 實作的完整性的解決方案。

2.利用原生的 SharePoint 功能

兩種情況下可能會導致從利用完整原生功能在 SharePoint 的開發小組。第一次,因為 SharePoint 這類的 expansive 平台您可能發現它容易建立自訂的解決方案,而不花時間瞭解 SharePoint 提供不需要自訂程式碼。第二個,企業主通常建立詳細的需求、 wireframes 和使用 Out-of-the-Box (OOB) 功能時,一些彈性讓您的應用程式行為。

但排斥所 SharePoint 平台提供通常這麼股利,即使產生的成果稍微偏離從原始的需求。按鍵,以取得這項優點是,開發小組,徹底瞭解技術以及,更重要的是清楚地傳達值和企業擁有者特定實作的優缺點。

稱為更容易取得的優點深入瞭解] 和 [SharePoint 的缺點,比完成。WSS] 和 [MOSS] 都包含 SDK 包含技術文件、 逐步解說,程式碼範例及在 SharePoint 中程式設計的解決方案的最佳作法)。而且,資訊難找到時您可以使用.NET 反射程式在某些核心的 SharePoint 組件內尋找。[圖 2 顯示 PeopleQueryControl 類別的成員,Microsoft.SharePoint 組件,包括 IssueQuery 方法中。PeopleEditor 控制項 (亦稱為人員選擇器) 會查詢 PeopleQueryControl SharePoint 的身分識別存放區的責任的委派,並讓您覆寫 IssueQuery) 方法,以修改預設的實作。如您所見圖,.NET 反射程式提供內部研究元件互動的方式。

fig02.gif

[圖 2] 顯示 [PeopleQueryControl 的 IssueQuery 方法的.NET Reflector

您要表達的底線值其技術的投資的利害關係者在特定實作的優點配備的平台功能的知識。與 SharePoint,無法取得掛斷初期實作細節但協助學習的內容,可能早釋放,並經常重複的用戶端的大小為平台特別重要的。務必將您的用戶端所熟悉的產品功能將位置放在使用者的有效的意見反應機制,以保留它們在整個軟體開發生命週期 (SDLC) 負責。

假設討論有關 使用者顯示實體的大型的選取範圍清單。您可以與 ASP.NET DropDownList 控制項、 GridView 控制項、 自訂的控制項或協力廠商控制項,例如實作這項功能,許多的方式。SharePoint 本身也會提供 [PeopleEditor 或其基底類別可以用於這項用途之 EntityEditorWithPicker 控制項中的大型的清單選取控制項。這些 Web 控制項隨附的插入自己的自訂邏輯的許多攔截並使用它們您善加利用豐富及直覺式的使用者介面在 SharePoint 中建立一致的使用者經驗。請參閱 > (英文)自訂 EntityEditorWithPicker「 如如何覆寫 PeopleEditor Web 控制項的方法的範例。

顯示在 SharePoint 內的 Line-of-Business (LOB) 資料,是另一個常見的要求。通常,先識別黃金來源的資料,並將,提取資料到 SharePoint,判斷如何用最佳。建立 Web 服務 Proxy,或建立 ADO.NET 連接至資料庫是舊的帽子許多開發人員。不過,BDC 可能是更好的替代方案。這個 SharePoint 功能可讓您從外部資料來源讀取資料,並在 SharePoint 內呈現。BDC 會支援各種不同的驗證機制,可讓您建立資料的實體之間的關聯,並會緊密繫結至 SharePoint 的搜尋和清單基礎結構。

此外,SharePoint 也包含一組的呈現到 BDC 的 LOB 資料的 Web 組件。雖然 BDC 目前不支援建立、 更新,和刪除作業直接,您可以建立自訂應用程式執行這些作業,並將它們與透過 BDC 動作介面 BDC 相關聯。如需詳細資訊,請參閱 [「 資源 」 資訊看板中的商務資料目錄主題]。

3.知道重大 SPDev 工作資訊

本節的目的,是以 elucidate 每個 SharePoint 的開發人員可能需要在軟體開發期間所完成的一般工作。這不是工具檢閱,也它要升級一個工具,透過另一個。而,我們會提供工具,您可以用來完成一般 SharePoint 的開發工作的建議。

建置 SharePoint 解決方案 將是您,您要採取的方法。加 Ted Pattison 總它剛好他 Office 的分享空間] 欄中的 「使用 SharePoint 2007 的解決方案部署「 當他寫入時,」 設定所封裝,和部署您 WSS 開發工作,使用方案套件最佳的作法是和知道如何執行這項操作應該考慮的基本技能 」。 使用 Windows SharePoint Services 3.0 工具的 Visual Studio 專案有許多種方式可以封裝 SharePoint 方案從手動建立 manifest.xml 和菱形控點指示詞的檔案 (DDFs): Visual Studio 2005 / 2008 的擴充功能 (VSeWSS)。

使用 VSeWSS 專案的是,比以手動方式建立 DDFs 大幅簡化。不過,一些替代方案很商業或企業部署,包括 WSPBuilder、 STSDev、 SPDeploy 和 DDFGenerator 特別有用的。評估各種工具尋找最適合您的需求。金鑰是以手動方式建立解決方案套件部署而部署的程式碼元件。

偵錯用戶端行為 ,可以是複雜,而且工具 (例如,Internet Explorer 開發人員工具列 (在 Internet Explorer 8 開發人員工具) 的工作大幅簡化]。Firefox 附加元件,例如 FireBug 類似是 Internet Explorer 開發人員工具列]。在 Internet Explorer 中執行的其他工具將是您,Web 開發 Helper。這兩種這些工具都用於偵錯用戶端 JavaScript、 檢查樣式,和瀏覽。如果要檢查與 IIS 之間的互動則 IIS 6.0 Resource Kit 會包含在眾多的有用的工具。例如,WFetch 會提供方便設備來檢查頁面的輸出資訊,例如自訂的 HTTP 處理常式的輸出或驗證標頭的資訊來驗證您正在使用,如 [圖 3 ] 所示的驗證通訊協定。

fig03.gif

[圖 3 WFetch 原稿的 NTLM 驗證標頭

伺服器-端程式碼問題的疑難排解 可能很特別難在 SharePoint 中因為錯誤會遮蔽後置中度易記 (雖然不是很有幫助) Web 網頁,或在下列網站的記錄檔中,服務呼叫。此處最重要的 takeaways 要知道資料 SharePoint 記錄,何時進行使用偵錯工具和熟悉的工具,可協助您疑難排解您的 SharePoint 應用程式。

一啟動時嘗試判斷造成的應用程式的問題是 Windows 事件記錄檔。在某些的情況下,您可以增加事件記錄使用的選項。例如,如果您使用 Kerberos 驗證所依賴的應用程式,您可以增加系統事件記錄檔的 Kerberos 記錄。有許多絕佳的線上資源說明 Kerberos 驗證。如需詳細資訊在 Windows Server 2003 中記錄的 Kerberos 的精簡資訊,請參閱 <Kerberos 通訊協定登錄項目和在 Windows Server 2003 中 」 的 「 KDC 組態 」 金鑰."

SharePoint 和 IIS 記錄檔是疑難排解 SharePoint 應用程式錯誤的關鍵。以下是部份簡短的資訊,這些的兩個重要的記錄來源有關:

  • SharePoint 的記錄檔位於 <%CommonProgramFiles%> \Microsoft Shared\Web Server Extensions\12\LOGS。您可以簡化讀取這些記錄檔,藉由安裝在記錄檢視器的功能.
  • IIS 記錄檔位於通常 <%SystemRoot%> \System32\LogFiles。在 IIS 以確認記錄檔的根目錄位置的內容中尋找。因為每個 IIS Web 應用程式都有唯一的識別碼,您只會符合 IIS 應用程式識別碼 SharePoint Web 應用程式在 IIS 中列出 LogFiles 目錄下的資料夾名稱。

請考慮自訂的應用程式記錄,Enterprise Library 整合。藉由加入例外處理程式碼的應用程式區塊與企業程式庫的記錄,您記錄的目標,通常是資料庫可以包含重要疑難排解您自訂的應用程式記錄的資訊和例外狀況詳細資料。

在最有用的工具,偵錯自訂的應用程式的問題會是 Visual Studio 偵錯工具。如果您已經在您的 SharePoint 伺服器上安裝的 Visual Studio 時,您會擁有 F5 偵錯功能。在理想的情況下,您不應該有生產或模型 Office 系統上安裝 Visual Studio。此外,您可以開發在本機工作站上的軟體,並從遠端偵錯方案。遠端偵錯是完全支援在 SharePoint 中連接到裝載您自訂的應用程式在 IIS 中 w3wp 處理序。

要判斷 w3wp 的哪個執行個體執行您的應用程式,請開啟命令提示字元中,並執行您的 Windows 伺服器,以識別處理序識別碼 (PID) 執行您的 SharePoint Web 應用程式上的 IISApp.vbs]。然後,如果在 Visual Studio,請選取相符的 PID w3wp 的執行個體。

另一個很有用的工具例外狀況顯示. 當您啟用這項工具,您的伺服器陣列上時,它取代好記的 SharePoint 錯誤頁面訊息許多例外狀況顯示型別。如需如何安裝及使用此工具的詳細資料,請按 [」 例外狀況顯示 」 在上面所列的連結]。

如果已部署的 Web 組件頁面載入失敗導致,您可以附加來開啟 [網頁組件] 維護頁面? 內容 = 1 至網頁 URL 的結尾。在 [維護] 頁面上,您可以關閉,或從頁面中刪除衝突的 Web 組件。

您可以在最後,啟用 Web 應用程式的 Web.config 檔的應用程式層級追蹤。請參閱 [在討論 」啟用應用程式層級追蹤."

將延伸架構。 SharePoint 是多個可整合自訂解決方案各種不同的方式。因為 SharePoint 建置 ASP.NET 的上方,它會繼承這個平台的擴充性點。WSS 3.0 / MOSS SP1 版本,Microsoft 現在支援表示您可以利用 ASP.NET AJAX Extensions 的 AJAX Control Toolkit 在 ASP.NET AJAX 架構。您可以簡化安裝和組態程序使用,ajaxify MOSS 自訂 stsadm 擴充功能以程式設計方式加入,或移除 AJAX 相關的 Web.config 項目使用 SPWebConfigModification 類別。

在位置 Framework,您可以使用 AJAX 控制項套件,並增進您的頁面的回應,藉由實作用戶端回呼。這點特別重要的進行外部的 Web 服務呼叫自訂 Web 組件時。請參閱 > (英文)使用 AJAX Extensions 的用戶端 Web 服務呼叫."

jQuery 是另一個用戶端架構,取得大量的注意事項特別是與最近的通知 Microsoft 它會支援在 Visual Studio 中。因為 jQuery 的核心程式庫包含在一個單一的.js 檔案,SharePoint 將它整合很簡單。請參閱 > (英文)jQuery 指令碼管理員"的內嵌至 ASP.NET Web 網頁的 jQuery 指令碼的方法。

如果您正在尋找 Silverlight 整合的相關資訊,請參閱 <淺 SharePoint 使用 Silverlight 2 網頁組件]." 作者可探索的 SharePoint 整合 Silverlight 應用程式範例。

開發解決方案 Off-伺服器的 4.

盡可能,您應該開發經常會使用的 SharePoint 建置您的解決方案的相依性。您可以使用 Visual Studio 程式開發伺服器、 ASP.NET Web 組件架構支援、 SharePoint 的 Web 服務和協力廠商工具,完成大部分的開發標準工作站,而不是電腦 SharePoint。

因為 SharePoint 會執行 IIS 和 ASP.NET 的上方,隨附 Visual Studio Web 程式開發伺服器就會是的大部分的 SharePoint 開發的最佳起點。例如,您可以開發 Web 組件、 HTTP 處理常式和 Web 控制項這,相對說輕量型的環境。

一些初始工作涉及設定環境來裝載您的元件。例如,來有效地開發的 ASP.NET Web 組件,您應該會建立 「 主控您的網頁組件,Visual Studio 的 Web 應用程式專案,類別專案,並選擇性的單元測試專案。我們已在 Visual Studio SPTips 方案 (隨附於本文的範例程式碼) 中所包含此安裝程式的範例您可以使用 Web 組件開發 off-伺服器。

在 Web 組件專案中, 預設的建構函式會包含行號設定 ExportMode Web 組件的屬性:

public WebPartOffServerExample()
{
    this.ExportMode = WebPartExportMode.All;
}

這一行,可讓您產生.webpart 部署檔案,根據您設定 Web 組件,如所示的屬性[圖 4 .

fig04.gif

[圖 4 : Web 組件匯出的功能表選項

您可以再將 Web 組件匯入至 SharePoint,透過這個部署的檔案 ( 見 [圖 5 )。您不應該使用 SharePoint 2003 回溯相容的匯入檔案型別.dwp。在.dwp 基礎 XML 結構描述會不為豐富,而且需要您就會參考在 SDLC 早期 Microsoft.SharePoint 組件。

fig05.gif

[圖 5 : 匯入至共用-點的網頁組件

請注意您可以確定的.webpart 建立部署檔案藉由繼承 System.Web.UI.WebControls.WebParts 命名空間,而不是 Microsoft.SharePoint.WebPartPages 命名空間中的 WebPart 類別。(如 [時您可能要從 SharePoint 的 WebPart 類別繼承的範例,請參閱 「 資源 」 資訊看板中列出的來源)。

Microsoft 會公開 SharePoint 物件模型,透過 Web 服務的重要子集。使用 SharePoint Web 服務存取物件模型可讓您開發解決方案不直接存取 SharePoint 組件相依性)。SharePoint 會裝載每個網頁 (WFE) 的前端伺服器上 _vti_bin 虛擬目錄中的 Web 服務。

在 Visual Studio,您將 SharePoint Web 服務加入解決方案以相同的方式一樣任何 Web 服務參考。SharePoint Web 服務 URL 會具有下列格式:

http://<SharePointServer>:port/[sites/][SubSite/]_vti_bin/WebService.asmx

其中 <sharepointserver> 都是與 Web 應用程式相關聯的 URL。 例如:

https://www.contoso.com:35000/_vti_bin/Lists.asmx

當您將加入 Web 服務參考時,Visual Studio 就會建立服務和服務使用的資料型別的 Proxy 類別。如在與這些 Web 服務互動的更多資訊,請參閱 「WSS SDK 3.0 的主題: Web 服務的指導方針「 和 」SharePoint Web 服務."

使用三層架構的實作 furthers 隔離程式碼] 和 [移除 SharePoint 和其他外部來源的相依性的目標。這種方法可以改善擷取商務、 資料的存取和 UI 讓您中斷成容易管理的片段的程式碼中,並減少它們之間的相依性彼此,邏輯伺服器關閉開發的能力。這個方法也會產生更多的測試程式碼,更多在 < 測試程式碼和管理相依性一節。

有其他的工具 您可以使用。在整個程式碼基底中移除相依性的 SharePoint 是不實際。開發 SharePoint 關閉伺服器通常需要通常位於虛擬機器在 SDLC 早期以 SharePoint 執行個體的使用。SharePoint 的開發的成長,幾項工具已建立來處理這個重要的相依性。一個這類工具是在 Vista 安裝協助程式的情況的解決方案的 SharePoint 工具。這個工具可讓 WSS 3.0 SP1 或 Windows Vista,讓您能夠開發 SharePoint 的相依性的方案,而不需要 Windows 伺服器上的 MOSS 2007 SP1 的安裝。

Microsoft 不支援這種方式執行 SharePoint 的功能。不過,這種方法有 resonated SharePoint 開發社群中,因為它有助於減少在足跡 SharePoint 此相依性所建立的。如需詳細資訊,請參閱 <如何安裝 Windows SharePoint Services 3.0 SP1,Vista x64 / x86."

5.測試的程式碼] 及 [管理相依性

單元測試架構 」 與 「 相關的測試工具的廣泛採用 SharePoint 開發已自然的方式。單元測試 」 及 「 整合的測試會是兩個主要的測試類別。這兩種測試類型會出現不同的特性,而且需要使用不同的工具和技術。

時撰寫單元 或移出伺服器的測試時,它的視為模擬外部相依性,例如 Stub 或 Mock 的替代作業的最佳的作法。藉由傳遞物件模仿外部相依性,您的測試會變成更快速、 更集中,您所測試的行為。若要才會有效,這種方法會需要您會遵循的測試、 物件導向的設計原則,或使用隔離緊密結合的元件,您的解決方案的一個特殊的架構。

識別 [行為] 和 [商務規則,是獨立的基礎結構中,並確定您有測試在隔離的策略。您可以隔離與 SharePoint、 一個的資料庫或 Web 服務的互動,介紹要離開抽象後端系統的詳細資料儲存機制模式。這些存放庫物件可以傳遞到較高層級的元件,使用控制項 (IoC] 和 [相依性的資料隱碼攻擊 (DI) 原則的反向。如有關 IoC 和 DI,請參閱 <tame 您的軟體相依性的更多可變式應用程式."

若要增加您的簡報,testability 元件實作模型-檢視-主持人 (MVP) 模式。如需測試的程式碼模式的詳細資訊,請參閱 「設計 Testability."

單元測試處理 SharePoint 物件模型時,其他的主要挑戰,SharePoint 的開發人員面臨。簡單地說,在隔離中測試這些元件是一項重要的工作。它會是的有限的數目的介面和抽象概念,以及大量密封類別的直接結果 (具有內部的相依性,或沒有公用建構函式類別。

TypeMock Isolator,商業 mocking 架構,讓 mocking 密封、 實體、 靜態,或在內部建構類別的一個處理這些缺點配備的產品。要套用其他 mocking 架構,您要遵守模式和我們已經有 eluded 到的原則。TypeMock Isolator 其新 SharePoint 的特定版本的 SharePoint,Isolator 後或,會解決這些限制允許在 SharePoint 的執行個體不依賴增加程式碼涵蓋範圍。模式和作法 (P & P) 小組也使用TypeMock Isolator在其SharePoint 指南參考架構.

有些時候 您必須撰寫相依於 SharePoint 物件模型的整合測試。管理您的單元測試的獨立伺服器-好的作法是從伺服器相關的。

您可以使用 Visual Studio 中的測試管理員] 中的測試清單編輯器] 來分隔您的單位和整合的測試。您可以建立兩個測試清單的執行個體,: 伺服器的相依性和伺服器的獨立 (請參閱 [圖 6 ])。這種方法可讓您選取要視,如果您在伺服器執行的測試設定。

fig06.gif

[圖 6 : 測試清單的編輯器顯示已分類的測試清單

在伺服器安裝 Visual Studio 的情況下,您可以執行和偵錯您的測試,在 IDE 中或使用 MSTest.exe 命令列工具執行伺服器相關的測試。除非,不幸的是,MSTest 否則不會執行 Visual Studio 安裝在伺服器上。我們希望是在 MSTest 的未來版本將不包含此大量的相依性。

MSTest.exe 可讓您指定您要透過命令列引數執行哪些的測試。當您執行 MSTest.exe 時,您必須指定 /testcontainer 或 / testmetadata 選項。藉由使用 / testmetadata 選項,您可以指定哪些測試將會執行部份。舉例來說,若要執行所有的伺服器相關測試,請輸入:

MSTest /testmetadata:SPTips.vsmdi /testlist:ServerDependentTests

若要執行特定的測試伺服器相關的測試中,請鍵入:

MSTest /testmetadata:SPTips.vsmdi /test:GetTasks_ShouldReturnTasks

如需在伺服器上的範例測試和測試使用一個 mocking 的架構,請參閱本文的程式碼下載包含 Visual Studio SPTips 解決方案中的範例程式碼。

6.連續的整合和自動化的組建

保留在原始檔控制的程式碼,依賴連續整合,自動化建置處理序都是不可或缺的步驟,有效率的高品質的程式碼資產的發行版本。SharePoint 會讓安裝程式的這個環境挑戰,說。這個提示,最重要的開始點是在 「小組開發概觀主題。

稍後在的概觀您可以看到 SharePoint 指引主題 「 HOW TO: 使用 Team Foundation Server 的組建中建立的自動化的組建和部署解決方案 」 此主題著重於建立建置和部署解決方案的建置目標。當這個方法會有值得時,它時,無法使用 「 TFS 建置,而且 SharePoint 伺服器進行不位於相同的環境一樣經常在企業中。建置您的方案套件使用目標,限制的套件,以自動的建置環境使用,並因此不建議早期的開發和開發人員套件的測試。

替代方案是使用 Visual Studio 中建置後事件的事件。建置後事件的事件可以設定執行 MSBuild 目標相同的封裝步驟中,並讓開發人員建置自己的沙箱管理環境的部署套件。這個方法也可以使用協力廠商工具,例如 WSPBuilder 和 STSDEV 中。

部署至企業時, 您可能也需要考慮版本控制的方案套件。使目前的建置版本,解決方案版本是一個的方法。這可以簡化使用自訂的應用程式在 AfterBuild MSBuild 的事件或建置後事件的事件執行的程式碼。也請考慮中的自動化的組建,以及是否產生新的識別碼與每個組建的解決方案識別碼。此決策會影響您在未來升級方案的能力。一般因此當組件版本的變更會產生新的解決方案識別碼。否則,保持解決方案識別碼相同 ID 的靜態之間的版本建置的。

而您可以從取得的重複資訊,SharePoint Server Developer Center (英文)我們會擴大的著重於如何進一步簡化自動化的建置處理序的這個提示。SharePoint 指引主題中的 「 如何: 建立自動化的組建和部署解決方案,與 Team Foundation Server 的 Team Build,"P & P 小組會假設您正在使用 VSeWSS / 副檔名。

SharePoint 開發人員的工具組功能,例如 WSPView 面板,可讓您在的過程中設定您的解決方案在點加入 VSeWSS 時我們發現它不適合用於中型到大型實作或小組的靈活的開發方法。

P & P SharePoint 本指南的小組的文件會說明 VSeWSS 提供按一下 [部署] 和 [F5 偵錯。按一下 [部署功能當然 VSeWSS 的一部分但 F5 偵錯功能有與您的 SharePoint 的執行個體您必須執行本機的 Visual Studio 的事實。這是安裝 VSeWSS 的需求。雖然您可以取得 VSeWSS 安裝在工作站上,使用登錄的劈砍,大部分的副檔名的優點會遺失工作站上安裝時。

文件也會指出許多的工具,例如 WSPBuilder 和 STSDEV 需要開發人員維護 feature.xml 和 SharePoint 解決方案封裝 Web 解決方案套件中的 manifest.xml 檔案。事實上,不斷發展這些工具。到目前例如,WSPBuilder 現在會包含讓 feature.xml 和 manifest.xml 在 Visual Studio 2005 以及 2008 的容易維護的副檔名。

VSeWSS 最大的作用是當您確定如何結構 SharePoint 專案。例如,您可能要判斷網頁組件] 或 [SharePoint 工作流程專案的結構時,用來 VSeWSS 專案類型。一旦您知道如何,取得的資訊,並將它移到普遍的專案類型。在大型專案中使用 VSeWSS,主要問題如下:

  • 副檔名被設計用來安裝在 SharePoint 伺服器上執行的 Visual Studio 的執行個體中。因此,它們會具有硬式相依性 WSS 上。
  • 開發人員沒有安裝 VSeWSS 將沒有 VSeWSS 建立特殊的專案型別,而將無法開啟依賴它們的專案。
  • 重建方案進行更複雜的 VSeWSS。

指導文件會建議在其他的方法是手動建立每個 Visual Studio 方案 SharePoint 解決方案檔案,連同部署資訊清單 manifest.xml。不過,等 WSPBuilder 工具可讓您自動執行這個步驟,在您的組建。

成功的自動建置索引鍵是:

  • 請使用標準的 Visual Studio 專案類型 (例如,Web 組件的類別專案),以便在所有的開發人員可以輕鬆地開啟專案。
  • 結構您的程式碼專案,以便將方案封裝已整合至的專案,如 [圖 7 ] 所示。則不需要建立個別的部署專案。
  • 設定後事件 WSPBuilder 或另一個執行自動解決方案的建置工具,來建置 SharePoint 解決方案檔。這個方法會運作方案的本機部署和自動化的建置處理序。
  • 您可以使用巨集條件來控制取決於建置發生的位置呼叫建置後事件事件的部分。
  • 自動化的組建是進一步複雜的 InfoPath 專案。如需此的資訊,請參閱秘訣 」 處理的自動化的組建中 InfoPath 專案 」 在線上版本本文的 (英文)。

fig07.gif

[圖 7 方案封裝結構整合至 Web 組件的專案程式碼下載

不部署 至全域組件快取 (GAC),直到您移動到一個整合的環境之前上。BIN 資料夾中保持組件讓偵錯自訂 SharePoint 應用程式明顯地更容易。有某些專案類型不符合此模型,SharePoint 事件處理常式和 SharePoint 功能。BIN 資料夾中,放置相容的組件,在共用的開發環境的開發人員不需要每個部署之後忍受經常 IIS 重設。

從 [BIN 執行 SharePoint 組件的一些指標是:

  • 裝飾您的組件與 [assembly:System.Security.AllowPartiallyTrustedCallers] 屬性。
  • 設定自訂的程式碼存取安全性 (CAS) 原則,或設定 Web.config,以完全信任,如下所示:
<system.web>
  <trust level="Full" />
</system.web>

(請注意設定以完整的信任層級是只適用於本機 (或) 內部的開發,您的程式碼資產將最後會部署至 GAC)。

  • 登入您的組件至 GAC 的最終部署。

7.有 SharePoint 管理的自訂組態設定

任何的應用程式類似 SharePoint 解決方案依賴於組態設定來正常運作。只有少數的組態設定為自訂應用程式可能容易以手動方式管理。相較之下,開發企業或 SharePoint 中的商業應用程式時, 數組態設定可以是相當大。

結果知道不同設定的型別,以及如何管理它們是很重要開發,、 部署之後,和管理應用程式的。最好的方法是增加設定 SharePoint 管理的數目,並減少手動管理的設定。

瞭解設定的類型,可以協助識別設定的所屬。SharePoint 組態設定通常會分成三大類: 核心 」、 「 自訂及 「 SharePoint 設定。

核心設定可透過 SharePoint Web 應用程式。Enterprise Library 應用程式區塊] 和 [外部 Web 服務組態是一般的核心設定的範例。

自訂設定是自訂的建置元件。這些設定用來提供自訂的元件組態設定的不共用元件以外。例如,自訂設定無法用來提供目錄伺服器設定的 LDAP 查詢。

SharePoint 設定所需進行工作在 SharePoint 解決方案。在這個分類的設定,包括 SafeControls 項目、 SessionState 的自訂或註冊 HttpModules。

您進行分類您的設定之後,您可以將它們部署到正確的位置,來管理它們。目標是減少手動管理的設定。讓 SharePoint 設定的處理會降低部署應用程式時可能發生的錯誤數目。

核心設定最好是在原始檔控制中管理的。這可讓維護設定的歷程記錄,同時提供單一來源的事實上,設定的。此外,這種方法可讓維護獨立版針對開發、 測試和實際執行環境的組態檔案中。

您可以使用 [SharePoint 物件模型 」 和 「 部署工具自動化自訂設定的安裝和管理。使用 SPWebConfigModification 類別 」、 「 解決方案部署和 「 CONFIG 目錄 SharePoint 12 登錄區下方來形成您的組態管理策略。請參閱本文如需有關透過解決方案部署的詳細資訊,Build 可部署的解決方案一節。

SharePoint SPWebConfigModification 類別可讓您以程式設計方式在 SharePoint Web 應用程式的 web.config 中,登錄設定。您可以使用 SPWebConfigModification,撰寫一個主控台應用程式] 或 [stsadm 擴充清單、 [新增,或 [刪除的組態項目。這個方法允許大組 SharePoint 組態設定的快速且一致的修改。這個類別內的 [SPWebConfigModificationType 列舉型別包含指定所做的修改的型別的三個值: EnsureChildNode,EnsureAttribute,和 EnsureSection。因為無法輕易地移除與這個列舉型別加入的項目,請使用 EnsureSection 時小心。如詳細的資訊,請參閱 <自動化 Web 應用程式部署,與 SharePoint 的 API."

SharePoint CONFIG 目錄可讓您以宣告方式維護此目錄裡的 XML 檔案登錄設定。WSS 會在 XML 檔案中的設定套用至 Web.config SharePoint 建立 Web 應用程式時。此資料夾中的設定會套用至所有 Web 應用程式中。如需這種方法的資訊中,請參閱 「管理 Web.Config 自訂."

8.知道屬於組態設定的位置

先前的提示會說明不同類型的 SharePoint 組態設定,以及如何管理它們。為應用程式升級到環境,例如從測試為生產,特別指向外部的系統組態設定變更可以感覺像在您的英呎移位的沙中。知道所屬的組態設定,可以將更穩固的地面上管理的環境設定。

開發複合應用程式 已經增加組態設定的依賴。其 overuse 視為導致方便使用的組態設定與電源。一個的方法,以減少常數變更這些設定是套用慣例透過組態的開發架構的而推斷等命名慣例的值。我們會概述慣例透過組態) 架構,在 「 連續的整合與自動化的組建 」 區段的範例所示範如何整合到您的 Visual Studio 專案的 SharePoint 解決方案的封裝。這個範例有一個相關的範例會顯示 Web 內容提示的 「 使用相對連結盡 」。

執行個體的特定設定 都是至 Web 組件的每個執行個體的唯一的。舉例來說,您可能會顯示專案的清單上程式管理員的而開發人員的頁面上,它會顯示專案和工作的詳細資料網頁組件。執行個體的特定設定或自訂工具部分最儲存的網頁組件的其他工具的一部分的內容。

一個以上的元件所要使用的 組態設定 會被視為全域設定。這個類別中設定的例子將有您,外部 Web 服務、 物件商務的設定和設定資料的 URL。這些設定是最佳選擇保持在 Web.config 中,並管理 「 有 SharePoint 管理的自訂組態設定 」 的節所述。

縮放和維護的 9.品牌 SharePoint

商標設定您的 SharePoint 網站,讓應用程式的目的,最明顯視覺表示使用者。商標,包括網頁、 內容頁面、 頁面的版面配置、 網站定義和 CSS 使用例如主機的各種成品。提示建立自訂主版頁面請參閱線上的提示,< 建立自訂主版頁面]。

資源

Microsoft Office SharePoint Server 2007 與 Windows SharePoint Services v3

商務資料目錄

SharePoint 2007: BDC — The 的商務資料目錄

WebPart 類別 (Microsoft.SharePoint.WebPartPages)

請確定您的應用程式縮放比例和維護策略會考量如何管理這些商標設定的成品。如需在 SharePoint 商標設定的詳細資訊,請參閱 「 < Microsoft Office SharePoint Server 2007 和 Windows SharePoint 伺服器 v3 」,在 「 資源 」 資訊看板中。

選擇一項工具之前 的商標,請考慮您的 SharePoint 實作的大小,您商標設定的工作的範圍,並支援應用程式開發人員的專門知識。我們將重點放在兩個工具: SharePoint 的設計工具] 和 [Visual Studio。

SharePoint Designer 其根目錄在 FrontPage 中,也是網頁設計工具用於編輯主版頁面和 CSS。不過,簡易使用 SharePoint 設計工具所提供的是在價格:

  • 還有沒有整合式的來源控制項的支援。
  • 已修改的內容成為 unghosted SharePoint Designer 結果中所做的變更。

在為 unghosted 的狀態內容的複本會儲存在而不是檔案系統的內容資料庫中。結果 unghosting 有下列影響:

  • 難部署管理,因為只在 SharePoint 或 SharePoint Designer,可以更新內容
  • 中斷到檔案系統的部署的更新內容的網站
  • 通往大,Active SharePoint 實作上的潛在效能問題

這些原因我們認為是最適當的 SharePoint 的設計工具中實作和原型 (Prototype) 的小型的。

Visual Studio 提供一致的開發環境應用程式的元件和商標的成品,但是它缺乏圖形化編輯功能在 SharePoint 的設計工具中]。因為這,開發人員必須是以編輯 HTML 和 CSS 更 proficient。維護商標設定的成品必須設定好的專案結構。Visual Studio 的整合式的來源控制項支援,容易管理環境的特定組態和跨越多個環境中部署的成品的商標的套件。此外,商標的成品保持隱藏。因此,Visual Studio 是我們慣用的 SharePoint 商標工具大型的企業和商業的實作。

有三種方法 套用商標: 網站範本、 自訂網站定義和 OOB 網站與自訂功能裝訂,透過結合的定義。建立自訂網站範本,可能是最小型的實作的原型 (Prototype) 方法。不過,從範本建立的網站將不會更新時,新的範本上載。自訂範本不允許您指定範本識別碼將會需要變更任何提供的程式碼參考樣板。而且,網站範本會建立只 unghosted 的內容,這可能會影響效能。

站台定義會是更具彈性和可攜式比網站範本。您可以在管理站台定義檔 (onet.xml) 和在原始檔控制中相關的內容,並部署隱藏的內容,讓網站,會更新為新的內容],提供,它已經不是已自訂。網站定義難以建立,因為您需要編輯的 XML 的複雜性。藉由使用 (在做為起點 12\Template\SiteTemplates 中找到) 的 OOB 網站定義或匯出使用 VSeWSS 站台定義,這項工作是由更容易。網站定義有關,請參閱 <站台定義 Demystified."

處理中型到大型實作時,結合 OOB 網站定義,使用自訂的功能是最佳的方法。功能可用來擴充網站定義中,並提供模組化的方法,以提供網站。一個良好功能的概觀,查看 Office Space 》 專欄 」SharePoint 的功能." VSeWSS,副檔名,以及一些協力廠商的工具提供的範本建立商標設定的網站中使用的通用功能。

功能裝訂,讓您附加在站台定義一項功能,並將它建立新的 Web 網站時,啟用。這是套用至 SharePoint OOB 網站定義您商標的絕佳工具。

10.建置可部署的解決方案

您可以到數種 SharePoint Web 應用程式,以取得您的元件。本節著重於如何利用 SharePoint 提供,包括 Web 解決方案套件 (解決方案 / WSPs)、 功能和 SharePoint 物件模型,封裝和部署架構。

決定如何封裝 主要元件是而定會被部署元件的位置。解決方案會包含將會部署至伺服器的檔案。功能包含的內容將會部署至內容資料庫。

SharePoint 解決方案會包含組件和資源要部署至 SharePoint Web 應用程式。解決方案是,壓縮 」、 「 簡單部署和撤回和 「 鏡像檔案更新 SharePoint 解決方案,在伺服器陣列中的多個伺服器間的 SharePoint 控制代碼。您也可以使用 SharePoint 解決方案,Web.config 的修改。請參閱區段 「 知道重要 SPDev 工作和資訊的來源 「 及 」 有 SharePoint 管理的自訂組態設定 「 如需解決方案 」 和 「 Web.config 修改其他的詳細資訊。[圖 8 ] 列出一般由解決方案及其內容支援的資料夾位置。指的"12 個 Hive 」 是在 SharePoint 應用程式的根目錄或 <%CommonProgramFiles%> \Microsoft Shared\Web 伺服器 extensions\12 預設。

[圖 8 一般檔案位置可從 WSPs 的存取
12 個登錄區中的資料夾 包含
\ISAPI\HELP\[LCID] SharePoint 的 [說明] 檔案。此資料夾 (或當地語系化的子資料夾) 中部署您自己的.chm 檔案
\ CONFIG Web.config 的自訂設定
\ISAPI SharePoint Web 服務 (部署您自訂 Web 服務在此以及) ; 對應至/_vti_bin
\Resources 從自訂的功能和網站定義存取的全域.resx 檔案
\TEMPLATE\CONTROLTEMPLATES .ascx 的使用者控制項,會對應至 /_controltemplates
\TEMPLATE\FEATURES 功能,課程的 !
\TEMPLATE\LAYOUTS 常見的網站頁面,對應至 /_layouts
\TEMPLATE\IMAGES 常見的網站的影像檔案 ; 對應至 / _layouts / 影像
\TEMPLATE\SiteTemplates 所有的 SharePoint 網站定義 ; 而建立的部署您 onet.xml 自訂網站定義一個 <subfolder> \xml
\TEMPLATE\THEMES 所有的 UI 項目會使用的佈景主題,; 複製現有的佈景主題資料夾,來建立您自己
\TEMPLATE\[LCID]\XML Webtemp.xml 會定義可用的站台定義檔案,; 加入您的自訂網站定義的 XML 檔這裡
\TEMPLATE\ADMIN 使用中央管理的頁面,對應至 /_admin
\ADMISAPI 管理 Web 服務,會對應至 /_vti_adm

下列是使用解決方案時,記住的重要規則:

  • 因為 SharePoint 解決方案在組態資料庫中管理,有能在伺服器陣列中 SharePoint 解決方案的只有一個的唯一執行個體。這個的點是很重要,如果您想要使用相同的陣列,以相同的 Web 應用程式的主應用程式不同的版本 — 例如,同時目前的維護和未來開發環境。
  • SharePoint 追蹤解決方案依識別碼不是由名稱,所以您必須維護原始檔控制的解決方案識別碼,如果您想要在未來升級解決方案。
  • 在 12 個 Hive 會是共用的 Web 應用程式空間。如果您計劃在裝載相同陣列中的多個 Web 應用程式時,您必須確定您的 SharePoint 方案不會覆寫現有的 SharePoint 或部署這個空間中其他解決方案的檔案。
  • 解決方案無法部署中列出的資料夾以外的檔案[圖 8包括在 Web 應用程式,wpresources、 全域 _wpresources,或 12 個 Hive 以外的其他資料夾下的資料夾。
  • 解決方案無法部署在 SharePoint Web 應用程式的內容。這是 SharePoint 功能的角色。

功能可以在圖庫中,讓 Web 組件使用、 上載和發佈檔案到文件的程式庫並執行自訂動作,例如藉由使用功能的收件者組件設定主網站的佈景主題或預設版頁面。請參閱使用商標技術有關的商標使用功能此文稍早的右邊的相關資訊。

以下是建立功能的一些警告:

  • 功能不追蹤新增的內容,以便的 「 功能,以清除在本身之後停用使用功能的收件者時的責任。請考慮整個存留週期 「 功能,與是否部署功能的內容可能會需要的 Web 應用程式的其他部分內容在刪除之前。例如,移除功能的停用的主版頁面將會中斷該主版頁面會繼承該頁面。
  • 移除用來部署功能的解決方案之前,停用從所有的 Web 應用程式功能。如果您不,將會失敗,解決方案的部署,如果 [功能] 資料夾移除您必須以強制解除安裝的功能使用 STSADM。

夠說

您可以使用本文為您的導覽,檢視提供資訊的參考,並下載本文的程式碼範例,以協助您開始。可能是您開發應用程式,在 SharePoint 平台,您將再次檢閱這些最佳作法,並也中程式碼範例中,找到使用。我們已提供您需要釐清或要提供我們意見秘訣或您考慮重要,其他秘訣請傳送我們您的問題或註解,並我們將力圖快速回應。您可以透過電子郵件與我們ewilansky@Yahoo.com.

其他秘訣

以下是一些其他的秘訣,開發 SharePoint 解決方案。

使用相對連結,當有可能

請考慮使用相對連結,而不要使用絕對連結。包括相對位置,例如文件庫、 資料連接和報告程式庫的連結可以簡化從一個 SharePoint 的執行個體的部署到另一個。報告程式庫的範例記住,如果您使用一致的 Web 位置報告程式庫在您所有的 SharePoint 環境,’ll 不再要指標報告您移動變化您的應用程式從一個環境至下一個。通常,慣例,透過組態適用於程式碼的組態,但這個概念可以也鬆散適用您部署的其他組態方面。

在一個相關的便箋上,我們希望 Microsoft 會支援內的某些組態設定要求絕對連結目前在 SharePoint 平台上的相對連結。例如,您必須指定至表單程式庫的絕對 URL,在的 InfoPath.udcx 資料連線 fi L,以及 ReportViewer Web 組件需要 [報告] 定義的絕對路徑。

建立自訂主版頁面

品牌的 SharePoint 網站與您的外觀及操作的一個常見方法是建立自訂主版頁面,讓您大部分的控制,您網站的版面配置上。您可以使用現有的 SharePoint 主版頁面,及修改以符合您的需求。這種方法最適合如果現有的主版頁面接近為您想要的配置。如果您要的外觀及操作非常不同的任何 OOB 的主版頁面,則您可能是各項從重新啟動。不過,因為 SharePoint 會需要特定功能,在主版頁面中的,它 ’s 建議您以最少的主版頁面開始,並建置您的外觀及操作從該處。若要尋找關於建立基本的主版頁面,請參閱 <HOW TO: 建立最小主版頁面> 在。您也可以從 Heather 下載某些基本的主版頁面也會 < 資源 > 一節中有列出 Solomon ’s 部落格。

InfoPath 專案的自動化的組建中處理

在 Microsoft InfoPath Designer 中建立的專案將會進一步挑戰您的工作自動化您的組建。您真的可以執行的最佳讓 InfoPath 與 SharePoint 處理封裝。請參閱 Resources 區段,如需如何從 InfoPath 專案中取得可移植的方案套件的詳細資訊的 「 自動與 SharePoint 的 API 的 Web 應用程式部署 >。

Ethan Wilansky 會是一個 Director FTI Consulting 的技術的練習中,而著重於建立自訂 SharePoint 解決方案。為 Microsoft Directory Services MVP 他著重 DS 程式設計架構,也 Office 開發人員的 Advisory Council) 的成員。

Paul Olszewski 都是在.NET 功能小組的資訊專業人員。他,專長在建立和部署可重複使用元件的應用程式利用 Microsoft 技術。

Tomek Stojecki 運作,在 Annapolis 運算他的專長在架構和開發.NET 應用程式 (使用設計模式和靈活的方法。他有諮詢數目的 SharePoint 為基礎的專案。

SharePoint 的開發小組的資深顧問 宗 Kowalewski 。他會提供技術的專業知識,並讓自訂 SharePoint 的開發工作已證實靈活的經驗。