SharePoint 2013 开发——APP开发的考虑和建议
需要考虑的方面:
1. 记得CSOM授予网站集及以下的权限,而场解决方案需要整个场的访问权限。
2. 由于应用程序是彼此完全独立的存在,他们直接不能进行直接的通信,这跟在平板电脑和手机上是一样的。一个实现方式是在APP中留一个外置的部分,比如放到Azure云中,这个外置的部分可以暴露一个WEB服务如WCF端点,可以作为APP之间通信的媒介,这和代理的原理类似。
3. Silverlight还没有被正式废弃,仍然在客户端对象模型中有效。然而,微软更建议使用JavaScript和HTML5。
4. 每个APP的DNS条目不是必须的,建议为目标APP域创建一个通配符DNS条目,Visual Studio可以为你做这件事。
5. APP支持他们自己的身份验证,意味着他们支持Windows认证或表单认证/基于声明的认证。
6. 有一点必须要注意,不能使用服务器端代码(包括自定义的服务器端控件)。所有自定义的服务器端代码必须托管在SharePoint环境的外部。但是服务器端代码仍然是本地SharePoint开发者的便利工具,这也是我一直强调Server API的不可替代的方面。Web部件、应用程序页、计时器任务等仍然是有很大价值的东西。APP拓宽了SharePoint业务开发的领域,但是使用起来仍然是有限的,我觉得这也是资料不多的原因吧。
7. 远程事件接收器与传统的事件接收器类似,但是代码运行在外部的服务上。远程事件接收器对于开发来说有些棘手,但APP是可以使用的,因为传统的不能用在APP上。
提供的关键建议:
1. Colud-hosted和SharePoint-hosted应用程序的决策标准。
| Cloud-hosted APP | SharePoint-hosted APP |
|---|---|
| 最灵活的选择,支持任意类型的应用程序代码 | 基于内嵌的JavaScript代码需求,适合较小的应用程序 |
| 开发者可以使用任何开发技术创建自己的基础架构 | 基于SharePoint的JavaScript代码,不存在服务端代码 |
| 可能需要处理多租户的管理和明确的权限管理 | 继承页面或网站上的多租户功能和权限 |
2. APP和场解决方案的决策标准。
首先,微软是建议开发者默认优先选择APP的开发方式的,这是因为对于场解决方案来说,APP提供了一些优点:
(1). 对于最终用户来说,可以通过SharePoint应用商店和企业内部的应用程序目录方便地进行应用的查找、购买和安装;应用程序一次编写之后可以在本地、云端几乎任何位置运行。
(2). 对于管理员来说,应用程序相对于沙盒解决方案提供了更安全的扩展SharePoint的方式。
(3). 对于开发者来说,应用程序可以应用非SharePoint开发技术,这降低了开发者必备技术和学习曲线的门槛;相对于场解决方案,应用程序更灵活和易于扩展,并且应用程序通过OAuth实现了利用安装者的权限;开发者可以使用跨平台标准,包括HTML、REST、OData、JavaScript和OAuth。
(4). 对于企业来说,SharePoint应用程序比解决方案更加灵活,通过微软SharePoint商店可以轻松地拓展市场和进行销售。
尽管有了上述优点,我仍然会强调解决方案(即Server API)是无法取代的,所以当我们需要解决具体问题时,就需要从以下的方面来考虑判断使用哪种方式:
(1). 代码中是否需要包含服务器端对象模型。这个是显而易见的,Server API永远是最全面最强大的接口(此处强调一下,强大很多),有些CSOM力所不能及的地方就需要使用解决方案。
(2). 代码是否需要访问在运行APP的网站之外的SharePoint对象,如果需要,那么使用解决方案。
(3). 我们实现的东西的目的是为了协助最终用户还是管理员,管理员任务是不能通过CSOM实现的,所以这种情况我们也要使用解决方案。
(4). 简单的东西用APP,复杂的东西用解决方案。因为APP个体之间是相互独立的,如果我们要实现一个相对大型的有很多内在联系的东西,还是选择解决方案更合适一些。
但是,场解决方案对于一个服务器上的所有Web应用程序都可用,需要完全信任并且具有管理员权限,代码错误导致的异常严重时会造成整个服务器瘫痪,所以一定要小心。
最后再引用一个表格,在我们实际进行开发任务的时候可以参考。
SharePoint 2013 开发——APP开发的考虑和建议的更多相关文章
- 在本地SharePoint 2013 搭建App开发环境
1.环境描述: SharePoint服务器: Windows Server 2012 R2+SharePoint 2013 IP:192.168.1.180,域控:ser.com 开发环境: Wind ...
- SharePoint 2013 搭建app本地开发环境
使用SharePoint App,如果要通过应用程序目录分发 SharePoint 相关应用程序,如具有完全控制权限的 SharePoint 相关应用程序(无法部署到 Office 365 网站),则 ...
- SharePoint 2013 App 开发—App开发概述
基于安全性的考虑,SharePoint App 不能像其它两种方式一样,直接使用安全性更高的服务端代码的API.Javascript 扮演极为重要的角色,在SharePoint App中与ShareP ...
- SharePoint Server 2013开发之旅(三):为SharePoint Server配置App开发、部署、管理环境
上一篇我讲解了如何利用微软提供的Office 365开发人员网站,进行在线的SharePoint App开发,这当然是不错的一个选择,因为你可以快速地进行开发和调试.(仅仅针对App开发而言).但是, ...
- 浅谈SharePoint 2013 站点模板开发 转载自http://www.cnblogs.com/jianyus/p/3511550.html
一直以来所接触的SharePoint开发,都是Designer配合Visual Studio,前者设计页面,后者开发功能,相互合作,完成SharePoint网站开发.直到SharePoint 2013 ...
- 浅谈SharePoint 2013 站点模板开发
一直以来所接触的SharePoint开发,都是Designer配合Visual Studio,前者设计页面,后者开发功能,相互合作,完成SharePoint网站开发.直到SharePoint 2013 ...
- Sharepoint 2013 开启App和配置App
在任何站点中,点Add App,然后点Sharepoint Store,如果没有Enable apps,打开app store的时候出出现错误: Sorry, apps are turned off. ...
- Delphi XE8 iOS与Android移动应用开发(APP开发)教程[完整中文版]
https://item.taobao.com/item.htm?id=536584650957&toSite=main
- SharePoint 2013 开发教程
做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...
随机推荐
- idea项目部署
idea新建项目: http://blog.csdn.net/wo541075754/article/details/46348135 详细 http://www.cnblogs.com/wql02 ...
- mysql: 两个字段合并,字符时间转时间戳,别名字段作为where条件查询
有字段,a,b: a存的是:2016-10-10 b存的是:10:15:30 mysql将字段合并: concat(a, ' - ', b) 或者 concat(a, ' ', b) 字符时间转时间 ...
- 使用EPPLUS操作EXcel
使用EPPLUS操作EXcel 时间 2014-11-06 19:28:01 姜糖水 原文 http://www.cnphp6.com/archives/58648 主题 Excel 1 下载Ep ...
- 如何通过ildasm/ilasm修改assembly的IL代码
原文地址:http://kb.cnblogs.com/page/101162/ 这段时间为跟踪一个Bug而焦头烂额,最后发现是Framework的问题,这让人多少有些绝望.所以到微软论坛提了个帖子,希 ...
- WebGL 入门-WebGL简介与3D图形学
什么是WebGL? WebGL是一项使用JavaScript实现3D绘图的技术,浏览器无需插件支持,Web开发者就能借助系统显卡(GPU)进行编写代码从而呈现3D场景和对象. WebGL基于OpenG ...
- cookie、sessionStorage、localStorage区别
相同:不管sessionStorage localStorage 还是 cookie 都是存储用户数据的. 不同: 1.cookie的存储空间小, cookie的数据是会通过http请求带到服务器的( ...
- 学习manacher(最长公共回文串算法)
给定一个字符串求出其中最长个公共回文串. 举列子: abab -->回文串长度为2 以前的算法诸如: 扩展kmp求法过于麻烦,看到有一篇博文(http://leetcode.com/2011 ...
- 手动实现KVO
前言 KVO(Key-Value Observing, 键值观察), KVO的实现也依赖于runtime. 当你对一个对象进行观察时, 系统会动态创建一个类继承自原类, 然后重写被观察属性的sette ...
- SQL Server数据库(SQL Sever语言 事务)
事务:保障流程的完整执行保证程序某些程序在运行时同时成功同时失败,保证程序的安全性 begin tran --在流程开始的位置加 --此处写SQL语句 if @@error>0 --ERRORS ...
- oracle个人总结
oracle优化原则 1:insert 插入 (1):insert into /*+ append */ NOLOGGING 2: select 查询 (1):/*+ full(v) */ 全表查询 ...