建置 SharePoint 應用程式簡介

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

本文內容

簡介

用工具和技術

應用程式架構設計和開發方法

執行一般設計模式

建置範本

摘要

資源

簡介

Windows SharePoint Services 3.0是一種技術的 Windows Server 的使用者提供的共同作業及通訊服務整合式產品組合。這也是開發網頁商務應用程式的平台。利用這項功能,Microsoft 開發主版頁面應用程式範本的 Windows SharePoint Services 3.0提供的地址的特定的商務程序,例如協調服務台] 或 [追蹤行銷活動,需求,如下圖所示的範例中圖 1--現成的解決方案。

整合式行銷活動追蹤應用程式的首頁檢視
圖 1︰ 的整合式行銷活動追蹤應用程式的首頁檢視

Microsoft 開發了這些可免費下載的應用程式範本,在部署之後就可立即使用,而客戶與合作夥伴也可以使用這些應用程式範本,做為更多自訂解決方案的起點,也可以在使用 Microsoft Office SharePoint Designer 2007 自行建置 Windows SharePoint Services 3.0 精密複雜的應用程式時用來做為教學範例。

本文的目的,是描述如何 Microsoft 開發的應用程式範本,找出如何使用核心功能,同時Windows SharePoint Services 3.0和Office SharePoint Designer 2007,以賦予的客戶及合作夥伴的目標,若要建立自己的應用程式中的最佳作法。文件不是替代的Windows SharePoint Services 3.0 SDK,也不是主要開發人員資源。開發人員應該使用 SDK 通常了解如何延長Windows SharePoint Services 3.0。

本文是針對新型網站設計人員提供資源,因為使用 Windows SharePoint Services 和 Office SharePoint Designer 2007 能夠透過 UI 建置極其之多的應用程式功能,不需要進階開發人員技能就能夠建置豐富的應用程式。本文確定會描述特別難處理之設計模式的一些自訂程式碼實作,但整體方法應該可供非開發人員存取,並以他們為主要對象進行描述;開發人員可以快速翻閱前面一些有關工作具和方法的小節,然後多注意設計模式的描述,以及如何實作這些設計模式的明確範例。

文件結構,以第一個區段中,用工具和技術,會提供Windows SharePoint Services 3.0和Office SharePoint Designer 2007內所使用的建置應用程式功能的概觀。下一節,應用程式架構設計和開發方法,通常描述 Microsoft 使用的應用程式範本的所有的方法。方法是目的的具意義方法的潛在客戶的方案、 如何,才可使用,以及由誰,與技術的哪些部分實數檢查以協助您遠而不需撰寫自訂程式碼。結束與識別的區域位置將需要自訂程式碼或其他自訂工作程序。

在本文中,執行一般設計模式下一節解釋如何使用Windows SharePoint Services與Office SharePoint Designer 2007的優點處理常見的應用程式設計需求,例如如何在清單中建立自訂動作。這是核心的文章,並描述在所有應用程式範本 (和,事實上,您可能會遇到的任何應用程式) 重複發生的設計模式的方法。本節內容提供五個設計模式,包括指引可用於工作與Windows SharePoint Services UI 或Office SharePoint Designer 2007與某些自訂程式碼的每個範例。

文件建置範本] 的最後一節說明如何確實建立使用Office SharePoint Designer 2007範本檔案。同時說明其他問題,例如已進行本地化。

當您閱讀完本文內容之後,應該會相當瞭解如何設計及架構應用程式、如何從直接在 Windows SharePoint Services 3.0 中建置網站開始 (包括建置連結清單、自訂欄、文件庫、工作流程等等),然後如何在 Office SharePoint Designer 2007 中開啟網站,以進一步進行自訂作業、建立自訂表單、新增自訂程式碼以變更特定表現方式、建立自訂工作流程等等,最後還包括,如何建立應用程式範本本身及部署以供使用。

頁面頂端

所使用的工具及技術

有多項技術和工具互相搭配運作,讓您能夠比從前都更容易地建立應用程式。在技術方面,新的功能 (如工作流程) 支援表示,網站設計人員不必撰寫程式碼,就能將工作流程帶進應用程式中;在工具方面,Office SharePoint Designer 2007、Microsoft Visual Studio 2005,以及其他工具,讓您能夠使用越來越少的程式碼 (經常是不需要程式碼) 來執行從前很難完成的作業。

一般來說,Microsoft 在跨所有這些工具和技術上追求一項策略,將越來越多的各項艱難協調配合努力移入基礎結構本身,讓您能夠多從事設計工具,而少從事開發工作,換句話說,Microsoft 已經事先處理過大部分艱難的工作,而讓您能夠透過 UI,以直覺方式在應用程式中直接運用這些功能。

為了作好準備,以瞭解各種不同技術和工具如何在應用程式建立過程中配合無間,以下各節討論 Windows SharePoint Services 3.0、Office SharePoint Designer 2007,以及其他與新特性和功能特定相關的技術。如需有關全面性討論的詳細資訊,請檢閱本文結尾的資源。

Windows SharePoint Services 3.0

Windows SharePoint Services 3.0包含部分功能強大的新功能。下列新功能和功能特別相關建立自訂的應用程式,而您會看到許多都在稍後再次提及︰

  • 文件庫及清單    Windows SharePoint Services 3.0 簡介一些新的文件庫和清單類型,可用來做為應用程式基礎。新的文件庫類型包括投影片庫,是特別為儲存及管理可重複使用之 Microsoft Office PowerPoint 2007 投影片、資料連線庫及其他項目的投影片庫。

  • 內容類型     內容類型是貫穿使用於 Windows SharePoint Services 3.0 中的核心概念。內容類型的設計是為了幫助使用者以更有意義的方式來組織其 SharePoint 內容。內容類型是可套用到特定類別內容的可重複使用設定集合。內容類型可以讓您集中管理並重複使用文件或項目類型的中繼資料和表現方式,例如,您可以將工作流程和事件關聯到內容類型,而不必新增工作流程和事件至多個文件或文件庫。

  • 網站欄    網站欄會為直欄定義提供一個集中而且可重複使用的模型。當您建立網站欄時,使用此欄的每份清單都會具有相同的定義,因此不需要在各清單中重複產生此欄。網站欄讓使用者能夠從一組預先定義欄中進行挑選,這些欄在其清單中可能會很有用,因此,不但可用來集中為知名的清單範本定義欄,也可以提供使用者路徑,以使用可具有自訂意義的特殊欄。

  • 工作流程     在 Windows SharePoint Services 3.0 中,工作流程可以讓您將商務程序附加至清單和文件庫中的項目。這種程序幾乎可以控制項目的任何一方面,包括該項目的生命週期,例如,您可以建立簡單的工作流程,將文件傳送給一系列使用者以進行核准。一般來說,網站設計人員或開發人員將建立特定工作流程,網站設計人員可以在工作流程設計工具精靈環境中,使用 Office SharePoint Designer 2007 來建立工作流程;而開發人員則可以使用 Visual Studio 2005 來建立功能更強大而且更複雜的工作流程。

  • 功能架構    Windows SharePoint Services 3.0 包含稱為「功能」的新結構,功能封裝了 Windows SharePoint Services 元素,可協助使用者完成特定目標或工作。功能包含一項或多項元素;元素是 Windows SharePoint Services 的核心概念。Windows SharePoint Services 3.0 功能提供整個架構,可讓開發人員發揮運用,為 Windows SharePoint Services 解決方案提供自訂功能;功能也提供系統管理員簡易的方式,可新增或移除封裝的各項功能。

  • 事件增強功能    事件可分成兩個主要類別:

    • 清單事件    核心事件,包括清單項目與清單欄的變更、新增和移除 (結構描述變更)

    • 簡易網站事件    刪除網站和網站集合

      事件會在事件「之前」同步,並以 "XYZing" 名稱格式標記,或是在事件「之後」非同步,並以 "ABCed" 名稱格式標記。

  • 行動裝置存取     Windows SharePoint Services 3.0提供允許清單適當地呈現,在行動裝置上的新功能。使用者瀏覽至Windows SharePoint Services 3.0網站中,使用行動裝置,其網頁瀏覽器會被重新導向的轉譯網站內容與清單的格式,最適合裝置網站的行動特定版本。

Office SharePoint Designer 2007:建置 SharePoint 應用程式的首要工具

Office SharePoint Designer 2007 經過特別設計,協助您建立並自訂使用 SharePoint 產品及技術 (Windows SharePoint Services 3.0 和 Microsoft Office SharePoint Server 2007) 建置的網站和工作流程。它提供 IT 專業人員和解決方案建立者所需的工具,開發以 SharePoint 為基礎的應用程式和工作流程解決方案,可增強組織的靈活性和商務程序自動化。使用 Office SharePoint Designer 2007,您不必使用傳統程序編碼語言或技巧來執行下列作業:

  • 根據各種不同的資料來源 (例如 XML 檔案)、SQL 資料庫 (例如 Microsoft SQL Server 2005) 和 Web 服務,建立無編碼資料檢視和表單。

  • 建立精密而複雜、動態的無編碼工作流程。

  • 執行版面配置和設計。

  • 建立主版頁面。

  • 編輯及套用階層式樣式表 (CSS)。

  • 建置網頁組件頁面並連接網頁組件,以建立複雜的商務應用程式。

Visual Studio 2005

Visual Studio 2005 可以用來新增自訂程式碼至應用程式,或建立自訂工作流程。您可以使用 Visual Studio 2005 Designer for Windows Workflow Foundation 建立工作流程範本,並自訂工作流程活動。您可以在工作流程中包含程式碼,以及要由工作流程使用的設計表單,以便在關聯及執行階段期間,與工作流程使用者通訊。

Visual Studio 2005 Extensions for Windows SharePoint Services 3.0 可供免費下載,並搭配一組工具,可供使用 Visual Studio 2005,開發自訂 SharePoint 應用程式。配套中包括網頁組件、網站定義、清單定義的 Visual Studio 專案範本,以及獨立式公用程式 SharePoint Solution Generator,可以從現有的 SharePoint 網站產生網站定義專案。這個程式可以讓開發人員使用瀏覽器和 Office SharePoint Designer 2007,在使用 Visual Studio 2005 建立程式碼之前,自訂網站的內容。

Windows SharePoint Services 3.0 的 Visual Studio 2005 延伸有已停用,但您仍然可以存取Visual Studio 2008 副檔名的 Windows SharePoint Services 3.0、 v1.3

Microsoft Office Access 2007

Microsoft Office Access 2007可讓您建立追蹤應用程式,提供豐富的使用者體驗︰ 輸入、 管理及資料的目標案例報告。如需有關如何設計、 建立及共用 Access 範本的詳細資訊,請參閱Rational 指南到 Microsoft Office Access 2007 範本活頁簿。

手法與一般技巧

在下一節所描述的開發方法背景情況中,建立應用程式的基本整體步驟如下:

  1. 決定是需要網站定義或需要網站範本。

  2. 在 Windows SharePoint Services 3.0 或 Office SharePoint Server 2007 中建立核心網站。

  3. 使用 Office SharePoint Designer 2007 以開啟網站,進行修改等等。

  4. 必要時,使用 Visual Studio 2005 建立其他自訂程式碼、自訂工作流程等等。

頁面頂端

應用程式結構及開發方法

與任何開發專案一樣,如果遵循已經證實可用的方法,架構及建置 Windows SharePoint Services 應用程式的成功機率將大幅提高。本節內容描述 Microsoft 用來設計所有可下載應用程式範本的方法,這裡描述的手法沒有什麼出人意外之處,尤其是對經驗豐富的開發人員來說,但確實將一些專屬 SharePoint 環境的特性考慮在內,而且也確實反映出 Microsoft 所學到的教訓,在這種背景下會很有價值。再次提醒您,本節內容對知道如何使用 Windows SharePoint Services 3.0 和 Office SharePoint Designer 2007 的非開發人員最有用。

簡單地說,方法是從廣泛地思考應用程式所需要執行的作業、誰需要使用應用程式諸如此類的問題開始,然後更進一步仔細審查應用程式中的資料需要如何流動、需要儲存的位置,以及各種不同資料之間的關聯。清楚瞭解了資料模式和使用狀況之後,方法就需要以互動方式投入並開始在 Windows SharePoint Services 3.0 中建置粗略的應用程式版本、建置清單、文件庫、工作流程等等,一直到一般的外觀與行為開始符合您的要求為止。最後,方法需要找出並組合所需要的各項細節及自訂作業,讓應用程式真正符合您的商務程序需求。

定義應用程式的功能需求

雖然在建置 Windows SharePoint Services 解決方案之前並不一定要有非常詳細的技術規格文件,但卻需要清楚掌握應用程式必須運作的方式。上述的觀點也許看起來很明顯,但是許多開發人員都嚐過痛苦的經歷,投資人認為在應用程式中所想要的與商務程序真正需要以便成功作業之間完全不相符 (當然,投資人通常是在看到將近完成的應用程式「之後」,才恍然大悟兩者之間的差異!)

上述這些情況只是要說明,從一開始就必須收集功能需求,並思考應用程式必須達成的目標,例如,如果需要專案追蹤解決方案,就必須至少識別出下列需求:

  • 商務程序中的動作者/角色是什麼?    在此方案中,專案擁有人會建立專案,並維護有關工作、議題及其他等等資訊;工作擁有人被指派了議題和工作,並必須進行互動才能完成工作;而經理則必須查看有關整體專案狀態的彙總資訊。

  • 不同動作者的 UI 需求是什麼?    在此方案中,專案擁有人、工作擁有人和經理都需要與其活動相關的不同檢視,例如,工作擁有人應該能夠看到指派給他們的所有議題,而同時專案擁有人應該能夠看到「所有」超過期限的議題。

  • 商務程序的外觀看起來如何?    在此方案中,專案擁有人建立專案、里程碑、工作和預算項目,然後在經過一段時間之後追蹤進度;專案擁有人經常要存取所有各項資訊,而工作擁有人則必須在接到指定工作時,根據資料採取行動。

  • 資料在哪裡?   您只會使用資料中Windows SharePoint Services,或您是否需要存取外部資料 (從資料庫,透過 Web 服務,透過商務資料目錄,依此類推),以及需要儲存Windows SharePoint Services外部資料?

  • 資料之間的關聯是什麼?    在此方案中,我們需要有專案項目、里程碑項目,以及工作和議題項目,而且他們有邏輯階層結構。使用者也是資料點,預算、天數之類的項目也一樣是資料點。

有一個很好的方法可以找出這些問題的答案,就是直接在白板上照實畫出圖片,多次反覆通過商務程序,加上一些變化 (建立一些專案、跨越整個專案指定工作給兩三個人員等等),從概念上來說,專案追蹤應用程式是相當簡單的設計,在此時,需求也相當清楚。

驗證資料模型

雖然已經討論過資料模型,但是它太重要了,必須要更進一步深入分析,如果曲解了資料模型,後來很可能會需要進行牽涉到整個系統的大幅變動,因此,務必要正確掌握資料模型。

瞭解有一些資訊彼此相關很重要,瞭解有一些中繼資訊描述及定義商務程序中特定資訊所在位置也很重要。在專案追蹤個案中,我們所需要知道的不僅只是有專案、里程碑,以及工作和議題,我們還必須知道專案是最上層項目,而且它可以有多個里程碑,專案也可以有多個工作和議題。

決定元件及其關聯

現在,我們具備應用程式的建議功能描述。下一步是規劃架構,決定如何使用各種技術和Windows SharePoint Services 3.0及Office SharePoint Designer 2007的功能。每個應用程式會涉及一些組合用工具和技術前, 一節所述的功能包括︰

  • 清單和查閱

  • 自訂清單檢視 (透過 Windows SharePoint Services UI 進行群組、排序、篩選等)

  • 工作流程

  • Office SharePoint Designer 2007 中的自訂頁面和自訂資料檢視

清單和查閱其實是實作資料模型,因此,在專案追蹤應用程式的情況下,要使用一份專案清單,外加一份里程碑清單 (加上專案清單的查閱欄位),還要有一份含專案清單查閱欄位的清單供議題使用,依此類推。在自訂頁面檢視方面,可能只需要設定預設檢視,以狀態進行群組,而依狀況排序。

整體來說,在這裡還需要進行另一項白板練習,您只是建立應用程式的模型,找出用於每一部分的技術。

開始建置應用程式元件

同樣地,此時也不需要有非常精確的技術規格文件,更重要的是:假設您能夠掌控基本的資料流和 UI 需求,然後就直接開始建置。

實際上說,這表示使用 Windows SharePoint Services 3.0 的其中一個現成可用範本來建立新網站,或是事先自行建立網站範本,然後根據該範本建置新的網站執行個體。對於許多應用程式來說,很可能只是使用「小組網站」或「空白網站」範本做為基礎。

在專案追蹤應用程式中,第一件事就是建立四份清單 (專案清單、專案工作、專案議題,和專案里程碑),然後為每一份清單建立自訂欄。Windows SharePoint Services 3.0 可以讓您建立一些不同的欄類型,包括 [選擇][數值][個人或群組][查閱] (已經在此網站上的資訊),Microsoft 專案追蹤應用程式範本中的「專案清單」清單使用很多這種欄類型,如圖 2 所示。

清單中的自訂欄
圖 2︰ 自訂資料行清單中

「狀況」欄是根據 [選擇] 欄類型,「預算」欄是根據 [數值] 欄 (使用貨幣),依此類推。

在「專案里程碑」清單中,使用了 [查閱] 欄,以便讓里程碑以子系-父系關聯與專案相關聯。建立查閱欄很簡單,就是挑選要查詢的清單,然後從該清單中挑選欄 (Windows SharePoint Services 會自動填入下拉式清單) 如圖 3 所示。

定義 [查閱] 欄,以便從其他清單擷取資訊
圖 3︰ 定義從其他清單擷取資訊的查閱欄

此時,可以加入一些應用程式邏輯,建置簡單的工作流程,在建立新專案時通知成員;也可以使用 Windows SharePoint Services UI 來排序及篩選您的喜好設定,在清單之內開始建立自訂檢視。

決定應用程式所需的自訂

在功能上,專案追蹤應用程式大部分只是使用 Windows SharePoint Services UI 實作。此時,我們已經看到有些部分可行但還不太理想;也有些部分無法透過 Windows SharePoint Services UI 來完成等等。我們可以利用 Office SharePoint Designer 2007 的領域包括:

  • 工作流程中的應用程式邏輯    Windows SharePoint Services 3.0 和 Office SharePoint Server 2007 中,您可以現成使用的工作流程必須指定使用者或群組,以指派工作。我們的專案追蹤應用程式需要能夠根據議題或工作中的 Owner 屬性,動態地決定工作流程動作的收件者。我們可以使用 Office SharePoint Designer 2007,為這個解決方案建置動態無編碼工作流程。

  • 儀表板和管理員檢視    我們需要能夠顯示所有專案、所有預算等等的組合檢視;我們可以輕易建置無編碼「資料檢視」,以顯示儀表板的連結及組合資訊。

  • 父系-子系關聯    建立工作時,有一些易用性的議題,也許我們想要讓工作預設至特定的專案,依所在的頁面而定。我們可以使用 Office SharePoint Designer 2007 加入邏輯,將一個項目到另一個項目的連結自動化。

Microsoft 在建置四十種應用程式範本時,使用相同的反覆手法,並開發出一組前後一致的手法,加上一致的實務做法、決策樹等等,將應該在 Windows SharePoint Services 3.0 之中直接完成,以及應該使用 Office SharePoint Designer 2007 與其他工具完成的事項最佳化。本文下一節將討論這些手法、找出五種「設計模式」及其應該實作的方式,在討論過程中,從繁多的應用程式範本中引述範例。本文其餘內容會以這種方式,逐步更詳細並更深入地討論技術性方面,而不多進行方法論探討。

頁面頂端

實作一般設計模式

本節內容要在 Microsoft 如何實際使用設計模式的情況下,描述五種基本設計模式,因此,我們會談論多種範本中的一些不同範例,包括程式碼範例和適當情境下的一些逐步指引。開發人員會發現本節及其餘各節有關如何實際建置應用程式範本的內容非常有用,但是內容編寫的方式也可供非開發人員參考引用。

一開始,要先探討下列設計模式:

  • 自訂表單    建立自訂外觀及操作,在商務程序特定時機上指引動作操作 (其中包括只公開允許修改或與指定階段相關的適當屬性)。

  • 動作流程    建立妥善定義的動作,引導正確的動作者移至正確的位置 (針對這項作業,我們需要良好的導覽控制,可感應正在進行的動作以及採取動作的動作者)。

  • 父系-子系關聯    建立兩份或多份 SharePoint 清單之間的關聯,以便進行查閱和參考。

  • 工作流程    使用 Office SharePoint Designer 2007,建立 Windows Workflow Foundation 架構商務程序。

  • 儀表板    使用網頁組件,為整個網站中散置各處的資訊,在一個位置上建立統一的檢視。

使用自訂表單

自訂表單在 Windows SharePoint Services 的資料輸入使用者介面的自訂作業中扮演關鍵的重要角色。就如自訂清單檢視是用來以不同方式呈現清單資料一樣,自訂表單是用來呈現擷取使用者輸入的各種不同方式。依商務需求而定,可能會有各種不同的原因,需要建立這種自訂表單。

以工作為基礎的自訂作業

商務程序需要使用者執行非常明確的動作,在程序中各個不同點上影響商務資料,良好的商務程序會透過在程序中各個階段公開正確資訊,讓使用者很容易處理自己的工作。

Windows SharePoint Services 會依預設包含各清單的編輯表單,但是此表單也許不會顯示商務程序特定階段的一組最佳欄位,也不會以清楚呈現所需動作的方式來排列這些欄位,為了確保使用者能夠在執行動作時,輕鬆編輯正確資訊,可以為每個動作建立自訂表單。

「問題追蹤」解決方案使用自訂編輯表單,以便在問題追蹤程序的各個階段都能立即看清必須為問題項目輸入何種資訊,在問題追蹤程序中的每個動作都各自有其表單,例如,當使用者選擇解決問題時,會被導引到解決方式頁面 (Resolve.aspx),這個頁面可以讓使用者輸入問題解決方式,以及解決問題的人員姓名,使用者按一下 [解決] 按鈕,以提交所做的修改,如此即可提供容易使用的動作流程,並協助消除錯誤或遺漏的資訊。

使用 Office SharePoint Designer 2007 建立自訂編輯表單,是相當容易執行的作業:

  1. 建立預設 EditForm.aspx 的複本,然後重新命名。

    重要: 請務必要在執行本程序的第一個步驟,建立預設 EditForm.aspx 的複本,並重新命名;如果在原始 EditForm.aspx 頁面上執行步驟 2,會中斷清單而無法回復。

  2. 刪除新編輯表單中的清單表單網頁組件。

  3. 插入資料檢視,其中包括您要公開的資料 (在 [插入] 功能表上按一下 [SharePoint 控制項],然後再按 [自訂清單表單])。

  4. 使用 [插入] 方法,Office SharePoint Designer 2007 會自動為表單建立 [儲存] 按鈕。下面的程式碼會示範 [儲存] 按鈕的自訂 HTML 範例。

<input type="button" value="Save" name="btnSave" onclick="javascript: {ddwrt:GenFireServerEvent('__commit;__redirectsource')}"/>

導覽

建立對應於角色的頁面之後,還需要提供方法,讓使用者能夠迅速存取相關的儀表板;在「活動計劃」解決方案中,我們是使用 XSL 範本,根據目前使用者的角色,為他們建立正確的儀表板連結。

這種技巧有一項限制,如果在解決方案中加入更多角色,並為這些角色提供自訂儀表板,將需要另外再建立其他 .aspx 頁面。

您一定要注意,這種技巧不會加上任何其他控制,以限制網站上存取資訊的人員,理論上,任何使用者都可以檢視解決方案中的任何資訊。

指定使用者的角色

您有各種不同的方式,可以建立角色,然後指定給使用者,這項艱難任務的最佳解決方式將依照特定應用程式或組織的需求,而有極大的差異;Windows SharePoint Services 不提供現成可用的角色佈建指派方法,在某些情況下,在部署網站之後佈建角色,或者允許使用者視需要自行指定角色,就足以應付。

在「活動計劃」解決方案中,使用者可以登記本身最適合的角色,這是透過「活動計劃」工作區首頁上的自訂網頁組件來完成。

此設計模式的其他範例

使用自訂表單的另一個伺服器管理員範例,請參閱Windows SharePoint Services 3.0 的出借應用程式範本

網站管理員範例中,請參閱Windows SharePoint Services 3.0 的製造流程管理應用程式範本

控制動作流程

以商務程序為模型的真正 Web 應用程式很少包含於單一網頁或網頁組件中,而是橫跨多個這類元件,每個元件各自負責商務程序中的特定步驟,因此,輕鬆而順暢地在應用程式元件之間導覽成為應用程式設計中的重要一環,而一個重要的設計模式就是透過繫結商務程序動作至導覽來控制動作流程,使得執行特定動作時,會將使用者導向適當的下一頁或下一個動作。

控制動作流程的其中一個方法是,使用 Windows SharePoint Services 3.0 中的 [自訂動作] 功能,讓您自行為文件庫中的項目加入動作至「內嵌內容按鈕」。這項功能的一個限制是,動作必須是經過硬式編碼,而不能以項目的名稱或是其他動態值進行參數化。

另外有一個方法可以讓您將動態動作納入商務程序中,就是建立自訂 SharePoint 清單,然後使用「計算欄位」。「問題追蹤」應用程式範本使用自訂「問題」清單來追蹤問題狀態和資訊。Microsoft 能夠使用計算欄位,將自訂連結納入清單檢視中,讓使用者針對問題採取行動 (例如,「啟動」或「解決」),這些動作每一個都可以進行導覽,將使用者帶到適當的自訂表單 (請參閱上一個設計模式),以進行必要的作業來啟動或解決問題。

計算欄位是 Windows SharePoint Services 3.0 的一項功能,可以讓您套用自訂呈現模式,做為 SharePoint 清單中的欄,而讓商務程序動作 (啟動問題) 公開為欄中的按鈕,讓使用者導覽到正確的自訂表單,以執行該商務動作。

計算的欄位支援選擇是否要顯示的巨集指令的條件邏輯。例如,如果已經啟動 bug,我們不要顯示 [啟動] 按鈕。計算的欄位會新增至 SharePoint 清單中,以新增 XML 結構描述檔案,以定義清單的欄位項目。<Field ID="{EA1D0509-767B-4576-ABEF-FC66647037B9}" Name="ActivateBug" Group="_Hidden" Type="Computed" Sortable="FALSE" Filterable="FALSE" DisplayName="$Resources:tsa,Activate_DispName;" ClassInfo="Icon" AuthoringInfo="$Resources:core,Linked_Item;"> <FieldRefs> <FieldRef ID="{94f89715-e097-4e8b-ba79-ea02aa8b7adb}" Name="FileRef"/> <FieldRef ID="{3f277a5c-c7ae-4bbe-9d44-0456fb548f94}" Name="Status"/> <FieldRef Name="ID" /> </FieldRefs> <DisplayPattern> <IfEqual> <Expr1>$Resources:core,Status_Active;</Expr1> <Expr2> <Field Name="Status"/> </Expr2> <Then> </Then> <Else> <HTML><![CDATA[<a href="]]></HTML> <HttpHost/> <UrlDirName> <HTML>/</HTML> <LookupColumn URLEncodeAsURL="TRUE" Name="FileRef"/> </UrlDirName> <HTML><![CDATA[/Activate.aspx?ID=]]></HTML> <Column HTMLEncode="TRUE" Name="ID"> </Column> <HTML><![CDATA[" onclick="GoToLink(this);return false;" target="_self">]]></HTML> <HTML><![CDATA[<img border="0" alt="]]></HTML> <HTML>$Resources:tsa,Activate_DispName;</HTML> <HTML><![CDATA[" src="]]></HTML> <HttpHost/> <UrlDirName> <HTML>/</HTML> <LookupColumn URLEncodeAsURL="TRUE" Name="FileRef"/> </UrlDirName> <HTML><![CDATA[/IMNBUSY.GIF">]]></HTML> <HTML><![CDATA[</a>]]></HTML> </Else> </IfEqual> </DisplayPattern> </Field>

這段程式碼示範的是 [啟動] 計算欄位的 XML,如果尚未啟動問題,這個欄位會顯示可按下的橙色狀態連結,使用者可以按一下連結,移至這個問題的啟動表單。

FieldRefs 元素包含問題清單中狀態欄位的欄位參考,這項參考可以讓我們根據問題的狀態,進行此計算欄位的自訂呈現。

計算欄的 DisplayPattern 欄位包含欄的計算和呈現模式,在此範例中,我們使用 if-then-else 陳述式,決定問題的狀態是否為使用中:如果問題為使用中,就不在 [啟動] 欄位中進行任何顯示;如果問題不在使用中,則顯示 Else 元素中的 HTML,這段 HTML 程式碼是圖像和使用者可以按下以啟動問題的連結。

此設計模式的其他範例

控制動作流程的另一個伺服器管理員範例,請參閱Windows SharePoint Services 3.0 的出借應用程式範本

網站管理員範例中,請參閱Microsoft Windows SharePoint Services 3.0 的員工活動網站應用程式範本

使用父系-子系關聯

商務解決方案經常需要在與其他資料關聯的情況下檢視及使用資料。例如,上述的專案追蹤應用程式,「專案」、「工作」、「議題」和「里程碑」每一項都儲存在自己的 SharePoint 清單中,每項工作、議題和里程碑都與「專案」清單上的項目相關聯,維持清單與包含於其他清單中「子系」資訊之間的關聯可能會是艱難的挑戰。

建立新增清單項目與現有項目之間的預設連結

最常遭遇到的其中一項挑戰是,使用者要建立與父系清單中項目相關的清單項目。在多個專案追蹤解決方案中,當使用者嘗試要建立與現有專案相關的工作時,就會遭遇到這項挑戰,Windows SharePoint Services 3.0 中並沒有任何現成的機制,可自動為正在建立的清單項目與現有清單項目之間建立關聯。

使用者可以從專案詳細資料頁面 (DispForm.aspx) 在多個專案中追蹤應用程式範本,建立新任務在該專案底下。新的工作建立頁面 (NewForm.aspx) 包含下拉式功能表,使用者可以選取這項工作的父項專案。若要讓使用者瀏覽的頁面上顯示的父項專案這個下拉式預設值,我們為了父專案的識別碼 NewForm.aspx 查詢字串中。接下來,請使用 JavaScript,我們剖析出專案識別碼值,並在下拉式清單方塊中選取相關的專案。<a href="../ProjectTasks/NewForm.aspx?ProjectID={$ProjectID}" onclick="javascript:this.href = unescapeProperly(escape(this.href)); GoToLink(this); return false;" target="_self">Create a new Task...</a>

這段程式碼示範 DispForm.aspx 的連結。請注意查詢字串中包含 ProjectID。

載入 NewForm.aspx 時,JavaScript 從查詢字串剖析專案識別碼,然後變更專案下拉式清單,以便選取正確的專案。

JavaScript 會包含在內容編輯器網頁組件上 NewForm.aspx。網頁組件設定有沒有 chrome,使其不會出現在頁面上除非頁面是在編輯模式。JavaScript 放置於 [內容編輯器] 區域。<script type="text/javascript"> _spBodyOnLoadFunctionNames.push("fillDefaultValues"); function fillDefaultValues() { var qs = location.search.substring(1, location.search.length); var args = qs.split("&"); var vals = new Object(); for (var i=0; i < args.length; i++) { var nameVal = args[i].split("="); var temp = unescape(nameVal[1]).split('+'); nameVal[1] = temp.join(' '); vals[nameVal[0]] = nameVal[1]; } setLookupFromFieldName("Project", vals["ProjectID"]); setLookupFromFieldName("Milestone", vals["MilestoneID"]); } function setLookupFromFieldName(fieldName, value) { if (value == undefined) return; var theSelect = getTagFromIdentifierAndTitle("select","Lookup",fieldName); if (theSelect == null) { var theInput = getTagFromIdentifierAndTitle("input","",fieldName); ShowDropdown(theInput.id); var opt=document.getElementById(theInput.opt); setSelectedOption(opt, value); OptLoseFocus(opt); } else { setSelectedOption(theSelect, value); } } function setSelectedOption(select, value) { var opts = select.options; var l = opts.length; if (select == null) return; for (var i=0; i < l; i++) { if (opts[i].value == value) { select.selectedIndex = i; return true; } } return false; } function getTagFromIdentifierAndTitle(tagName, identifier, title) { var len = identifier.length; var tags = document.getElementsByTagName(tagName); for (var i=0; i < tags.length; i++) { var tempString = tags[i].id; if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) { return tags[i]; } } return null; } </script>

_ SpBodyOnLoadFunctionNames.push命令新增fillDefaultValues函數的載入時間執行指令碼清單。

fillDefaultValues 函數會從查詢字串擷取專案識別碼或里程碑識別碼,然後傳送至 setSelectedOptions,然後 setSelectedOptions 將下拉式功能表的值設定為父系專案的識別碼。

此設計模式的其他範例

使用父項與子項檢視的另一個伺服器管理員範例,請參閱庫存追蹤 Windows SharePoint Services 3.0 的應用程式範本

網站管理員範例中,請參閱Windows SharePoint Services 3.0 的新儲存開啟的應用程式範本]。

使用工作流程

Windows SharePoint Services 3.0 裝載 Windows Workflow Foundation,以啟用新增工作流程邏輯至應用程式。Office SharePoint Designer 2007 具有功能強大的規則設計工具,可供以現成可用的工作流程為中心自訂及新增條件式邏輯。您也可以使用 Visual Studio 2005,配合 Visual Studio 2005 Extensions for Windows Workflow Foundation,以程式碼建立更複雜的自訂工作流程。不論如何,何時或如何使用工作流程都有以下需要考慮的事項。

工作流程使用考量

工作流程是很好的非同步作業解決方案,在「出借中心」解決方案中,工作流程是在使用者建議新的文件庫資產時使用,在這裡,工作流程是好選擇的其中一個原因是,建議者與核准者之間的處理並不是同步的。

工作流程也很適合排程的事件。在出借中心解決方案中,工作流程是用來處理資產的取出與到期日提醒,項目取出之後,工作流程會在到期時自動傳送到期日提醒。

工作流程可以為所代表的意義用來簡化否則複雜的程式設計工作,在伺服器上。工時卡管理 Windows SharePoint Services 3.0 的應用程式範本是範例。這個應用程式追蹤特定任務的員工的工作期間,來計算中打卡之間的時間差異,並打孔查看加上時間戳記。一般而言,追蹤的時間戳記,需要記錄在 [伺服器 (可能是以資料庫),這兩個活動主要開發工作。不過,此應用程式是一個簡單的工作流程步驟。使用者揮拳,當工作流程建立時間記錄清單中的一個項目,然後將 [開始時間] 值設定為 [目前的時間戳記。同樣地,當使用者揮拳,工作流程更新相同清單中相關聯的資料列,並設定結束時間值。使用者期間是工作的只要之間的差異的結束時間及開始時間值,其會反映在標示為時數的導出資料行。

工作流程是以非同步方式執行,如果建立解決方案,其中的動作結果必須就在導覽至下一頁之前完成,工作流程可能就不是最佳解決方案。例如,在問題追蹤解決方案中,不是使用工作流程來處理問題啟動和解決方式,這種設計選擇的其中一個原因是,問題狀態中的變更必須在使用者對問題採取行動之後,立即反映於使用者介面中。

使用 Office SharePoint Designer 2007 建置自訂工作流程

使用 Office SharePoint Designer 2007 建立工作流程是一種不必編寫程式碼的經驗,只要在開啟網站時,按一下 [檔案] 功能表,指向 [開新檔案],按一下 [工作流程],然後使用工作流程設計工具。工作流程設計工具可以讓您建立精密而複雜的規則和動作,並與 SharePoint 清單和文件庫整合,讓您能夠直接使用清單和文件庫項目的欄位和值,以驅動工作流程的邏輯。

例如,假設您要建立工作流程動作,在建立新工作或議題時,就傳送電子郵件給工作擁有人。在「專案追蹤」範本中,「擁有人」是 SharePoint 清單中的自訂欄,所以工作流程可以使用這個欄的值,然後在執行階段動態地決定實際的電子郵件地址。

若要進一步瞭解在Office SharePoint Designer 2007的工作流程,請參閱介紹 Microsoft Office SharePoint Designer 2007

此設計模式的其他範例

使用工作流程的另一個伺服器管理員範例,請參閱工作招募與面試管理 Windows SharePoint Services 3.0 的應用程式範本

網站管理員範例中,請參閱臨床試驗初始與 Windows SharePoint Services 3.0 的管理應用程式範本

使用儀表板

Windows SharePoint Services 3.0 中網頁組件基礎結構的多種效益中,有一項是顯示散置於整個 SharePoint 網站中資訊的能力,或在外部顯示於一個摘要頁,稱為儀表板。共用環境中的一個共通商務需求是以角色為基礎的儀表板,可以為角色或人員提供相關資訊的檢視,這種儀表板可以利用強大的內建功能,例如網頁組件篩選,以及根據「誰」在檢視頁面,針對特定對象顯示資訊。

您也可以超越這些功能,分別為不同的角色建立不同的頁面,以便不但真正自訂資訊,也自訂版面配置和頁面的其他方面,這種以角色為基礎的自訂頁面在所有應用程式範本中廣泛地使用,而且當然也包含篩選和針對特定對象在內。

例如,「出借中心」應用程式就使用以角色為基礎的儀表板,根據使用者的角色來呈現與使用者最相關的資訊,網站的主頁面有兩個可用的頁面:一個是針對圖書館使用者 (預設頁面),一個是針對圖書館員。

同樣地,「支援工程師」應用程式在主頁面上有三個儀表板檢視可供使用:「服務要求首頁」、「知識管理員首頁」和「服務要求管理員首頁」,使用者選取與其角色最相關的超連結。顯示於儀表板中的網頁組件也會篩選要顯示而與使用者相關的內容,這是透過在檢視套用篩選來進行。以下步驟說明如何將這種篩選套用至現有的清單檢視。

  1. 導覽至瀏覽器中的清單檢視頁面。

  2. 在清單工具列上找出下拉式控制項,如果尚未選取檢視,就選取您要修改的檢視。

  3. 再次移至相同的下拉式控制項,然後選取 [修改此檢視]

  4. 在 [編輯檢視] 頁上,向下捲到 [篩選] 區段,如下設定篩選值:

    [建立者] 欄等於 [我] 時,或當 [客戶] 欄等於 [我] 時,顯示項目。

  5. 按一下 [確定]。

「支援工程師」應用程式的「服務要求管理員首頁」頁 (顯示於圖 4) 主要包含兩個儀表板網頁組件,以長條圖形式依狀態和優先順序摘要列出服務要求。

儀表板頁
圖 4︰ 儀表板頁面

這些是資料檢視網頁組件,反映「服務要求」清單中所包含的資料,也是「支援工程師解決方案」網站的一部分。瞭解如何建立這些網頁組件的最佳方式是,在 Office SharePoint Designer 2007 中開啟網站,並載入包含這些網頁組件的 HelpDeskManager.aspx 頁,在分割檢視中檢視該頁,就會看到網頁組件背後的程式碼混合了 XLST、HTML 和 CSS 標記語言。

我們來檢查一下,網頁組件上的長條圖是如何建立的,我們會以「整體服務要求優先順序網頁組件」為例,在 Office SharePoint Designer 2007 中的 [插入] 功能表上,依序按一下 [SharePoint 控制項][資料檢視],以開啟 [資料來源程式庫] 工作窗格,此工作窗格可以讓我們瀏覽通過網站目前可存取的資料來源,包括網站中已有的清單。此處在我們的範例中,我們展開標示為 [SharePoint 清單] 的區段,然後按一下清單名稱 [服務要求],指出這份清單將是我們的資料來源。在所顯示的快顯功能表中,我們按一下 [顯示資料],就會在工作窗格中開啟新的面板 [詳細資料來源],顯示儲存於「服務要求」清單中的所有欄位和範例資料。我們從這個面板選取所要顯示在網頁組件中的欄位名稱,在我們的範例中是 [優先順序] 欄位,然後選擇 [插入選取欄位為單一項目檢視] (參見圖 5)。

請注意,在這裡我們的目標是,顯示依優先順序群組所有工作的摘要計數,也就是說,我們必須只列出 [優先順序] 欄位中可用的選項一次,然後在旁邊的清單中顯示各優先順序值的計數,因此,我們選擇將優先順序值顯示為 [單一項目檢視] 做為自訂作業的起點,改為選取 [多重項目檢視] 會公開清單中所有的列。

在 SharePoint Designer 中建立儀表板頁
圖 5︰ 在 Office SharePoint Designer 2007 中建立儀表板頁面

這會在頁面中的游標點插入資料檢視網頁組件,但是網頁組件只顯示一個資料列,而不是以長條圖依優先順序摘要列出服務要求,幸虧由於網頁組件是使用 HTML 和 XSL 程式碼呈現,我們可以自由自訂程式碼來配合我們的需求,下面我們要著重探討此自訂作業的一些重要方面,將此網頁組件轉換成長條圖。

我們知道我們清單中的資料來源具有三個可能的優先順序值: (1) 高、 (2) [標準模式] 及 (3) 低。因此,我們 XLST 變數宣告為每個值,如下所示︰ <xsl:variable name="High" select="count(/dsQueryResponse/Rows/Row[normalize-space(@Priority) = '(1) High'])" /> <xsl:variable name="Normal" select="count(/dsQueryResponse/Rows/Row[normalize-space(@Priority) = '(2) Normal'])" /> <xsl:variable name="Low" select="count(/dsQueryResponse/Rows/Row[normalize-space(@Priority) = '(3) Low'])" /> <xsl:variable name="AllTasks" select="count(/dsQueryResponse/Rows/Row)" />

請注意,XSL 參數@Priority指的是 [資料來源] 欄位的名稱。由於程式碼,以圖形表示每三個的優先順序值的類似,我們著重於圖形只的第一個的優先順序值。若要取得的百分比值,我們定義新變數percetHigh,來計算百分比的最高優先順序要求︰ <xsl:variable name="percentHigh" select="$High div $AllTasks" />

建立實際的列的程式碼是 XSL 範本,如下所示︰ <xsl:template name="ChartRow"> <xsl:param name="RowName"></xsl:param> <xsl:param name="Value"></xsl:param> <xsl:param name="PercentValue"></xsl:param> <tr> <td class="ms-formbody" width="125px" style="vertical-align:middle"> <xsl:value-of select="$RowName"/>: <xsl:value-of select="$Value" /> <xsl:text xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" ddwrt:nbsp-preserve="yes" disable-output-escaping="yes"> &amp;nbsp; </xsl:text>( <xsl:call-template name="percentformat"> <xsl:with-param name="percent" select="$PercentValue"/> </xsl:call-template>) </td> <td> <table width="100%" > <tr> <td width="{round($PercentValue*100)+1}%" height="15px" class="ms-selected"><xsl:text xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" ddwrt:nbsp-preserve="yes" disable-output-escaping="yes">&amp;nbsp;</xsl:text> </td> <td width="100%" > <xsl:text xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" ddwrt:nbsp-preserve="yes" disable-output-escaping="yes">&amp;nbsp;</xsl:text> </td> </tr> </table> </td> </tr> </xsl:template>

請注意,列本身就是兩個儲存格的表格。寬度的第一個儲存格,表示該圖表中的列的寬度,由PercentValue變數,表示在程式碼中為︰ td width="{round($PercentValue*100)+1}%"

這個儲存格也有 CSS 樣式類別,選取 ms,套用了。這個樣式類別中定義 core.css 樣式表,如下所示︰ .ms-selected { background-position:left top; color:#000000; background-image:url("/_layouts/images/filedialogselected.gif"); background-color:#FFE499; border-top:1px solid #FFE499; border-bottom:1px solid #FFE499; background-repeat:repeat-x; }

背景圖像 filedialogselected.gif 讓儲存格 ( 也就是長條) 顯示為黃色。

此設計模式的其他範例

使用儀表板的另一個伺服器管理員範例,請參閱Windows SharePoint Services 3.0 的客服中心應用程式範本

網站管理員範例中,請參閱商務效能報告 Windows SharePoint Services 3.0 的應用程式範本

頁面頂端

建置範本

Windows SharePoint Services 中的應用程式範本有兩種類型:網站定義和網站範本。四十種應用程式範本混合包含這兩種類型。這兩種類型範本都可以供使用者在 [新的 SharePoint 網站] 頁上選擇,兩種類型範本的運作對使用者來說都差不多,但是建立這兩種類型範本的方法及其提供網站建立表單使用的方法其實極其不同。

網站定義

從最基本的道理來說,網站定義是 XML 檔案、組件和 .aspx 頁面的集合,控制網站如何以此集合為基礎進行架構,以及網站中的基礎應用程式所執行的作業。由於基礎 XML 和 .aspx 檔案是透過檔案系統存取,可以輕易進行複製並修改,以重新建立新的網站定義,使得網站定義非常容易自訂。

從網站定義佈建 (建立) 網站之後,在檔案系統中對網站定義檔案所做的變更仍然可以散佈至已佈建的網站,但是 Microsoft 不支援在網站佈建後變更網站定義,如果使用外部編輯器 (如 Office SharePoint Designer 2007) 變更已佈建網站中的任何頁面,頁面就會失去與檔案系統中網站定義的連接,而將頁面儲存在 Windows SharePoint Services 資料庫系統中,稱為「自訂」或「非隱藏」頁面。

如果您需要自訂現有的網站定義,您的方法是,啟動與重新命名網站定義,而不是修改現有的複本。若要實作變更現有的網站定義網站都已經能夠的表單之後,您需要建立並部署網站定義升級方案套件。如需如何進行此動作的詳細資訊,請參閱在Windows SharePoint Services 3.0 SDK對應的文件。

網站範本

網站範本是 SharePoint 網站封裝成單一檔案,可以解壓縮以使用相同的結構和內容建立新網站,也就是說,為了建立網站範本,我們必須以現有的 SharePoint 網站做為起點,任何網站自訂作業 - 版面配置、樣式表、圖像、主版頁面、文件、清單、清單內容 - 都可以在範本中擷取。

擷取現有網站做成範本的處理可以從網站管理工作 (在 [網站設定] 之下) 或是從 Office SharePoint Designer 2007 中產生,建立之後,網站範本會儲存於目前網站集合的網站範本庫中,檔案的副檔名為 .stp。這個檔案可以從網站範本庫下載,然後移轉至其他網站集合或不同的伺服器環境中。本節下文中會深入探討建立及使用網站範本的細節。

使用網站定義與網站範本

我們剛討論過,網站範本其實是從網站定義衍生而來,決定建立新的網站定義或網站範本時,請考慮下列事項:

  • 應用程式的複雜性    如果您的需求大部分是裝飾性的,例如現有網站的版面配置變更和圖像操控,應該使用網站範本;另一方面,如果想要新增網頁組件定義,或要使用自訂程式碼或計算欄位,就應該建立自訂網站定義。

  • 您在伺服器中的存取層級    您能否存取整個網頁伺服器?或只能存取特定網站集合?建立及部署網站定義需要存取伺服器的檔案系統,如果沒有這項存取權,就只能限於在可存取網站集合層級上建立網站範本。請記住!這項存取權限需求不適用於網站管理員,一旦部署之後,任何有權限建立新網站的人都可以存取兩種類型的應用程式範本。

  • 未來更新/變更的頻率    變更網站範本不會影響已經依此範本建立的網站 - 只有變更後建立的較新網站才會受影響;部署網站定義升級解決方案套件會影響所有依此定義建立的網站。

建立網站範本和網站定義的指引

建立網站範本和網站定義涉及各種不同程度的複雜性,下列各節描述基本技巧。

建立網站範本

如上文討論所述,網站範本其實是封裝供重複使用的 SharePoint 網站,這個封裝的檔案存在於網站集合層級的網站範本庫,範本庫中的網站範本可用來在網站集合的所有子系網站層級建立新網站。下列步驟會引導您從現有網站建立新網站範本:

  1. 在 Office SharePoint Designer 2007 中開啟現有的網站,並確認網站中的版面配置和內容可配合您的需求。

  2. [檔案] 功能表上,指向 [匯出],再按 [SharePoint 網站範本],這樣您就會進入 [網站設定] 網頁。

  3. 輸入範本的檔案名稱、標題和描述。

  4. 如果要在範本中包含清單和文件庫中的資料,也可以選取 [包含內容] 選項;如果要包含工作流程,也應該選取這個選項,因為工作流程其實是儲存於文件庫中的內容。

  5. 按一下 [確定],可以從網站建立範本檔,副檔名為 .stp,然後將檔案放置在父系網站的網站範本庫中。

您可以從網站範本庫中,按一下範本名稱,下載 .stp 檔案到本端磁碟中,再從該磁碟將檔案上載到其他網站範本庫。

建立網站定義

與網站範本不同,網站定義是儲存於檔案系統中,每個網站定義位於伺服器上各自的資料夾中:

% CommonProgramFiles %\Microsoft Shared\Web server extensions\12\TEMPLATE\ SiteTemplates

網站範本資料夾中存放了各種網站元素,例如 .aspx 和 .html 檔案,以及相關資源 (如圖像和 JavaScript 檔案)。ONET.XML 是核心網站定義檔案,指定網站定義的各種設定和模組,ONET.XML 存放於 "XML" 子目錄中。

網站定義是以 Windows SharePoint Services 註冊,並經由 WEBTEMP XML 檔案提供使用,所有 WEBTEMP XML 檔案都位於

% CommonProgramFiles %\ \Microsoft Shared\Web 伺服器 extensions\12\TEMPLATE\ < LCID > \XML

其中 <LCID> 是位置識別碼,如 1033;XML 檔案的實際名稱字首為 "WEBTEMP" (例如,WEBTEMPBT.XML)。

基本上,建立新的網站定義包含兩個主要步驟: (1) 設定網站定義資料夾中,以及建立將登錄Windows SharePoint Services網站定義 WEBTEMP XML 檔案 (2)。複製現有的網站定義資料夾與變更其內容,以符合業務需求可以完成的第一個步驟。ONET。XML 檔案包含指定的網站頁面的不同部分佈建,例如導覽列、 文件範本和清單範本的項目。設定項目指定的清單及時產生網站定義時,預設會建立的模組。下列摘錄是從 ONET。XML 的 Bug 追蹤網站定義,並顯示部分的設定項目︰ <Configurations> <Configuration ID="0" Name="Default"> <SiteFeatures> <!-- BasicWebParts Feature --> <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> <!-- Three-state Workflow Feature --> <Feature ID="FDE5D850-671E-4143-950A-87B473922DC7" /> <!-- TSA Fields and Content Types --> <Feature ID="75A0FEA7-CD50-401e-AF0E-782F3662A299" /> </SiteFeatures> <WebFeatures> <!-- TeamCollab Feature --> <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> <!-- MobilityRedirect --> <Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" /> <!-- Bug Tracking Categories List --> <Feature ID="75A0FEA7-42E8-4527-8313-F63C4C49A7E6" /> <!-- Bug Tracking Bugs List --> <Feature ID="75A0FEA7-2D1E-451a-B445-16BC346D7D8E" /> <!-- Bug Tracking Bugs List Instance --> <Feature ID="75A0FEA7-2D1E-451a-B445-16BC346D7D8F" /> ... ... <!-- Post Provisioning Event Handler --> <Feature ID="75A0FEA7-B0EF-434e-90D6-CE997D970564"> <Properties> <Property Key="ZonedWebPartsUrlList" Value="$Resources:core,lists_Folder;/Bugs/Resolve.aspx,$Resources:core,lists_Folder;/Bugs/Activate.aspx,$Resources:core,lists_Folder;/Bugs/Close.aspx"/> </Properties> </Feature> </WebFeatures> </Configuration> </Configurations>

請注意,這個網站定義使用無數功能,例如「問題清單」、「問題類別清單」、「行動重新導向」等,這些功能都以 GUID 功能列在 SiteFeaturesWebFeatures 元素之下。GUID 可以在位於此資料夾中相對應 Feature.XML 檔案之內的 Feature 元素中找到:

% CommonProgramFiles %\Microsoft Shared\Web server extensions\12\TEMPLATE\FEATURES

請參閱Windows SharePoint Services 3.0 SDK如需詳細資訊自訂 ONET。XML。

建立自訂網站定義的第二個步驟是,在此資料夾中建立 WEBTEMP*.XML 檔案:

% CommonProgramFiles %\Microsoft Shared\Web server extensions\12\TEMPLATE\ < LCID > \XML

此檔案範本屬於指定可以用來產生網站定義建立網站的設定。下列摘錄說明 WEBTEMPbt.XML 檔案,也就是使用 Bug 追蹤網站定義的設定檔的格式︰ <?xml version="1.0" encoding="utf-8" ?> <Templates xmlns:ows="Microsoft SharePoint"> <Template Name="BT" ID="75801"> <Configuration ID="0" Title="Bug Database" Hidden="FALSE" ImageUrl="/_layouts/images/stsprev.png" Description="A site for teams to track bugs in their shared software projects." DisplayCategory="Application Templates" > </Configuration> </Template> </Templates>

請注意,上述「範本」節點的 Name 屬性必須與檔案名稱 WEBTEMP*.XML 中的 "*" 相符,並請注意,Configuration 元素的 DisplayCategory 屬性控制在 [建立網站] 網頁的 [範本選擇] 區段中設定所將出現的索引標籤,您可以將自己的值放入此屬性中,自行建立索引標籤。

在已建立的網站定義檔案並在檔案系統中放置在適當的資料夾中,重新啟動 IIS 服務。新的網站定義將可在Windows SharePoint Services中的 [新的 SharePoint 網站] 頁面的 [範本選擇] 區段中的選取範圍。也可以為解決方案檔案,以簡單的移轉到另一個 SharePoint 環境或重新部署相同的環境中封裝網站定義檔案。解決方案檔案是使用的封包檔案。WSP 副檔名 (適用於網頁解決方案套件)。包含的功能,網頁組件的組件類別的資源,網站定義所使用的等。您可以使用 makecab.exe 工具建立。WSP 檔案。請參閱Windows SharePoint Services 3.0 SDK如何建立的解決方案檔案。

將網站定義本地化

網站定義的本地化是透過使用資源檔案和文化特性偵測的協助下進行,一般 ASP.NET 2.0 應用程式本地化是在編譯階段進行,而 SharePoint 網站本地化則在網站佈建時進行。在應用程式範本中,總共 20 種網站定義範本已進行了 10 種語言的本地化作業,網站定義本身是以語言中性的方式建立,而字串文字則是儲存在資源檔案 (.resx) 中,如果要自行在網站定義中加入本地化,或是在現有網站定義中加入新的語言支援,您可以透過建立新資源檔案來進行,檔案會直接置入位於以下位置的 [資源] 目錄中:

% CommonProgramFiles %\Microsoft Shared\Web server extensions\12\Resources

這個檔案基本上是 XML 檔案,可以在任何文字編輯器中進行編輯。下列步驟示範如何建立新本地化檔案,以用於網站定義中:

  1. 瀏覽至上文提及的 [資源] 目錄,並找出您要本地化為新語言的現有 .resx 檔案。

  2. 複製檔案,然後以相同名稱命名,只有語言-文化名稱不同 (例如,將 tsa-en-us.resx 命名為 tsa-es-es.resx)。

  3. 在文字編輯器中開啟已複製的檔案。

  4. 在檔案的第二行設定 lcid 編碼 (地區設定識別碼) 來代表該語言,例如,下列編碼將語言設定為西班牙文:

<!-- _lcid="3082" _version="12.0.5006.3000" _dal="1" ––>

  1. 向下捲動至看到 data 元素後面跟隨 value 元素,成對出現,就是將資源名稱與本地化字串值配對之處;為您的地區設定修改 value 元素中的字串值,以下程式碼範例示範西班牙文 create new customer 動作的資源字串:

    <data name="Action_NewCustomer">
    <value>Crear un Nuevo cliente</value>
    </data>
  2. 將檔案儲存到 [資源] 資料夾的名稱,例如myCustomResource.es-es.resx (實際的名稱取決於適用資源檔案的語言文化特性名稱)。此檔案現在已準備就緒的應用程式中的網站定義檔案可以參考的。

為了讓本地化的網站定義在該語言的 [新 SharePoint 網站] 頁上顯示為可使用的範本,也將 WEBTEMP 檔案加入適當的 <LCID> 目錄,如需有關如何加入新 WEBTEMP 檔案的資訊,請參閱上一節<建立網站定義>。

當地語系化的資源參照.aspx 檔案中運作方式會不同,與 XML 檔案中。例如,.aspx 檔案中的參照會評估在執行階段時產生的網站時,會評估 XML 檔案參考。若要存取網站定義檔案中的資源檔案中的 XML 項目,請使用下列語法︰ $Resources: myCustomResource,DataName。例如,若要使用資源字串.aspx 檔案,標記看起來可能像這樣︰ <div> <asp:Label runat="server" Text="<%Resources:myCustomResource, Action_NewCustomer %>" /> </div>

頁面頂端

摘要

Windows SharePoint Services 3.0 配合 Office SharePoint Designer 2007 共同提供功能強大的所需工具,讓您建置及自訂互動式而具有工作流程功能的應用程式,不管是自訂四十種可下載應用程式範本的其中一個,或是自行建置範本,本文都為您描述已證實可用的方法及最佳實務做法,甚至連非開發人員都可以成功建置。

如果尚未下載,您要採取的下一個步驟就是下載應用程式範本,並開始使用,在 Office SharePoint Designer 2007 中開啟這些範本,然後使用下一節<資源>中列出的資源,協助您自行建置應用程式。

頁面頂端

資源

如需有關 Windows SharePoint Services 3.0 和 Office SharePoint Designer 2007 的詳細資訊,請參閱下列資源:

如需更著重於開發人員的資源,請參閱下列各項:

頁面頂端

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×