概述

前不久我写过一篇文章拥抱开源,Office 365开发迎来新时代,给大家介绍了Office 365开发的典型场景是如何支持开源平台的:Office 365通过Microsoft Graph,以REST API的方式提供服务,任何开发平台都可以很方便地与其进行集成;Office Add-ins,SharePoint Add-ins和Microsoft Teams Apps开发,都可以基于标准的Web开发技术栈来实现,而且官方提供了对NodeJS,React,TypeScript等主流平台和框架的默认支持(工具和模板层面都有)。

文章发表之后,我收到不少反馈,其实我内心深处牵挂的还有广大的.NET开发人员啊。大家知道,.NET从头到脚都是已经完全开源了的,针对Office 365的这些开发场景,是否有开箱即用的模板可供大家使用呢?利用周末的时间,我开始了这个新的项目,就是为大家整理出来一套标准的.NET Core模板库,欢迎用你最熟悉的姿势关注 https://github.com/chenxizhang/dotnetcore-office365dev-templates,你可以简单粗暴地直接给我 star,也可以 fork 这个项目通过 pull request 提交你的模板,你还可以通过issue通道给我反馈问题。

这一套模板库,不仅仅可以降低广大的.NET 开发人员(准确地说是.NET Core开发人员)学习和使用Office 365开发平台的门槛(尤其是如何在不同的场景下完成OAuth认证以及快速通过实例学习Graph的典型功能),还有一个独特的价值是可以让你在国际版和国内版这两个平台的选择和切换过程中少走一些弯路,我相信真正做过这方面开发的朋友们现在一定是热泪盈眶的表情。

希望大家喜欢!

计划支持的模板


先决条件

要使用这些模板,你只需要在开发机器上面安装了 .NET Core SDK 版本2.0 及以上即可。请通过官方网站提示到的方式进行下载和安装(https://www.microsoft.com/net/download/)。请注意,我们现在是跨平台的哦,无论Windows,还是Mac,或是Linux都支持进行.NET Core开发。

另外,你可能至少需要一款代码编辑器,你可以安装Visual Studio,也可以使用Visual Studio Code,甚至是任何一个文本编辑器。我是使用 Visual Studio Code.

如何安装模板

安装这些模板非常简单,你只需要一行命令即可,dotnet new -i 模板标识,例如使用dotnet new -i chenxizhang.dotnetcore.msgraph.console.CSharp 来安装可以快速实现Microsoft Graph的控制台应用程序模板。

如何使用模板

模板安装成功后,你可以在模板列表中看到这些新的模板,每个模板都有一个短名称(Short Name),你可以通过 dotnet new 模板短名称来使用这些模板,例如 dotnet new graphconsole 这句命令就可以快速基于模板创建一个可以快速实现Microsoft Graph的控制台应用程序。

每个模板都带有一些参数以便支持不同的场景,最典型的参数是 --instance,这个参数将告诉模板引擎,你使用的Office 365环境是国际版还是国内版的,它是一个必填项,有两个选项,分别是global代表国际版,gallatin代表国内版,但默认会设置为国际版。

你不需要记住所有这些参数,而是可以通过 dotnet new 模板短名称 -h这样的命令来查看该模板的介绍和参数说明。

每个模板都带有一个详细的说明文档,你可以点击上表中模板短名称跳转,同时在生成的代码文件的顶部也有链接,我非常欢迎大家给我反馈。

如何卸载模板

在如下两种情况下,你可能需要卸载模板

  1. 你不再喜欢这些模板(我希望这种情况不会发生)

  2. 你需要安装模板的更新版本

无论是哪一种原因,你都可以随时简单地通过 dotnet new -u 模板标识 进行卸载,例如dotnet new -u chenxizhang.dotnetcore.msgraph.console.CSharp可以卸载控制台应用程序模板。请放心,我不会带走一片云彩。

常见问题解答(将持续更新)

  1. 这些模板支持哪些开发语言?

    目前仅支持C#。限于能力和精力,其他的语言暂时没有支持计划,欢迎有其他语言特长(例如F#,VB.NET等)的朋友参与该项目。

Office 365 应用开发的 .NET Core 模板库的更多相关文章

  1. dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱

    在上一篇文章(.NET Core开源行动:一键创建Excel Add-in) 中我给大家展示了一套为Office 365 Add-in开发人员准备的模板库,你可以通过 dotnet new excel ...

  2. Office 365也是.NET Core应用开发新战场

    最近有幸阅读了陈希章花了一年时间为国内开发者贡献的<Office 365 开发入门指南>. 虽然早期接触过SharePoint的开发,2007年之后就再也没有接触SharePoint的开发 ...

  3. 拥抱开源,Office 365开发迎来新时代

    前言 作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日.自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软 ...

  4. Office 365开发环境概览

    本文于2017年3月26日首发于LinkedIn,原文链接请参考这里 本系列文章已经按照既定计划在每周更新,此前的几篇文章如下 Office 365 开发概览系列文章和教程 Office 365开发概 ...

  5. Office 365 机器人(Bot)开发入门

    作者:陈希章 发表于 2017年7月29日 前言 作为人工智能技术的一个主要的表现形式,这些年机器人(bot)的应用越来越广泛.不管是有实物的,还是纯软件的,现在的机器人技术应该说已经走入寻常百姓家了 ...

  6. [ Office 365 开发系列 ] 开发模式分析

    前言 本文完全原创,转载请说明出处,希望对大家有用. 在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式. 阅读目录 Of ...

  7. Office 365开发概述及生态环境介绍(二)

    本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...

  8. Office 365 开发概览系列文章和教程

    Office 365 开发概览系列文章和教程 原文于2017年2月26日首发于LinkedIn,请参考链接 引子 之前我在Office 365技术社群(O萌)中跟大家提到,3月初适逢Visual St ...

  9. 《Office 365开发入门指南》上市说明和读者服务

    写在最开始的话 拙作<Office 365开发入门指南>上周开始已经正式在各大书店.在线商城上市,欢迎对Office 365的开发.生态感兴趣的开发者.项目经理.产品经理参考本书,全面了解 ...

随机推荐

  1. Spring学习笔记四 整合SSH

    三大框架架构(整合原理) 步骤1:导包 Hibernate包 1.Hibernate包,hibernate/lib/required 2.hibernate/lib/jpa | java persis ...

  2. [开源] yvm - 自制Java虚拟机

    项目地址 : https://github.com/racaljk/yvm 虚拟机现在已可运行(不过还有很多待发现待修复的bugs),已支持语言特性有: Java基本算术运算,流程控制语句,面向对象. ...

  3. 2017-2018-1 Java演绎法 小组会议及交互汇总

    第一周会议 今天我们小组开展了第一次团队例会活动.我们小组将<构建之法>分为了六个部分并由六位成员先分别学习并向组长上传学习收获,这次的活动内容便是 交流前两周小组成员学习阅读<构建 ...

  4. TensorFlow实现Softmax Regression识别手写数字中"TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”问题

    出现问题: 在使用TensorFlow实现MNIST手写数字识别时,出现"TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应 ...

  5. ThreadLocal就是这么简单

    前言 今天要研究的是ThreadLocal,这个我在一年前学习JavaWeb基础的时候接触过一次,当时在baidu搜出来的第一篇博文ThreadLocal,在评论下很多开发者认为那博主理解错误,给出了 ...

  6. 双击CAD对象(具有扩展数据),显示自定义对话框实现方法

    转自:Cad人生 链接:http://www.cnblogs.com/cadlife/p/3463337.html 题目:双击CAD对象,显示自定义对话框实现方法 内容粘贴如下: 主要是绑定两个事件: ...

  7. java获取本类路径

    (1).Test.class.getResource("") 得到的是当前类FileTest.class文件的URI目录.不包括自己! (2).Test.class.getReso ...

  8. hadoop2.6.0实践:A02 问题处理 util.NativeCodeLoader: Unable to load native-hadoop library for your platform

    ############################################################# hadoop "util.NativeCodeLoader: Un ...

  9. python入门(1)python的前景

    python入门(1)python的前景 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于 ...

  10. kafka--producer 发布消息

    1. 写入方式 producer 采用 push 模式将消息发布到 broker,每条消息都被 append 到 patition 中,属于顺序写磁盘(顺序写磁盘效率比随机写内存要高,保障 kafka ...