1. SharePoint 平台

如果你已经很熟悉 SharePoint 平台,可跳过本章节。

1.1 SharePoint 是什么

在介绍 Add-in Model 之前,简要提一下 SharePoint 是一个什么类型的产品?它有什么功能?先来看一下百度百科中的关于它的介绍:

SharePoint Portal Server 2003 是一个门户站点,使得企业能够开发出智能的门户站点,这个站点能够无缝连接到用户、团队和知识。因此人们能够更好地利用业务流程中的相关信息,更有效地开展工作。

SharePoint Portal Server 2003 提供了一个企业的业务解决方案,它利用了企业应用程序集成功能,以及灵活的部署选项和管理工具,将来自不同系统的信息集成到一个解决方案中。这个门户站点使得端到端的合作更为容易,实现了个人、团队和信息的整合、组织和搜索。用户可以通过门户内容和布局的定制和个性化以及目标受众,更快地找到相关信息。公司可以根据受众的公司职位、团队身份、兴趣或其他可以设置的成员规则来设定信息、程序和更新。

发行版本有SharePoint2003、SharePoint2007、Sharepoint 2010和SharePoint2013。

(源自 SharePoint - 百度百科)

简单来说, 它帮助企业和用户实现了企业内容的管理(如可存储、共享、协同编辑项目中的各种 Office 文档, 再比如它允许用户快速定制企业内部站点)和业务流程的管理(如将企业的日常业务流程如人事入职,出差申请,休假申请,加班申请,费用报销,项目立项,固定资产采购,公章使用等集中到 SharePoint 平台统一部署和管理)。

关于 SharePoint 更系统地介绍,推荐大家阅读 Office blogs - Evolution of SharePoint, 文中提到 SharePoint的核心feature 主要分为三大块:

  1. 提供了包括站点主页/入口, 搜索, 商业智能(BI), 和 企业内容管理在内的诸多功能。 (原文:Experiences such as portals, search, business intelligence (BI) and enterprise content management (ECM))
  2. 为上述功能提供了统一的管理工具。(原文:Across all of these experiences, SharePoint offers a consistent management layer providing control to customers.)
  3. SharePoint 是可扩展的,客户或其他合作伙伴能通过它所提供的扩展性平台增强原有功能。(原文:We also made SharePoint an extensible platform, allowing customers and partners to enhance the out-of-box experiences.)

Experiences, management and extensibility became the core aspects of what people love about SharePoint. As we move SharePoint forward, these three aspects continue to remain central—both within the server and across Office 365.

1.2 SharePoint 的产品分类

从架构上讲, 目前的 SharePoint 可大致分为两类: SharePoint on-premises 和 SharePoint Online, 两者的区别是:

  1. SharePoint on-premises 是由企业购买并部署在自家服务器(硬件)上的,在运行过程中升级、维护等均有企业解决,这种方式下,每个企业有自己独立的 SharePoint Farm, host 在自己的硬件上, 企业的 IT 部门拥有 Farm Admin 的权限。
  2. SharePoint Online 中的 Farm 的部署、硬件和负载均衡的配置等等均由微软或其合作伙伴提供支持和维护,而有需求使用 SharePoint 的企业仅需要购买 SharePoint Online 上的一个 Tenant (对应一个独特的域名, 不如 abc.microsoft.com) 即可。 而 Tenant 和 SharePoint Farm 的关系是 多对一的关系,也就是说,一个 Farm 上可能有很多 Tenant, 而一个 Tenant 只能在一个 Farm 上。企业的 IT 部门用户 Tenant Admin 的权限(与 Farm Admin 的权限是有差异的)。

    SharePoint Online is when Microsoft manages SharePoint in their data centers and you access it over the Internet. SharePoint On Premise is when your local IT gurus manage SharePoint in your company data center.
    (源自 Differences between SharePoint Online and SharePoint On Premise)

而在本文中提到的 SharePoint 平台一般是指两种产品,如有特殊,会特别注明。

1.3 SharePoint 平台上的扩展功能开发

前面提到了 SharePoint 的 Extensibility, 我们先看一下当前 SharePoint 所提供的扩展平台的发展概况:

Extensibility

SharePoint got to where it is today with the help of over 3.4 million developers worldwide who built extensions and customizations on top of the platform. This principle holds true moving forward—while the way developers build for the cloud is different—we absolutely want to enable customers and partners to build new, innovative applications and customizations that meet their needs. We are doing this by continuing to advance the app model we introduced with SharePoint 2013, bringing more custom capabilities as well as making it easy to connect to data in SharePoint through a rich set of Office 365 APIs. We will keep investing in the surface area of these APIs plus introduce totally new APIs (like Office Graph and Office 365 Video) to enable even deeper levels of integration. IT, developers and partners will be able to achieve greater levels of customization for their customers.

We are seeing rapid growth of customers using apps and APIs, which integrate and connect with SharePoint data every day in Office 365. Customers are leveraging our training, guidance and code in our open source Patterns and Practices project to achieve the level of sophisticated solutions previously delivered using full-trust code on-premises. But we know developers are asking for more and we love listening to the feedback! The opportunity to develop new capabilities and integrations with SharePoint has never been more exciting. The development innovation pipeline is chartered to unblock and enable developers. Get your 1s and 0s ready—and code!

(源自 Evolution of SharePoint)

文中提到几个信息:

  1. 全球有超过 3.4 百万围绕 SharePoint 的开发者,他们基于 SharePoint 扩展开发平台构建各种功能性扩展和自定义解决方案。
  2. 有越来越多的 Office 365 客户开始使用 SharePoint apps(add-ins) 和 APIs 去与 存储在 SharePoint 上的数据交互。通过开源项目 open source Patterns and Practices 的引导, 他们利用新的 add-in model 实现了复杂程度各异的解决方案( 而在过去,这些方案一般在 on-premises 上利用可以执行 full-trust code 的 Farm solution 方式实现)
  3. 同时, 微软也间接地承认了新的 add-in model 并没有提供给开发者所有由原来 Full-Trust-Code 带来的扩展能力, 平台的支持仍需要通过增加新的 API 来增强。

回过头来,上面提到的“新的 add-in model” 并非是唯一一种扩展 SharePoint 功能的方法。事实上, SharePoint 平台先后发布了三种不同的“扩展功能开发模型”

  1. Farm Solution(Full-Trust-Code)
  2. Sandboxed Solution
  3. SharePoint Add-in Model(在 SharePoint 2013 中开始引入, 原来也叫做 SharePoint Apps)

三种开发模型各具特色, 本文简单介绍 add-in model 下的 add-in/app 是如何被用户使用的。 在后续的文章中会分析比较三种开发模型的不同之处(优劣)。

2. SharePoint Add-in Model 概况(就真的只是概况哟)

SharePoint Add-in Model 是 SharePoint 2013 中引入的新的开发模型,前文中也多次提到这种新的 model, 总的来说, add-in model 是微软推荐的 SP 扩展开发趋势。

There’s a new kid in town, the App model. SharePoint Apps can be hosted in an isolated SharePoint site, or separate from the SharePoint farm, either on a dedicated self-hosted application server or in the cloud (Azure). SharePoint Apps then have to leverage the extended and improved client object model to connect back to the SharePoint farm if they want to do some work there (SharePoint server-side code is not allowed/possible for Apps). The major advantages of SharePoint apps are twofold:
1.A separated app in itself doesn’t affect the performance of the SharePoint farm in any way, and doesn’t have to be managed from within the SharePoint farm. Having said that, do keep in mind that apps leveraging the SharePoint client object model of course impact SharePoint farm performance in an indirect way.
2.As a developer/software company, you can distribute apps via the MS App Store which greatly facilitates finding an audience to redistribute your mind works, potentially making money doing that.

简单来说, add-in model 的特点如下:

  1. 开发出的 add-in 可以 host 在一个独立的 SharePoint site 上( 每个 add-in 有一个独立的 site ), 也可以 host 在 SharePoint farm 之外的任何服务器上。也就是它支持 self-host 和 out-of-box hosting 两种方式。
  2. add-in model 不允许使用任何 SharePoint server-side 的 code, 开发者只能利用 client object model (JSOM 或者 CSOM) 与 SharePoint 进行交互, 当然也可以利用 Office365 提供的所有的 REST APIs。
  3. add-in 本身并未像 Farm solution 一样成为 SharePoint farm 个一部分, 接受 farm 的管理, 所有并不会很大程度地影响到 farm 的性能。但是另一方面, add-in 并非完全不会影响 farm 的性能, 比如它使用的 client object model 势必还是会被 SharePoint farm 处理。
  4. 可以根据需求发布到 office store 中或者企业内部的 SharePoint catalog 中。其中发布到 store 中的 add-in 可以被任何其他 SharePoint 用户购买(当然可以免费)使用。

2.1 SharePoint Add-in 的部署方式

开发者基于 SharePoint Add-in Model 开发的应用,我们称为 SharePoint add-in 或者 app, 微软为这类应用提供了统一的发布商店 - Office 应用商店 - SharePoint 相关应用。相信大家也能猜到(类似 Windows Store, Google Play, Apple App Store), 开发者可以向 Office Store 提交发布 add-in 的申请。Add-in 通过审核后, 该 add-in 就会上架到 Office 商店中, SharePoint 网站用户可以通过访问这个公共商城获取它。

事实上,除了 Office 应用商店, 开发者可以将基于 add-in model 开发的 add-in 部署在企业内部的 SharePoint app catalog 中, 此时该 add-in 仅能被企业内部用户使用。

There are two types of app store in SharePoint 2013. The first is a 'public store,' which is the main app store that Microsoft has been marketing heavily. Users connect to it from within SharePoint, and it adheres to the now standard rules of a typical store. There is a search function, and users can also browse by genre. Once selected an app is downloaded and installed directly onto the SharePoint environment.

(源自 The power of the SharePoint 2013 App store)

2.2 SharePoint Add-in 的获取/安装

如果你是某个 SharePoint site 的 site owners, 那么可以为它添加 SharePoint add-in。

SharePoint 可通过两种方式安装 Add-in:

  1. 手动从 SharePoint app store 或者 企业内部 SharePoint app catalog 中安装
  2. 使用 PowerShell 脚本安装

详细安装要求及步骤,可参照 Add apps for SharePoint to a SharePoint 2013 site, 对应的中文文档,可将该链接 url 中的 en-us 改为 zh-cn 查看。

3. 参考资料

  1. https://blogs.office.com/2015/02/02/evolution-sharepoint/ "Evolution of SharePoint"
  2. http://www.dummies.com/how-to/content/differences-between-sharepoint-online-and-sharepoi.html "Differences between SharePoint Online and SharePoint On Premise"
  3. http://baike.baidu.com/link?url=rIM1rGwXc1Hrt0AYjA2W2cFHfiinJS_skpqDddTmjMTRKVHDvBNJrJB7usobk38JczZk2zGtT88kJ1AV7ijbKa "SharePoint - 百度百科"
  4. https://store.office.com/appshome.aspx?ui=zh-CN&rs=zh-CN&ad=CN&clickedfilter=OfficeProductFilter%3ASharePoint&productgroup=SharePoint "Office 应用商店 - SharePoint 相关应用"
  5. http://www.brightstarr.com/sharepoint-technology-and-application-insights/the-power-of-the-sharepoint-2013-app-store "The power of the SharePoint 2013 App store"
  6. https://technet.microsoft.com/en-us/library/fp161231.aspx "Add apps for SharePoint to a SharePoint 2013 site"
  7. http://blog.sina.com.cn/s/blog_4aa29f750101an75.html "SharePoint 2013 App 开发概述"

本文大多数描述源于官方博客, 但也不乏个人见解以及其他开发者的相关博客,如果你觉得有不妥之处,还望指教,谢谢!

原文地址: http://www.cnblogs.com/simpeng/p/4842274.html , 如需转载,请注明出处!

SharePoint Add-in Model 介绍 - 引文(先导篇)的更多相关文章

  1. c# sharepoint client object model 客户端如何创建中英文站点

    c# sharepoint client object model 客户端如何创建中英文站点 ClientContext ClientValidate = tools.GetContext(Onlin ...

  2. SharePoint网站集功能介绍

    SharePoint网站集功能介绍 https://support.office.com/zh-cn/article/%E5%90%AF%E7%94%A8%E6%88%96%E7%A6%81%E7%9 ...

  3. Python介绍RabbitMQ使用篇二WorkQueue

    1. RabbitMQ WorkQueue基本工作模式介绍 上一篇我们使用C#语言讲解了单个消费者从消息队列中处理消息的模型,这一篇我们使用Python语言来讲解多个消费者同时工作从一个Queue处理 ...

  4. Python3 与 C# 并发编程之~进程先导篇

      在线预览:http://github.lesschina.com/python/base/concurrency/1.并发编程-进程先导篇.html Python3 与 C# 并发编程之- 进程篇 ...

  5. SSM 框架集-01-详细介绍-入门问题篇

    SSM 框架集-01-详细介绍-入门问题篇 刚开始了解 SSM,首先先解决几个基础问题 1.什么是 SSM 框架集? SSM(Spring+SpringMVC+MyBatis)框架集由 Spring. ...

  6. [转]基于C#的开源GIS项目介绍之SharpMap篇

    我是一个刚毕业的GIS本科毕业生,目前在杭州从事GIS软件应用开发.在项目开发中总感觉自己的编程水平还不够,于是想找些开源GIS小项目来研究研究,借以提高自己的编程能力和项目开发能力.在网上搜了一下“ ...

  7. 基于StringUtils工具类的常用方法介绍(必看篇)

    前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...

  8. SharePoint Client Object Model API 介绍以及工作原理解析

    CSOM和ServerAPI 的对比 SharePoint从2010开始引入了Client Object Model的API(后文中用CSOM来代替),从名字来看,我们可以简单的看出,该API是面向客 ...

  9. SharePoint Add-in Model (App Model) 介绍 – 概念、托管方式、开发语言

    SharePoint Add-in Model 是自 2013 版本以来引入的新的扩展性开发模型, SharePoint 开发者可以利用这种新模型来实现往常利用场解决方案 (Farm Solution ...

随机推荐

  1. reduce 阶段遍历对象添加到ArrayList中的问题

    起初遍历values时直接把对象添加到集合中,后来输出结果和预期不符,debug时发现添加到集合中的对象的值全部是最后一个对象的值,网上百度了下,发现是reduce阶段对象重用的问题,reduce阶段 ...

  2. 高并发场景之RabbitMQ

    高并发场景之RabbitMQ 上次我们介绍了在单机.集群下高并发场景可以选择的一些方案,传送门:高并发场景之一般解决方案 但是也发现了一些问题,比如集群下使用ConcurrentQueue或加锁都不能 ...

  3. Arcgis api for javascript学习笔记(4.5版本)-三维地图实现弹窗功能

    1. 对于Graphic对象,在初始化Graphic对象时设置popupTemplate属性,即可实现点击Graphic时显示弹窗. <!DOCTYPE html> <html> ...

  4. Method and system for providing security policy for linux-based security operating system

    A system for providing security policy for a Linux-based security operating system, which includes a ...

  5. H∞一般控制问题的鲁棒叙述性说明

    Robust Control System:反馈控制有承受一定类不确定能力的影响,这一直保持在这种不确定的条件(制)稳定.动态特性(灵敏度)和稳态特性(逐步调整)的能力. 非结构不确定性(Unstru ...

  6. vmware tools 的安装(Read-only file system 的解决)

    安装 vmware tools 之后,才能将 vmware 创建的虚拟机以全屏的形式显示. 下载:在 vmware 软件的菜单栏点击[虚拟机],在[虚拟机]的主菜单中选择[安装 VMware Tool ...

  7. Cython 的学习

    开发效率极高的 Python 一直因执行效率过低为人所诟病,Cython 由此诞生,特性介于 Python 和 C 语言之间. Cython 学习 1. Cython 是什么? 它是一个用来快速生成 ...

  8. 如何更好的利用redis

    原文地址http://oldblog.antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html @(syoka)[re ...

  9. 获得WIN7管理员权限(可通过修改注册表,或者组策略改变)

    在使用WIN7过程中,常常会再出现没有管理员权限而不能正常运行软件(有的软件直接就是打不开,有的软件不能正常运行(比如如果没有管理员权限,keil就不能注册成功))....也许你会说,我的电脑里只有一 ...

  10. NET SignalR2

    .NET SignalR2持久连接层解析   越是到年底越是感觉浑身无力,看着啥也不想动,只期盼着年终奖的到来以此来给自己打一针强心剂.估摸着大多数人都跟我一样犯着这样浑身无力的病,感觉今年算是没挣到 ...