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

SharePoint Framework是新的用来构建SharePoint自定制的开发模型,它专注于客户端开发并用热门的开源工具gulp、webpack等进行编译。这带来的最大优势是任何开发平台的开发者都可以参与SharePoint自定制的开发。

SharePoint Framework由一些不同的包组成,这些包有各自的版本。例如GA版的SPFx由以下包组成:

  • @microsoft/sp-client-base v1.0.0
  • @microsoft/sp-core-library v1.0.0
  • @microsoft/sp-webpart-base v1.0.0
  • @microsoft/sp-build-web v1.0.0
  • @microsoft/sp-module-interfaces v1.0.0
  • @microsoft/sp-webpart-workbench v1.0.0
所以在项目开发中我们需要注意这些包是否引用到了我们要使用的正确的版本。在搭建新项目时,Yeoman生成器会从当前SPFx发布版本中自动向包添加必要的引用,主要需要注意的是在更新时,每个包的版本是否有变化。
准备开发环境
关于开发环境的搭建部分,前面的文章已经介绍了,在此不再赘述。
构建SPFx开发环境
这里所说的环境不包含之前提到的安装组件部分,而是从整体上阐述开发环境应该是什么样子的,可以在哪些地方进行开发。
在过去,SharePoint开发者经常使用虚拟机作为他们的开发环境,他们在上面进行开发调试工作,以确保解决方案可以为特定的组织使用。开发者们会在他们的虚拟机上搭建SharePoint环境,安装SharePoint和补丁以保持和生产环境的一致。有些时候他们也会安装额外的软件来尽可能地匹配目标环境。
转到开发云解决方案之后,开发者不再需要在他们的开发机上运行SharePoint场环境,只需要云环境的账号并了解如何跟SharePoint交互就可以了。
SPFx专注于客户端开发,再也不需要在开发机上安装SharePoint环境了。项目需要的依赖框架和包都包含在了项目文件夹中,由项目指定。需要说明的是,SPFx更新很快,开发者必须确保使用的工具链和SPFx的版本是相一致的,上一篇也强调过这个问题。
共享的或个人的开发环境
SharePoint自定制范围从直接向页面添加简单的脚本到复杂的解决方案包。SPFx是专注于结构化和可复用的SharePoint自定制开发模型。在构建SPFx解决方案时,团队里的每名开发者使用他们自己的环境,通过源码控制系统进行代码共享以协同开发互不影响。
同时,进行SPFx开发降低了成本,可开发者可以使用市场标准的开发机器来构建SharePoint自定制解决方案;而不像传统的方式可能需要有跟生产环境一样消耗的开发机。
在宿主机器上开发
可能最简单的选项就是在宿主机器上配置SPFx开发环境,即直接在宿主机器上安装所有的工具和组件。如果你的团队只开发SPFx相关的项目,他们可以在自己的机器上安装Node.js;如果他们也开发其他的Node.js项目,那么他们可以使用第三方解决方案如nvm来运行多版本的Node.js。
在进行SPFx开发时,开发者会安装Yeoman和SharePoint Framework Yeoman generator,通常这两个工具是全局安装的,且随着SPFx的更新而更新。这样在更新SPFx时,他们不得不卸载当前版本去安装新的版本。更可行的方法是全局安装Yeoman,但是在本地既定的项目上安装generator。
在宿主机器上开发的好处是软件直接在上面运行,可以直接访问CPU、内存和磁盘I/O,得到了更好的性能。
在虚拟机中开发
在过去最常见的SharePoint开发者开发SharePoint相关解决方案的方式就是使用虚拟机,开发SPFx解决方案时也可以采用这种方式。但是使用虚拟机并不是没有弊端。虚拟机一般都很大,且需要使用强大的机器进行承载以达到期望的性能。而且,维护的成本也很高,开发者必须对自己的虚拟机进行持续的系统更新,安装不要的补丁。在一个团队中,很难保证团队所有成员的所有虚拟机是一致的。从这个角度考虑的话,使用虚拟机来开发SPFx解决方案很昂贵,开销大且时间长。
使用Docker开发
介于在宿主机器开发和在虚拟机开发的中间地带,我们也可以使用Docker进行开发。这里笔者不会过多地对Docker进行解释,它是一个跟虚拟机类似的软件虚拟化技术,但是有一些区别。使用Docker镜像最大的优势是它比虚拟机更容易创建、维护和分发,它们更加轻量级(一般只有几百M),并且开发者可以在Docker中使用宿主机器中安装的工具。
Docker容器运行了一个操作系统的虚拟实例(基于Linux)。用镜像创建的容器中的所有软件都是在容器中独立运行的,只能够访问宿主机器共享给容器的文件系统。在容器关闭时,所有在容器内对文件系统的更改都会被丢弃。
更多信息可以戳这里

SharePoint Framework 基于团队的开发(一)的更多相关文章

  1. SharePoint Framework 基于团队的开发(二)

    博客地址:http://blog.csdn.net/FoxDave 本篇介绍SPFx项目的一般开发流程.SharePoint Framework基于开源的工具链,也遵循开源技术栈中其他项目的开发流程. ...

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

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

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

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

  4. SharePoint Framework 基于团队的开发(三)

    博客地址:http://blog.csdn.net/FoxDave 用内部包进行开发 由于你的团队在开发客户端解决方案,你很可能构建通用代码库来在项目中重用.在很多情况下这种库包含的代码是内部所有的不 ...

  5. SharePoint Framework 开发工具和库

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

  6. Wizard Framework:一个自己开发的基于Windows Forms的向导开发框架

    最近因项目需要,我自己设计开发了一个基于Windows Forms的向导开发框架,目前我已经将其开源,并发布了一个NuGet安装包.比较囧的一件事是,当我发布了NuGet安装包以后,发现原来已经有一个 ...

  7. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发         之前提到过, ...

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

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

  9. “多团队大规模”开发模式 - 基于SAP HANA平台的多团队产品研发

    应用SAP HANA “官方”开发模式的伙伴们在转到“多团队大规模”开发模式时会遇到各式各样的心理不适应的状况,各种纠结.比如GIT Repository和HANA Repository冲突什么的. ...

随机推荐

  1. Flask最强攻略 - 跟DragonFire学Flask - 第十四篇 Flask-SQLAlchemy

    前不久刚刚认识过了SQLAlchemy,点击这里复习一下 当 Flask 与 SQLAlchemy 发生火花会怎么样呢? Flask-SQLAlchemy就这么诞生了 首先要先安装一下Flask-SQ ...

  2. 【数据使用】3k水稻数据库现成SNP的使用

    ---恢复内容开始--- 我们经常说幻想着使用已有数据发表高分文章,的确,这样的童话故事每天都在发生,但如何走出第一步我们很多小伙伴不清楚,那么我们就从水稻SNP数据库的使用来讲起. http://s ...

  3. java开发中中文编码问题

    //ajax以get方式提交,字符串中包含中文 //后台struts中对该string的set方法中 this.jsonString = new String(jsoString.getBytes(& ...

  4. K8S学习笔记之Kubernetes数据持久化方案

    在开始介绍k8s持久化存储前,我们有必要了解一下k8s的emptydir和hostpath.configmap以及secret的机制和用途. 0x00 Emptydir EmptyDir是一个空目录, ...

  5. 腾讯出品的一个超棒的 Android UI 库

    腾讯出品的一个超棒的 Android UI 库 相信做 Android 久了大家都会有种体会,那就是 Android 开发相对于前端开发来说统一的 UI 开源库比较少.造成这种现象的原因一方面是大多数 ...

  6. 剑指offer(9)变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目分析 根据上一个题目可以知道,青蛙只跳1或2可以得出是一个斐波那契问题,即 ...

  7. Java Web获取Web应用根路径

    最基本的 1,request.getRealPath("/");这个方法已不推荐用 2,在Servlet 里用this.getServletContext().getRealPat ...

  8. centos linux查看硬盘型号

    [root@]# smartctl --all /dev/sdasmartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-957.1.3.el7.x86_6 ...

  9. react中使用antd遇到的问题

    1.less使用报错 less配置修改一般都是1个修改1个增加 test: /\.(css|less)$/, // 修改 // 增加 { loader: require.resolve('less-l ...

  10. 【Bilinear interpolation】双线性插值详解(转)

           最近在做视频拼接的项目,里面用到了图像的单应性矩阵变换,在最后的图像重映射,由于目标图像的坐标是非整数的,所以需要用到插值的方法,用的就是双线性插值,下面的博文主要是查看了前辈的博客对双 ...