使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用...

24
Office 365 DevDays 2017.11.4-6 | 上海 Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Transcript of 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用...

Page 1: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Office 365 DevDays

2017.11.4-6 | 上海

Office 365 DevDays

2017.11.4-6 | 上海

使用 SharePoint Framework Extensions对 SharePoint 进行扩展

章明,黎俊乐

微软(中国)有限公司

Page 2: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

介绍

• SharePoint Framework

教程一

• SharePoint Extensions定制化

教程二

• Microsoft Graph 集成

实验

• 定制化你的 SharePoint 页面

目 录CONTENTS

Page 3: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

先决条件

• TypeScript

• SharePoint Framework

• Microsoft Graph基本概念

• Windows/Mac

• Visual Studio Code

• Node.js开发环境

• Office 365 账号运行环境

Page 4: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

预期结果

包括

✓了解 SharePoint Framework Extensions 的使用场景

✓开发,测试和部署SharePoint Framework Extensions

✓使用 SPFx Graph HTTP Client 为你的 Extension 提供支持

不包括

完整的 SharePoint Framework 介绍

完整的 Microsoft Graph 的使用教程

Page 5: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

配置开发环境

• 安装 Node.js v6.x

• 打开 CMD,运行下面命令安装所需工具• npm install –g yo gulp @microsoft/generator-sharepoint

• 新建项目文件夹,生成 SPFx Extension 模板• yo @microsoft/sharepoint• 选择 Extension 和 Application Customizer• 安装 npm 依赖可能需要比较长时间

• 下载我们的Demo Sample• https://github.com/Shanghai2017/spfx-extensions

Page 6: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

重新定义 SharePoint

团队网站 沟通网站

Page 7: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

SharePoint 网站架构

Page 8: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

SharePoint Framework 组件

Web Parts Extensions

Client side ToolsSP APIsPackage

Deployment

Exp

eri

en

ces

Develo

pm

en

t

CSOM

Add-ins MS Graph

Page 9: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

详细了解SharePoint Framework

https://channel9.msdn.com/Events/Ignite/Microsoft-Ignite-China-2016/PRO-B303

Page 10: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

用户场景

作为公司 IT 部门,要建立一个 IT 培训网站

•建立一个 SharePoint 列表保存培训视频

•在培训列表的页面上,显示下一个培训的时间和信息

•把每个培训视频显示成 iframe播放器

•在培训视频的关联菜单,添加一个显示链接二维码的按钮

•通过关联菜单,把培训任务加到 Microsoft Planner 里面

Page 11: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

演示

Page 12: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Extensions 类型

Application

Customizer

List View Command Set

Field Customizer

Page 13: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Application Customizer 开发在 List 页面上,显示下一个培训的时间和信息

生成项目文件夹

•运行 yo @microsoft/sharepoint 生成项目模板

•在提示对话中,选择 Extension 和 Application Customizer

运行范例代码

•运行 gulp trust-dev-cert 信任本地开发证书,保证链接可以通过 HTTPS 访问

•把测试页面链接填入 serve.json 文件,运行 gulp serve,注意弹框显示的 Test Message

添加业务逻辑

•比较当前时间和每个培训项目的时间,得到下一次培训的信息

•使用页面占位符展示下一次培训的信息

使页面更加好看

•使用 Module CSS 给元素添加样式

•使用 getIconClassName 函数添加 Fabric 图标

Page 14: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Field Customizer 开发把每个培训视频显示成 iframe 播放器

添加项目到现有文件夹

•在已有的文件夹里,运行 yo @microsoft/sharepoint 添加新的项目

•在提示对话中,选择 Extension 和 Field Customizer

•选择 React 框架,后面会使用到Office UI Fabric React 简化我们的实现

优化 Bundle 文件

•把两个项目打包到同一个 Bundle中,优化网络下载大小

运行范例代码

•注意列表中格子的内容被动态地修改

添加业务逻辑

•在 Channel9 的视频链接后面拼上 /player,可以得到视频的 iframe 播放链接

•添加一个 React 组件,把 iframe 播放器渲染到 DOM 上

•添加一个透明按钮,配合 Fabric React Modal 组件,控制视频弹框显示

Page 15: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

List View Command Set 开发在培训视频的关联菜单,添加一个显示链接二维码的按钮

添加项目到现有文件夹

• 在已有的文件夹里,运行 yo @microsoft/sharepoint 添加新的项目

• 在提示对话中,选择 Extension 和 List View Command Set

• 修改配置文件,把生成的项目打包到已有的 Bundle 里面

运行范例代码

• 选中某一行后,注意关联菜单上出现的新按钮

更新按钮的声明

• 在 manifest 文件中,修改这些按钮的声明,给他们配置一些好看的图标

添加业务逻辑

• 在选中并只选中一行的时候,才显示这个按钮

• 使用 QRCode 库生成二维码,通过 SPFx Dialog 把它显示出来

Page 16: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Microsoft Graph 集成

Page 17: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Microsoft Graph 集成通过关联菜单,把培训任务加到 Microsoft Planner 里面

使用 Graph Explorer 测试 API 的权限

• 使用到的 Graph 实例间的层次关系:Group > Plan > Task ,需要用到 Group.ReadWrite.All 权限

• SPFx Graph HTTP Client 提供了 User.Read.All、 Group.ReadWrite.All 和 Reports.Read.All 权限

创建运行所需的 Plan

• 到 https://tasks.office.com 预先创建一个 Plan,命名为 IT Training

• 它会自动创建一个同样名字的 Group

创建 Extension,声明按钮,添加业务逻辑

• 运行 yo @microsoft/sharepoint 添加一个新的 List View Command Set

• 在 Command Set 的 manifest 文件中,添加一个 ADD_TASK 按钮的声明

• 通过 Graph API 获取名字为 IT Training 的 Group。在这个 Group 下,获取名字为 IT Training 的 Plan。给这个 Plan,添加一个选中培训的 Task

• 以上任何步骤出错了,就把错误信息显示出来

Page 18: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

SharePoint Extensions 生产环境部署把做好的炫酷功能发布给小伙伴尝试一次吧!

使用 Site Assets 作为 Bundle 的存放地址

•在 SharePoint 的 Site Assets 文件夹中,建立 spfx-extensions子文件夹

•更新 write-manifests.json文件,把 cdnBasePath的值更改为 spfx-extensions的访问链接

•运行 gulp --ship,把 ./temp/deploy文件夹下的 JavaScript 文件上传到 spfx-extensions 文件夹里

创建 App 并上传到 App Catalog

•在 element.xml 中定义 3 个 Extension 的入口配置

•运行 gulp package --production 生成 App 文件(后缀为 .sppkg)

•建立或打开 App Catalog,把 spfx-extensions.sppkg文件上传到上面

添加 App 并检查 Extension 工作正常

•在 IT Training 的 Site Contents 中,添加名为 spfx-extensions的 App

•在 Video 列表的设置页面,添加 SPFx Columns 组里面的 Video 列

•打开 Video 列表页面,检查 3 个 Extension 都可以正常工作

Page 19: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

现在来动手实验一下吧!

SharePoint Framework Extensions

• Application Customizer

• Field Customizer

• List View Command Set

Microsoft Graph

• Azure Active Directory

• Users API

• Groups API

• OneDrive API

Page 20: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

谢谢观看!如需更多资料,请访问我们的 GitHub Repo

https://github.com/Shanghai2017/spfx-extensions

SharePoint Framework Githttps://github.com/SharePoint/

2016微软北京Ignite大会

https://channel9.msdn.com/Events/Ignite/Microsoft-Ignite-China-2016/PRO-B303

Page 21: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Office 365 DevDays

Page 22: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司
Page 23: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Framework 运行流程SharePoint Service

Page 24: 使用 SharePoint Framework Extensions 对 …...Office 365 DevDays 2017.11.4-6 | 上海 使用 SharePoint Framework Extensions 对 SharePoint 进行扩展 章明,黎俊乐 微软(中国)有限公司

Extensions 运行流程SharePoint Service