热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SharePointFramework(SPFx)安装配置以及开发基础篇

前言SharePointFramework(SPFx),是页面和Webpart的模型,完全支持本地开发(即完全可以脱离SharPoint环

 

  1. 前言

SharePoint Framework(SPFx),是页面 和Webpart的模型,完全支持本地开发(即完全可以脱离SharPoint环境在本地进行开发),SPFx包含了一系列的client-side Javascript类库用于开发你的solution,下面介绍一下用于开发client-side web parts的工具和类库.

1.1为什么选择SPFx

SharePoint Online出来之前,对于SharePoint WebPart的开发,基本上都是编写C# code,然后编译成dll,部署到客户的Farm中,但是在SPO出来之后这种方式显然已经不可以了,为了解决这个问题,微软主要引入了如下两种方式:

  • Javascript注入方式

在SPO中最常用的Webpart就是Content Editor和Script Editor,你可以使用JSOM或者REST API读取数据,然后显示在页面上,使用起来比较方便。但是这种方式还是有很多的缺点,例如:

  • 部署起来比较麻烦。
  • 不能给客户提供合理的配置界面,多数配置信息都是在code中写的。
  • End user很容易不小心把code修改坏了,导致webpart不工作。
  • 最重要的是Script Editor并不是"Safe For Scripting"多数Self-service 站点都会开启一个NoScript的feature,这样Script Editor中的脚本会被Block。
  • SharePoint add-in方式

目前比较流行的方式就是使用SharePoint Host的App Part的方式,这种方式实际上是把webpart做为一个Iframe引入到页面中,AppPart对应的页面实际上运行在一个独立的site里面,这种webpart可以添加到NoScript的站点中。但是这种方式也有一些缺点主要如下:

  • 这些code运行在Iframe中,这种方式会比Script Editor的方式慢,因为这种方式需要请求另一个页面,另一个页面也需要进行身份验证等操作。
  • 这种方式很难实现响应式布局,因为这个webpart实际上是在不同的页面中的,并且对于Iframe,Media query获得的屏幕大小实际上是Iframe的宽度,并不是真正意义上的屏幕宽度

结论:为了解决上面的两个问题,所以微软推出了SharePoint Framework作为下一代的开发方式,开发流程图:

需要安装配置的软件和环境如下图:

  • NodeJS Long Term Support (LTS) version
  • Visual Studio Code
  • Python 2.7.x

如果使用Visual Studio,还需要如下

  • Visual Studio 2015 plus Latest Update 3
  • NodeJS Tools for Visual Studio

1.2开发类库介绍

  • TypeScript

TypeScript是比Javascript更高级的语言,TypeScript中可以定义数据类型,接口,类,等等并且TypeScript最终可以编译成Javascript,SharePoint的client-side development tools就是使用Type Script的类,模型和接口来构建的。
关于TypeSctipt更多的详细信息请见如下链接:

  • TypeScript Quick Start
  • TypeScript PlayGround
  • TypeScript Handbook
  • TypeScript community on Stack Overflow

     

  • Javascript Frameworks

你可以使用比较熟悉的Javascript框架来 开发client-side web parts,以下是比较流行的JS框架:

  • React
  • AngularJS 1.x
  • Angular 2 for Type Script 2.x
  • Handlebars

因为编写client-side web part多数都是和SharePoint进行交互,所以这里建议大家使用SharePoint PnP Javascript Core library 框架,在这个框架中已经为我们封装好了很多简单易用的API。

 

  • Node Package Manager (npm)

SharePoint client-side 开发工具使用npm来管理依赖以及必要的Js库,安装Node.js会自动安装npm。

 

  • Node.js

Node.js是一个开源,用于运行Javascript 代码的跨平台运行环境。Node.js类似于IIS Express和IIS。关于Node.js更多信息请见下面链接:

  • About Node.js
  • Node.js API reference documentation
  • Node.js Usage and Example

     

  • Gulp task runner

SharePoint client-side 开发工具使用gulp打包工具做如下操作:

  • Bundle and minify Javascript and CSS files.
  • Run tools to call the bundling and minification tasks before each build.
  • Compile LESS or SASS files to CSS.
  • Compile TypeScript files to Javascript.
    更多关于Gulp的信息请见如下链接
  • Getting started with Gulp
  • TypeScript and Gulp
  • Articles about Gulp

     

  • Yeoman generators

Yeoman用于创建新的client-side web parts的工程,一旦工程创建完毕之后,你可以选择自己喜欢的IDE进行开发,常用的IED是Visual studio Code,Sublime Text或者Atom。更多信息见如下链接:

  • Scaffold a web app with Yeoman
  • List of available Yeoman generators

     

  • SharePoint REST API

SharePoint REST API主要用于和SharePoint环境交互,例如:添加删除修改list中的数据等等。

 

  1. 安装配置

2.1安装开发工具

  1. 安装Node.js
  • 安装NodeJS Long Term Support (LTS) v4.x.x (node-v4.5.0-x64.msi)version,安装如下:

    点【Next】下一步,选择选中复选框,如下图:

    选择安装目录,如下图:

     

     

  • 如果已经安装了Node.js,可以用命令行:node -v 检查下node.js的版本是否符合要求?以管理员身份的方式打开Node.js的命令行如下图:

     

     

  1. 运行安装 npm V3,输入命令行:npm install -g npm@3,如下图:

    出现如下后,表示已经成功运行 npm V3,如下图:

2.2安装编码工具

  1. 安装Visual Studio Code

使用代码编辑,我们这里使用Visual Studio Code,如下图:

 

 

安装完成如下图:

  1. 安装windows-build-tools

    windows-build-tools 将安装Visual C++ Build Tools 2015和Python 2.7,运行如下命令:npm install -g --production windows-build-tools,打开Node.js的命令行,如下图:

    开始在线下载工具,并进行自动配置,如下图:

     

     

     

    开始安装python脚本环境,如下图:

     

    最后安装完成,如下图:

安装编码环境和工具已经完成。

2.3安装Yeoman and gulp

Yeoman帮助你开始新的项目,并保持高效和最佳,SharePoint客户端开发工具包括一个用于创建新的Web部件 Yeoman generator。这个工具包括常见的样板代码和一个通用的web站点供host给webpart做测试使用。打开Node.JS命令行输入下命令:

npm install -g yo gulp

第一次运行运行如下图:

 

 

最后安装成功如下图:

如果已经安装过,但是先检查下,还是运行该命令行,如下图:

2.4安装Yeoman SharePoint generator

The Yeoman SharePoint web part generator helps you quickly create a SharePoint client-side solution project with the right toolchain and project structure.

打开Node.js命令行,运行如下命令:

npm install -g @microsoft/generator-sharepoint,如下图:

开始安装,如下图:

 

最后安装完成,如下图:

 

注意:根据实际需求,还可以安装如下工具(不是必选的),如下图:

  • Fiddler
  • Postman plugin for Chrome
  • Cmder for Windows
  • Oh My Zsh for Mac
  • Git source control tools

 

  1. 创建SharePoint client-side webpart

    创建client-side webpart的流程图如下:

3.1创建新的webpart

创建一个新的Hello World的WebPart,如下步骤:

  1. 创建一个hello word 目录工程,运行如下命令行:md helloworld-webpart,如下图:

  2. 进入hello world的目录,运行命令行:cd helloworld-webpart,如下图:

  3. 运行 Yeoman SharePoint Generator创建hello world的webpart。运行命令行:yo @microsoft/sharepoint,如下图:

     

    选择默认的或Y,往下走:

    选择默认的,一路回车往下走:

    创建完毕,如下图:

3.2预览新创建的webpart

3.2.1创建安全证书

预览webpart, The client-side默认采用https进行访问的,默认没有证书在环境中创建,因此SPFx toolchain可以帮你创建安装一个开发证书,运行如下命令行:

gulp trust-dev-cert,运行如下图:

回车继续,如下图:

选择【】则安装证书,如下图:

证书安装完毕。

3.2.2运行预览webpart

使用命令行运行预览webPart,运行命令行:gulp serve,如下图:

选择【IE浏览器】,如下图:

 

最后出现IE浏览的workbench,如下图:

选择点【+】J进行webpart的添加,如下图:

添加webpart后如下图:

3.2.3看看移动端的运行效果

注意:IE11下的2个移动端切换,是空白的,也许是个BUG或预览版本的问题,如下图:

  1. 手机设备下的效果图:

我改成搜狗浏览器,选择点【Mobile】图标进行手机移动端效果(默认iphone5)查看。如下图:

进行手机设备的切换,点击如下图所示:iphone 6 plus

在切换到Lumia 520下的效果,如下图:

 

  1. 平板电脑下的效果图:

在搜狗浏览器点【Tablet】,默认IPad下的效果图:

如图上面手机设备一样,可以切换设备。这样一个完整的webpart就自动创建好了。

  1. 使用Visual Studio Code查看源码

这里使用Visual studio Code查看源码,因为这个轻量级的工具,可以跨平台运行,可以在Mac和Linux下打开,当然有可以选择Visual Studio的专业版本。

在Node.js命令行运行命令:code .(未完待续)

  1. 使用Visual Studio 2015如何创建一个webPart

(未完待续)

  1. 如何修改代码增加webPart属性

(未完待续)

  1. 如何部署到正式的SharePoint环境中

(未完待续)

  1. 如何创建一个SharePoint列表

(未完待续)

 

转:https://www.cnblogs.com/love007/p/6274884.html



推荐阅读
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • ajaxfileupload.js 兼容ie9,10
    在使用ajaxfileupload.js上传文件时,ie9和ie10会报INVALID_CHARACTER_ERR(5)的错误,导致无法上传成功;网上查了一系列处理方式:如:把代码 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • 线程漫谈——线程基础
    本系列意在记录Windwos线程的相关知识点,包括线程基础、线程调度、线程同步、TLS、线程池等。进程与线程理解线程是至关重要的,每个进程至少有一个线程,进程是线程的容器,线程才是真正的执行体,线程必 ... [详细]
author-avatar
mobiledu2502884357
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有