SharePoint Add-in Model 介绍 - 引文(先导篇)
1. SharePoint 平台
如果你已经很熟悉 SharePoint 平台,可跳过本章节。
1.1 SharePoint 是什么
在介绍 Add-in Model 之前,简要提一下 SharePoint 是一个什么类型的产品?它有什么功能?先来看一下百度百科中的关于它的介绍:
SharePoint Portal Server 2003 是一个门户站点,使得企业能够开发出智能的门户站点,这个站点能够无缝连接到用户、团队和知识。因此人们能够更好地利用业务流程中的相关信息,更有效地开展工作。
SharePoint Portal Server 2003 提供了一个企业的业务解决方案,它利用了企业应用程序集成功能,以及灵活的部署选项和管理工具,将来自不同系统的信息集成到一个解决方案中。这个门户站点使得端到端的合作更为容易,实现了个人、团队和信息的整合、组织和搜索。用户可以通过门户内容和布局的定制和个性化以及目标受众,更快地找到相关信息。公司可以根据受众的公司职位、团队身份、兴趣或其他可以设置的成员规则来设定信息、程序和更新。
发行版本有SharePoint2003、SharePoint2007、Sharepoint 2010和SharePoint2013。
简单来说, 它帮助企业和用户实现了企业内容的管理(如可存储、共享、协同编辑项目中的各种 Office 文档, 再比如它允许用户快速定制企业内部站点)和业务流程的管理(如将企业的日常业务流程如人事入职,出差申请,休假申请,加班申请,费用报销,项目立项,固定资产采购,公章使用等集中到 SharePoint 平台统一部署和管理)。
关于 SharePoint 更系统地介绍,推荐大家阅读 Office blogs - Evolution of SharePoint, 文中提到 SharePoint的核心feature 主要分为三大块:
- 提供了包括站点主页/入口, 搜索, 商业智能(BI), 和 企业内容管理在内的诸多功能。 (原文:Experiences such as portals, search, business intelligence (BI) and enterprise content management (ECM))
- 为上述功能提供了统一的管理工具。(原文:Across all of these experiences, SharePoint offers a consistent management layer providing control to customers.)
- 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, 两者的区别是:
- SharePoint on-premises 是由企业购买并部署在自家服务器(硬件)上的,在运行过程中升级、维护等均有企业解决,这种方式下,每个企业有自己独立的 SharePoint Farm, host 在自己的硬件上, 企业的 IT 部门拥有 Farm Admin 的权限。
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!
文中提到几个信息:
- 全球有超过 3.4 百万围绕 SharePoint 的开发者,他们基于 SharePoint 扩展开发平台构建各种功能性扩展和自定义解决方案。
- 有越来越多的 Office 365 客户开始使用 SharePoint apps(add-ins) 和 APIs 去与 存储在 SharePoint 上的数据交互。通过开源项目 open source Patterns and Practices 的引导, 他们利用新的 add-in model 实现了复杂程度各异的解决方案( 而在过去,这些方案一般在 on-premises 上利用可以执行 full-trust code 的 Farm solution 方式实现)
- 同时, 微软也间接地承认了新的 add-in model 并没有提供给开发者所有由原来 Full-Trust-Code 带来的扩展能力, 平台的支持仍需要通过增加新的 API 来增强。
回过头来,上面提到的“新的 add-in model” 并非是唯一一种扩展 SharePoint 功能的方法。事实上, SharePoint 平台先后发布了三种不同的“扩展功能开发模型”:
- Farm Solution(Full-Trust-Code)
- Sandboxed Solution
- 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 的特点如下:
- 开发出的 add-in 可以 host 在一个独立的 SharePoint site 上( 每个 add-in 有一个独立的 site ), 也可以 host 在 SharePoint farm 之外的任何服务器上。也就是它支持 self-host 和 out-of-box hosting 两种方式。
- add-in model 不允许使用任何 SharePoint server-side 的 code, 开发者只能利用 client object model (JSOM 或者 CSOM) 与 SharePoint 进行交互, 当然也可以利用 Office365 提供的所有的 REST APIs。
- add-in 本身并未像 Farm solution 一样成为 SharePoint farm 个一部分, 接受 farm 的管理, 所有并不会很大程度地影响到 farm 的性能。但是另一方面, add-in 并非完全不会影响 farm 的性能, 比如它使用的 client object model 势必还是会被 SharePoint farm 处理。
- 可以根据需求发布到 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.
2.2 SharePoint Add-in 的获取/安装
如果你是某个 SharePoint site 的 site owners, 那么可以为它添加 SharePoint add-in。
SharePoint 可通过两种方式安装 Add-in:
- 手动从 SharePoint app store 或者 企业内部 SharePoint app catalog 中安装
- 使用 PowerShell 脚本安装
详细安装要求及步骤,可参照 Add apps for SharePoint to a SharePoint 2013 site, 对应的中文文档,可将该链接 url 中的 en-us 改为 zh-cn 查看。
3. 参考资料
- https://blogs.office.com/2015/02/02/evolution-sharepoint/ "Evolution of SharePoint"
- http://www.dummies.com/how-to/content/differences-between-sharepoint-online-and-sharepoi.html "Differences between SharePoint Online and SharePoint On Premise"
- http://baike.baidu.com/link?url=rIM1rGwXc1Hrt0AYjA2W2cFHfiinJS_skpqDddTmjMTRKVHDvBNJrJB7usobk38JczZk2zGtT88kJ1AV7ijbKa "SharePoint - 百度百科"
- https://store.office.com/appshome.aspx?ui=zh-CN&rs=zh-CN&ad=CN&clickedfilter=OfficeProductFilter%3ASharePoint&productgroup=SharePoint "Office 应用商店 - SharePoint 相关应用"
- 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"
- https://technet.microsoft.com/en-us/library/fp161231.aspx "Add apps for SharePoint to a SharePoint 2013 site"
- http://blog.sina.com.cn/s/blog_4aa29f750101an75.html "SharePoint 2013 App 开发概述"
本文大多数描述源于官方博客, 但也不乏个人见解以及其他开发者的相关博客,如果你觉得有不妥之处,还望指教,谢谢!
原文地址: http://www.cnblogs.com/simpeng/p/4842274.html , 如需转载,请注明出处!
SharePoint Add-in Model 介绍 - 引文(先导篇)的更多相关文章
- c# sharepoint client object model 客户端如何创建中英文站点
c# sharepoint client object model 客户端如何创建中英文站点 ClientContext ClientValidate = tools.GetContext(Onlin ...
- SharePoint网站集功能介绍
SharePoint网站集功能介绍 https://support.office.com/zh-cn/article/%E5%90%AF%E7%94%A8%E6%88%96%E7%A6%81%E7%9 ...
- Python介绍RabbitMQ使用篇二WorkQueue
1. RabbitMQ WorkQueue基本工作模式介绍 上一篇我们使用C#语言讲解了单个消费者从消息队列中处理消息的模型,这一篇我们使用Python语言来讲解多个消费者同时工作从一个Queue处理 ...
- Python3 与 C# 并发编程之~进程先导篇
在线预览:http://github.lesschina.com/python/base/concurrency/1.并发编程-进程先导篇.html Python3 与 C# 并发编程之- 进程篇 ...
- SSM 框架集-01-详细介绍-入门问题篇
SSM 框架集-01-详细介绍-入门问题篇 刚开始了解 SSM,首先先解决几个基础问题 1.什么是 SSM 框架集? SSM(Spring+SpringMVC+MyBatis)框架集由 Spring. ...
- [转]基于C#的开源GIS项目介绍之SharpMap篇
我是一个刚毕业的GIS本科毕业生,目前在杭州从事GIS软件应用开发.在项目开发中总感觉自己的编程水平还不够,于是想找些开源GIS小项目来研究研究,借以提高自己的编程能力和项目开发能力.在网上搜了一下“ ...
- 基于StringUtils工具类的常用方法介绍(必看篇)
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...
- SharePoint Client Object Model API 介绍以及工作原理解析
CSOM和ServerAPI 的对比 SharePoint从2010开始引入了Client Object Model的API(后文中用CSOM来代替),从名字来看,我们可以简单的看出,该API是面向客 ...
- SharePoint Add-in Model (App Model) 介绍 – 概念、托管方式、开发语言
SharePoint Add-in Model 是自 2013 版本以来引入的新的扩展性开发模型, SharePoint 开发者可以利用这种新模型来实现往常利用场解决方案 (Farm Solution ...
随机推荐
- tomcat7,8 centos7 配置apr极好教程
转自:http://blog.csdn.net/remote_roamer/article/details/51719891 第一次我自己是用的yum安装apr, apr-utils, tomcat- ...
- 【codeforces 785A】Anton and Polyhedrons
[题目链接]:http://codeforces.com/contest/785 [题意] 给你各种形状的物体; 然后让你计算总的面数; [题解] 用map来记录各种物体本该有的面数; 读入各种物体; ...
- Eclipse迅速执行:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
问题叙述性说明: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 问题原因: 程序中对 ...
- MIPS重返硅谷 放眼AI未来
MIPS最近以一家独立公司之姿重新回到了矽谷,在Tallwood的带领下积极投入原有的嵌入式业务,并放眼下一代人工智能(AI)领域. MIPS最近以一家独立公司之姿重新回到了矽谷——加州圣塔克拉拉 ...
- 表达式树Expression
Expression表达式树动态查询 在进行数据列表的查询中,我们通常会使用两种方式进行查询: linq查询 数据库sql语句查询 这样固然可以实现查询,本人之前也都是这么做的,因为查询的条件很少.使 ...
- AndroidStudio一步步教你修改项目包名(最详细,最易懂)
如果你看了很多篇博文还是修改不了包名,我相信这篇可以帮你解决修改包名的问题 修改项目包名,实现不覆盖安装(如果只是想不覆盖安装,更改build.gradle里面的包名就OK了,那这篇博文到这里就可以结 ...
- 手动安装配置Android Studio
官网下载Android Studio安装包后安装启动Android Studio,程序提示安装SDK,因为代理/FQ的原因,安装component失败,错误如下: Preparing "In ...
- Java实现多文件压缩打包的方法
package com.biao.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutpu ...
- ADO.NET - 批量更新或添加数据
方法一:使用SqlBulkCopy实现批量更新或添加数据. SqlBulkCopy类一般只能用来将数据批量插入打数据库中,如果数据表中设置了主键,出现重复数据的话会报错,如果没有设置主键,那么将会添加 ...
- 使用Eclispe 查看api技巧
使用eclispe都会知道当我们把鼠标的光标放到指定发方法上时程序会弹出一个提示,大家不要无论这个提示这个提示就是源码中的说明包含了函数參数使用方法 非常多时候我们碰到一个不会的方法的时候第一步都会选 ...