SharePoint 2013 開發——概述
部落格地址:http://blog.csdn.net/FoxDave
近來閱讀SharePoint 2013開發一書,帶著與大家一起分享其中的內容。
部署場景:
本地部署(On-Premise Deployment)、O365部署(Office 365 Deployment)、託管部署(Hosted Deployment)和混合部署(Hybrid Deployment)。
包場景:
完全信任的場解決方案(Full-Trust Farm Solution)、部分信任的沙盒解決方案(Partial-Trust Sandboxed Solution)和SharePoint應用(Apps for SharePoint)。
程式設計模型:
說這個之前,我們先來大致地回顧一下SharePoint開發的歷史,本人從2007版本開始接觸,之前的就不做陳述了。
SharePoint 2007主要的開發手段是Server API和WebService(ASMX),並沒有沙盒解決方案的概念,客戶端物件模型也並未明確提出。也就是說,你的自定義程式碼要麼執行在SharePoint的服務端,要麼通過內建的Web服務((%COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\12\ISAPI,即_vti_bin這個URL路徑下)託管在你自己的服務層中進行操作。
SharePoint 2007的客戶端物件模型相當有限,在Core.js這個JS檔案中實現(據書記載,在Windows SharePoint Services 2003的時候是OWS.js),該檔案在SharePoint的大部分頁面中被引用,不修改的話則僅包含很有限的邏輯處理操作。例如,Core.js提供了ECB的生成邏輯如下:
function AddDocLibMenuItems(m, ctx) {
if (typeof (Custom_AddDocLibMenuItems) != "undefined") {
if (Custom_AddDocLibMenuItems(m, ctx)) return;
}
// build the rest of OOTB ECB menu items
}
我們通過SharePoint Designer來插入Custom_AddDocLibMenuItems函式到SharePoint頁面上來實現我們自己的邏輯,或者是使用內容編輯Web部件(CEWP)來插入自定義的JS指令碼函式。這種方式能實現的東西很有限,而且靈活性很差,如果因為一些原因Core.js沒有被載入完,那麼我們的自定義擴充套件就不好用了。
在SharePoint 2010中,客戶端物件模型(CSOM)被極大地改善了,客戶端模型從根本上來說是叫做Client.svc的WCF服務,附帶三種不同的代理:Silverlight、JavaScript和.NET託管客戶端(C#或VB.NET)。下面的程式碼片段展示瞭如何應用客戶端物件模型(JS、sp.js)執行非同步查詢操作:
ExecuteOrDelayUntilScriptLoaded(GetTitle, "sp.js");
function GetTitle() {
//Retrieve current client context
context = SP.ClientContext.get_current();
//Load the site
site = context.get_web(); context.load(site);
//Execute asynchronously with callbacks for successful or failed calls
context.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}
接下來,到了SharePoint 2013。它極大地豐富了開發的物件模型,如下圖。總體概括來說,有服務端物件模型(Server API)、客戶端物件模型(CSOM)和Web服務(REST\OData Endpoint)。
最耀眼的就是跨平臺的REST服務,但有一點,Server API無論何時都有其不可替代性,因為一些伺服器端的定製、TimerJob等的開發工作只能用完全信任的場解決方案來部署。我們可以根據實際情況來選擇合適的API進行開發工作,更多資訊。微軟方面推薦開發者遵循新的應用程式模型作為優先選擇方式來構建SharePoint 2013自定義的應用程式。"don't make any new sandboxed solutions"和"build new farm solutions only you absolutely have to"。
在SharePoint 2013中,_vti_bin/client.svc作為別名_api存在,即REST,更容易辨認,呼叫起來更方便,架構如下圖所示。
使用REST查詢資訊非常簡單,如查詢ID為1的聯絡人:
http://contoso.com/_api/web/lists/getByTitle('Contacts')/getItemByStringId('1')
又如,我們想刪除某個聯絡人,用如下的程式碼片段:
removeItem = function (id) {
$.ajax(
{
url: _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getByTitle('Contacts')/getItemByStringId('" + id + "')",
type: "DELETE",
headers:
{
"accept": "application/json",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*"
},
success: function (data) {
readAll();
},
error: function (err) {
alert(JSON.stringify(err));
}
}
);
}
另一方面,之前在SharePoint 2010中只能用服務端物件模型實現的如使用者配置檔案、工作流、搜尋等方面的部分可以用客戶端物件模型CSOM實現了。
下一篇我們將介紹SharePoint全新的模式——SharePoint APP。
相關文章
- SharePoint 2013 開發——SharePoint APP介紹APP
- SharePoint 2013 開發——SharePoint Designer 2013工作流
- SharePoint 2013 開發——開發並部署webpartWeb
- SharePoint 2013 開發——CSOM概要
- SharePoint 2013 開發——開發自定義操作APPAPP
- SharePoint 2013 開發——釋出SharePoint應用程式
- SharePoint 2013 開發——APP安全模型APP模型
- SharePoint 2013 開發——開發並部署第一個APPAPP
- SharePoint 2013 開發——工作流架構架構
- SharePoint 2013 開發——構建工作流開發環境開發環境
- SharePoint 2013 開發——開發並部署Provider-hosted APPIDEAPP
- SharePoint 2013 開發——APP開發的考慮和建議APP
- SharePoint Framework 概述Framework
- 《SharePoint 2013 應用開發實戰》目錄
- SharePoint REST API - 概述RESTAPI
- SharePoint 2013 開發——Provider-hosted APP準備工作IDEAPP
- SharePoint 2013 開發——搜尋架構及擴充套件架構套件
- SharePoint 2013 WebPart 管理工具分享[開源]Web
- SharePoint PerformancePoint開發例項ORM
- SharePoint 企業開發整合
- SharePoint 2013 JQuery Asset PicketjQuery
- Web前端開發概述Web前端
- Install Reporting Services SharePoint Mode for SharePoint 2013
- SharePoint Framework 開發工具和庫Framework
- sharepoint 2013 網站集解鎖網站
- Interoperability between Java and SharePoint 2013 on PremisesJavaREM
- SharePoint 2013 開發——獲取使用者配置檔案屬性內容(User Profile)
- 從SharePoint 2013遷移到SharePoint Online - 評估工具
- [ SharePoint ADFS 開發部署系列 (一)]
- SharePoint 2013 中的SQL Server 安全SQLServer
- Plan for caching and performance in SharePoint Server 2013ORMServer
- SharePoint 2013 --Spquery執行報錯
- SharePoint Framework 配置你的SharePoint客戶端web部件開發環境Framework客戶端Web開發環境
- Sharepoint 2013 關於"SPChange"簡介
- Setting up your App domain for SharePoint 2013APPAI
- SharePoint 2013 CSOM 物件模型屬性包物件模型
- 遊戲開發入門(一)遊戲開發概述遊戲開發
- Istio Mixer Adapter開發系列 - 概述APT