博客地址:http://blog.csdn.net/FoxDave

本文翻译自新出的SharePoint Framework概述介绍文章,原文地址:http://dev.office.com/sharepoint/docs/spfx/sharepoint-framework-overview

注意:SharePoint Framework目前是预览版,会随时更新,目前并不支持在生产环境使用SharePoint Framework 客户端Web部件。

SharePoint Framework(SPFx)是一个页面和Web部件模型,它提供了对SharePoint客户端开发的全面支持,能够轻松地集成SharePoint数据,并支持开源工具。通过SPFx,你可以从一开始就在你偏爱的开发环境中使用现代的web技术和工具,结合生产实际经验来构建响应式的和适应移动端的应用程序。SPFx同时支持SharePoint本地和Online环境。

SPFx的核心功能包括如下:

  • 没有iFrame,在浏览器当前用户和连接的上下文运行。
  • 控件在正常页面的DOM中被渲染。
  • 控件原本就是响应式和可访问的。
  • 使开发者可以访问生命周期,包括但不限于渲染加载、序列化、反序列化和配置变更。
  • 框架无关,可以使用任何你喜欢的浏览器框架,比如React、Handlebars、Knockout、Angular等。
  • 工具组基于公共开源客户端开发工具,比如npm、TypeScript、Yeoman、webpack和gulp等。
  • 性能可靠
  • 终端用户可以在所有的网站(包括自服务网站、个人网站、组网站)使用经过租户管理员批准的SPFx客户端解决方案。
  • 解决方案可以部署在传统的Web部件、发布页面和现代页面。

运行时模型在脚本编辑器Web部件做了改进。包含了强健的客户端API,一个Http客户端对象来处理SharePoint和Office 365的验证,上下文相关的信息,简单的属性定义,配置等。

如果你在Visual Studio中使用C#或者是JavaScript,你需要学习一些客户端JavaScript的开发知识。你的大部分技术知识是可以直接拿来用的。你将会视你的需求使用REST服务或者JSOM对象模型。数据模型没有任何变化。如果你是一个C#开发者,TypeScript是转变到JavaScript的一个很好的途径。IDE的选择取决于你。许多开发者喜欢使用跨平台的IDE,Visual Studio Code,同时,Visual Studio也有了一个用于新开发环境的插件。许多开发者也会使用像Sublime和ATOM这样的产品。使用你最擅长的。

为什么用SPFx?

SharePoint在2001年开始,以本地产品的形式被推出。随着时间的推移,一个庞大的开发者社区以多种方式延伸并成型。绝大多数情况下,开发者社区沿用了SharePoint产品开发团队使用的模式和实践,包括Web部件,SharePoint功能XML等。并且许多功能是应用C#开发的,被编译成DLL,部署到服务器上。

这种解决方案在单一的企业环境里运行得很好,但是并不适用于多租户并行环境的云。因此,我们引入了两个可供选择的模型:客户端JavaScript注入和SharePoint Add-ins。他们有各自的优缺点。

JavaScript注入

脚本编辑器是SharePoint Online中最受欢迎的Web部件之一。你可以通过脚本编辑器粘贴JavaScript代码到里面,让它在页面渲染的时候执行。它非常简单和基础,却很有效。它运行在跟页面一样的浏览器上下文和DOM中,因此能够跟页面上的其他控件进行交互。它也具有相当的性能,并且易于使用。

然而,这种实现方式还有一些不足。首先,尽管你的解决方案可以打包成控件让终端用户很容易的拖到页面上,你不能轻松地提供配置选项。然后,终端用户可以修改页面和脚本,这会破坏Web部件。另一个很大的问题是脚本编辑器Web部件并没有被标识为“Safe For Scripting(脚本安全的)”。大部分自服务网站集(我的网站、工作组网站、组网站)都激活了一个叫做“NoScript(无脚本)”的功能。严格地说,它移除了SharePoint中的添加/定制页面(Add/Customize Page)(ACP)权限。这意味着脚本编辑器Web部件在这些网站上将会被阻止。

SharePoint Add-in model

目前运行在无脚本网站的解决方案是add-in/应用部件模型。该实施创建了一个iFrame,实际的内容在iFrame里驻留和执行。优点是易于信息工作者信任和部署,因为它对于系统来说是外部的,没有权限访问当前的DOM/连接。终端用户可以在无脚本网站安装add-ins。

该方案也有一些缺点。首先,它们在iFrame中运行。iFrame比脚本编辑器Web部件要慢,因为它需要向另一个页面发起一个新的请求,那个页面还要通过认证和授权来使它自身能够被调用去获取SharePoint数据,加载各种JavaScript类库等。比如一个脚本编辑器可能需要100毫秒去加载和渲染但是一个应用部件可能需要2秒或更多的时间。然后,iFrame边界使得创建响应式布局、继承CSS和主题信息变得更加困难。iFrames有很强的安全性,可能会对你(你的页面不能被页面上的其他控件访问)和终端用户(控件没有权限访问他们Office 365的链接)有益。

SharePoint Framework

从历史观点上说,我们通过把完全信任的C#程序集安装到云服务器来创建Web部件。然而,当前大多数的开发模型包含了在浏览器端运行的JavaScript,通过REST API调用SharePoint和Office 365后台的工作负载。C#程序集在这里就无能为力了,我们需要一个新的开发模型。SharePoint Framework就是SharePoint开发中新的演化。

其他的关于SPFx的license、相关的资源等信息请访问原文链接。

SharePoint Framework 概述的更多相关文章

  1. SharePoint Framework 开发工具和库

    博客地址:http://blog.csdn.net/FoxDave SharePoint Framework包含一些客户端JavaScript库,你可以用来构建自己的解决方案.本文提供了你可以用来 ...

  2. SharePoint Framework:下一代开发方式

    SharePoint Framework(SPFx),是页面 和Webpart的模型,完全支持本地开发(即完全可以脱离SharPoint环境在本地进行开发),听起来是不是很高级呢,早期SharePoi ...

  3. SharePoint Framework 配置Office 365开发者租户

    博客地址:http://blog.csdn.net/FoxDave 你需要一个Office 365开发者租户来使用预览版SharePoint Framework构建和发布客户端web部件.你的租户 ...

  4. SharePoint Framework (SPFx)安装配置以及开发-基础篇

    前言 SharePoint Framework(SPFx),是页面 和Webpart的模型,完全支持本地开发(即完全可以脱离SharPoint环境在本地进行开发),SPFx包含了一系列的client- ...

  5. SharePoint Framework 简介

    作者:陈希章 发表于 2017年12月25日 前言 通过前面几篇文章,我相信大家对于SharePoint Online的开发有了更加全面的认识,上一篇 介绍的SharePoint Add-in的开发, ...

  6. SharePoint Framework 在web部件中使用第三方样式 - 将第三方样式打到包中

    博客地址:http://blog.csdn.net/FoxDave 有许多第三方库可以帮助我们构建丰富的SharePoint Framework客户端web部件.并且这些JavaScript脚本常常包 ...

  7. SharePoint Framework 在web部件中使用已存在的JavaScript库 - JavaScript库的格式

    博客地址:http://blog.csdn.net/FoxDave JavaScript库格式 不同的JavaScript库的编译和打包方式各不相同.一些是以模块的方式打包的,而另一些是以纯脚本运行在 ...

  8. SharePoint Framework 基于团队的开发(五)

    博客地址:http://blog.csdn.net/FoxDave 升级SharePoint Framework项目 部署SharePoint自定制解决方案到生产环境并不意味着生命周期的结束,因为还有 ...

  9. SharePoint Framework 基于团队的开发(四)

    博客地址:http://blog.csdn.net/FoxDave 确保代码一致性和质量 软件开发团队常常同项目的一致性和高质量做斗争.不同的开发者有不同的编码风格和偏好.在每个团队都有技术优秀的独立 ...

随机推荐

  1. select 和 input 的不可编辑,input隐藏

    select 没有readOnly属性 在jsp中 <select  id="a" name="a" disabled="disabled&qu ...

  2. IaaS/PaaS/SaaS

    如果你是一个网站站长,想要建立一个网站.不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序.现在你追随潮流,采用流行的云计算,如果你采用IaaS服务,那么意味着你就不用自己买服 ...

  3. java对国际化的支持

    国际化的英文为Internationalization,这个也太长了,所以它又称为I18n(英文单词 internationalization的首末字符i和n,18为中间的字符数). 除了i18n还有 ...

  4. 【JAVA】【leetcode】【使用堆栈实现后向计算】

    题目:evaluate-reverse-polish-notation 要求: Evaluate the value of an arithmetic expression in Reverse Po ...

  5. 弹性盒布局(FlexBox)

    CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定.调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简 ...

  6. JAVA08多态之课程问题解决

    课后作业一:接口多态:使用接口代替抽象基类 1.源代码: package zoo4; import java.util.Vector; public class Zoo2 { public stati ...

  7. 声明变量,一定要用 var!

    public static T TryGet<T>(Func<T> func, T ifError = default(T)) { try { return func(); } ...

  8. ArcGIS GDB 文件中的lock文件影响复制

    复制或压缩gdb文件的时候,经常碰到有lock文件,解决方法是: 在catalog中停止相应的地图服务 如果用catalog预览过相应的地图,关闭catalog

  9. SSM框架学习之高并发秒杀业务--笔记5-- 并发优化

    前几节终于实现了这个高并发秒杀业务,现在问题是如何优化这个业务使其能扛住一定程度的并发量. 一. 优化分析 对于整个业务来说,首先是分析哪些地方会出现高并发,以及哪些地方会影响到了业务的性能.可能会出 ...

  10. CALayer 2 详解 -----转自李明杰

    CALayer2-创建新的层   本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UICol ...