Teams app 开发最佳实践
经常有朋友问我,teams app开发有哪些最佳实践,我看了一些别人的分享,也结合我自己的经验,总结了一下一共有这么几点:
经常有朋友问我,teams app开发有哪些最佳实践,我看了一些别人的分享,也结合我自己的经验,总结了一下一共有这么几点:
ChatGPT (Conversational Generative Pre-training Transformer) 是由 OpenAI 开发的一种大型语言模型,它可以自然地生成人类语言,并用于聊天机器人、对话系统、自动文本生成等应用。
我们这篇文章继续上篇文章的优化,来看看如何优化 #6。
我们这篇文章来分析一下之前遇到的大用户并发抽奖的性能问题,看看到底问题出在哪里,想想看后面如何解决。
我们继续 LuckyDraw 的升级之路,上篇讲了在infra层面的数据库配置,这篇文章主要介绍如何在 LuckyDraw 的 bot api service 里使用 EF core 来处理抽奖,并且同时保证向前兼容,也就是说如果已经有个抽奖是使用 Azure storage table 的,那就继续使用 storage table,虽然这种做法增加了大量的代码工作量,但是可以保证用户体验,不会升级之后,用户突然觉的之前的抽奖怎么打不开了或者不能参与了。
今天继续 LuckyDraw 的升级之路,之前在1500以上用户同时使用的时候,特别是在短时间内大家一起点击参与抽奖参的时候,服务会出现大量的错误,分析后发现,出现错误的原因基本都是 Azure Storage Table 返回的。当时使用 Azure Storage Table 的最最主要原因是它便宜,太便宜,真心便宜!缺点就是:
我已经有很长一段时间没有更新我的 Teams App:LuckyDraw 了,有很多用户反馈给我,因为快到圣诞,新年和春节了,很多公司都开始要使用LuckyDraw来搞抽奖活动,希望LuckyDraw能支持大用户量的抽奖,所以,我准备好好更新一波,让LuckyDraw支持 3000 用户的大群抽奖。
今天晚上给很多人在线分享了我比较喜欢的一个话题:Teams app 的基础架构和合规性,收到了大家很多积极正面的反馈,谢谢大家!ppt如下:
我们来继续我们的 Teams sample 之旅,上一个讲了 Tab app,那我们这里再深入一步,看一下如何使用 sso 机制。
上一篇文章我们深入来分析了 tab app 的代码,这篇文章我们研究一下 manifest。
上一篇文章我们使用Teams Toolkit 来创建、运行 tab app。这篇文章我们深入来分析看一下tab app 的代码。
前面几篇文章我们详细讲了如何使用Teams Toolkit 来创建、运行、调式一个 bot app,然后我们一起分析了bot app 里的具体的每个方面。这篇文章和接下去的几篇我们以同样的思路来深入解析 Teams Tab app。
这篇文章来详细讲一下 Teams app 的云端资源的自动创建。我们还是以 Hello World Bot 这个 sample 为例。
这篇文章我们继续以 Hello World Bot 这个 sample 来讲一下 manifest template。
上一篇文章我们解析了 teams bot 的主体代码逻辑,深入的了解它是怎么运作起来的。我们这篇文章来详细讲一下 adaptive card 在 Teams 里的互动,我们用上一个 app 里的 learn 卡片为例。
上一篇文章我们讲了如何使用 teams toolkit 来快速弄一个 teams bot,可以看到 toolkit 给我们提供了极大的方便性,让开发人员可以更好的把重心放在 coding 上,而不是各种配置上。
上一篇文章深入讲了incoming webhook。这篇文章我们来看一个稍微复杂点的,正式点的 teams app:bot。
上一篇文章介绍了如何使用 teams toolkit 来快速创建一个最最简单的 teams app:incoming webhook。这篇文章我们就来深入看一下 incoming webhook的代码,我自己的学习方法就是花时间把一个新东西理解透彻后,再学另一个,因为一旦深入理解一个东西后,会发现很多知识是相通的。
两年多前我写过一篇介绍 Teams Toolkit 的文章,有些读者希望我能讲一下最新版本的使用,的确在过去两年间,Teams Toolkit 变化非常大,增加了非常多的实用功能,我接下去就用几篇文章来详细讲一下如果使用它来创建,开发,调试,发布 teams app。
Teams 开发团队在过去半年里提供了很多的关于会议的 api,这让我们又有了很多的可以实现的功能和场景。今天我要介绍的是如何获取会议的 transcripts。
我们上篇文章说了如何把微信公众号的消息转发给 Teams,有很多读者让我再讲讲 Teams 和 飞书平台的整合。
应邀今天给社区的 Teams 开发者做了一次技术分享,讲了如何帮助客户从 skype for business,从 slack,或者从其他平台上将数据迁移到 Teams 上:
我们上篇文章说了如何使用 GraphAPI 给 Teams 的 channel 和 chat 里发送消息,我们今天来看一个具体例子:
这几天有一个朋友问我如何做 Outlook 和 Teams 的集成,这位朋友不太愿意自己写代码开发,所以我做了一些研究,发现有两种简单的集成方法。
我们今天继续来讲讲 Graph API,看一下如何发送消息到 Teams。
上一篇文章我们讲了如何让自己的 webapp 程序可以加入到 teams 的会议中。这篇文章我们来详细看一下代码。
接着上一篇文章,我们来看看如何让自己的 webapp 程序可以加入到 teams 的会议中。
Azure Communication Services是微软Azure平台上的一项服务,它可以帮助开发人员使用一组API和工具来建立和管理实时通信功能。它支持语音、视频、短信和即时通信功能,可以用于构建应用程序和服务,例如聊天应用程序、客服系统和在线会议系统。
我们继续来讲讲 Graph API,这篇文章来一起看一下如何使用 GraphAPI 来操作 Microsoft Teams 的团队。
今天有幸给Teams China Community做了一次在线的技术分享,上分享了如何开发 Teams Meeting App 的,大家参与度很高。我把ppt分享在这里:
今天我们来继续上篇文章,具体说一下访问令牌。
在 Teams 的开发过程中,我们或多或少的会使用到 graph api,很多读者希望我介绍一下 graph api 的teams开发,那我就用几篇文章来具体介绍一下如何从零开始学习 Graph API。
上篇文章我们介绍了 Teams 的 Developer Portal,今天我想分享一个dev portal里一个比较实用的功能。这个功能在之前的 App Studio 里没有。这个功能叫 Environment variables。
在去年的 Build2021 大会上讲到的 Teams Developer Portal 已经上线一段时间了,我这几天玩了一下,发现比之前的 app studio 强大了很多,所以赶快写篇文章和大家分享。
Microsoft Teams最近推出了很多新的功能和api,我们今天就来一起看一下 teams 会议的实时事件通知,我觉得有了这个功能,我们的app,我们的bot又可以有很多可以实现的场景了。
最近有一些朋友问我,有没有可能获取到会议的详情,我搜索了目前所有的 teams 文档,发现有一个api可以获取,不过在我写这篇文章的时候,这个 api 还在 preview 阶段,可能在正式发布前,还会有一些变化,但是按照之前的经验,这个变化基本不会有。 :)
前几篇文章我们介绍了 Teams Meeting App 的各种类型和如何从无到有的使用 net6 和 c# 来开发一个 Teams Meeting app,那今天我们开始讨论一些 meeting app 的高级互动: task 弹出框。我们先来快速修改一下之前的代码,看看什么是 task 弹出框。
接着我们上两篇博客文章,我们说了如何开发会议前和会议后的 meeting app,那如何开发一个会议中的 app 呢,实际上比较简单,我们只需要在 tab 的配置项中勾选下面这两个选项即可。
我们上一篇文章讲了如果使用 net6 和 c# 来快速开发一个最简单的 teams meeting app。为了让大家比较容易理解,上个sample非常简单,简单到没有什么功能,那我们现在就来慢慢扩展这个app的功能:看看如何获取 meeting 的上下文。
今天我们来看一下如何使用c# net6 来开发一个 teams的 meeting app。首先先确保本地安装了最新版本的 net6。创建一个目录,然后在目录下输入下面的命令行,让 dotnet 来生成一个初步的asp.net core 代码框架。
Teams 的 Meeting App 已经正式推出了一段时间,相应的文档也已经较为完善了,我接下来会写一系列的文章,来介绍如何开发一个自己的Meeting app。这篇文章作为这个系列的第一篇,将介绍 meeting app 是如何被使用的,有哪些可以扩展的点。
昨天讲了一下如何把代码升级到 net6,今天我优化了好几个小时更新代码,enable了nullable。
net6 发布已经有一个多月了,因为我的LuckyDraw app是使用Azure app service,当时我查了一下app service还没有ready,昨天我又查看了一下,发现app service已经默认装了net6。
昨天很有幸和Ares陈老师一起做了一场关于 Teams Meeting app的开发讲座。PPT可以在 这里 下载。
之前有好些看博客的开发者问我有什么较好的方法来解析 at 信息。用户在channel里发消息给 bot 的时候,通常需要 at bot的名字,当然在消息文字中可能还会 at 其他用户,比如 bot的名字是 MyBot,那 bot 收到的 Activity 里的 Text 值类似于:
如果你和我一样,一直使用最新的 asp.net core 来开发teams bot的应用,那么你就会发现当你使用最新的 LTS 3.1版本或者 5.0 版本或者最新的 6.0 版本,asp.net core 默认使用System.Text.Json库,所以当你在处理 Teams 发送来的请求的时候,如果还是使用类似于下面的代码,那很多时候就是发现activity解析不出来,返回的response也不对。
当我们在开发app的时候,很多时候需要选择一个用户,比如我们开发一个审批的app,就要选择审批人,所以这个app就需要实现选择人的界面,而且需要获取完整的用户列表,但是要获取完整的用户列表又需要app拥有较高的权限。通常企业的IT部门不太愿意把这种权限给到app。
我们上一篇文章讲了如何在Teams app里扫描二维码,这篇文章我们来看一下如何获取当前设备的地理位置,并且在地图上显示地理位置。
上篇文章我们讲了如何在app的manifest里设置设备的权限,这篇文章我们来实际操作开发一个可以扫描二维码的teams app。
当我们开发的 app 被企业安装后,有些企业挺希望能做一些自定义,如果把app的图标改的更加符合企业风格一点,或者把app的名字改成让本企业员工更容易理解一些,或者把app界面的主题色改成个企业风格更加搭配一些,或者对于隐私协议进行一些修改。
我们以前讲到过,Teams有很多中可以扩展的方面,其中有一种是Tab,开发者可以开发一个web page/app,然后以tab的方式嵌入到teams里面。
前两篇文章介绍了如何对用户的在线状态和通话记录进行数据统计。这篇文章我们来看看如何统计用户的聊天消息。
上篇文章介绍了如何获取用户的在线状态,这篇文章我们记录介绍如何统计用户通话记录。
前几天我在wechat的moments里看到以为朋友发了腾迅会议的对用户个人的年度数据统计,看上去很有大数据感。
前两篇文章介绍了如何发送 activity notification,这篇文章主要介绍两个隐藏功能,实际上所谓的隐藏功能是指大家在阅读官方文档是会忽略的两个点,但是实际上也是很实用的两个功能点。
上一篇文章讲到了如何使用最新的Graph API来给一个用户发送一个简单的 Activity Feed。我们这篇文章来详细讲一下发送三种不同类型的消息。
几个月前,Teams 团队又推出了新的 Graph API,让 app 可以给用户发送 Activity Feed。我们来看看如何做。
之前我有一篇文章讲了如何在azure function上开发最简单的outgoing webhook,收到一些反馈,建议我介绍一下如果在azure function上开发teams bot,那这篇文章就来讲一下如何用function来快速开发bot。
Teams消息支持三种不同的方式来添加图片,这篇文章我们来一起看一下这三种方式。
在写这篇文章的时候,这个新功能还处在 Public Review,这意味着可能(很小的可能性)这里写的方法在正式发布前还会有一些改动。
今天很有幸受邀参加了上海,北京,广州和线上联动的Dev Hack活动,我远程在线上分享了在开发LuckyDraw app时学到的一些经验。
apple 在几个月前发布了自家的芯片 M1,由于将多核cpu,多核gpu,神经网络运算,内存和其他一切处理部件高度整合在一起,大大提高数据传输速度。发布后好评如潮,我也没有忍住,入手了一台最低配的mac air m1。目前 M1 还是有很多软件不能很好支持,当然,这个无法阻挡我在上面的开发。我给大家分享一下我在apple silicon上开发的过程。
大家如果看teams的 graph api 开发文档,可能会把 app id, installation id 和 external id 搞混,我自己一开始的时候就有点被搞晕了,再加上app manifest里面的 id 和 bot id,基本就彻底晕掉了。
有一些朋友问我teams是否支持将其他平台/系统里的聊天记录迁移某个channel里,答案是肯定的,teams团队在去年年中的时候就提供了这个功能。这个功能是通过graph api来完成的,我们今天就来看看如何迁移聊天记录到teams里。
我在以前的博客里说过我的LuckyDraw app在数据存储方面使用的是 Azure Table Storage,当时选择这个的原因是成本考虑,因为它实在是便宜,对于我这种个人开发维护的免费的teams app来说,成本是一个很重要的考量点。
我在之前的一篇博客里面讲了合规性对于我们Teams app是非常重要的,因为office365平台就是面向全世界用户的,我们开发的teams app一旦发布后,立刻就会有各国各地区的用户来进行安装使用,所以符合用户所在地区的要求是非常重要的。
上篇文章讲了teams app的serverless架构,这篇主要讲如何真正使用Azure Function来开发一个最最简单的Teams Outgoing Webhook。
Azure Function可以说比较早期的一个serverless服务,随着这些年云服务的大行其道,Serverless在概念越来越火,什么叫serverless?
当我们在Teams里创建一个团队team的时候,系统会默认创建一个频道channel,这个频道就是我们最主要最核心的一个channel,那我们如何可以用Graph API来找到这个主channel呢?
上周很荣幸参加了和Teams中文产品组的meetup,会上大家提了很多很有价值的反馈意见。
大家在使用Graph API开发Teams App的时候,有时候会需要获取某个租户Tenant的所有team,在写这篇文章的时候Graph API并没有提供这么一个功能,没有一个类似于”GET /teams”的api。
middleware是目前一些framework比较流行的概念,通常一个开发框架需要提供一些可扩展可定制化的功能。所以middleware这种pattern就很实用。
我们今天来说一下authentication,authentication一直是一个复杂的问题。bot里的authentication也不简单。我们先来看一个概念:Bot Framework Token Service,根据官方定义,这个token service主要是:
上一篇文章讲了 activity 处理的流程,我们bot的核心处理逻辑放在ActivityHandler的子类里,通过重载 OnMessageActivityAsync()
方法来实现。
上篇文章介绍了什么是Activity,Turn,TurnContext和BotAdapter,这篇文章我们看看这些东西是如何窜起来的,他们是如何处理用户发给bot的消息的。
这篇文章我们来说一下Activity和Turn这两个bot framework中最重要的两个概念,同时也介绍一下TurnContext和BotAdapter
上次我们讲了Teams Bot开发的概述,讲了Azure Bot Service,Bot Framework SDK和我们自己的bot服务的概念,这篇文章就带大家看看Azure Bot Service和我们的bot是如何发生关系的。
我使用VS Code开发已经有蛮长一段时间了,时间长了,越来越喜欢VS Code,虽然有些时候会没有传统的VS方便,比如开发Azure Function时你需要编写一下launch.json,而且你需要手动启动StorageEmulator,但是也正是由于缺少VS的自动配置,需要你自己手动把环境一步步搭建出来,也让自己更加理解一些框架和技术。
很多朋友问我如何开发一个成功的Teams Bot,他们说Bot Framework SDK看起来简单,但是真要的去开发一款成熟的bot,很多地方还是不知道如何使用。我从最早的bot framework还在beta的时候开始用,后来framework经历了多次大的改动,目前版本是v4,我想通过一系列的文章来系统的介绍如何使用bot framework来开发一个功能齐全的teams bot。
在我写这篇文章的时候,这个SSO机制还是在 Developer Preview 阶段,可能在发布前还会有一些改进。不过我觉得这个功能很好,所以先和大家分享一下。
这篇继续介绍BUILD大会里的内容:新的Teams API权限。这些新的权限让开发者可以更加细粒度的设置权限。
这篇继续介绍BUILD大会里的内容:两个新加入GraphAPI 1.0的关于Teams的API。
为了方便开发者开发Teams应用,我在2018年做了dotnet c#的一套模板,这套模块一共有三种类型,一个是Teams OutgoingWebhook,一个是MessagingExtension,还有一个就是Tab。
我最近把 LuckyDraw的代码升级到了 .net core 3.1,当然我也很想使用最新的微软json库,System.Text.Json这个库的性能比之前Newtonsoft.Json速度更快,而且就我本人爱好来说,更加喜欢System.Text.Json的命名,之前一直觉得 JObject, JArray, JToken 这些名字不够符合 c# 的 naming guideline。
微软为了鼓励Java开发人员开发bot,在上个月推出了Java的Bot SDK v4.6版本,目前还在Preview版本,相信不用多久就可以赶上其他版本了。
继续我的上一篇博客,这篇继续介绍BUILD大会里的内容:Flow。
随着今年在线的Build大会的结束,又是一大波的 Teams 新功能,新工具,新SDK。我接下来几篇博客就会详细和大家一一介绍。我今天先从VSCode的插件开始。
我在2020年5月Teams Community Call(China)上分享了Build2020大会上宣布的一些Teams的信息,主要偏向于Teams开发方面的更新。
我在2020年4月Teams Community Call(China)上分享了我自己总结的第二部分Teams app的一些最佳实践
我在2020年2月Teams Community Call(China)上分享了我自己总结的Teams app的一些最佳实践
我在前两篇文章里分享了Global Ready的app时会遇到的不同挑战。这篇我继续分享在合规性方面的挑战。
我在前两篇文章里分享了Global Ready的teams app时会遇到的不同挑战。这篇我继续分享在夏令时方面的挑战。
我在前两篇文章里分享了Global Ready的app时会遇到的不同文化的挑战。这篇我继续分享在时区方面的挑战。
我在前一篇文章里分享了Global Ready的app时会遇到的不同文化对于数字方面的挑战。这篇我继续分享不同文化对于计量单位和禁忌方面的挑战。
我前几周在微软Ignite the Tour北京大会上,分享了如何开发一款面向全世界用户的Teams App,里面介绍了在开发Global Ready的app时会遇到的各种挑战,反响很好。所以我准备写几篇文章,将这些内容分享给没有时间参加大会的同学。
我在2019年12月Teams Community Call(China)上分享了LuckyDraw App开发过程中的做得好的方面,和不好的方面
在上个月刚刚结束的Ignite大会上,Teams产品的架构师Bill Bliss给大家奉上了最新的Teams的架构设计,之前2017年和2018年微软的技术大会上都Teams架构的分享,但是今年大神把Teams架构讲得很深入,覆盖面很广。我这里就挑一些,根据我的理解和各位分享一下。
今天查了一下LuckyDraw app,突然发现我上半年开发的Teams app: LuckyDraw,竟然多了一个勋章图标,点进去一看是微软给我的app评了一个”Microsoft 365 App Award”。Super surprise!!😍😍😍
今年北京场的Ignite the Tour圆满结束,我有幸被邀请做了两场技术讲座,一场是45分钟,一场是15分钟,主题都是讲如何在Teams平台上开发一款面向全世界用户的Teams app!
如果大家经常使用Graph API来对Teams进行操作管理的话,有时候会遇到一些奇怪的问题,我前两天还在Stack Overflow上回答了一个用户的问题,这个问题我自己也遇到过。所以我想用这篇文章来分享一下,万一以后大家遇到类似的问题,就有所防备。
Teams中有一个不太被大家注意的扩展点,名字叫Link unfurling,就是对于一些特殊域名的URL进行特别的解释。
很荣幸有机会在今天的Teams Hackathon上介绍LuckyDraw这个teams app。
一说到时间,就会联想到时区,夏令时等头痛的问题,不同国家有不同国家的规定。如果你希望你的Teams Bot可以判断出当前用户所在的时区,从而可以针对性的进行一些处理时,你要做好心理准备,这个复杂程度远远超过你的想象。因为一个用户这次在一个时区内登入Teams,下一次可能就在另一个时区了。
在今年三月份末,Teams的官方文档推出了一个新功能:将网页(一个URL)分享到Teams里。
Graph API的更新速度真是快,今年9月中旬又增加了关于Team photo的两个新的api。
Teams app的task module十分好用,当用户点击了一个卡片上的按钮是可以在Teams里弹出一个对话框,对话框的内容可以是开发人员自己的一个网页页面,或者是adaptive card。 在我的LuckyDraw bot里,我比较了这两种的优势和劣势,最后选择了Adaptive card。如果采用网页,那最大的优势就是可以实现任何你想要的功能和界面互动,只要是html+css+js可以做到的,基本都可以在这个弹出的对话框里实现,劣势就是工作量大。可能有很多读者会质疑说开发一个html页面有什么难的,早就轻车熟路了。那我先来介绍一下到底adaptive card有哪些功能,然后再来看实现这些功能的页面会需要多少工作量。
Teams发展速度飞快,Teams app的manifest文件schema也迎来了版本1.5,在这个版本里,很大的一个改进是支持多语言。
我在去年的一篇文章里介绍过Teams的outgoing webhook,这个可以用来实现一个简单的用户和service对话机制。
我的LuckyDraw上线后收到了不少有价值的反馈,其中有一部分是针对图片的,有一些用户说他们填写了image的url,但是图片显示不出来。
上个月微软进行了一个全世界提名活动,目标是选出微软2019年度People’s Choice app。
每个产品上线后都希望自己能实时看到多少用户在使用我的产品,我的服务,有多少使用量,有没有遇到问题。市面上做用户数据、行为分析的公司也不少,但是大多数都需要我们修改一些代码来集成第三方的sdk库。
我在2019年8月Teams Community Call(China)上分享的如何从一个全新的角度理解和掌握Teams API
相信很多devops已经全面开始使用ARM来创建azure资源了,ARM有很多方便的地方,比如简单易学,Infrastructure as Code,但是深入使用ARM开始会发现一些有待改进的方面。这篇文章主要是分享一下我在做Teams app的时候使用ARM来创建资源的经验,以及遇到的一些问题。希望大家以后遇到类似问题可以少走弯路。
上个月Teams团队发布了对Teams app/bot调用api的频率的限制。这也从侧面说明Teams app越来越多,Teams团队需要优先保证Teams本身的计算资源,来提供流畅的用户体验。
Teams的app studio很多用户可能不知道,但是对于一个teams平台的开发人员来说,这个是开发利器,利用这个工具你可以轻松的配置manifest文件,可以轻松的一站式创建teams app所需要的所有东西。而且你可以很方便的可视化配置adaptive card。 那就让我们来看看如何使用app studio来创建一个teams app。
Office365在全球有大量的用户,可以说是拥有最多用户的商业SaaS平台。Teams最近在发展迅猛,有1300万日活用户,已经超越了Slack。😄 Microsoft Teams overtakes Slack with 13 million daily users
在我昨天的文章中介绍了如果对Teams bot做service level的测试,那到底要写多少的测试代码才算够?如何才算测试到位了?这个时候我们就需要用”测试覆盖率”来衡量,虽然覆盖率高并不一定代表着就可以高枕无忧的以为我们软件质量高了,但是测试覆盖率是一个代码质量的很好的信心指数。😄
每一个Teams bot实际上就是一个web api服务,这个服务通过Bot Framework和Teams进行通讯,所以对于Teams app的测试就是对于一个api service的测试。
今天我们来聊一下,一个Teams app的infrastructure,我在考虑LuckyDraw的主要出于这么几个出发点:
我在2019年6月Teams Community Call(China)上分享的如何在azure上搭建典型的teams bot的基础架构
这个月有四个话题:
使用Teams的快捷键可以帮助我们提高日常沟通协作的效率。
去年10月份给微软repo提交了5个PR,达成了HacktoberFest 2018,今天终于收到了从美国到澳洲,飘洋过海,姗姗来迟的T-shirt,不过大小正好。算是新年礼物了,哈哈
从初创企业到《财富》500强公司, Trello是团队在任何项目上进行合作的视觉方式。在Microsoft Teams中, 我们发现围绕项目进行大量对话和协作的方式。因此, 一个首屈一指的项目管理工具应该与团队协作的终极枢纽进行合作, 以便让员工更好地一起工作。
根据用户反馈,我们正在改进:当组织同时使用Microsoft Teams和Skype for Business时的用户在线状态。通过此更新,路由和在线状态将完全保持一致。为确保路由能跟随用户的在线状态,所以在线状态的更新现在会基于用户的共存模式。
昨天收到邮件,我的HacktoberFest 2018奖品终于从美国寄出来了,不知道飘洋过海多久可以寄到。
我在之前的文章里介绍了如何一步步配置CI/CD来部署Teams App( 之前的文章 ),随着Azure DevOps的发展,微软推出了Azure Pipelines。在这篇文章中,主要介绍什么是Azure Pipelines,以及如何使用Azure Pipelines来进行Teams App的构建、测试和部署工作负载
我们生活在一个云的时代, SaaS 应用程序每天都在推动我们的生产力。作为一个消费者, 很难想象如果你最喜欢的应用无法访问,即使只是一秒钟无法访问。作为 SaaS业务, 更难以想象您的服务面临停机, 每一分钟停止服务都会花费大量的资金, 当然还损失客户的信任。Site24x7 创新的基于云的 it 监控工具提供了对基础架构 (网站、服务器、网络等) 关键性能参数的监控, 并提供了对服务运行状况的主动洞察, 使您的客户永远不会面临停机。
Microsoft Teams中新的Site24x7应用程序让DevOps在您最喜爱的协作工具里变得轻而易举。怎么做到的?见下文:
Tabs是微软Teams的一种十分有用的扩展方式。可以非常方便的和现有的网站或者网页应用进行整合。具体的说明不在这里展开了。可以阅读微软官方的详细说明:
Messaging Extension是微软Teams的一种十分有用的扩展方式。可以让用户发送adaptive cards。具体的说明不在这里展开了。可以阅读微软官方的详细说明:
周末闲来无事,统计了一下Teams的app商店里的app ( Teams App Store )。截至到现在(2018年11月)一共有145个app。要注意一点:如果app不是公开的(即单独安装到Office365租户里,并没有提交到office store),那不在这个统计里。
在前不久的微软美国一年一度的Ignite大会上,微软宣布Microsoft Teams是微软历史上发展最快的应用。它将取代Skype for business,成为语音视频协作的主打产品。
Confluence Cloud的Message Extension现在正式登入Microsoft Teams。 它可用于团队频道和私人聊天,使您的对话更具描述性和信息性。
今天,我们宣布完成了Skype for Business to Teams路线图中首次披露的几项关键会议功能。当个人联系,沟通和协作时,工作就自然而然的完成了,我们相信这些功能(除了我们2月的公告之外)使Microsoft Teams为所有类型的会议做好了准备。
在这篇文章中,我们主要来如何将Azure DevOps中的项目作为应用发布到中国版Azure的App Service中。
Microsoft Teams推出有一段时间了,如果想要体验Teams,必须需要有Office365的订阅。最近微软为了进一步推广Teams,突然宣布Teams免费了。使用过Teams的读者知道Teams是基于Office365账号和组的,那它免费后,不使用Office365账号是否也可以登入?如果可以,那它在Azure体系里是怎么做的呢?免费版本在功能上会有什么不同吗?让我们一起来体验一下。
在上一篇文章中,我们一步步从无到有在Microsoft Teams中开发了一个简单的Outgoing Webhook,并和我们本地的Web API应用程序产生交互,总结起来的步骤大概如下:
所有Team站点都带有专用文件库,用于存储所有工作组的内容。 您现在可以从桌面或云存储站点将Visio文件上载到此库,例如,您所在Team的资产都集中在一个位置,供具有权限的任何人进行访问。与其他存储文件一样,您可以直接从Team对话链接到Visio图表。
作为一个相对看重个人信息安全与隐私的人,个人附件等资料在Microsoft Teams中的存储方式、文件访问权限、可见范围问题引起了我的好奇。
Microsoft Teams的应用程序有几种形式:
作为 IT 专业人员, 我一直在寻找自动化任务的方法, 并使日常操作简单。当使用Microsoft Teams时, 是否能够在团队中自动创建团队,渠道和设置对于Microsoft Teams组建的成功与否至关重要。PowerShell对Microsoft Teams的支持使您可以做到这一点,它为我提供了额外的很多方法,使得团队管理变得更容易:
此博客文章的目的是演示从Office 365删除用户的账号后,此用户在Microsoft Teams群聊和私聊中的历史聊天记录会发生什么改变。
您是否曾在这么一个团队里,该团队唯一有Owner权限的人离开了公司?不幸的是,如果这个人不再在公司里,您可能觉得没有办法让其他团队成员再成为team的owner。我有一个简单易用的解决方案,但您需要成为Office 365租户的Admin或联系你公司的help desk。