
- SharePoint 教程
- SharePoint - 首頁
- SharePoint - 概述
- SharePoint - 型別
- SharePoint - 功能
- SharePoint - 設定環境
- SharePoint - 建立網站集
- SharePoint - API
- SharePoint - 中心管理
- SharePoint - 應用模型
- SharePoint - 整合選項
- SharePoint - 開發工具
- SharePoint - 列表功能
- 其他列表功能
- SharePoint - 自定義列表
- SharePoint - 庫
- SharePoint - Web 部件
- 站點列和內容型別
- SharePoint - 資料
- SharePoint - 伺服器物件模型
- SharePoint - 客戶端物件模型
- SharePoint - REST API
- SharePoint - 功能和元素
- SharePoint - 功能/事件接收器
- SharePoint - Azure 平臺
- SharePoint - 打包和部署
- SharePoint - 沙箱解決方案
- SharePoint - 應用
- SharePoint 有用資源
- SharePoint 快速指南
- SharePoint - 資源
- SharePoint - 討論
SharePoint 快速指南
SharePoint - 概述
本教程將介紹如何開始 SharePoint 開發。Microsoft SharePoint 是一個基於瀏覽器的協作、文件管理平臺和內容管理系統。完成本教程後,您將更好地理解 SharePoint 是什麼,以及 SharePoint 的高階功能領域和功能。
什麼是 SharePoint
SharePoint 是一個支援協作和內容管理系統的平臺。它是一個基於 Web 的中心門戶。使用 SharePoint,您可以管理您同事和您自己的文件、社交活動、資料和資訊。
它允許小組設定一個集中的、受密碼保護的空間來共享文件。
文件可以儲存、下載和編輯,然後上傳以繼續共享。
SharePoint 提供如此廣泛的功能,以至於任何一個人都很難精通所有工作負載。
讓我們瞭解一下我們可以用 SharePoint 做些什麼。它分為三個獨立的領域:

協作
術語“協作”包含 SharePoint 的一個非常強大的主題。這意味著透過不同型別的協作將人們聚集在一起,例如企業內容管理、Web 內容管理、社交計算、人員及其技能的可發現性。
在 SharePoint 2013 中,協作是透過應用管理的。
開發人員可以擴充套件、自定義或構建他們自己的 SharePoint 應用,以及管理 SharePoint 上的協作。
互操作性
SharePoint 也是關於透過互操作性將這種協作結合在一起,例如:
Office 和基於 Web 的文件整合。
構建和部署安全且自定義的解決方案的能力,這些解決方案將業務線資料與 SharePoint 和 Office 整合。
與更廣泛的 Web 技術整合,或將應用程式部署到雲。
平臺
SharePoint 也是一個平臺,它不僅支援互操作性和協作,還支援可擴充套件性,這得益於豐富的物件模型、一套可靠的開發工具和不斷壯大的開發者社群。
關鍵正規化轉變之一是 SharePoint 中雲的概念。
雲引入了新的應用模型,例如:
開發、部署和託管 SharePoint 應用程式的新方法。
透過 OAuth 的新身份驗證形式。
使用 OData 和 REST 的新資料互操作性方法。
SharePoint - 型別
在本章中,我們將介紹開始使用 SharePoint 的不同型別和版本。
主要有三種安裝和使用 SharePoint 的方法:
- SharePoint Foundation
- SharePoint Server
- Office 365
前兩個選項是 SharePoint 本地部署,而 Office 365 已成為 SharePoint 的第三個完全基於雲的託管模型。
SharePoint Foundation
SharePoint Foundation 是需要安全、可管理的基於 Web 的協作平臺的組織的基本解決方案。SharePoint Foundation 提供了包含在 SharePoint 中的基本協作功能。
SharePoint Foundation 以免費的可下載安裝程式的形式提供,它代表了 SharePoint 的基礎部分。
它包括許多功能,例如安全性和管理、使用者和團隊網站協作以及許多應用(例如文件庫和列表)。
從本質上講,它提供了一組基線功能,使您可以開始使用和開發 SharePoint。
SharePoint Foundation 需要一些功能來構建組織內的標準協作和溝通解決方案。SharePoint Foundation 的主要功能圍繞文件管理和協作。
SharePoint Foundation 的關鍵功能
以下是導致其在企業中廣泛應用的一些主要功能。
有效的文件和任務協作 - 團隊網站提供對中心位置資訊的訪問。
減少實施和部署資源 - SharePoint Foundation 可作為免費下載提供給 Windows Server 客戶,透過它可以大大減少實施時間和成本。
更好地控制組織重要的業務資料 - SharePoint Foundation 還提供資料和資訊管理以及安全性的功能。
擁抱 Web 進行協作 - 透過擴充套件和自定義 SharePoint Foundation
簡而言之,SharePoint Foundation 代表了 SharePoint 的核心內容儲存和協作功能。對於希望提高在安全、易用、協作的工作空間中相互協作能力的團隊和小組織來說,它是理想的版本。
SharePoint Server
SharePoint Server 提供了大量功能,這些功能擴充套件了 SharePoint Foundation 中提供的功能。它提供了更豐富、更高階的功能集合,您可以將其用於組織的解決方案。
SharePoint Server 的關鍵功能
以下列出了其中一些附加功能:
高階搜尋 - 伺服器版本中提供的搜尋功能和功能提供了更大的靈活性。它們允許自定義搜尋結果頁,您可以使用自定義搜尋 Web 部件對其進行配置。
Web 內容管理 - SharePoint Server 支援網際網路的 Web 內容建立和釋出。
企業服務 - 這些服務為您提供了一種方法,可以使用 Office 產品系列中可用的工具快速輕鬆地構建自定義解決方案。
業務連線服務 - 業務連線服務 (BCS) 使您可以連線到這些外部資料來源,並透過 Web 部件、使用者配置檔案或 SharePoint 列表顯示業務資料。
社交網路和計算 - 社交網路無處不在,並且已成為許多解決方案的預期功能集。
記錄管理 - SharePoint Server 為整個生命週期中的內容管理提供了出色的支援。
Office 365
Office 365 已成為 SharePoint 的第三個完全基於雲的託管模型。它是您在自己的本地資料中心託管自己的場地的替代選項。
Office 365 的關鍵功能
透過 Office 365 許可 SharePoint Online 的選項基於諸如您要新增的使用者數量、您需要儲存的資料量以及您需要使用的功能等因素。
它也成為一個您可以開發豐富應用程式(作為 SharePoint 託管的和雲託管的應用程式)並在無需管理本地基礎設施成本的情況下進行擴充套件的好地方。
它並不具備與 SharePoint Server 完全相同的服務和功能,但它確實具有一些強大的開發能力。
有一些 .NET 應用程式,您可以使用 C# 或 Visual Basic 構建它們,然後作為 .WSP 或 .APP 部署到 SharePoint。您還可以部署更輕量級的應用程式,例如 HTML5 和 JavaScript 應用程式。
作為開發人員,您可以自定義任何 SharePoint 版本,無論是 SharePoint Foundation、Server 還是 Office 365。
SharePoint - 功能
在本章中,我們將介紹內置於 SharePoint 的預設功能集(或功能),這些功能使您可以利用平臺而無需進行任何開發。
在構建應用時,您可以使用或擴充套件這些核心功能。Microsoft 從歷史上將這些功能稱為工作負載。
這些工作負載提供了一種談論 SharePoint 的不同功能組合的方式。您應該將這些工作負載視為不僅代表一組相關的核心應用程式,而且也視為應用程式開發的機會。
以下是 SharePoint 2010 中新增的工作負載:
站點 - 代表可供使用和這些站點內功能的不同型別的站點。
社群 - 代表社群和社交功能,例如部落格和 Wiki。
內容 - 代表核心企業內容管理功能。
搜尋 - 代表搜尋驅動功能。
見解 - 代表業務智慧功能,例如 KPI。
複合 - 代表例如使用業務連線服務整合外部應用程式的能力。
SharePoint 2013 – 功能
在 SharePoint 2013 中,Microsoft 擴充套件了功能以新增更多功能並提供更緊密的整合。
以下是 SharePoint 2013 的核心功能:
功能 | 原生功能 | 示例可擴充套件性 |
---|---|---|
站點 | 在站點中,您可以找到 SharePoint 的協作方面。站點包含大量功能,包括建立、儲存和檢索資料,以及管理、標記和搜尋內容、文件和資訊的功能。您還可以透過列表和文件庫連線到 Microsoft Office 2013 客戶端應用程式。 | 站點、站點模板、SharePoint 應用、工作流、母版頁、網站頁 |
社交 | 提供社交和社交網路功能、新聞源和個人資料搜尋和標記,以及透過技能、組織位置、關係和內容評級搜尋、查詢和與人員互動。 | 搜尋自定義、評級和標記功能、部落格、Wiki、元資料標記 |
內容 | 包含使用網頁、應用、工作流或內容型別瀏覽、搜尋和管理內容的功能。 | SharePoint 應用、工作流、Word 或 Excel 服務 |
搜尋 | 以豐富且動態的方式搜尋 SharePoint 內外的內容,並透過 Office Web Apps 實現即時文件檢視。此外,還集成了結構化資料庫系統以及本地或基於雲的 LOB 系統(例如 SAP、Siebel 和 Microsoft Dynamics)中的資訊。 | SharePoint 搜尋、搜尋自定義、業務資料連線 (BDC) |
見解 | 主要關於 BI 和支援,例如,將 Microsoft Access 整合到 SharePoint 的功能;利用 Excel 和 SQL Server 在網頁上訪問和顯示資料;啟用儀表板和關鍵績效指標 (KPI) 以將原始資料轉換為可操作資訊。 | Excel 服務、Access 服務、儀表板、BDC、PerformancePoint 服務 |
互操作性 | 範圍從 LOB 整合到 Office 整合,透過新的 Office 應用程式模型;(考慮一下連線到雲服務而不是 VSTO 託管程式碼載入項的 HTML 和 JavaScript 驅動的自定義任務窗格)到自定義解決方案開發。 | BDC、Office 應用、自定義開發 |
品牌 | 透過內建模板更改或更詳細和以組織為導向的品牌來更改站點的外觀。 | SharePoint 的開箱即用配置、母版頁和自定義應用 |
SharePoint - 設定環境
本章將介紹如何設定 SharePoint 的開發環境。您可能已經知道,SharePoint 有三種不同的版本:
- SharePoint Foundation
- SharePoint Server
- Office 365
本章將使用基於雲的 Office 365 版本。
步驟 1 − 您可以在此處輕鬆建立一個免費試用帳戶 https://products.office.com/en/business/office-365-enterprise-e3-business-software。

步驟 2 − 點選“免費試用”選項。將開啟一個新頁面。

步驟 3 − 輸入所需資訊並點選下一步,您將看到以下頁面。

步驟 4 − 輸入使用者名稱、公司名稱和密碼,然後點選下一步。系統會向您傳送驗證碼。驗證完成後,它將開始建立帳戶。

步驟 5 − 建立帳戶後,您將看到以下頁面。

步驟 6 − 點選準備就緒,您將看到以下頁面 −

現在您的環境已準備就緒,您可以開始 SharePoint 開發,但是您還需要安裝 Visual Studio。
Microsoft 提供 Visual Studio 的免費版本,其中還包含 SQL Server,您可以從此處下載 https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx。
安裝
以下步驟將指導您安裝 SharePoint。
步驟 1 − 下載完成後,執行安裝程式。將顯示以下對話方塊。

步驟 2 − 點選安裝,它將啟動安裝過程。

步驟 3 − 安裝過程成功完成後,您將看到以下訊息 −

步驟 4 − 根據需要重新啟動計算機。現在從開始選單開啟 Visual Studio。它將開啟以下對話方塊,並需要一些時間進行準備。

步驟 5 − 完成後,您將看到 Visual Studio 的主視窗。

您現在可以開始您的應用程式開發了。
步驟 6 − 選擇檔案 → 新建 → 專案選單選項。

步驟 7 − 在模板 → Visual C#下左側窗格中選擇 Office/SharePoint。雙擊安裝 Office 開發人員工具。

步驟 8 − 點選安裝並關閉所有 Visual Studio 例項。將開啟一個新頁面。點選下一步。

步驟 9 − 將出現一個訊息框。點選更新。

步驟 10 − 更新完成後,您將看到如下訊息 −

SharePoint - 建立網站集
站點是 SharePoint 的核心,代表著開發人員的起點,沒有站點集,就無法開始 SharePoint 開發。Microsoft SharePoint Online 站點集是一個包含子站點的頂級站點。
您可以使用許多可用的站點模板。子站點共享管理設定、導航和許可權,每個都可以根據需要為各個子站點更改。
建立站點集
學習 SharePoint 等應用程式時,最好建立一個區域來執行練習,而不會影響現有環境或使用者。
步驟 1 − 要建立新的站點集,請訪問站點 https://portal.office.com/

步驟 2 − 選擇管理員圖示,您將看到以下頁面 −

步驟 3 − 在左側窗格中選擇資源 → 站點。在右側窗格中,點選新增站點。

步驟 4 − 將開啟以下頁面。輸入所需資訊並點選確定。

您可以在管理員中心 URL 列表中看到已新增的站點集。URL 是站點集的位置,管理員可以在此處開始建立和管理站點。

步驟 5 − 點選連結,您將看到有關該站點集的詳細資訊。

SharePoint - API
本章將介紹訪問 SharePoint 平臺的幾組 API。
API 的選擇取決於以下幾個因素:
- 應用程式型別
- 開發人員現有技能
- 執行程式碼的裝置
應用程式型別
有不同型別的應用程式,例如:
- SharePoint 載入項
- SharePoint 頁面上的 Web 部件
- 在客戶端計算機或客戶端移動裝置上執行的 Silverlight 應用程式
- 在 SharePoint 中公開的 ASP.NET 應用程式
- 在 SharePoint 網站頁面中執行的 JavaScript
- SharePoint 應用程式頁面
- 在客戶端計算機上執行的 Microsoft .NET Framework 應用程式
- Windows PowerShell 指令碼
- 在 SharePoint 伺服器上執行的計時器作業
開發人員現有技能
如果您已經具備以下任何程式設計模型的經驗,則可以輕鬆地在 SharePoint 中建立應用程式,而無需學習大量有關 SharePoint 程式設計的知識:
- JavaScript
- ASP.NET
- REST/OData
- .NET Framework
- Windows Phone
- Silverlight
- Windows PowerShell
執行程式碼的裝置
執行程式碼的裝置可以是以下任何一種:
- SharePoint 場中的伺服器。
- 外部伺服器,例如雲中的伺服器。
- 客戶端計算機和移動裝置。
下表為不同 API 集提供了指導,這些 API 可用於選定的常用 SharePoint 擴充套件專案列表。
序號 | API 及其用途 |
---|---|
1 | .NET Framework 客戶端物件模型、Silverlight 客戶端物件模型、REST/OData 端點 建立一個 ASP.NET Web 應用程式,該應用程式對 SharePoint 資料或由 BCS 外部內容型別在 SharePoint 中顯示的外部資料執行 CRUD 操作,但不必跨防火牆呼叫 SharePoint。 |
2 | REST/OData 端點 建立一個執行 SharePoint 資料或由 BCS 外部內容型別在 SharePoint 中顯示的外部資料的 CRUD 操作的 LAMP Web 應用程式。 建立一個執行 SharePoint 資料的 CRUD 操作的 iOS 或 Android 應用。 |
3 | 移動客戶端物件模型 建立一個執行 SharePoint 資料的 CRUD 操作的 Windows Phone 應用。 |
4 | 移動客戶端物件模型和伺服器物件模型 建立一個使用 Microsoft 推送通知服務來提醒移動裝置 SharePoint 中事件的 Windows Phone 應用。 |
5 | .NET Framework 客戶端物件模型 建立一個執行 SharePoint 資料的 CRUD 操作的 .NET Framework 應用程式。 |
6 | Silverlight 客戶端物件模型 建立一個執行 SharePoint 資料的 CRUD 操作的 Silverlight 應用程式。 |
7 | JavaScript 客戶端物件模型 建立一個執行 SharePoint 資料的 CRUD 操作的 HTML/JavaScript 應用程式。 建立一個與 SharePoint 協同工作的 Office 載入項 |
8 | 伺服器物件模型 建立自定義 Windows PowerShell 命令。 建立計時器作業。 建立中央管理的擴充套件。 在整個 SharePoint 場中建立一致的品牌。 建立自定義 Web 部件、應用程式頁面或 ASP.NET 使用者控制元件。 |
SharePoint - 中心管理
本章將介紹 SharePoint 中央管理的高階概述。中央管理是您可以從中心位置執行管理任務的地方。由於我們已經註冊了 Office 365,因此我們也有一個管理站點。
在瀏覽器中開啟 URL https://portal.office.com/。
步驟 1 − 選擇管理員圖示。

步驟 2 − 現在在左側窗格中選擇管理中心 → SharePoint。

將開啟以下頁面。

您可以看到各種站點集管理功能,並管理以下活動:
- 應用程式管理
- 監控
- 安全
- 常規應用程式設定
- 系統設定
- 備份和還原
- 升級和遷移
- 配置嚮導
- 應用
應用程式管理
在應用程式管理中,您可以執行建立新的 Web 應用程式和站點集等任務。您可以管理安裝在 SharePoint 站點上的服務(例如 Word、Excel 或 BCS)並管理您的內容資料庫。
您還可以執行修改內容資料庫屬性、啟用功能和建立新的站點集等任務。
監控
監控是您可以管理報告、監控和 SharePoint 站點狀態的中心位置。監控站點分為三個區域,如下所示:
執行狀況狀態 − 您可以檢視 SharePoint 伺服器上不同服務的狀況。
計時器作業 − 您可以定義特定作業並決定何時執行它們。
報表 − 一組工具,使您可以建立和管理報表、執行診斷日誌記錄以及檢視有關各種伺服器端活動的報表。
安全
安全設定是關於主瀏覽器 UI 中的安全性的,使用者和站點管理員可以在其中評估與使用者站點的使用者相關的特定許可權。安全性涵蓋許多領域,例如:
- 管理員帳戶的管理
- 服務帳戶的配置和管理。
- 密碼更改設定和策略的管理。
- 身份驗證提供程式、受信任身份提供程式的規範。
- 防病毒設定。
- 被阻止的檔案型別。
- 自助服務安全性。
- 安全令牌服務。
常規應用程式設定
在常規應用程式設定中,您可以為 SharePoint 站點集和站點配置許多常規選項,例如向用戶傳送郵件。
您還可以管理許多部署和審批選項,例如內容部署位置和該內容的審批者。一般來說,可以將此站點視為 SharePoint 站點的通用設定。
系統設定
您可以配置以伺服器為中心的設定,例如場級別或訪問功能,甚至可以管理可用於站點集使用者的服務(如 Excel 和 Word 服務)。您可以從系統設定站點內管理這些型別的設定。
備份和還原
有時,您可能需要備份和還原您的 SharePoint 網站。備份和還原功能使您能夠建立和安排 SharePoint 的定期備份,執行臨時備份,從先前備份的 SharePoint 網站還原等。
升級和遷移
有時,您可能希望從一個版本的 SharePoint 升級到另一個版本,例如從 SharePoint Standard 遷移到 SharePoint Enterprise。這需要許可證和一些升級伺服器的工具。
此類活動可以在中央管理網站的“升級和遷移”部分進行。您還可以從此管理工具集部分安裝服務補丁、檢查安裝和升級進度。
配置嚮導
它只是一個簡單的分步向導,可為您配置 SharePoint Server。
您在首次安裝 SharePoint 時應該已經看到過此嚮導。但是,您可以在安裝後再次執行它來更改 SharePoint 伺服器上的一些配置。
應用
“應用”是中央管理網站中的一個新類別,它使您能夠管理安裝在 SharePoint 例項上的應用的不同方面。
例如,您可以使用“應用”來管理許可證,確保應用以無錯誤的方式執行和執行,還可以管理應用目錄。
SharePoint - 應用模型
本章將介紹 SharePoint 部署應用模型。由於 SharePoint 正在轉向雲端,因此可以使用以下部署模型來使用 SharePoint 應用:
- SharePoint 託管
- 自動託管
SharePoint 託管應用
SharePoint 託管部署型別代表了一種將客戶端輕量級應用部署到 SharePoint 的方法。將 SharePoint 託管應用視為沒有伺服器端程式碼的應用程式是最簡單的方法。
SharePoint 託管應用的關鍵功能包括:
它是一個由靜態應用程式檔案或頁面組成的應用程式,這些檔案或頁面駐留在您的 SharePoint 上,例如 HTML 和 JavaScript 檔案,這些檔案支援客戶端編碼。
當用戶訪問 SharePoint 託管應用時,他們會被重定向到包含您的應用程式的頁面。
SharePoint 託管部署型別適用於較輕量級的應用,例如品牌列表檢視、媒體應用或天氣應用。
如果您決定使用 SharePoint 託管部署模型,那麼您將僅限於不在伺服器上執行的程式碼。
您可以將 Silverlight 與 SharePoint 一起使用,並利用 HTML 和 JavaScript。
讓我們來看一個簡單的 SharePoint 託管應用程式示例。
步驟 1 - 開啟 Visual Studio 並選擇檔案 → 新建 → 專案選單。

步驟 2 - 在左側窗格中選擇模板 → Visual C# → Office/SharePoint,然後在中間窗格中選擇SharePoint 應用。
在“名稱”欄位中輸入名稱,單擊“確定”,您將看到以下對話方塊。

在新 SharePoint 應用中,我們需要新增要除錯的 SharePoint 網站 URL,然後選擇 SharePoint 託管模型作為您希望託管 SharePoint 應用的方式。
步驟 3 - 轉到 SharePoint 管理中心並複製 SharePoint URL。

步驟 4 - 將 URL 貼上到新 SharePoint 應用對話方塊中,如下所示。

步驟 5 - 單擊下一步,它將開啟連線到 SharePoint對話方塊,我們需要登入。

步驟 6 - 輸入您的憑據並單擊登入按鈕。成功登入到 SharePoint 網站後,您將看到以下對話方塊:

步驟 7 - 單擊完成。建立專案後,單擊解決方案資源管理器中的AppMenifest.xml檔案。

步驟 8 - 單擊許可權選項卡。將開啟一個“範圍”下拉列表。

步驟 9 - 在“範圍”下拉列表中,選擇網站,這是您正在配置的許可權範圍。在“許可權”下拉列表中,選擇“讀取”,這是您正在配置的許可權型別。

步驟 10 - 開啟 Default.aspx 檔案並將其替換為以下程式碼。
<%-- The following 4 lines are ASP.NET directives needed when using SharePoint components --%> <%@ Page Inherits = "Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" MasterPageFile = "~masterurl/default.master" Language = "C#" %> <%@ Register TagPrefix = "Utilities" Namespace = "Microsoft.SharePoint.Utilities" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Register TagPrefix = "WebPartPages" Namespace = "Microsoft.SharePoint.WebPartPages" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Register TagPrefix = "SharePoint" Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%-- The markup and script in the following Content element will be placed in the <head> of the page --%> <asp:Content ID = "Content1" ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" runat = "server"> <script type = "text/javascript" src = "../Scripts/jquery- 1.6.2.min.js"></script> <link rel = "Stylesheet" type = "text/css" href = "../Content/App.css" /> <script type = "text/javascript" src = "../Scripts/App.js"></script> </asp:Content> <asp:Content ID = "Content2" ContentPlaceHolderID = "PlaceHolderMain" runat = "server"> <script type = "text/javascript"> function hello() { var currentTime = new Date(); $get("timeDiv").innerHTML = currentTime.toDateString(); } </script> <div id = "timeDiv"></div> <input type = "button" value = "Push me!" onclick = "hello();" /> </asp:Content>
步驟 11 - 轉到解決方案資源管理器,右鍵單擊專案並選擇“釋出”。單擊打包應用按鈕。這將構建您的 SharePoint 託管應用,併為將其部署到您的 SharePoint 網站做好準備。

您將看到以下資料夾,其中包含 *.app 檔案。

步驟 12 - 導航到您的 SharePoint 線上網站。

步驟 13 - 在左側窗格中單擊SharePoint 應用。將開啟一個新頁面。

步驟 14 - 將您的檔案拖到這裡上傳。

檔案上傳後,您將看到以下頁面:

步驟 15 - 在左側窗格中單擊選項 - 網站內容。單擊新增應用圖示,如下面的螢幕截圖所示:

將開啟一個新頁面。
步驟 16 - 在左側窗格中選擇您的應用 → 來自您的組織,您將看到該應用可供安裝。單擊該應用。

步驟 17 - 單擊該應用時,將開啟一個對話方塊,如下面的螢幕截圖所示。單擊信任它。

步驟 18 - 您將看到該應用已安裝。安裝完成後,您可以單擊該應用。

您將看到以下頁面,其中包含一個按鈕:

單擊按下我按鈕時,它將顯示當前日期。

自動託管
自動託管部署模型與以前的 SharePoint 應用程式大相徑庭。在此模型中,您構建用於 SharePoint 的應用,但程式碼會在後臺無縫部署到 Windows Azure,因此 SharePoint 會自動為您建立雲託管應用。
重要的功能包括:
它看起來像是在 SharePoint 上執行,但在後臺實際上是部署到特殊的 Office 365 Windows Azure 例項,並作為經過身份驗證和授權的應用在 SharePoint 上註冊。
使用自動託管部署模型,您無法完全訪問 Windows Azure 平臺的全部平臺功能,但您擁有足夠的平臺來構建一些有趣的應用程式。
讓我們來看一個透過建立新專案來實現自動託管的簡單示例。
步驟 1 - 選擇SharePoint 2013 應用並單擊確定。

將開啟一個新的對話方塊。
步驟 2 - 選擇自動託管並單擊下一步。

步驟 3 - 將開啟一個新的對話方塊。選擇ASP.NET MVC Web 應用程式並單擊完成。

建立專案後,釋出您的應用。其餘步驟與 SharePoint 託管選項中提供的步驟相同。
SharePoint - 整合選項
本章將介紹整合選項。SharePoint 2013 中的新應用程式模型為您的應用程式提供了許多選項,可讓它與 SharePoint、其他系統和資料深度整合。這些選項如下:
- 使用者介面整合
- 事件和邏輯整合
- 資料整合
使用者介面整合
在使用者介面整合中,您可以作為 SharePoint 應用程式模型的一部分使用三個主要的整合點,它們如下:
- 應用部件和頁面
- 功能區和操作選單
- 導航
應用部件和頁面
應用部件和頁面使您可以向用戶顯示應用程式的使用者介面。對於熟悉 SharePoint 2010 的人來說,應用部件類似於 Web 部件。
應用部件是可重用且可配置的應用程式視窗。
頁面與應用部件非常相似,只是它們以更大、更完整的視窗樣式顯示。
功能區和操作選單
功能區首次在 SharePoint 2010 中推出。它為使用者可能想要對文件和其他資料執行的所有操作提供了一箇中心位置。
在 SharePoint 2010 中,開發人員可以在功能區中為其應用程式包含自定義操作;SharePoint 應用程式也允許此自定義。這使您能夠在使用者期望的位置包含操作,與 SharePoint 提供的所有其他標準操作一起。
操作選單是 SharePoint 列表或庫中專案的上下文相關選單。例如,在 SharePoint 文件庫中,操作選單會顯示常見的函式,例如“簽入”和“簽出”。
此選單的另一個常用術語是“編輯控制元件塊”。
SharePoint 應用程式允許您在此選單中包含其他操作。例如,這是一個顯示應用於單個列表項的應用程式函式的絕佳位置。
導航
導航允許使用者找到您的應用程式,並且與功能區和操作選單整合允許您的使用者在與他們在 SharePoint 其他位置執行操作相同的熟悉位置執行操作。
使用一個或多個這些構建塊,您可以將應用程式的使用者介面與 SharePoint 的使用者介面整合,並將您的應用展示給其使用者。
事件和邏輯整合
為使用者提供 UI 通常是任何應用程式最突出的方面。另一方面,響應使用者採取的操作(無論是在應用程式內還是與應用程式互動)也極其重要。
關鍵功能包括:
SharePoint 應用程式能夠響應應用程式內的活動(例如單擊按鈕)以及響應 SharePoint 內的活動(例如簽出文件等)。
響應應用程式內的活動非常簡單。您的應用程式的 UI 和程式碼遠端運行於 SharePoint,並且只是透過應用部件和頁面顯示。因此,響應諸如在應用程式中單擊按鈕之類的事件完全取決於應用程式的程式設計框架。例如,如果您的應用是用 ASP.NET 構建的,那麼您只需捕獲 ASP.NET 按鈕的OnClick事件。
對於這些型別的事件,SharePoint 不會妨礙您。對於響應在 SharePoint 內發生的事件(例如儲存或更新文件),SharePoint 提供事件接收器。
SharePoint 2013 還提供事件接收器,允許應用程式響應 SharePoint 網站中發生的事件。
資料整合
資料是每個應用程式的核心,通常是使用者希望在您的應用程式中使用的內容。SharePoint 提供了許多開箱即用的選項來儲存和使用資料。這些選項如下:
在 SharePoint 中儲存和操作資料。
使用存在於 SharePoint 之外的外部資料。
從 SharePoint 的第一個版本開始,目標就是使使用者能夠輕鬆直接地使用資料。
最簡單的例子就是列表資料的概念。使用者能夠透過通用的 Web 介面儲存和使用表格樣式的資料。
許多人認為使用列表類似於在資料庫中使用資料表。SharePoint應用程式也可以透過使用列表來原生利用這些相同的資料儲存功能,SharePoint讓開發者能夠利用SharePoint提供的許多資料儲存功能,而無需重新發明輪子。
如果使用得當,SharePoint可以節省時間和精力,並可能降低運營的管理和支援成本。
以下是核心資料儲存功能:
列表 - 用於儲存結構化資料,就像在表中一樣。
庫 - 用於儲存非結構化資料,例如文件或檔案。
SharePoint為開發人員提供了一套全面的API,可在應用程式中使用這些API與SharePoint中的資料互動並操作資料。對於SharePoint應用程式,這些API在客戶端物件模型(CSOM)中公開。
您將在接下來的章節中看到許多這些選項。
SharePoint - 開發工具
在本章中,我們將介紹關於SharePoint的不同“開發”級別。每個級別都以某種方式服務於SharePoint網站的終端使用者。您可以將此範圍劃分為以下幾類:
終端使用者 - 將平臺用作應用程式平臺。
高階使用者 - 建立和管理(可能還包括品牌推廣)網站。
設計師 - 品牌推廣網站並構建使用者體驗。
開發者 - 構建和部署應用程式。
從開發者到終端使用者,各種人員都與SharePoint互動。下圖顯示了這一點。

網站設定
網站設定是SharePoint的主要部分之一。熟悉它非常重要。
步驟1 - 要訪問網站設定頁面,請點選SharePoint管理中心中的使用者配置檔案。點選“我的網站設定”下的設定我的網站選項。

將開啟以下頁面。

您將在本頁面上找到您網站的大多數配置,例如:
- 更改網站的主題。
- 啟用功能。
- 管理許可權。
步驟2 - 一些設定選項也位於“設定”中。因此,請點選左側窗格中的“設定”。

請注意,網站設定頁面的核心功能被分為主要類別。例如,您的大部分安全設定都可以在“使用者和許可權”類別中找到,主題設定在“網頁設計庫”中,依此類推。
新增HTML頁面
編輯體驗範圍從格式化文字到新增影像或多媒體。您可以透過直接在SharePoint網站中嵌入HTML來更深入地瞭解程式碼。
這項任務更像是開發,所以讓我們來看一個簡單的新增HTML頁面的例子。
步驟1 - 開啟您的SharePoint網站並導航到網站的主頁。在“頁面”選項卡上,點選“編輯”選單選項。

步驟2 - 在“插入”選項卡上,點選“嵌入程式碼”選項。

將開啟以下對話方塊:

步驟3 - 將一些HTML程式碼新增到程式碼欄位中,如下所示:

步驟4 - 點選插入,您將看到HTML程式碼段已插入。

步驟5 - 點選儲存。

您可以看到HTML程式碼已插入到您的SharePoint網站中。
新增媒體檔案
要將媒體播放器應用程式新增到SharePoint網站,請開啟SharePoint網站並導航到網站的主頁。
步驟1 - 在“頁面”選項卡上,點選“編輯”選單選項。

步驟2 - 選擇“Web部件”選項。

步驟3 - 從類別中選擇“媒體和內容”,然後從“部件”部分選擇帶部件的媒體。點選新增。

步驟4 - 儲存頁面,您將看到包含媒體檔案的以下頁面。

SharePoint Designer
許多開發人員更傾向於不使用SharePoint Designer作為開發SharePoint網站的工具。但是,關鍵是SharePoint Designer工具可以使某些開發任務更容易。
重要的功能包括:
SharePoint Designer可用於SharePoint的各種設計器功能,包括建立和編輯網站、頁面、列表和內容型別。
SharePoint Designer也適用於建立基於規則的宣告性工作流,然後可以將其匯入Visual Studio以進行更深層次的自定義。
它可以從https://www.microsoft.com/en-pk/download/details.aspx?id=35491下載和安裝
第一次開啟SharePoint Designer時,您需要為其提供SharePoint網站的URL並以提升的使用者身份進行身份驗證。
SharePoint Designer繼承標準的SharePoint許可權。
在SharePoint Designer中開啟網站後,將出現許多可導航的選項以及有關網站的一些資訊,例如網站元資料、許可權、子網站等。
所以讓我們使用SharePoint Designer,但首先我們需要透過開啟SharePoint網站來使用Office 365設定SharePoint Designer。
步驟1 - 開啟SharePoint網站。

步驟2 - 選擇Office 365設定選單選項。選擇左側窗格中的“設定”,然後選擇中間窗格中的軟體。

步驟3 - 選擇左側窗格中的工具和載入項,您將看到不同的選項。最後,您將看到SharePoint Designer選項,點選連結。

步驟4 - 安裝後開啟SharePoint Designer。點選開啟網站選項。

步驟5 - 指定SharePoint網站的URL,然後點選開啟。

步驟6 - SharePoint Designer網站開啟後,您將看到不同的可用選項。

步驟7 - 點選功能區上的SharePoint列表,然後從選單中選擇任務。

步驟8 - 將開啟一個新的對話方塊。指定名稱和描述,然後點選確定。

步驟9 - 讓我們使用門戶訪問同一個網站,您將在您的網站上看到待辦事項列表。

Visual Studio和Expression Blend
您還可以使用Visual Studio和Blend向SharePoint網站新增一些內容。Visual Studio提供了許多功能來幫助開發SharePoint中的應用程式;詳細瞭解它們非常有幫助。
讓我們來看一個SharePoint託管應用程式的簡單示例,方法是開啟Visual Studio。選擇檔案→新建→專案選項。
步驟 1 - 開啟 Visual Studio 並選擇檔案 → 新建 → 專案選單。

步驟 2 - 在左側窗格中選擇模板 → Visual C# → Office/SharePoint,然後在中間窗格中選擇SharePoint 應用。
在“名稱”欄位中輸入名稱,單擊“確定”,您將看到以下對話方塊。

在新 SharePoint 應用中,我們需要新增要除錯的 SharePoint 網站 URL,然後選擇 SharePoint 託管模型作為您希望託管 SharePoint 應用的方式。
步驟 3 - 轉到 SharePoint 管理中心並複製 SharePoint URL。

步驟 4 - 將 URL 貼上到新 SharePoint 應用對話方塊中,如下所示。

步驟 5 - 單擊下一步,它將開啟連線到 SharePoint對話方塊,我們需要登入。

步驟 6 - 輸入您的憑據並單擊登入按鈕。成功登入到 SharePoint 網站後,您將看到以下對話方塊:

步驟 7 - 單擊完成。建立專案後,單擊解決方案資源管理器中的AppMenifest.xml檔案。

步驟 8 - 單擊許可權選項卡。將開啟一個“範圍”下拉列表。

步驟9 - 在“範圍”下拉列表中,選擇Web,這是您正在配置的許可權範圍。在“許可權”下拉列表中,選擇讀取,這是您正在配置的許可權型別。

步驟 10 - 開啟 Default.aspx 檔案並將其替換為以下程式碼。
<%-- The following 4 lines are ASP.NET directives needed when using SharePoint components --%> <%@ Page Inherits = "Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" MasterPageFile = "~masterurl/default.master" Language = "C#" %> <%@ Register TagPrefix = "Utilities" Namespace = "Microsoft.SharePoint.Utilities" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Register TagPrefix = "WebPartPages" Namespace = "Microsoft.SharePoint.WebPartPages" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Register TagPrefix = "SharePoint" Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%-- The markup and script in the following Content element will be placed in the <head> of the page --%> <asp:Content ID = "Content1" ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" runat = "server"> <script type = "text/javascript" src = "../Scripts/jquery- 1.6.2.min.js"></script> <link rel = "Stylesheet" type = "text/css" href = "../Content/App.css" /> <script type = "text/javascript" src = "../Scripts/App.js"></script> </asp:Content> <asp:Content ID = "Content2" ContentPlaceHolderID = "PlaceHolderMain" runat = "server"> <script type = "text/javascript"> function hello() { var currentTime = new Date(); $get("timeDiv").innerHTML = currentTime.toDateString(); } </script> <div id = "timeDiv"></div> <input type = "button" value = "Push me!" onclick = "hello();" /> </asp:Content>
步驟 11 - 轉到解決方案資源管理器,右鍵單擊專案並選擇“釋出”。單擊打包應用按鈕。這將構建您的 SharePoint 託管應用,併為將其部署到您的 SharePoint 網站做好準備。

您將看到以下資料夾,其中包含 *.app 檔案。

步驟 12 - 導航到您的 SharePoint 線上網站。

步驟 13 - 在左側窗格中單擊SharePoint 應用。將開啟一個新頁面。

步驟 14 - 將您的檔案拖到這裡上傳。

檔案上傳後,您將看到以下頁面:

步驟 15 - 在左側窗格中單擊選項 - 網站內容。單擊新增應用圖示,如下面的螢幕截圖所示:

將開啟一個新頁面。
步驟 16 - 在左側窗格中選擇您的應用 → 來自您的組織,您將看到該應用可供安裝。單擊該應用。

步驟 17 - 單擊該應用時,將開啟一個對話方塊,如下面的螢幕截圖所示。單擊信任它。

步驟 18 - 您將看到該應用已安裝。安裝完成後,您可以單擊該應用。

您將看到以下頁面,其中包含一個按鈕:

單擊按下我按鈕時,它將顯示當前日期。

SharePoint - 列表功能
在本章中,我們將主要從終端使用者的角度進行討論,涵蓋列表以及列表之上的一些增值功能,例如檢視、驗證等。當終端使用者在SharePoint中建立內容時,它以列表的形式儲存。
列表實際上是SharePoint中的資料儲存機制。
它提供使用者介面,以便能夠檢視列表中的專案、新增、編輯和刪除專案或檢視單個專案。
讓我們來看一個簡單的示例,我們將新增一個聯絡人列表。
步驟1 - 開啟您的SharePoint網站並轉到“網站內容”頁面。您可以看到當前的內容、列表和庫,並且我們可以透過點選新增應用程式來新增新內容。

步驟2 - 讓我們來看看我們可以新增到網站的一些內容:
我們可以建立一個新的文件庫。
我們可以建立一個自定義列表,在其中定義模式。
還有一些具有預定義模式的列表,例如此處的任務列表。
我們可以新增圖片、一些Wiki頁面、表單、連結列表、公告列表、聯絡人列表和日曆等。

步驟3 - 讓我們選擇聯絡人列表。

步驟4 - 我們將此列表命名為聯絡人,然後點選建立按鈕。

步驟5 - 現在您可以在您的網站聯絡人中看到聯絡人列表,您可以點選它來處理列表中的專案。

步驟6 - 向此列表新增新專案的一種方法是點選此“新建專案”連結,然後將其新增到我的內容中。

步驟7 - 輸入姓氏和名字,然後轉到工具欄或功能區,點選儲存。

步驟8 - 我們還可以透過點選編輯連結將列表置於編輯模式。

步驟9 - 接下來,我們可以新增其他一些聯絡人。編輯完成後,點選停止編輯以退出徽章編輯模式。

頁面將顯示所有聯絡人。

我們在處理此處的列表時還有一些其他事情。
步驟10 - 點選專案以訪問功能區上的專案。

步驟11 - 點選這裡的列表以訪問與整個列表相關的功能區專案。

SharePoint - 其他列表功能
SharePoint為列表提供了許多功能。它提供列表資料的儲存、自定義列表模式的能力以及檢視、新增、編輯和刪除列表專案等能力。還有更多可用的功能,例如在列表資料上建立檢視、在欄位和列表級別進行簡單的驗證、內容審批、專案版本控制等。
檢視
讓我們開始使用列表資料上的檢視。在這裡,我們回到了作者列表,正如您注意到的那樣,我們只添加了四個專案。只有四個專案,從其資料中收集任何我們需要的資訊並不難。
隨著專案數量的增加,例如從4個增加到50個、100個,甚至可能是500個,僅僅瀏覽列表並快速獲取所需資訊變得越來越困難。為了解決這個問題,SharePoint使您可以建立列表的多個檢視,以便我們可以過濾掉不需要的資訊,例如:
- 我們可以對欄位值進行排序。
- 我們可以對資訊進行分組。
- 我們可以獲取總數。
- 我們還可以有不同的方式來呈現資訊。
對於大多數列表,當您建立它們時,預設情況下您會得到一個檢視。它被稱為所有專案檢視,這就是我們在上面示例中看到的檢視。
現在讓我們看看如何建立自定義檢視。與建立列表模式一樣,SharePoint為我們提供了幾種不同的方法來建立檢視。一種方法是從現有檢視開始,更改不同列的排序和過濾。我們可以按照您想要的方式獲取資料,然後將其儲存為新檢視。
您會注意到,如果我們轉到其他列標題,大多數列標題都會提供一個小的下拉選單,我們可以訪問,如下所示,工資/費率標題。

轉到另一個列標題 - 個人簡介。它沒有下拉列表,因為它包含多行文字。其他列都有此選項。它使我們能夠對資訊進行排序或過濾。
讓我們在這裡建立一個過濾器,只顯示員工。

新增該過濾器後,請注意列標題中有一個小圖示,表示這些欄位值已被過濾。讓我們按降序對其進行排序。

所以現在我們有了資料的新的檢視,即降序檢視。

現在過濾和排序沒有保留。因此,我們需要儲存降序檢視以備將來使用。
如果我們返回“作者”列表,將會看到所有專案。如果我們想要只檢視員工,並按薪資/費率降序排序,請點選儲存此檢視選項。
我們將此檢視稱為“員工”檢視。從給定的選項中選擇此檢視是供所有使用者使用還是僅供我使用。點選儲存。

現在我們有兩個不同的檢視:“所有專案”檢視和“員工”檢視,我們可以使用列表檢視頂部的連結在這兩個檢視之間切換,如下面的截圖所示。

驗證
我們將向 SharePoint 列表中的欄位和專案新增簡單的驗證規則。在我們建立“作者”列表時,我們使用不同欄位型別的屬性添加了一些驗證規則。
點選“作者”列表中的新建專案。然後點選儲存。
點選儲存後,您將收到兩個錯誤。這是因為我們已將“姓名”和“薪資/費率”指定為必填欄位。

分別輸入姓名和薪資/費率為 Aamir Jameel 和 1500。點選儲存。

您可以看到“薪資/費率”仍然存在問題,因為在建立該欄位時,我們將其值指定為 0 到 1000 之間,而 1500 不滿足此要求。點選取消。
轉到功能區上的“列表”選項卡,然後點選列表設定。點選姓名。如下面的截圖所示,這是一個必填欄位。

現在返回,點選“薪資/費率”,然後向下滾動。您會看到它也是必填欄位。

在這裡,我們還設定了有效值範圍。因此,如果欄位型別具有這些屬性,則一切正常,但是如果沒有,該怎麼辦呢?我們可以新增一些簡單的自定義驗證。如果向下滾動到底部,您可以看到列驗證區域。讓我們展開它。在這裡,我們可以指定一個公式,然後在使用者輸入的值不滿足該公式時顯示一條訊息。

如果您不熟悉在 SharePoint 中構建公式,則有一個連結可以幫助您瞭解如何操作。

現在我們要新增的驗證是:如果您不是員工,則您的薪資/費率表示您的小時費率,我們想說費率的最大值為 50.00 美元。因此,這裡驗證取決於“員工”欄位和“薪資/費率”欄位的值。因此,我們不會將驗證新增到這兩個欄位中的任何一個,而是將其新增到專案中,然後指示專案驗證的方法是轉到列表設定。

點選驗證設定,並設定如下所示的公式。

因此,條件將非常簡單,首先,您是員工嗎?如果是員工,那麼我們已經將有效薪資值範圍設定為 0 到 1000 之間。因此,只返回 True 值。如果您不是員工,我們將檢查薪資/費率是否小於或等於 50。
如果此公式返回 True,則專案被認為有效。如果返回 false,則無效。最後,我們新增錯誤訊息:“貢獻者的最高費率為 50 美元”。
這完成了驗證設定。點選儲存。
現在返回“作者”列表並新增一個新專案。我們將將其命名為“測試”,選中“員工”複選框(因為我們正在測試員工),將“薪資/費率”輸入為 800,然後點選儲存。

資料已儲存。沒有錯誤。現在讓我們輸入不同的條件。轉到“作者”列表。我們將將其命名為“測試 2”。

現在不要選中“員工”複選框,因為我們現在假設此人是一位貢獻者。將“薪資/費率”輸入為 800,然後點選儲存。
您將看到一條錯誤訊息。因此,讓我們將“薪資/費率”更改為有效值。
在“薪資/費率”欄位中輸入 40。

點選儲存。
您將看到資料已正確儲存並更新到列表中,如下面的螢幕截圖所示。

查詢欄位
我們將瞭解列表關係和查詢欄位。我們將建立一個新列表來儲存有關課程的資訊。
步驟 1 − 轉到網站內容→“新增應用”→自定義列表。

步驟 2 − 指定列表“課程”,然後點選建立。開啟“課程”列表。只有一個名為“標題”的列,它將代表課程的標題。

步驟 3 − 建立第二個列,它將儲存作者的姓名。轉到功能區上的“列表”。點選建立列。

步驟 4 − 將此列命名為作者。我們可以只使用單行文字讓使用者輸入作者姓名。但是,我們已經在“作者”列表中有了作者姓名,因此我們將向用戶顯示一個下拉列表,以便他們可以選擇作者。因此,我們將建立一個查詢欄位,而不是建立單行文字欄位。

步驟 5 − 接下來,我們需要指定要向用戶顯示的哪個列表中的哪個欄位。SharePoint 預設設定了適當的值,但如果我們要更改列表,可以從下拉列表中選擇。完成後,點選確定。

步驟 6 − 本課程是 SharePoint 教程,您可以看到我們有一個用於“作者”的下拉列表。

列表資料儲存
列表的資料儲存在行和列中。對於每個內容資料庫,都有一個表用於儲存列表的資料。您可以將列表關聯在一起,強制實施關係完整性並進行驗證。
人們經常假設關係資料庫的許多功能都存在於列表中,並且一組列表幾乎就像一個關係資料庫一樣,但事實並非如此。
您需要將列表更多地視為一組 Excel 工作表,您可以將一個工作表連結到另一個工作表,並且可以透過某種簡單的表單對列或單元格強制執行驗證。因此,SharePoint 中的一組列表並不像關係資料庫。
SharePoint - 自定義列表
讓我們看看如何建立一個自定義列表,在其中定義列表模式,而不是使用我們在建立“聯絡人”列表時使用的預定義模式。
步驟 1 − 要建立自定義列表,請轉到網站內容,然後新增應用。點選自定義列表。

步驟 2 − 在“名稱”欄位中輸入“作者”,然後點選建立。

步驟 3 − 現在您可以看到已新增“作者”。讓我們點選“作者”應用。

步驟 4 − 點選新建專案。

步驟 5 − 您可以看到,我們的列表只有一列。欄位名稱為“標題”,這是一個必填欄位,因此在這裡,我們將欄位值設定為“測試”,然後點選儲存。

注意 − 在 SharePoint 中,列也稱為欄位,因此這兩個術語是同義詞。
步驟 6 − 讓我們透過點選“新建專案”連結新增另一個專案。

步驟 7 − 將“標題”欄位值設定為“演示”,然後點選儲存。

您可以看到我們有兩個專案或兩行,並且可以看到“標題”欄位的值。請注意,在此值旁邊,有一個小省略號,它是一個開啟選單的連結。

注意 − 此選單傳統上稱為編輯控制元件塊或ECB選單,但您也會聽到它被稱為列表專案聯絡人選單。
我們建立自定義列表是因為我們想要定義模式。有幾種方法可以做到這一點。
步驟 8 − 一種方法是將列表置於編輯模式。請注意,最後有一列,上面有一個 + 號,在這裡我們可以向列表新增列。

步驟 9 − 點選 + 號,我們可以建立一個文字列。

步驟 10 − 您將看到以下頁面。將此欄位稱為姓名。

步驟 11 − 輸入姓名。這些將是文字。

步驟 12 − 現在新增另一列,讓我們將其設為數字列,以便只能輸入數字作為資料。將其設定為“費率”,並新增一些值。

此技術在您對列表進行原型設計時很有用,但您沒有太多控制權。
因此,讓我們看看定義列表模式的另一種方法。我們將透過列表設定來完成此操作。
步驟 13 − 點選“停止編輯”連結退出編輯模式。選擇功能區上的“列表”,然後轉到“列表設定”。

在這裡,我們可以定義列表的模式。當我們建立列時,我們已經有“標題”列了。您可以看到我們建立的其他兩列,以及一些隱藏的列,這些列由 SharePoint 在內部使用。

步驟 14 − 要定義“作者”列表的模式,請點選“姓名”列,然後點選刪除。接下來,刪除“費率”列。

步驟 15 − 現在,如果我們回到“作者”列表,我們可以看到這些列以及我們為它們設定的值都消失了。返回“列表設定”並設定您想要的實際模式。

步驟 16 − 頁面顯示一列“標題”。但是,我們不想要此列,而是想要一個代表作者姓名的列。因此,點選“標題”。

步驟 17 − 點選標題後,將開啟一個新頁面。向下滾動到頁面底部。沒有刪除頁面的選項。

注意 − 我們無法刪除此頁面,因為此列與省略號連結相關聯。但是,我們可以重新命名它。
步驟 18 − 重新命名列。我們將使用此列來表示作者姓名,然後點選確定。

步驟 19 − 接下來,新增另一列來表示作者是員工還是貢獻者。點選建立列。

步驟 20 − 將列名設定為“員工”,然後選擇“是/否”欄位型別。選擇我們想要的欄位型別後,向下滾動到頁面底部,您會看到“其他列設定”。
注意 − 提供了幾種不同的欄位型別。SharePoint Foundation、SharePoint Server 和 SharePoint Online 中可用的欄位型別不同。
此外,您正在構建的網站型別(即協作網站或釋出網站)也會影響可用的欄位型別。

步驟 21 − 將預設值設定為“否”,而不是“是”,然後點選確定。

步驟 22 − 現在讓我們透過點選“建立列”來建立另一個列。此列將表示我們的員工的薪資或貢獻者的費率。

步驟 23 − 我們將其稱為“薪資/費率”,並將其設定為“貨幣”欄位。

步驟 24 − 向下滾動,將其設定為必填欄位,並將最小值設定為 0,最大值設定為 1000。輸入 2,以便最多顯示兩位小數的貨幣。

步驟 25 − 讓我們再新增一列,這將是個人簡介。我們將將其稱為簡介,並將其型別設定為多行文字。

步驟 26 − 輸入 6 表示六行編輯就足夠了。在這種情況下,我們只需要純文字,然後點選確定。

步驟 27 − 我們有了“作者”列表的模式。現在我們的模式已完成,讓我們新增一些資料。點選“最近”下的作者。
讓我們透過點選每個專案旁邊的複選框來刪除之前建立的兩行。接下來,轉到功能區上的“專案”,然後點選刪除專案。

步驟 28 − 透過點選“新建專案”新增第一個專案。

步驟 29 − 根據下面的截圖輸入更多資料。

您將看到所有列出的資料。

SharePoint - 庫
本章將介紹庫。庫只是列表的一種特殊情況。它們繼承了列表的所有特性。因此,我們迄今為止看到的所有特性,都適用於庫,就像它們適用於列表一樣。
列表和庫的區別
雖然列表和庫表現出相似的特性,但以下是一些區別:
主要區別在於,在庫中,每一行都與一個文件相關聯。此文件可以是任何型別的文件。例如,辦公文件、圖片、網頁、WordPerfect文件等。使用辦公文件的優勢在於它與實際的辦公工具本身整合。
另一個區別更多的是術語上的差異,而不是功能上的差異。例如,庫中的列表示與文件相關的元資料。
建立文件庫
在本節中,我們將瞭解使用文件庫的基礎知識。您可以像建立列表一樣建立文件庫。請按照以下步驟操作。
步驟 1 − 轉到網站內容,然後單擊“新增應用”。

步驟 2 − 單擊文件庫。為庫命名,然後單擊建立。

注意 − 在這裡,我們將學習高階選項。
步驟 3 − 單擊高階選項,並將文件庫命名為課程文件。
我們還可以在這裡設定版本,但我建議不要設定版本,因為庫設定中沒有相同的選項。但是,如果您想要啟用版本控制,請在庫設定中進行操作,而不是在這裡。最後,我們可以選擇我們想要作為預設模板的文件型別。我們將選擇Word,然後單擊建立。

步驟 4 − 在新增文件之前,我們需要新增幾個列或欄位。轉到功能區上的庫選項,然後單擊庫設定。

步驟 5 − 新增新列,此列將是將在課程列表的查詢欄位中顯示的課程。單擊確定。

步驟 6 − 我們再新增一列。我們將此列命名為編號,並將型別設定為數字。設定最小值和最大值,即分別為 0 和 100,然後單擊確定。

您可以看到架構已準備就緒。

向庫新增文件
現在架構已準備就緒,我們可以新增一些文件了。新增文件的一種方法是直接在 SharePoint 中建立文件。
步驟 1 − 現在,讓我們轉到功能區上的檔案選項卡。單擊新建文件。

步驟 2 − 您將看到 Word 已開啟,在這裡我們可以編輯文件的內容。

步驟 3 − 在開啟的 Word 頁面中編寫一些文字。

文件會自動儲存,現在讓我們返回到網站,您將看到已建立 Word 文件。
步驟 4 − 要編輯元資料欄位的值,請單擊小省略號。再次選擇 Document.docx 對話方塊上的省略號,然後從選項中選擇重新命名。

步驟 5 − 輸入所需資訊,然後單擊儲存。

我們還可以透過上傳的方式將文件新增到文件庫。
步驟 6 − 您可以在此處使用新建文件進行上傳。

步驟 7 − 您也可以轉到功能區上的檔案選項卡,然後單擊上傳文件。

步驟 8 − 您將看到以下對話方塊。單擊選擇檔案。

步驟 9 − 選擇示例檔案。單擊開啟。

您將看到示例文件已新增到庫列表中。

步驟 10 − 如果要上傳多個文件,可以將它們拖放到此處。多個文件將被上傳。

上傳完成後,您將在列表中看到這些文件。

步驟 11 − 設定元資料的另一種方法是在庫選項卡下,單擊功能區上的快速編輯選項。

步驟 12 − 設定元資料後,單擊功能區上的檢視以返回到標準列表檢視。

您將看到文件檔案在列表中,如下面的螢幕截圖所示。

SharePoint - Web 部件
本章將介紹 Web 部件。我們將限制我們的檢視到列表檢視 Web 部件,因為它與資訊協作最密切相關。
Web 部件是使用者介面的小型塊,您可以將它們組合在一起以構建頁面或網站。例如,新聞 Web 部件、電子郵件 Web 部件、股票 Web 部件、體育比分、YouTube 影片。這些都是使用者介面的小片段示例,您可以將它們組合在一起以獲得聚合檢視,類似於門戶樣式的應用程式。
就資訊協作而言,Web 部件被稱為列表檢視 Web 部件。它們顯示來自列表或庫的資訊,並允許您新增新專案或文件。這樣,您可以建立一個單頁面,該頁面顯示網站中列表和庫中的資訊,從而無需使用者自己導航到各個列表和庫。
本章將重點介紹列表檢視 Web 部件。這些是允許我們與列表或庫資料互動的 Web 部件,但在過程中,您將大致瞭解 Web 部件在 SharePoint 中的工作方式。
讓我們透過建立一個 Web 部件頁面(即支援使用 Web 部件的頁面)來看一個簡單的示例。
步驟 1 − 轉到網站內容。向下滾動並單擊圖示 - 網站頁面。

步驟 2 − 轉到檔案選項卡。在功能區上,單擊新建文件按鈕上的下拉箭頭。從選項中選擇 Web 部件頁面。

步驟 3 − 將此頁面命名為課程,然後我們需要確定頁面的佈局。因此,Web 部件被新增到 Web 部件區域。
此處的佈局決定了這些區域的數量和佈局。我們還可以瞭解這些區域的外觀。
我們只有一個 Web 部件區域佔據整個頁面,一個頁首和一個列和一個正文,或者一個頁首和一個頁尾和列等。
在這種情況下,我們只需要一個 Web 部件區域。因此,我們將選擇全頁面垂直,然後單擊建立。

步驟 4 − 因此您可以看到 Web 部件區域及其內部部分。您可以看到一個連結,允許我們新增 Web 部件。單擊該連結。

步驟 5 − Web 部件庫將開啟。
此頁面向我們顯示可新增到頁面的 Web 部件,這些 Web 部件被細分為不同的類別。
在本例中,我們感興趣的 Web 部件位於應用類別中。
您會注意到,我們的網站中的每個列表和庫都有一個 Web 部件。

步驟 6 − 您可以在 Web 部件中看到課程文件。現在讓我們再次新增一個 Web 部件,然後單擊課程列表並單擊新增。

步驟 7 − 新增完 Web 部件後,單擊功能區上的停止編輯。

步驟 8 − 您有一個單頁面,您可以在其中與課程列表和課程文件庫進行互動。

步驟 9 − 如果要新增新文件,可以上傳或拖放,您可以訪問庫和列表的編輯控制元件塊選單。
您可以透過導航到列表或庫本身來執行所有主要任務。要維護頁面上的 Web 部件,我們可以透過單擊編輯頁面從功能區將頁面置於編輯模式。

步驟 10 − 您可以看到,對於每個 Web 部件,都有一個小下拉選單,我們可以用它來刪除 Web 部件。如果要刪除 Web 部件,請始終單擊刪除,而不是關閉。關閉只會隱藏 Web 部件,但它仍然保留在頁面上。刪除會將 Web 部件從頁面中移除。

步驟 11 − 我們可以透過單擊選單中的編輯 Web 部件來編輯 Web 部件屬性。您可以在屬性中看到不同的選項,您可以指定要在 Web 部件中顯示哪個檢視,以及想要使用哪個工具欄。您還可以更改外觀、佈局等。

SharePoint - 網站列和內容型別
本章將介紹網站列。到目前為止,我們一直在列表和庫本身定義列表和庫架構,但這些架構不可重用。因此,如果您想要有兩個具有相同架構的列表,我們將不得不兩次定義相同的架構。SharePoint 為此提供瞭解決方案,即網站列和內容型別。
網站列定義可重用的列定義,而內容型別則由網站列組成,定義列表和庫的可重用架構。
除了定義架構外,您還可以將工作流和事件處理程式附加到內容型別。網站列和內容型別儲存在站點級別的庫中,它們可在該站點及其任何子站點中使用。
如果您在子站點中宣告網站列或內容型別,則它僅在其下屬分支中可用。
除非有特定原因不這樣做,否則通常的做法是在網站集根目錄中宣告您的網站列和內容型別,這樣它們就可以在整個網站集中使用。
現在讓我們來看一個簡單的例子,在這個例子中我們將建立和使用網站列和內容型別。我們已經看到了內容型別,儘管它可能並不明顯。
步驟 1 − 透過網站內容轉到我們的聯絡人列表。

步驟 2 − 如果向下滾動,您將看到一個名為列的部分。

步驟 3 − 轉到高階設定。為允許管理內容型別選擇是,然後單擊確定。

您將看到這裡有一個名為內容型別的新部分。這表示此列表基於聯絡人內容型別。

步驟 4 − 轉到網站設定。

步驟 5 − 在 Web 設計器庫下,單擊網站內容型別。

步驟 6 − 向下滾動頁面,您將找到聯絡人內容型別,它位於列表內容型別下,然後單擊聯絡人鏈接。

步驟 7 − 如果您檢視列,您將看到它與我們列表中的列匹配。基本上,當您建立聯絡人列表模板的列表時,它會將此內容型別與列表關聯,這就是您獲得所有這些欄位的原因。
現在,構成內容型別定義的欄位稱為網站列。
要檢視網站列,我們可以轉到網站設定,然後在網頁設計器庫中選擇網站列。

步驟 8 − 你可以看到與聯絡人關聯的列。讓我們更深入地探索一下,建立我們自己的自定義網站列和自定義內容型別,然後在列表中使用它們。在我們的課程文件庫中,我們有一列用於課程,我們在庫本身中定義了這一列。

步驟 9 − 也許在構建網站的過程中,你意識到你希望在一些列表和庫中新增課程列,並且希望重用該定義。因此,我們可以將課程列建立為網站列,然後在不同的列表和庫中使用它。
讓我們從網站設定中轉到網站列。

步驟 10 − 點選“建立”連結。

步驟 11 − 將其命名為“課程”列,它將是一個查詢欄位。

步驟 12 − 將其放入名為“SharePoint 基礎知識”的組中,以便我們稍後可以輕鬆找到它。它將查詢課程列表,我們想要查詢的欄位是標題。點選“確定”。

步驟 13 − 你將看到建立了一個新的組“SharePoint 基礎知識”。

步驟 14 − 我們的新網站列已在“SharePoint 基礎知識”組中建立。

步驟 15 − 讓我們返回到課程文件,然後轉到庫設定。轉到列。

刪除我們在庫本身中建立的課程列。
步驟 16 − 讓我們從網站列中新增新的課程列。因此,不要點選“建立列”,而是點選“從現有網站列新增”。

步驟 17 − 將組更改為“SharePoint 基礎知識”,並在左側選擇“課程”。點選“新增”將該列新增到列表中,然後點選“確定”。

步驟 18 − 讓我們返回到課程文件。

步驟 19 − 你可以看到我們的新的課程列,但它是空的,因為當我們刪除原始課程列時,這裡的資訊被刪除了。因此,讓我們將其添加回來,如下所示。

如果此列表包含數百個專案,則可以將一項可能需要數小時的任務變成一項可能只需幾分鐘的任務。
內容型別
在本節中,我們將瞭解如何建立自定義內容型別。
步驟 1 − 讓我們轉到網站設定,然後轉到網站內容型別。點選“建立”連結。

在建立內容型別時,需要考慮兩個關鍵因素。
首先,所有內容型別都基於另一種內容型別,或者你可以將其理解為所有內容型別都繼承自另一種內容型別。
其次,內容型別要麼與列表一起使用,要麼與庫一起使用。它與列表還是庫一起使用取決於你繼承的型別。
例如,如果我們想建立一個自定義聯絡人列表,我們將轉到“列表內容型別”,然後找到“聯絡人”。我們將建立內容型別,新增我們需要的、還不是“聯絡人”一部分的內容,或刪除我們不需要的“聯絡人”一部分的內容。
建立內容型別時可以使用的一種策略是找到一個已經包含你所需的大部分內容的內容型別,從中繼承,然後對其進行自定義。
另一種策略是從基本內容型別開始,然後在其基礎上構建。
對於列表,那是專案內容型別。對於庫,你需要從文件繼承,因此我們將轉到“文件內容型別”。
步驟 2 − 我們的內容型別將用於與課程相關的文件庫。這就是我們在繼承方面想要的。

步驟 3 − 讓我們將其命名為“課程文件”型別。就像我們對網站列所做的那樣,我們將將其放入一個組中,以便我們可以輕鬆識別它,該組名稱將是“SharePoint 基礎知識”。點選“確定”。

步驟 4 − 你可以在下面的螢幕截圖中看到,從文件內容型別中已經存在幾個欄位,檔名和標題。我們將新增課程欄位。現在,我們不能只向內容型別新增列,列必須是網站列。因此,我們將選擇“從現有網站列新增”,然後對“SharePoint 基礎知識”組應用篩選器。

步驟 5 − 選擇課程列,點選“新增”,然後點選“確定”。

在本例中,這就是我們想要對內容型別進行的所有自定義,因此我們現在可以使用它了。
步驟 6 − 讓我們透過點選“網站內容→新增應用程式”建立一個文件庫。

步驟 7 − 我們將此庫命名為“測試”,然後點選“建立”。開啟測試庫並將課程文件型別設定為該庫的內容型別。轉到功能區上的庫,然後轉到庫設定。

步驟 8 − 要管理內容型別,請轉到高階設定。

步驟 9 − 將“允許管理內容型別”設定為“是”,然後點選“確定”。

步驟 10 − 你可以看到此庫目前與文件內容型別關聯。我們需要透過點選“從現有網站內容型別新增”來新增我們的課程內容型別。

步驟 11 − 再次在“SharePoint 基礎知識”中對其進行篩選。選擇“課程文件”型別,點選“新增”,然後點選“確定”。

現在,我們的庫與兩種內容型別關聯:文件內容型別和課程文件型別。

步驟 12 − 接下來,轉到“測試”庫,然後點選“新建文件”。
當你點選“新建文件”或下拉箭頭時,你可以看到我們可以建立任一型別的文件。現在,如果你只想讓人們能夠建立課程文件,只需返回庫設定。透過點選“內容型別”部分中的“文件”來刪除文件內容型別的關聯。

步驟 13 − 點選“刪除此內容型別”。返回庫並點選“檔案”,然後點選“新建文件”。

現在你可以看到只有“課程文件”型別選項可用。這些是 SharePoint 中使用內容型別的基礎知識。

SharePoint - 資料
在本章中,我們將介紹 SharePoint 最常見的一項任務,即與各種資料來源(如列表或文件庫)互動。SharePoint 的一個優點是,你可以使用多種選項與資料進行互動。例如,伺服器物件模型、客戶端物件模型、REST 服務等。
在你可以以程式設計方式對 SharePoint 執行任何操作之前,你需要與 SharePoint 網站建立連線和上下文。但是,為此我們需要 SharePoint 本地版本,可以安裝在 Windows Server 上。
你需要在你的專案中新增對Microsoft.SharePoint.dll或Microsoft.SharePoint.Client.dll的引用。將適當的引用新增到你的專案後,你就可以開始設定上下文並在該上下文中編寫程式碼了。
讓我們來看一個簡單的例子。
步驟 1 − 開啟 Visual Studio 並從檔案→新建→專案選單選項建立一個新專案。
步驟 2 − 在左側窗格中從模板→Visual C#選擇 Windows,然後在中間窗格中選擇控制檯應用程式。輸入你的專案名稱,然後點選“確定”。
步驟 3 − 建立專案後,在解決方案資源管理器中右鍵單擊該專案,然後選擇“新增→引用”。

步驟 4 − 在左側窗格中選擇“程式集→擴充套件”,然後在中間窗格中選中“Microsoft.SharePoint”,然後點選“確定”。
現在再次在解決方案資源管理器中右鍵單擊專案,然後選擇“屬性”。

步驟 5 − 點選左側窗格中的“生成”選項卡,然後取消選中“首選 32 位”選項。

步驟 6 − 現在返回到Program.cs檔案,並將其替換為以下程式碼。
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SharePointData { class Program { static void Main(string[] args) { using (var site = new SPSite("http://waqasserver/sites/demo")) { var web = site.RootWeb; Console.WriteLine(web.Title); var lists = web.Lists; foreach (SPList list in lists) { Console.WriteLine("\t" + list.Title); } Console.ReadLine(); } } } }
注意 − 在上面的程式碼中,首先建立了一個新的 SPSite 物件。這是一個可處置物件,因此它是在 using 語句中建立的。SPSite 建構函式接收站點集合的 URL,在你的情況下這將有所不同。
var web = site.RootWeb 將獲取站點集合的根目錄。
我們可以使用 web.Lists 獲取列表並列印列表項的標題。
編譯並執行上述程式碼後,你將看到以下輸出:
SharePoint Tutorials appdata Composed Looks Documents List Template Gallery Master Page Gallery Site Assets Site Pages Solution Gallery Style Library Theme Gallery User Information List Web Part Gallery
SharePoint - 伺服器物件模型
在本章中,我們將瞭解 SharePoint 伺服器物件模型。當你編寫將在 SharePoint 上下文中執行的程式碼時,可以使用 SharePoint 伺服器物件模型。一些常見的示例包括頁面或 Web 部件中的程式碼隱藏、功能或列表後面的事件處理程式、計時器作業等。
伺服器物件模型的功能
以下是伺服器物件模型的關鍵功能
如果要在與 SharePoint 使用的應用程式池相同的應用程式池中程式設計 ASP.NET 應用程式,則可以使用伺服器物件模型。
如果要開發將在 SharePoint 伺服器上執行的客戶端應用程式(如控制檯或 Windows 窗體或 WPF 應用程式),則可以使用伺服器物件模型。
你不能使用伺服器物件模型遠端連線到 SharePoint 伺服器。
當你想要使用伺服器物件模型時,請參考Microsoft.SharePoint程式集。還有其他程式集構成伺服器物件模型,但 Microsoft.SharePoint 是主要的程式集。
你最常用的一些核心型別對映到你作為終端使用者使用的元件,因此諸如站點集合、站點、列表、庫和列表項之類的元件由型別 SPSite、SPWeb、SPList、SPDocumentLibrary 和 SPListItem 表示。
表示站點集合的型別和伺服器物件模型是 SPSite,表示伺服器物件模型中 SharePoint 站點的型別是 SPWeb。因此,當你從終端使用者術語轉向開發人員術語時,只需進行這種心理對映即可。
現在,當你第一次開始使用 SharePoint 時,可能會令人困惑,因為“站點”一詞被過度使用,並且在終端使用者和開發人員詞彙表中具有相反的含義,更不用說 Web 詞彙表了。
讓我們來看一個伺服器物件模型的簡單示例。
步驟 1 − 開啟 Visual Studio 並從檔案→新建→專案選單選項建立一個新專案。
步驟 2 − 在左側窗格中從模板→Visual C#選擇 Windows,然後在中間窗格中選擇控制檯應用程式。輸入你的專案名稱,然後點選“確定”。
步驟 3 − 建立專案後,在解決方案資源管理器中右鍵單擊該專案,然後選擇“新增→引用”。

步驟 4 − 在左側窗格中選擇“程式集→擴充套件”,然後在中間窗格中選中 Microsoft.SharePoint,然後點選“確定”按鈕。
現在再次在解決方案資源管理器中右鍵單擊專案,然後選擇“屬性”。

步驟 5 − 點選左側窗格中的“生成”選項卡,然後取消選中“首選 32 位”選項。

步驟 6 − 現在返回到Program.cs檔案,並將其替換為以下程式碼。
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SharePointData { class Program { static void Main(string[] args) { using (var site = new SPSite("http://waqasserver/sites/demo")) { var web = site.RootWeb; Console.WriteLine(web.Title); var lists = web.Lists; foreach (SPList list in lists) { Console.WriteLine("\t" + list.Title); } Console.ReadLine(); } } } }
注意 − 在上面的程式碼中,首先建立了一個新的 SPSite 物件。這是一個可處置物件,因此它是在 using 語句中建立的。SPSite 建構函式接收站點集合的 URL,在你的情況下這將有所不同。
var web = site.RootWeb 將獲取站點集合的根目錄。
我們可以使用 web.Lists 獲取列表並列印列表項的標題。
編譯並執行上述程式碼後,你將看到以下輸出:
SharePoint Tutorials appdata Authors Composed Looks Contacts Course Documents Courses Documents List Template Gallery Master Page Gallery Site Assets Site Pages Solution Gallery Style Library Theme Gallery User Information List Web Part Gallery
你可以看到這些標題是解決方案庫、樣式庫、表單模板。這些是 SharePoint 內部使用的列表。因此,與其顯示所有列表,不如只顯示使用者通常會看到的列表。
因此,與其獲取整個列表集合,我們只想獲取所有未隱藏的列表。我們可以使用如下所示的連結查詢來實現。
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ServerObjectModel { class Program { static void Main(string[] args) { using (var site = new SPSite("http://waqasserver/sites/demo")) { var web = site.RootWeb; Console.WriteLine(web.Title); var lists = from SPList list in web.Lists where list.Hidden == false select list; foreach (SPList list in lists) { Console.WriteLine("\t" + list.Title); } Console.ReadLine(); } } } }
編譯並執行上述程式碼後,你將看到以下輸出:
SharePoint Tutorials Authors Contacts Course Documents Courses Documents Site Assets Site Pages Style Library
您可以看到,這將返回所有未隱藏的列表。
讓我們來看另一個簡單的例子,在這個例子中,我們還將顯示一些關於列表項的資訊。
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ServerObjectModel { class Program { static void Main(string[] args) { using (var site = new SPSite("http://waqasserver/sites/demo")) { var web = site.RootWeb; Console.WriteLine(web.Title); var lists = from SPList list in web.Lists where list.Hidden == false select list; foreach (SPList list in lists) { Console.WriteLine("\t" + list.Title); var items = list.Items.OfType<SPListItem>().Take(5); var isDocLib = list is SPDocumentLibrary; foreach (SPListItem item in items) { var value = isDocLib ? item.Name : item.Title; Console.WriteLine("\t\t" + value); } } Console.ReadLine(); } } } }
編譯並執行上述程式碼後,你將看到以下輸出:
SharePoint Tutorials Authors Muhammad Waqas Mark Upston Allan Bommer Andy Onian Contacts Waqas Upston Bommer Course Documents Sample1.docx Sample2.docx Sample3.docx Courses SharePoint Tutorials C# Tutorials ASP.Net Tutorials NHibernate Tutorials Documents Site Assets Site Pages Home.aspx How To Use This Library.aspx Style Library
列表資料
首次建立列表時,它始終包含一個標題列。預設情況下,此“標題”列可訪問列表項上下文或編輯控制元件塊選單。
由於每個列表都以“標題”列開頭,因此**SPListItem**型別將其公開為屬性。對於並非每個列表都共有的列,可以透過**SpListItem**型別的索引器訪問它們。
您可以向索引器傳遞幾條資訊,但最常見的是**Column**。列表設定中的終端使用者可以更改此名稱。您不應使用此名稱,因為它可能會更改。
第二個是**InternalName**,它在建立此列表時設定,並且永遠不會更改。當您訪問列值時,這就是您要使用的名稱。
讓我們來看一個簡單的例子,在這個例子中,我們將檢索如下所示的“作者”列表:

在這個例子中,我們將獲取“作者”列表,然後將薪資/費率提高某個值。因此,對於“薪資/費率”列,我們將使用**InternalName**。
**步驟 1** - 轉到伺服器資源管理器;右鍵單擊**SharePoint 連線**,然後選擇“新增連線...” 指定 URL 並單擊“確定”。

**步驟 2** - 展開**SharePoint 教程 → 列表庫 → 列表 → 作者 → 欄位 → 薪資/費率**欄位。右鍵單擊**薪資/費率**並選擇“屬性”。您將在“屬性”視窗中看到**InternalName**。

**步驟 3** - 下面是一個根據薪資/費率檢索作者並提高其薪資/費率的簡單示例。
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ServerObjectModel { class Program { static void Main(string[] args) { using (var site = new SPSite("http://waqasserver/sites/demo")) { var web = site.RootWeb; var list = web.Lists.TryGetList("Authors"); if (list == null) return; var items = list.Items; ShowItems(items); RaiseRates(items); Console.WriteLine("\nAfter Raise\n"); ShowItems(items); Console.ReadKey(); } } static void RaiseRates(SPListItemCollection items) { foreach (SPListItem item in items) { var employee = Convert.ToBoolean(item["Employee"]); var rate = Convert.ToDouble(item["Salary_x002f_Rate"]); var newRate = employee ? rate + 1 : rate + 0.1; item["Salary_x002f_Rate"] = newRate; item.Update(); } } static void ShowItems(SPListItemCollection items) { foreach (SPListItem item in items) { Console.WriteLine("Salary or rate for {0} is {1:c}", item.Title, item["Salary_x002f_Rate"]); } } } }
在上面的程式碼中,您可以看到我們有兩個方法:
一個是檢索名為**ShowItems**的列表,以及
另一個是提高名為**RaiseRates()**的費率的方法。
編譯並執行上述程式碼後,你將看到以下輸出:
Salary or rate for Muhammad Waqas is $950.00 Salary or rate for Mark Upston is $15.00 Salary or rate for Allan Bommer is $20.00 Salary or rate for Andy Onian is $870.00 After Raise Salary or rate for Muhammad Waqas is $951.00 Salary or rate for Mark Upston is $15.10 Salary or rate for Allan Bommer is $20.10 Salary or rate for Andy Onian is $871.00
CAML 查詢
在上面的示例中,我們總是使用 foreach 迴圈多次迭代遍歷所有項,並且我們總是帶回所有列,或者至少所有列都是可訪問的。
這實際上類似於在 SQL 查詢中執行 select * from 表名。
我們可以透過使用所謂的**CAML 查詢**來解決這個問題。執行 CAML 查詢時,您有兩個選項:
如果您只想查詢單個列表,可以使用 SPQuery 物件。
如果您想查詢網站集中的多個列表,則可以使用 SPSiteDataQuery。
通常,當您執行**SPSiteDataQuery**時,您正在查詢特定型別的所有列表。
例如,我想查詢所有聯絡人列表等。SPSiteDataQuery 允許您確定範圍,因此您可以指示您要查詢整個網站集、單個網站或網站及其所有子網站。
CAML 查詢的語法基本上是用 XML 格式描述的,構建此類查詢需要一些時間才能習慣。
讓我們來看一個 CAML 查詢的簡單示例。在這裡,我們將建立一個 CAML 查詢來查詢我們的“作者”列表中的資料。
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ServerObjectModel { class Program { static void Main(string[] args) { using (var site = new SPSite("http://waqasserver/sites/demo")) { var web = site.RootWeb; var list = web.Lists.TryGetList("Authors"); if (list == null) return; var items = QueryItems(list); ShowItems(items); //RaiseRates(items); //Console.WriteLine("\nAfter Raise\n"); //ShowItems(items); Console.ReadKey(); } } static SPListItemCollection QueryItems(SPList list) { var query = new SPQuery(); query.ViewFields = "<FieldRef Name='Title' />" + "<FieldRef Name='Employee' />" + "<FieldRef Name='Salary_x002f_Rate' />"; query.Query = "<OrderBy>" + " <FieldRef Name='Salary_x002f_Rate' />" + "</OrderBy>" + "<Where>" + " <Eq>" + " <FieldRef Name='Employee' />" + " <Value Type='Boolean'>False</Value>" + " </Eq>" + "</Where>"; return list.GetItems(query); } static void RaiseRates(SPListItemCollection items) { foreach (SPListItem item in items) { var employee = Convert.ToBoolean(item["Employee"]); var rate = Convert.ToDouble(item["Salary_x002f_Rate"]); var newRate = employee ? rate + 1 : rate + 0.1; item["Salary_x002f_Rate"] = newRate; item.Update(); } } static void ShowItems(SPListItemCollection items) { foreach (SPListItem item in items) { Console.WriteLine("Salary or rate for {0} is {1:c}", item.Title, item["Salary_x002f_Rate"]); } } } }
我們使用 CAML 查詢獲取了一些專案。在**QueryItems**方法中,您可以看到我們只檢索了那些不是“員工”的專案。
Salary or rate for Mark Upston is $15.10 Salary or rate for Allan Bommer is $20.10
SharePoint - 客戶端物件模型
在本章中,我們將瞭解客戶端物件模型或 CSOM。這是新增到 SharePoint 2010 的用於構建遠端應用程式的兩個 API 之一。
客戶端物件模型的設計目標之一是儘可能模仿伺服器物件模型,以便已經熟悉在伺服器端進行開發的開發人員的學習曲線更短。
客戶端物件模型的核心是一個名為 Client.svc 的 Web 服務,它位於**_vti_bin**虛擬目錄中。我們不應該直接與 Client.svc 通訊,但我們得到了三個代理或入口點,我們可以使用它們。它們是:
- .NET 託管程式碼。
- JavaScript。
- JavaScript。
程式碼與這些代理通訊,然後這些代理最終與 Web 服務通訊。
由於這是一個遠端 API,並且透過 Web 服務呼叫與 SharePoint 通訊,因此客戶端物件模型旨在允許我們批次處理命令和資訊請求。
.NET 託管程式碼
.NET 託管實現的兩個核心程式集是:
**Microsoft.SharePoint.Client.dll** 和 **Microsoft.SharePoint.Client.Runtime.dll。**
Silverlight 程式碼
Silverlight 實現的程式集位於**TEMPLATE\LAYOUTS\ClientBin**中。程式集名稱也以**Microsoft.SharePoint.Client**開頭。對於除一個程式集之外的所有程式集,程式集名稱以 Silverlight 結尾。
Silverlight 實現的兩個核心程式集是:
- Microsoft.SharePoint.Client.Silverlight.dll
- Microsoft.SharePoint.Client.Silverlight.Runtime.dll
JavaScript
客戶端物件模型的 JavaScript 實現位於 SharePoint 系統根目錄下的 TEMPLATE\LAYOUTS 資料夾中。JavaScript 庫名稱均以 SP 開頭。三個核心庫是**SP.js、Sp.Runtime.js**和**SP.Core.js**。
客戶端物件模型在 SharePoint 2013 中進行了擴充套件。
使用 .NET 使用 Load 檢索資源
讓我們來看一個簡單的示例,在這個示例中,我們將使用 Windows 窗體應用程式的客戶端物件模型的託管實現。因此,首先我們需要建立一個新專案。
**步驟 1** - 在中間窗格中選擇**Windows 窗體應用程式**,並在“名稱”欄位中輸入名稱。單擊“確定”。

**步驟 2** - 專案建立後,讓我們新增一個列表框和一個按鈕,如下所示。要使用客戶端物件模型,我們需要新增幾個程式集引用。右鍵單擊“引用”,然後選擇“新增引用”。

**步驟 3** - 在**程式集**下的左側窗格中選擇**擴充套件**。
客戶端物件模型的託管實現的兩個核心程式集是**Microsoft.SharePoint.Client**和**Microsoft.SharePoint.Client.Runtime**。選中這兩個選項,然後單擊“確定”。

現在雙擊“載入”按鈕以新增如下所示的事件處理程式。
using Microsoft.SharePoint.Client; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ClientObjectModel { public partial class Form1 : Microsoft.SharePoint.Client.Form { public Form1() { InitializeComponent(); } private void loadBtn_Click(object sender, EventArgs e) { using (var context = new ClientContext("http://waqasserver/sites/demo")) { var web = context.Web; context.Load(web); context.Load(web.Lists); context.ExecuteQuery(); ResultListBox.Items.Add(web.Title); ResultListBox.Items.Add(web.Lists.Count); } } } }
客戶端物件模型的入口點是客戶端上下文。它是**SPContext**物件的客戶端版本的遠端版本。這是一個可處置型別,因此它包裝在一個**using**語句中。我們在**ClientContext**中傳遞 SharePoint 網站的 URL。
所以現在,我們有了上下文。我們需要一個物件來表示當前站點,那就是**var web = context.web**。
**注意** - 請記住,此物件只是一個空殼,因此我們需要使用 context.load 載入 Web 物件並傳遞 Web 物件。這表示我們希望在下一個批處理檢索中填充 Web 物件屬性。
接下來,我們需要呼叫**context.ExecuteQuery**,這實際上啟動了批處理檢索。我們從伺服器檢索屬性值並新增到列表框中。
編譯並執行上述程式碼後,你將看到以下輸出:

單擊“載入”按鈕,您將看到我們同時獲得了列表的標題和計數。
它使我們的專案設定能夠使用客戶端物件模型來使用 load 方法檢查載入資源。
SharePoint - REST API
在本章中,我們將介紹 REST API。這不是一個傳統的 API,在傳統的 API 中,我們有一組包含型別和方法的庫。
REST API 是作為基於開放資料協議或 OData 的以資料為中心的 Web 服務實現的。這些 Web 服務的工作方式是使用系統中的每個資源,都可以透過您傳遞給伺服器的特定 URL 來定址。
讓我們在開啟 SharePoint 站點的 Internet Explorer 中檢視這一點。
**步驟 1** - 如果你使用的是 Internet Explorer,請轉到 Internet Explorer 設定,然後在“內容”選項卡上,選擇“Feed 和 Web 片段”的設定,如下面的螢幕截圖所示。

您將看到以下對話方塊。確保**Feed 閱讀檢視**為**關閉**,然後單擊“確定”。
**步驟 2** - 現在讓我們將 URL 更改為站點 URL +/_api/web 並按 Enter 鍵。

現在您應該會看到如下面的螢幕截圖所示的檢視。
我們想要關於當前 Web 或當前站點的資訊。因此,站點 URL +/_api 是 SharePoint 2013 REST API 的基本 URL,而 web 是我們的查詢。我們想要關於當前 Web 的資訊。
我們返回一個 XML 文件,如果我們向下滾動,我們將獲得關於我們當前 Web 的資訊。

接下來,如果您想知道 Web 中的列表,您可以將列表附加到您的 URL。我們不會獲得關於單個物件的的資訊,而是會獲得關於當前站點中所有列表的資訊集合。

當我們使用瀏覽器時,我們正在向伺服器發出 get 請求,這意味著我們想要檢索資訊。但是,我們也可以執行其他標準 CRUD 操作。

使用 REST API 檢索資源
SharePoint 2013 REST API 不公開元資料。因此,當我們在託管程式碼中使用它時,我們無法使用 Visual Studio 透過服務引用對話方塊生成服務代理。相反,我們可以使用類似於 http web 請求物件的 web 客戶端的型別來向伺服器傳送請求,並只獲取原始結果。
這些結果是作為 XML 還是 JSON 返回取決於我們與請求一起傳送的 accept header。
如果我們獲得 XML,那麼我們可以使用 LINQ to XML 從響應中檢索應用程式所需的資訊。
如果我們得到JSON響應,那麼我們可以使用各種JSON序列化器將JSON解析成.NET物件,然後使用它來檢索我們所需的資訊。
在JavaScript中使用REST API時,我們可以使用jQuery或SP.RequestExecutor物件來呼叫服務。就像在託管程式碼示例中一樣,我們可以使用Accept標頭來控制我們是否獲得XML或JSON響應。由於我們大多數時候都在使用JavaScript,所以我們通常希望獲得JSON響應。
需要注意的另一點是,當構建服務的URL時,我們可以使用**_spPageContextInfo**物件獲取站點的絕對URL,然後將服務URL加上查詢附加到它。這是因為REST API服務不公開元資料,並且無法在Visual Studio中建立服務引用,因此在託管程式碼中使用REST API實際上是不可行的。
讓我們來看一下透過建立一個新專案如何從JavaScript呼叫REST API。
**步驟1** - 在中間面板中選擇**SharePoint應用程式**,並輸入專案的名稱。單擊**確定**。

**步驟2** - 輸入您的站點URL,選擇**SharePoint託管**選項,然後單擊下一步。單擊完成。

**步驟3** - 專案建立完成後,讓我們開啟Default.aspx頁面(位於解決方案資源管理器中的Pages下),並新增一個按鈕。
以下是Default.aspx檔案的完整實現。
<%-- The following 4 lines are ASP.NET directives needed when using SharePoint components --%> <%@ Page Inherits = ”Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c” MasterPageFile = ”~masterurl/default.master” Language = ”C#” %> <%@ Register TagPrefix = ”Utilities” Namespace = ”Microsoft.SharePoint.Utilities” Assembly = ”Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c” %> <%@ Register TagPrefix = ”WebPartPages” Namespace = ”Microsoft.SharePoint.WebPartPages” Assembly = ”Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c” %> <%@ Register TagPrefix = ”SharePoint” Namespace = ”Microsoft.SharePoint.WebControls” Assembly = ”Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c” %> <%-- The markup and script in the following Content element will be placed in the <head> of the page --%> <asp:Content ContentPlaceHolderID = ”PlaceHolderAdditionalPageHead” runat = ”server”> <script type = ”text/javascript” src = ”../Scripts/jquery-1.9.1.min.js”></script> <SharePoint:ScriptLink name = ”sp.js” runat = ”server” OnDemand = ”true” LoadAfterUI = ”true” Localizable = ”false” /> <meta name = ”WebPartPageExpansion” content = ”full” /> <!–Add your CSS styles to the following file -> <link rel = ”Stylesheet” type = ”text/css” href = ”../Content/App.css” /> <!–Add your JavaScript to the following file -> <script type = ”text/javascript” src = ”../Scripts/App.js”></script> </asp:Content> <%-- The markup in the following Content element will be placed in the TitleArea of the page --%> <asp:Content ContentPlaceHolderID = ”PlaceHolderPageTitleInTitleArea” runat = ”server”> Page Title </asp:Content> <%-- The markup and script in the following Content element will be placed in the <body> of the page --%> <asp:Content ContentPlaceHolderID = ”PlaceHolderMain” runat = ”server”> <div> <p id = ”message”> <!–The following content will be replaced with the user name when you run the app – see App.js -> initializing… </p> <input id = ”loadButton” type = ”button” value = ”Load” /> </div> </asp:Content>
**步驟4** - 開啟App.js檔案(位於解決方案資源管理器中的Script下),並將其替換為以下程式碼。
JQuery(document).ready(function () { JQuery("#loadButton").click(usingLoad) }); function usingLoad() { var context = SP.ClientContext.get_current(); var web = context.get_web(); context.load(web); context.executeQueryAsync(success, fail); function success() { var message = jQuery("#message"); message.text(web.get_title()); message.append("<br/>"); message.append(lists.get_count()); } function fail(sender, args) { alert("Call failed. Error: " + args.get_message()); } }
我們使用jQuery建立**document.ready**函式。在這裡,我們只想將click事件處理程式附加到按鈕。因此,我們使用選擇器獲取**loadButton**,然後使用**Load**新增click事件處理程式。
因此,當我們單擊按鈕時,我們想要做與託管版本演示中相同的事情,即顯示網站的標題。
**步驟5** - 釋出您的應用程式,您將看到以下檔案 -

**步驟6** - 將此檔案拖到您的SharePoint站點應用頁面。

您將在列表中看到檔案**JavaScriptDemo**。

**步驟7** - 單擊左側面板中的“網站內容”,然後選擇新增應用。單擊**JavaScriptDemo**圖示。

**步驟8** - 單擊**信任它**。

**步驟9** - 現在您將看到您的應用程式。單擊應用程式圖示。

**步驟10** - 當您單擊“載入”按鈕時,它將更新文字。

您可以看到更新後的文字。

SharePoint - 功能和元素
在本章中,我們將瞭解功能和元素。功能在某種程度上是SharePoint中的元件模型。它們允許您定義邏輯功能單元。
例如,您可能希望在站點內具有以下功能 -
建立一個具有特定架構的列表,
有一個頁面顯示該列表中的資料,然後
在站點的某個位置有一個連結或選單選項以導航到該頁面。
您可以建立一個功能,它定義了該邏輯功能分組。各個功能部件由元素定義。
因此,將會有一個元素 -
建立列表並設定架構。
將頁面置備到您的SharePoint站點,以及
建立選單選項或連結。
功能定義單元,然後元素定義該單元內的各個功能部件。我們討論了三種類型的元素 -
一個列表例項來建立列表。
一個模組來置備頁面。
一個自定義操作來建立選單選項或連結。
但是,可以在SharePoint中建立許多其他型別的元素。關於功能,另一個需要理解的重要概念是啟用和停用。
例如,如果終端使用者希望將上述功能新增到他的站點,他將啟用相應的特性,該特性將建立列表、新增選單選項或連結,並將頁面置備到他們的站點。稍後他可以停用該功能以刪除該功能。
需要注意的是,在停用功能時,某些元素會自動刪除。例如,SharePoint將自動刪除由自定義操作定義的選單選項或連結。
其他元素不會自動刪除。因此,在我們的例子中,列表例項和頁面不會自動刪除。
因此,作為開發人員,您需要了解哪些元素會自動刪除,哪些元素不會。如果您想刪除那些不會自動刪除的元素,您可以在**功能接收器**中編寫程式碼。
讓我們看看如何使用功能和元素。我們將從終端使用者對功能的檢視開始。
**步驟1** - 開啟您的SharePoint站點。

**步驟2** - 要轉到站點設定,您有兩個連結可以管理功能。
第一個連結**管理網站功能**位於“網站操作”下,允許您管理網站範圍的功能。
另一個連結**網站集功能**位於“網站集管理”下,允許您管理網站集範圍的功能。

**步驟3** - 如果單擊這些連結中的任何一個,您將被帶到一個頁面,該頁面顯示當前活動和非活動的功能。對於每個功能,您都有一個選項來啟用或停用該功能。

讓我們透過建立一個新的SharePoint解決方案空專案來看一個簡單的例子。
**步驟1** - 我們稱之為**FeaturesAndElements**,然後單擊確定。

**步驟2** - 指定您要使用的站點,然後選擇**作為場解決方案部署**選項,然後單擊完成。

我們首先要建立的功能。在解決方案資源管理器中,您可以看到一個Features資料夾,它目前是空的。

**步驟3** - 右鍵單擊**Features**資料夾,然後選擇**新增功能**。它會建立一個名為**Feature1**的功能,並開啟功能設計器。預設標題是專案標題加上功能標題。

**步驟4** - 將功能從Feature1重新命名為Sample。
標題和說明是使用者在啟用和停用功能的頁面上看到的。
將標題設定為**示例功能**,將說明設定為**新增“聯絡人”列表和用於檢視列表的頁面**。我們還需要設定的是功能的範圍,即啟用範圍。
它可以是場、Web應用程式、網站集或站點。在本例中,我們將置備一個列表和一個頁面。由於兩者都位於SharePoint站點中,因此我們將在此處選擇Web。

**步驟5** - 讓我們開始在我們的元素中新增功能。第一個元素將是列表,我們將建立一個聯絡人列表。右鍵單擊您的專案,然後選擇**新增→新建項...**
**步驟6** - 在中間面板中選擇列表,並在名稱欄位中輸入聯絡人。單擊新增。

**步驟7** - 您將看到列表建立嚮導。建立一個名為“聯絡人”的列表,該列表基於“聯絡人”列表。單擊完成以建立列表,或至少建立最終將建立列表的元素。

以下是列表設計器的螢幕截圖。

**步驟8** - 此設計器只是一個XML編輯器。開啟Contacts下的Elements.xml檔案,並新增以下資料。
<?xml version = "1.0" encoding = "utf-8"?> <Elements xmlns = "http://schemas.microsoft.com/sharepoint/"> <ListInstance Title = "Contacts" OnQuickLaunch = "TRUE" TemplateType = "105" FeatureId = "00bfea71-7e6d-4186-9ba8-c047ac750105" Url = "Lists/Contacts" Description = ""> <Data> <Rows> <Row> <Field Name = "ID">1</Field> <Field Name = "Last Name">Anders</Field> <Field Name = "First Name">Maria</Field> <Field Name = "Company">Alfreds Futerkiste</Field> <Field Name = "Business Phone">030-0074321</Field> </Row> <Row> <Field Name = "ID">2</Field> <Field Name = "Last Name">Hardy</Field> <Field Name = "First Name">Thomas</Field> <Field Name = "Company">Around the Horn</Field> <Field Name = "Business Phone">(171) 555-7788</Field> </Row> <Row> <Field Name = "ID">3</Field> <Field Name = "Last Name">Lebihan</Field> <Field Name = "First Name">Laurence</Field> <Field Name = "Company">Bon app'</Field> <Field Name = "Business Phone">91.24.45.40</Field> </Row> <Row> <Field Name = "ID">4</Field> <Field Name = "Last Name">Ashworth</Field> <Field Name = "First Name">Victoria</Field> <Field Name = "Company">B's Beverages</Field> <Field Name = "Business Phone">(171) 555-1212</Field> </Row> <Row> <Field Name = "ID">5</Field> <Field Name = "Last Name">Mendel</Field> <Field Name = "First Name">Roland</Field> <Field Name = "Company">Ernst Handel</Field> <Field Name = "Business Phone">7675-3425</Field> </Row> </Rows> </Data> </ListInstance> </Elements>
請注意以下幾點 -
在**ListInstance**元素內,我們有一個名為**Data**的元素,其中包含一些行。
ListInstance將具有屬性**Contacts**,無論我們是否在快速啟動中顯示。
我們希望一個基於聯絡人模板的列表。這裡,**TemplateType**設定為**105**。這不是一個隨機數,而是一個有意義的數字。
在SharePoint中可以使用的每種預設型別的列表(例如公告列表、任務列表、聯絡人列表等)都與之關聯一個數字。因此,如果您將105更改為107,您將獲得不同型別的列表。
**FeatureId**是與聯絡人列表定義關聯的載入程式。
**步驟9** - 現在我們想要一個頁面來顯示此列表中的資料。右鍵單擊您的專案,然後選擇**新增→新建項...** 在中間面板中選擇模組,在名稱欄位中輸入SitePage,然後單擊**新增**。

您將看到一個名為**SitePage**的節點,它包含兩個檔案:**Elements.xml**和**Sample.txt**檔案。我們不想置備此sample.txt檔案,但我們想要置備一個SitePage。
**步驟10** - 將文字檔案重新命名為**Contacts.aspx**,並替換以下程式碼 -
<%@ Assembly Name = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Page MasterPageFile = "~masterurl/default.master" meta:progid = "SharePoint.WebPartPage.Document" %> <%@ Register TagPrefix = "SharePoint" Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <asp:Content ID = "Content2" runat = "server" ContentPlaceHolderID = "PlaceHolderMain"> <SharePoint:SPDataSource runat = "server" ID = "ContactsDataSource" DataSourceMode = "List" UseInternalName = "false"> <SelectParameters> <asp:Parameter Name = "ListName" DefaultValue = "Contacts" /> </SelectParameters> </SharePoint:SPDataSource> <SharePoint:SPGridView runat = "server" ID = "ContactsGridView" DataSourceID = "ContactsDataSource" AutoGenerateColumns = "false" RowStyle-BackColor = "#DDDDDD" AlternatingRowStyle-BackColor = "#EEEEEE"> <Columns> <asp:BoundField HeaderText = "Company" HeaderStyle-HorizontalAlign = "Left" DataField = "Company" /> <asp:BoundField HeaderText = "First Name" HeaderStyle-HorizontalAlign = "Left" DataField = "First Name" /> <asp:BoundField HeaderText = "Last Name" HeaderStyle-HorizontalAlign = "Left" DataField = "Last Name" /> <asp:BoundField HeaderText = "Phone" HeaderStyle-HorizontalAlign = "Left" DataField = "Business Phone" /> </Columns> </SharePoint:SPGridView> </asp:Content> <asp:Content ID = "PageTitle" ContentPlaceHolderID = "PlaceHolderPageTitle" runat = "server"> Contacts </asp:Content> <asp:Content ID = "PageTitleInTitleArea" ContentPlaceHolderID = "PlaceHolderPageTitleInTitleArea" runat = "server" > Contacts </asp:Content>
SitePage有一個**SP.DataSource**檔案,我們將使用它來製作聯絡人列表資料,這是我們可以在頁面中繫結的內容。**SP.GridView**將顯示聯絡人資訊。
那是我們的SitePage,現在讓我們看看Feature。

請注意,在**功能中的項**中,聯絡人列表例項和模組已作為元素新增到我們的SitePage中。
Visual Studio理解,元素本身什麼也做不了。元素需要成為一個功能的一部分。因此,當您新增一個元素時,您需要將其新增到功能中。
**步驟11** - 轉到您的專案並右鍵單擊,然後選擇**新增→新建項...**
在這裡,我們想要新增一個CustomAction,因此在中間面板中選擇空元素,將其稱為Action,然後單擊新增。

如果您回到您的功能,您會看到該元素現在已作為下圖所示新增到功能中。

**步驟12** - 回到Action下的**Elements.xml**,並替換以下程式碼 -
<?xml version = "1.0" encoding = "utf-8"?> <Elements xmlns = "http://schemas.microsoft.com/sharepoint/"> <CustomAction Id = "SiteActionsToolbar" GroupId = "SiteActions" Location = "Microsoft.SharePoint.StandardMenu" Sequence = "100" Title = "Contacts" Description = "A page showing some sample data"> <UrlAction Url = "~site/SitePages/Contacts.aspx"/> </CustomAction> </Elements>
現在,如果您想新增連結或選單選項,您需要定義要在其中新增的位置,它是由Location和GroupId組合定義的。此值的組合表示應將選單選項新增到SiteActions選單。
還有許多其他值的組合,它們會在SharePoint站點的其他位置新增連結或選單。這是您需要研究的內容,以便找出在想要在SharePoint中的某個位置新增選單選項時所需的正確值組合。
**步驟13** - 雙擊**功能**,您將看到功能設計器。功能設計器是功能清單(一個XML文件)的精美編輯器。

重要事項 -
功能定義元素的邏輯分組。在這裡,我們的功能引用了我們剛剛建立的三個元素清單。
當您啟用功能時,SharePoint將檢視各個元素清單,並將列表、頁面和連結新增到我們的SharePoint站點。
當您使用Visual Studio部署時,它會自動啟用專案中的任何功能。由於我們要經歷啟用功能的過程,我們將告訴Visual Studio不要這樣做。
**步驟14** - 透過轉到SharePoint選項卡轉到專案屬性。將部署配置更改為**不啟用**。

讓我們測試一下。
**步驟15** - 在解決方案資源管理器中右鍵單擊您的專案,然後選擇**部署**。它將打包專案中的所有內容並將其部署到您的SharePoint開發場。

成功部署後,您將在輸出視窗中看到它。
**步驟16** - 轉到SharePoint站點並重新整理它。轉到**站點設定→網站操作**。

**步驟17** - 選擇管理網站功能,因為您的自定義功能是Web範圍的,您將看到您的**示例功能**。您可以看到此功能尚未啟用,因此讓我們繼續啟用它。

您將在左側面板中看到“聯絡人”列表。

步驟 18 − 點選“聯絡方式”,列表中的資料將顯示。

步驟 19 − 前往“網站操作”選單。這裡有一個選項可以導航到“聯絡方式”頁面。這就是我們的自定義操作。

步驟 20 − 如果你點選“聯絡方式”,你將看到你的網站頁面,顯示來自“聯絡方式”列表的資料。

SharePoint - 功能/事件接收器
本章我們將學習新增程式碼控制代碼。程式碼控制代碼是在功能啟用或停用時觸發的事件。換句話說,我們將研究功能接收器。
我們在上一章建立的 Visual Studio 專案有一個功能,當它被啟用時,它會預配我們的“聯絡方式”列表、我們的網站頁面以及到網站頁面的連結。
但是,當功能被停用時,SharePoint 只會移除連結,“網站頁面”和“聯絡方式”列表仍然保留。
如果需要,我們可以在功能停用時編寫程式碼來移除列表和頁面。本章我們將學習如何在功能停用時移除內容和元素。
要處理功能的事件,我們需要一個功能接收器。
步驟 1 − 要獲取功能接收器,請在解決方案資源管理器中右鍵單擊功能,然後選擇新增事件接收器。
using System; using System.Runtime.InteropServices; using System.Security.Permissions; using Microsoft.SharePoint; namespace FeaturesAndElements.Features.Sample { /// <summary> /// This class handles events raised during feature activation, deactivation, installation, uninstallation, and upgrade. /// </summary> /// <remarks> /// The GUID attached to this class may be used during packaging and should not be modified. /// </remarks> [Guid("e873932c-d514-46f9-9d17-320bd3fbcb86")] public class SampleEventReceiver : SPFeatureReceiver { // Uncomment the method below to handle the event raised after a feature has been activated. //public override void FeatureActivated(SPFeatureReceiverProperties properties)//{ // } // Uncomment the method below to handle the event raised before a feature is deactivated. //public override void FeatureDeactivating(SPFeatureReceiverProperties properties)// { // } // Uncomment the method below to handle the event raised after a feature has been installed. //public override void FeatureInstalled(SPFeatureReceiverProperties properties)// { // } // Uncomment the method below to handle the event raised before a feature is uninstalled. //public override void FeatureUninstalling(SPFeatureReceiverProperties properties)// { // } // Uncomment the method below to handle the event raised when a feature is upgrading. //public override void FeatureUpgrading(SPFeatureReceiverProperties properties, string upgradeActionName, System.Collections.Generic.IDictionary<string, string> parameters) // { // } } }
你會看到我們得到的是一個從SPFeatureReceiver繼承的類。
在 SharePoint 中,有不同類用於處理不同型別的事件。例如,列表上的事件、列表項上的事件、網站上的事件。你可以建立一個從特定事件接收器派生的類,然後可以重寫該類中的方法來處理事件。
功能的事件在以下情況下使用:
- 啟用
- 停用
- 安裝
- 解除安裝
- 升級
接下來,你需要將該類附加為特定專案的事件處理程式。例如,如果有一個處理列表事件的事件處理程式,你需要將該類附加到列表。
因此,我們將處理兩個功能:
功能啟用時
功能停用時
步驟 2 − 我們將實現FeatureActivated 和 FeatureDeactivated 方法,如下所示:
using System; using System.Runtime.InteropServices; using System.Security.Permissions; using Microsoft.SharePoint; namespace FeaturesAndElements.Features.Sample { /// <summary> /// This class handles events raised during feature activation, deactivation, installation, uninstallation, and upgrade. /// </summary> /// <remarks> /// The GUID attached to this class may be used during packaging and should not be modified. /// </remarks> [Guid("e873932c-d514-46f9-9d17-320bd3fbcb86")] public class SampleEventReceiver : SPFeatureReceiver { private const string listName = "Announcements"; public override void FeatureActivated(SPFeatureReceiverProperties properties) { var web = properties.Feature.Parent as SPWeb; if (web == null) return; var list = web.Lists.TryGetList(listName); if (list != null) return; var listId = web.Lists.Add(listName, string.Empty, SPListTemplateType.Announcements); list = web.Lists[listId]; list.OnQuickLaunch = true; list.Update(); } public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { var web = properties.Feature.Parent as SPWeb; if (web == null) return; var list = web.Lists.TryGetList(listName); if (list == null) return; if (list.ItemCount == 0) { list.Delete(); } } } }
注意:
啟用功能時,我們將建立一個“公告”列表。
停用功能時,我們將檢查“公告”列表是否為空,如果為空,我們將刪除它。
步驟 3 − 現在右鍵單擊專案並選擇部署。你將看到以下部署衝突警告。

Visual Studio 告訴我們我們正在嘗試建立一個名為“聯絡方式”的列表,但是站點中已經存在一個名為“聯絡方式”的列表。它詢問我們是否要覆蓋現有列表,在這種情況下,請單擊解決。
步驟 4 − 返回 SharePoint,然後重新整理你的網站,然後轉到網站操作 → 網站設定 → 管理網站功能 → 示例功能。

你會看到左側窗格中沒有“公告”列表。
步驟 5 − 讓我們啟用“示例功能”,你將看到“公告”列表,但現在它是空的。

注意:如果你停用“示例功能”,你會注意到“公告”列表消失了。
步驟 6 − 讓我們重新啟用該功能。轉到“公告”,然後新增一個新的公告。我們將其命名為“測試”,然後單擊“儲存”。

你將在“公告”下看到“測試”檔案。

現在,當你停用“公告”時,你會看到“公告”列表仍然存在,因為它不是空的。

SharePoint - Azure 平臺
本章將介紹 Microsoft Azure 平臺。Microsoft Azure 是微軟的雲平臺技術,它本身就是一項非常強大的技術。它不僅僅是一個部署程式碼的地方,而是一整套服務,你作為開發人員可以在 SharePoint 解決方案開發中使用。
雲計算
要了解 Microsoft Azure,你首先必須瞭解一些關於雲的資訊。雲計算是關於利用 Web 作為一組資源來開發和部署你的解決方案。傳統上,雲計算被定義為服務類別。它們是:
- 基礎設施即服務 (IAAS)
- 平臺即服務 (PAAS)
- 軟體即服務 (SAAS)
在開發的上下文中,每一類都不同。例如,你可能會認為:
IAAS 為你遠端管理的託管虛擬機器 (VM)。
PAAS 為你將程式碼、資料、大型二進位制物件 (BLOB)、Web 應用和其他應用程式工件部署到基於雲的環境(例如 Windows Server 2012 R2 和 IIS)。
SAAS 為你可以註冊使用的基於訂閱的服務,例如 Office 365。
儘管這三類服務主導了雲的特徵方式,但云有四個普遍接受的支柱:
與其他雲使用者共享資源。
透過管理門戶管理你自己的服務和應用程式。
應用程式和服務可以隨著你的業務需求而增長和收縮。
僅支付你使用的雲資源費用。
Azure 平臺概述
Microsoft Azure 平臺由許多不同的服務組成。你可以在應用程式設計、部署和管理中利用它們,例如資料、服務和整合,這是任何使用 Microsoft Azure 中服務的應用程式的客戶端層。
資料層
在資料層中,有許多不同型別的資料儲存機制或功能直接對映到資料儲存,其中包含非關係型和關係型資料。
非關係型功能
非關係型儲存功能使你能夠:
儲存資產,例如虛擬機器映像或影像或影片到 Blob 中
建立非關係型表
管理服務總線上的訊息佇列,並在你的分散式應用程式中管理資料快取
關係型功能
關係型資料功能如下:
核心 Azure SQL 資料庫,它是本地 SQL Server 的雲版本
報表服務 (SQL Reporting)
能夠從資料事務流式傳輸近乎即時的的資料流 (Stream Insight)
服務層
服務層包含許多你可以用來構建解決方案的預設服務,從媒體服務到核心雲服務,例如:
建立網站
工作角色類
利用 Microsoft Azure 上的 Hadoop 處理大資料請求
對於許多這些服務,你可以在你的應用程式中使用內建功能和一組 API。例如,如果你想構建一個多媒體學習解決方案,你可以利用媒體服務:
上傳 WMV
將它們轉碼為 MP4
將它們儲存到 BLOB 儲存
建立一個公共 URL 用於訪問,然後從 Microsoft Azure 流式傳輸它們
整合層
整合層包含一些基本服務,例如:
地理複製的內容交付網路 (CDN)
流量管理器
虛擬專用網路,它使你能夠將虛擬機器連線到你的本地系統
工作流和業務流程及整合服務
所有這些功能使你能夠整合系統或保護它們。
Azure 應用
Microsoft Azure 不僅僅是關於服務。Azure 是一個不斷發展的雲平臺,它有一套工具和 SDK,使你能夠快速開始開發雲應用程式。
要開始使用 Microsoft Azure,你需要以下內容:
- 最新版本的 Visual Studio
- Microsoft Azure 訂閱
- Microsoft Azure 訂閱
步驟 1 − 讓我們來看一個簡單的示例,在這個示例中,我們將透過建立一個新的 ASP.NET MVC 應用程式將我們的 Web 應用程式部署到 Microsoft Azure。

步驟 2 − 點選“確定”,你將看到以下對話方塊。選擇 MVC 模板,選中在雲中託管複選框,然後點選“確定”。

步驟 3 − 當出現“配置 Microsoft Azure Web 應用設定”對話方塊時,請確保你已登入 Azure。如果未登入,請先登入。
你可以看到預設名稱,但可以更改Web 應用名稱。

步驟 4 − 輸入如下所示的所需資訊。從“資料庫伺服器”下拉列表中選擇建立新伺服器。

步驟 5 − 你將看到附加欄位。輸入資料庫伺服器、使用者名稱和密碼,然後單擊“確定”。

專案建立後,執行你的應用程式,你將看到它正在 localhost 上執行。

步驟 6 − 要將這些應用程式部署到 Azure,請在解決方案資源管理器中右鍵單擊專案,然後選擇“釋出”。

步驟 7 − 你將看到以下對話方塊。單擊 Microsoft Azure Web 應用。

步驟 8 − 從現有 Web 應用中選擇你的應用程式名稱,然後單擊“確定”。

步驟 9 − 單擊驗證連線按鈕以檢查 Azure 上的連線。

步驟 10 − 單擊下一步繼續。

現在你將看到連線字串已預設為你生成。

步驟 11 − 單擊下一步繼續。

步驟 12 − 要檢查我們將釋出到 Azure 的所有檔案和 dll,請單擊啟動預覽。

步驟 13 − 單擊釋出以釋出你的應用程式。

應用程式成功釋出到 Azure 後,你將在輸出視窗中看到訊息。

你還會看到你的應用程式現在正在從雲端執行。

現在讓我們再次轉到 Azure 門戶,你也會在這裡看到該應用程式。

SharePoint 應用和 Microsoft Azure
SharePoint 和 Microsoft Azure 本身就是兩個龐大的平臺。SharePoint 是微軟領先的伺服器生產力平臺或企業的協作平臺和 Web。
Microsoft Azure 是微軟在雲中的作業系統。單獨來看,它們各自都有自己的優勢、市場競爭力和開發者群體。
它們共同提供了許多強大的優勢。它們是:
它們有助於擴充套件你部署程式碼和資料的方式和地點。
它們增加了利用 Microsoft Azure 的機會,同時降低了本地應用程式的儲存和故障轉移成本。
它們為你提供了新的業務模式和產品,你可以將其帶給你的客戶,以增加你自己的解決方案產品。
在 SharePoint 2010 中,Azure 和 SharePoint 是兩個不同的平臺和技術,可以很容易地整合,但它們不是同一個系統的一部分。然而,在 SharePoint 2013 中,這種情況發生了變化。
SharePoint 2013 引入了不同型別的雲應用程式。事實上,你可以構建兩種型別的 Azure 整合應用程式。
第一種型別的應用程式是自動託管的,第二種是提供程式託管的(有時稱為自託管的)。
兩者之間的主要區別在於:
自動託管的應用程式與 SharePoint 開發和部署體驗一起,原生支援一組 Azure 功能,例如 Web 站點和 SQL 資料庫。
提供程式託管的應用程式旨在與比自動託管的應用程式更廣泛的 Web 技術和標準整合,其中之一是 Microsoft Azure。
因此,在構建使用 Azure 的提供程式託管應用程式時,你可以利用整個 Microsoft Azure 堆疊。
SharePoint - 打包和部署
本章將介紹 SharePoint 解決方案的打包和部署。部署 SharePoint 解決方案的第一步是建立解決方案包。
解決方案包是一個副檔名為 WSP 的CAB 檔案,其中包含 Visual Studio 專案中實現功能所需的所有檔案。
實現功能所需的檔案包括:
功能清單。
任何元素清單。
包含已編譯託管程式碼的 dll。
關聯檔案,如網頁、使用者控制元件和網頁配對檔案。
解決方案包中包含的另一個檔案是解決方案清單。解決方案清單是包中包含的檔案目錄。對於場解決方案,它還包含部署說明。
與功能清單一樣,Visual Studio 會在您修改專案時自動建立和維護解決方案清單。您可以使用解決方案設計器檢視解決方案清單。
除了建立和維護解決方案清單外,Visual Studio 還自動為我們的專案建立解決方案包。每次您部署工作進行除錯時,它都會在後臺執行此操作。
生成的解決方案包放置在與 dll 相同的資料夾中,即 bin debug 或 bin release 資料夾。要在 Windows 資源管理器中檢視此檔案的內容,只需將副檔名從 WSP 更改為 CAB,然後雙擊該檔案即可。
讓我們來看一個簡單的示例,在這個示例中,我們將檢查與我們在前一章中建立的 SharePoint 解決方案專案關聯的解決方案包。讓我們從我們之前建立的功能和元素專案開始。

如您所知,在專案中,我們有一個名為 Sample 的功能。此功能引用三個元素清單:Contacts、SitePage 和 Action。
您還可以看到 Action 有元素清單,Contacts 有其元素清單,SitePage 有元素清單和一個網頁,它將此網頁配置到站點中。因此,我們應該預期解決方案包包含功能清單、三個元素清單、網頁以及我們在構建專案時建立的程式集。
步驟 1 - 在解決方案資源管理器中右鍵單擊您的專案,然後選擇“在檔案資源管理器中開啟資料夾”。

步驟 2 - 轉到 bin 並開啟 Debug 資料夾。您將看到解決方案包。

步驟 3 - 製作一個副本,然後將副本檔案的副檔名從 wsp 更改為 cab。

步驟 4 - 現在雙擊 cab 檔案以開啟它,您將看到檔案。您將看到功能清單、三個元素清單、aspx 頁面、dll 和一個附加檔案,即解決方案清單。

步驟 5 - 在解決方案資源管理器中,您將看到一個名為 Package 的資料夾,如果您展開它,您將看到一個名為Package.package的檔案。雙擊該檔案,您將看到解決方案設計器。

此設計器顯示當前解決方案中只有一個功能,並且該功能引用三個元素清單:Contacts、SitePage 和 Action。
此設計器是 XML 文件的編輯器,就像功能設計器一樣。

此代理的解決方案清單很簡單。它只是表明這裡有一個需要部署的名為 FeaturesandElemenest.dll 的程式集,我們將將其部署到全域性程式集快取。
它還指示我們有一個具有此功能清單的功能。如果我們返回到功能並檢視其清單,它會指示有三個元素清單和我們的 aspx 頁面。

場解決方案部署
現在我們知道了解決方案包是什麼以及它們包含什麼內容,我們需要學習如何部署它們。
要部署場解決方案,您可以將 Visual Studio 建立的解決方案包提供給您的 SharePoint 管理員。他們將使用 PowerShell 或中央管理或兩者的組合工具來部署包。
讓我們看看場解決方案部署。
步驟 1 - 轉到 Visual Studio 專案中的“功能和元素”。

此專案有一個具有三個元素的功能。部署場解決方案時,解決方案的內容將複製到 SharePoint 系統資料夾中,如下所示:

步驟 2 - 現在讓我們轉到列表設計器,然後將標題更改為“Contacts-Change 1”,然後單擊“儲存”按鈕。

步驟 3 - 現在轉到專案屬性,然後在左側窗格中選擇 SharePoint。在活動部署配置選項中,從下拉列表中選擇“預設”選項。

步驟 4 - 在解決方案資源管理器中,右鍵單擊專案並選擇“部署”。部署完成後,重新整理您的站點,您將看到更改。

SharePoint - 沙箱解決方案
本章將介紹沙盒解決方案的部署。沙盒解決方案的部署比場解決方案的部署簡單得多。
這類似於將文件上傳到文件庫。完成開發後,您將獲取解決方案包,而不是將其提供給您的 SharePoint 管理員,而是將其提供給終端使用者(擁有站點集所有者許可權的使用者)。然後,他們將獲取包並將其上傳到站點集解決方案庫。
與場解決方案一樣,Visual Studio 中的工具會在開發過程中自動執行此部署過程。
讓我們來看一個沙盒解決方案部署的簡單示例。它比場解決方案部署簡單得多。
步驟 1 - 在這裡,我們需要建立一個新的站點集並將其命名為 Demo 1。

步驟 2 - 在 FeaturesAndElements 專案中將聯絡人列表名稱改回 Contacts。

步驟 3 - 透過右鍵單擊專案並選擇“收回”來收回解決方案。如果我們回到 SharePoint 系統資料夾,您會注意到我們的功能資料夾不存在了。

接下來,如果我們轉到管理網站功能,我們應該看不到 Sample 功能。

步驟 4 - 返回 Visual Studio 專案,單擊解決方案資源管理器中的專案,然後轉到屬性視窗。將沙盒解決方案從 False 更改為 True。

將顯示警告對話方塊。

這向我們表明,新增到 Visual Studio 專案的某些專案將無法與沙盒解決方案和某些 SharePoint API 一起使用。SharePoint Server 物件模型中的一些型別與沙盒解決方案不相容。
單擊“是”以進行更改。在這種情況下,構建沙盒解決方案與構建場解決方案相同,但部署過程完全不同。
對於沙盒解決方案,我們將檔案部署到 SharePoint 內容資料庫中,而不是部署到 SharePoint 系統資料夾中。
步驟 5 - 轉到網站設定。在 Web 設計器庫下,有一個解決方案庫。

步驟 6 - 單擊“解決方案”連結,您將看到以下頁面,我們將在其中部署沙盒解決方案。

您已完成開發。無需將解決方案包提供給 SharePoint 管理員,然後讓他們使用 PowerShell 或中央管理來部署場解決方案,您可以將包提供給終端使用者(擁有站點集所有者許可權的使用者),然後他們可以將解決方案上傳到解決方案庫。
步驟 7 - 返回 Visual Studio,右鍵單擊並選擇“釋出到檔案系統”。

單擊釋出按鈕將新的解決方案包釋出到包資料夾。
您將在 Package 資料夾中看到該包。

步驟 8 - 現在轉到 SharePoint 網站。單擊功能區上的“上傳解決方案”按鈕選項。

步驟 9 - 瀏覽到您的 FeaturesAndElements 解決方案。單擊“確定”。

您將看到以下對話方塊。
步驟 10 - 您只需單擊“啟用”按鈕即可啟用沙盒解決方案

步驟 11 - 轉到“管理網站功能”。

您現在將看到您的 Sample 功能,當您單擊“啟用”時,您應該會得到與之前相同的行為。

SharePoint - 應用
本章將介紹 SharePoint 應用。應用模型是 SharePoint 擴充套件的新開發部署和託管模型。作為 SharePoint 2013 中的開發人員,我們可以選擇使用解決方案模型(場解決方案或沙盒解決方案),也可以使用應用模型。
Microsoft 文件和指南建議您優先使用應用模型而不是解決方案模型,這可能是非常有效的指導。但是,您必須考慮到應用模型是對 SharePoint 2013 的重要補充,而解決方案模型自 SharePoint 2007 以來就一直存在。
因此,使用解決方案模型進行開發的知識庫明顯優於當前使用應用模型進行開發的知識庫狀態。
應用存在的時間還不夠長,無法讓人們分享他們使用它的實際經驗。我認為學習應用模型及其優缺點非常重要。
應用特性
應用特性如下所示:
從開發人員的角度來看,第一個也是最重要的特性是應用中的所有程式碼都在 SharePoint 伺服器外部執行。這意味著程式碼要麼是在使用者的瀏覽器中執行的 JavaScript,要麼是在某個外部伺服器上執行的程式碼。
由於所有程式碼都在 SharePoint 外部執行,因此與 SharePoint 的通訊是透過 Web 服務進行的,這意味著您正在使用客戶端物件模型或 REST API。
在 SharePoint 應用中,您無法使用伺服器物件模型。
完成應用構建後,您將將其放入公共應用商店或本地應用目錄中。這需要稽核流程,並且您需要遵循某些規則才能使您的應用有資格進入公共應用商店。
另一種選擇是將您的應用放入本地應用目錄中,它只是 Web 應用程式中的站點集,已由中央管理配置為應用目錄。
應用部署到商店或目錄後,擁有站點集所有者許可權的使用者可以將其安裝在 SharePoint 網站中。
應用型別
您可以構建不同型別的應用,如下所示:
SharePoint 託管應用
首先是 SharePoint 託管應用。顧名思義,這種應用託管在您的 SharePoint 場中。
重要功能包括:
它託管在安裝它的站點的子站點中,此子站點在大多數情況下與其他站點一樣。
它可以包含列表、庫、頁面、內容型別等。
構建 SharePoint 託管應用的基礎知識與構建 SharePoint 解決方案的基礎知識類似。
我們有一個功能。
我們可以向該功能新增元素,並使用 CAML 定義這些元素。
對於許多元素,我們在 Visual Studio 中都有設計器。
我們可以新增網站頁面。
我們可以向這些網站頁面新增伺服器控制元件。
我們不能向這些網站頁面新增程式碼隱藏,但我們可以新增 JavaScript 程式碼。
一旦您超越了基礎知識,事情就開始變得越來越不像了。
雲託管應用
其他兩種型別的應用(提供商託管和自動託管)被歸類為雲託管應用。重要功能包括:
這些應用位於 SharePoint 外部的站點中。
提供商託管和自動託管之間的最大區別在於誰將建立和管理此外部站點:
在提供商託管應用中,那是您或您的組織。
在自動託管應用中,即微軟。
構建雲託管應用與構建任何其他網站相同。
如果您是 .NET 開發人員,您可能正在使用 MVC 或 Web 窗體。但是,您並不侷限於這些技術。您可以使用任何您想要的 Web 技術來構建雲託管應用。在構建完應用後,在提供商託管方案中,您將像處理任何其他網站一樣將應用部署到您的站點。
在自動託管方案中,您使用 Visual Studio 建立應用包。它相當於一個解決方案包,然後您可以將其上傳到 SharePoint Online 和站點。如有必要,將為您預配資料庫以託管您的應用。
自動託管應用只能與 SharePoint Online 一起使用,不支援本地場。
這是我們在應用模型章節中已經介紹過的相同示例。
讓我們來看一個 SharePoint 託管應用程式的簡單示例,方法是開啟 Visual Studio 並選擇“檔案”→“新建”→“專案”選單選項。
步驟 1 - 開啟 Visual Studio 並選擇檔案 → 新建 → 專案選單。

步驟 2 - 在左側窗格中選擇模板 → Visual C# → Office/SharePoint,然後在中間窗格中選擇SharePoint 應用。
在“名稱”欄位中輸入名稱,單擊“確定”,您將看到以下對話方塊。

在新 SharePoint 應用中,我們需要新增要除錯的 SharePoint 網站 URL,然後選擇 SharePoint 託管模型作為您希望託管 SharePoint 應用的方式。
步驟 3 - 轉到 SharePoint 管理中心並複製 SharePoint URL。

步驟 4 - 將 URL 貼上到新 SharePoint 應用對話方塊中,如下所示。

步驟 5 - 單擊下一步,它將開啟連線到 SharePoint對話方塊,我們需要登入。

步驟 6 - 輸入您的憑據並單擊登入按鈕。成功登入到 SharePoint 網站後,您將看到以下對話方塊:

步驟 7 - 單擊完成。建立專案後,單擊解決方案資源管理器中的AppMenifest.xml檔案。

步驟 8 - 單擊許可權選項卡。將開啟一個“範圍”下拉列表。

步驟 9 - 在“範圍”下拉列表中,選擇網站,這是您正在配置的許可權範圍。在“許可權”下拉列表中,選擇“讀取”,這是您正在配置的許可權型別。

步驟 10 - 開啟 Default.aspx 檔案並將其替換為以下程式碼。
<%-- The following 4 lines are ASP.NET directives needed when using SharePoint components --%> <%@ Page Inherits = "Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" MasterPageFile = "~masterurl/default.master" Language = "C#" %> <%@ Register TagPrefix = "Utilities" Namespace = "Microsoft.SharePoint.Utilities" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Register TagPrefix = "WebPartPages" Namespace = "Microsoft.SharePoint.WebPartPages" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Register TagPrefix = "SharePoint" Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%-- The markup and script in the following Content element will be placed in the <head> of the page --%> <asp:Content ID = "Content1" ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" runat = "server"> <script type = "text/javascript" src = "../Scripts/jquery- 1.6.2.min.js"></script> <link rel = "Stylesheet" type = "text/css" href = "../Content/App.css" /> <script type = "text/javascript" src = "../Scripts/App.js"></script> </asp:Content> <asp:Content ID = "Content2" ContentPlaceHolderID = "PlaceHolderMain" runat = "server"> <script type = "text/javascript"> function hello() { var currentTime = new Date(); $get("timeDiv").innerHTML = currentTime.toDateString(); } </script> <div id = "timeDiv"></div> <input type = "button" value = "Push me!" onclick = "hello();" /> </asp:Content>
步驟 11 - 轉到解決方案資源管理器,右鍵單擊專案並選擇“釋出”。單擊打包應用按鈕。這將構建您的 SharePoint 託管應用,併為將其部署到您的 SharePoint 網站做好準備。

您將看到以下資料夾,其中包含 *.app 檔案。

步驟 12 - 導航到您的 SharePoint 線上網站。

步驟 13 - 在左側窗格中單擊SharePoint 應用。將開啟一個新頁面。

步驟 14 - 將您的檔案拖到這裡上傳。

檔案上傳後,您將看到以下頁面:

步驟 15 - 在左側窗格中單擊選項 - 網站內容。單擊新增應用圖示,如下面的螢幕截圖所示:

將開啟一個新頁面。
步驟 16 - 在左側窗格中選擇您的應用 → 來自您的組織,您將看到該應用可供安裝。單擊該應用。

步驟 17 - 單擊該應用時,將開啟一個對話方塊,如下面的螢幕截圖所示。單擊信任它。

步驟 18 - 您將看到該應用已安裝。安裝完成後,您可以單擊該應用。

您將看到以下頁面,其中包含一個按鈕:

單擊按下我按鈕時,它將顯示當前日期。

自動託管
讓我們來看一個自動託管的簡單示例,方法是建立一個新專案。
步驟 1 - 選擇SharePoint 2013 應用並單擊確定。

步驟 2 - 選擇自動託管。

步驟 3 - 選擇 ASP.NET MVC Web 應用程式,然後單擊“完成”。

建立專案後,釋出您的應用。其餘步驟與 SharePoint 託管選項中提供的步驟相同。