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业务开发的领域,可是使用起来仍然是有限的,我以为这也是资料很少的缘由吧。spa

7. 远程事件接收器与传统的事件接收器相似,可是代码运行在外部的服务上。远程事件接收器对于开发来讲有些棘手,但APP是可使用的,由于传统的不能用在APP上。.net


提供的关键建议:代理

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应用程序均可用,须要彻底信任而且具备管理员权限,代码错误致使的异常严重时会形成整个服务器瘫痪,因此必定要当心。

最后再引用一个表格,在咱们实际进行开发任务的时候能够参考。


相关文章
相关标签/搜索