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。

时间: 2024-10-16 21:24:12

SharePoint 2013 开发——概述的相关文章

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 使用Visual Studio 2012开发SharePoint

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 使用Visual Studio 2012开发SharePoint应用程序 VS2012带有标准系列的工程级和项目级模板,使得SP开发更加简单更加强大.使用SP2010你可以应用VS2010做大量开发,使用VS2012,现在你可以有很多新的功能和选择. 微软带了标准系列的工程级模板,开箱即用,附带额外系列的工程项目模板来帮助你进行开发.例如,你可以创建SP2013

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint开发的其他工具

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint开发的其他工具 本章节讲了很多SP开发可用的核心工具.当然,除了这些主流的,你还会碰到一些不错的工具--一些可能是你组织中专有的.两个较少人知道的工具在一些情境中是很有帮助的:Expression Blend--设计用,特别是当你构建基于Silverlight的应用程序:Fiddler--调试用. 使用Expression Blend开发 V

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 总结

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 总结 在SP2013中很多重要的开发工具对你来说都是可用的,你可以进行不同类型的开发--从超级用户到设计到管理代码.一些指定的工具包括Napa.SPD.VS.Expression Blend和Fiddler. 随着你在SP开发人员社区成为活跃的一份子,你会发现更多工具.随着VS2012的发布.良好的生命周期和现有对刚进入SP开发世界的人的模板支持,对SP开发的支

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 本章你将学到: 理解SharePoint 2013不同工具选项: 在对比中挑选出合适的工具: 本章代码下载: http://www.wrox.com/WileyCDA/WroxTitle/productCd-1118495845.html .主要是SP_Hosted_Custom_List.zip. 在本书这个阶段,你已经了解了SharePoint是什么.新的A

SharePoint 2013开发入门探索(二)- 列表操作

我们如何用代码对SharePoint列表做些例如增删改查的操作呢?如果您的程序可以部署到服务器上,就可以使用 服务器对象模型,因为服务器对象模型提供的功能最多,限制最少:否则可能要选择客户对象模型等其他方式,这可能会遇到一些功能限制:另外还有一些其他的访问方式,例如Web服务等.如何在 SharePoint 2013 中选择正确的 API 集请参考链接 http://msdn.microsoft.com/zh-cn/library/jj164060.aspx. 我们首先研究下服务器对象模型.使用

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 网站设置

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 网站设置 你应该熟悉(如果还咩有)的SharePoint主要部分之一是网站设置.你可用点击右手角落的齿轮图标,点击网站设置来访问网站设置.在此页面你会发现大部分站点配置,所以这是尝试理解在哪儿你可以改变站点主题.激活功能.管理权限等的好地方.下图显示了网站设置页面,注意网站设置核心功能被分成几个主要部分.例如,大多安全设置在用户和权限类别中可用,主题是在Web设

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 用SPD开发SharePoint应用程序

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 用SPD开发SharePoint应用程序 很多开发人员说他们宁愿不用SPD作为开发SharePoint的工具.然而,如果你没有在工具集中包括它你可能进度放缓.因为你将发现SPD可以让一些开发任务变得更容易. SPD从FrontPage(早起Web开发人员工具)进化而来到SPD(以SharePoint为中心的设计人员工具,随SharePoint 2010一起出现)

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 使用Napa开发SharePoint应用程序

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 使用Napa开发SharePoint应用程序 如果你做过SharePoint开发,你会知道构建开发环境要花费时间.在SharePoint 2010中,你不得不安装在本地一些软件应用程序,如SharePoint,SQL Server,VS等,并且配置你的环境能使用它们.然后要在本地安装的SharePoint实例上调试.SharePoint 2013快速开发则稍微进

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint中基于Web开发

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint中基于Web开发 之前提到过,定义SharePoint开发有多种方法.作为高级用户,你可能使用更多原生SharePoint功能在基于Web环境做开发.高级用户典型地在SharePoint站点有逐步上升的权限,并且能够完成以下任务: 创建和管理网站集与网站权限. 配置站点主题. 添加Apps到站点. 为网站中使用创建并部署多媒体. 配置和自定义