Office 365 应用开发的 .NET Core 模板库
概述
前不久我写过一篇文章拥抱开源,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这样的命令来查看该模板的介绍和参数说明。
每个模板都带有一个详细的说明文档,你可以点击上表中模板短名称跳转,同时在生成的代码文件的顶部也有链接,我非常欢迎大家给我反馈。
如何卸载模板
在如下两种情况下,你可能需要卸载模板
- 你不再喜欢这些模板(我希望这种情况不会发生)
 - 你需要安装模板的更新版本
 
无论是哪一种原因,你都可以随时简单地通过 dotnet new -u 模板标识 进行卸载,例如dotnet new -u chenxizhang.dotnetcore.msgraph.console.CSharp可以卸载控制台应用程序模板。请放心,我不会带走一片云彩。
常见问题解答(将持续更新)
- 这些模板支持哪些开发语言?
目前仅支持C#。限于能力和精力,其他的语言暂时没有支持计划,欢迎有其他语言特长(例如F#,VB.NET等)的朋友参与该项目。
 
Office 365 应用开发的 .NET Core 模板库的更多相关文章
- dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱
		
在上一篇文章(.NET Core开源行动:一键创建Excel Add-in) 中我给大家展示了一套为Office 365 Add-in开发人员准备的模板库,你可以通过 dotnet new excel ...
 - Office 365也是.NET Core应用开发新战场
		
最近有幸阅读了陈希章花了一年时间为国内开发者贡献的<Office 365 开发入门指南>. 虽然早期接触过SharePoint的开发,2007年之后就再也没有接触SharePoint的开发 ...
 - 拥抱开源,Office 365开发迎来新时代
		
前言 作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日.自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软 ...
 - Office 365开发环境概览
		
本文于2017年3月26日首发于LinkedIn,原文链接请参考这里 本系列文章已经按照既定计划在每周更新,此前的几篇文章如下 Office 365 开发概览系列文章和教程 Office 365开发概 ...
 - Office 365 机器人(Bot)开发入门
		
作者:陈希章 发表于 2017年7月29日 前言 作为人工智能技术的一个主要的表现形式,这些年机器人(bot)的应用越来越广泛.不管是有实物的,还是纯软件的,现在的机器人技术应该说已经走入寻常百姓家了 ...
 - [ Office 365 开发系列 ] 开发模式分析
		
前言 本文完全原创,转载请说明出处,希望对大家有用. 在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式. 阅读目录 Of ...
 - Office 365开发概述及生态环境介绍(二)
		
本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...
 - Office 365 开发概览系列文章和教程
		
Office 365 开发概览系列文章和教程 原文于2017年2月26日首发于LinkedIn,请参考链接 引子 之前我在Office 365技术社群(O萌)中跟大家提到,3月初适逢Visual St ...
 - 《Office 365开发入门指南》上市说明和读者服务
		
写在最开始的话 拙作<Office 365开发入门指南>上周开始已经正式在各大书店.在线商城上市,欢迎对Office 365的开发.生态感兴趣的开发者.项目经理.产品经理参考本书,全面了解 ...
 
随机推荐
- beta冲刺4
			
昨天的问题: 我的社团数据库表项的处理,代码修改后结果无法显示. 帖子内容无法显示出来. 首页图像未替换 登陆整合没有完成 今天的完成: 服务器部署成功 页面背景修改.(已上传,未确认实装.) 任务截 ...
 - Beta No.2
			
今天遇到的困难: 组员对github极度的不适应 Android Studio版本不一致项目难以打开运行 移植云端的时候,愚蠢的把所有项目开发环境全部搬上去.本身云的内存小,性能差,我们花费了太多时间 ...
 - WPF自学入门(十)WPF MVVM简单介绍
			
前面文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI. 我们不管 ...
 - javascript参数传递中处理+号
			
在传值过程中,如果+号也是值的一部分,那就需要对+号进行处理.否则+号会被过滤掉. 处理方式:只需要把js中传过去的+号替换成base64 编码 %2B encodeURI(str).replace( ...
 - javascript 腾讯ABS云平台面试题及面试经历
			
既然说到面试前端肯定是Javascript各种问,只好各种答. 面试题肯定离不了,最近热门的Vue.js,React.js,Angular.js,Gulp,Webpack还有各种Js问题,还有令人头痛 ...
 - var、let、const区别
			
1.let不存在变量提升,必须升明后才可用. 'use strict'; (function(){ console.log(varTest); console.log(letTest); var va ...
 - prop attr 到底哪里不一样?
			
好吧 首先承认错误 说好的每天进行一次只是总结 但是我没坚持住 准确的来说 我并没有每天会学到了东西 但是 我一直在持续努力着 以后应该不会每天都写 但是自己觉得有用的 或者想加强记忆的 可 ...
 - PCB名詞解釋:通孔、盲孔、埋孔(转载)
			
文章转载自:https://www.researchmfg.com/2011/07/pth-blind-hole-buried-hole/ PCB名詞解釋:通孔.盲孔.埋孔 Posted by 工作熊 ...
 - Mego(08) - 高级建模
			
对于模型建立Mego还提供了一些高级主题 数据库函数映射 我们可以将现有的CLR方法映射到指定数据库的标题函数上,如下所示 public class OrderManageEntities : DbC ...
 - GIT入门笔记(9)- git的add和commit机制原理
			
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支mas ...