2020年7月30日,星期四

使用Azure DevOps运行敏捷开发冲刺

在上一篇文章中,我们讨论了一些基本知识 使用Azure DevOps进行团队合作 -特别是不需要成为开发工作重点的想法。正如我上次提到的,在这里的内容和代码中,我们拥有各种使用Azure DevOps中的Boards功能的团队-除了我们的开发团队之外,架构师和平台/基础架构团队还管理他们的项目工作和每周工作在服务中。

DevOps当然是对的 虽然主要针对开发人员,但对于使用sprint或迭代进行敏捷开发的团队来说,还有一些很棒的功能。在本文中,我们将深入研究诸如sprint板,燃尽图和累积流程图之类的工具-所有极有价值的工具,至少在团队成员摇摆不定时,可帮助团队衡量其工作并不断从sprint改进。使用它们。 

首先,让我们考虑一下动机。

为什么这样我们在没有Azure DevOps的情况下生存了很长时间! 

Many 要么 ganizations have development teams WHO 是 getting by with approaches they've used for a long time. 的re 是 a series of inefficiencies 和 guesswork that 是 somewhat invisible, 和 just accepted as "this 是 as good as it gets". Symptoms of this include:
  • 项目经理不断要求更新 
  • 同事,甚至团队中其他开发人员的定期打扰
  • 难以解释为什么要进行更改
  • 进度估计数缺乏明确性
  • 不了解团队生产力是提高还是下降
Azure DevOps不是解决这些问题的唯一方法,但是它 确实 提供应对这些挑战的平台,它无疑为您带来了很多繁重的工作。一旦团队以某种方式工作,事情就开始流动 周围 系统中的工作项-减少对话和中断以使人们的工作保持同步的需要,因为系统中有很多答案。这甚至扩展到尝试避免对团队(或Slack或其他聊天工具)中的同事执行ping操作,而是在带有@mentions的Azure DevOps工作项目的注释中进行更多对话-此对话稍后可能对参与者很有用或其他。站起来变得更有效率,并且剩余的对话具有很高的价值,而不是事务性的“何时使用X完成?”输入问题。 

第1步-创建一个项目并选择您的流程(例如敏捷或Scrum)

的 first thing 您'll need of course, 是 an Azure DevOps project created using the methodology 您 prefer. DevOps gives 您 four main types, but 您 can customize these to add 您的 own (notice the last two items):

如果您不熟悉这些类型,我建议:
  • Basic非常适合非开发或非常简单的工作,并且任务分类很少(在撰写本文时仍在预览中)
  • 敏捷和Scrum是最常见的 
  • CMMI仅适用于“高形式”开发 
主要区别在于工作流状态(例如,“新的”,“活动的”,“已解决的”,“已关闭的”,“已删除,用于敏捷”,但使用“已批准”和“已承诺用于Scrum”,开发团队必须在此sprint中“承诺”执行这些任务)以及故事用于计划中。 The 选择一个过程 DevOps文档中的“页面”是您的指南。

的 next step 是 to enter 您的 work items into the system. Usually 您'll break these down into user stories 要么 features, with tasks underneath. I'm going to skip over this bit because it's relatively simple once 您've created the first one, but the 添加和更新工作项 页面提供指导。 敏捷的主要原则之一是创建总体工作积压(不断发展),然后在进行时将其分配到迭代/冲刺中。 您将产品积压工作用于整个程序或项目,并将sprint积压工作用于每次迭代。 

的 WHOle world of backlogs 和 boards in Azure DevOps 是 quite deep - see 三种积压案,两种类型的董事会 作为一个很好的入门,但是请记住,您不必使用所有功能。 

第2步-设置团队能力并设置冲刺

Once 您 have an overall product backlog, we're ready to start thinking about chunking the work into individual sprints. I show some of the most important next steps in the video below. 的 first minute of the video in particular shows:
  •  定义团队能力 -告诉系统每个团队成员每天有多少小时
    • 这对于DevOps计算团队在特定时期内可能完成的工作量的能力至关重要。如果您没有告诉它有多少小时可用,那么如何进行预测呢?您还可以设置每种活动类型的金额,例如设计,开发,部署,文档,测试等。
  • 使用预测工具将工作分配给下一个冲刺- 积压视图 通过预测在可用时间内有多少工作可以帮助您将工作分解为迭代/冲刺。将项目拖到sprint中以进行确认。
    • 想象一下,您有2 x 20小时的任务,而您有10 x 4小时的任务。显然,这里要完成的任务数量有很大的不同-预测工具可以通过在冲刺将要结束的位置在任务列表中画一条线来帮助您看到这一点-从而帮助团队做出决定冲刺  
    • In the video I show 怎么样 adjusting the "velocity" parameter (how fast the team 是 working) changes 怎么样 much gets done - 您 see the line changing position in the list of tasks. 的 velocity number 是 是 something 您 tweak over time using data from Azure DevOps
从那里,我展示了在DevOps中运行sprint的各种其他功能-董事会的使用,更新任务等:


的 video actually covers 许多 在sprint中工作的不同元素,而不仅仅是初始设置。以下是我们在视频中看到的摘要:


因此,希望视频和评论传达了使用Azure DevOps进行开发sprint的一些关键原则。那我们可以使用的一些工具呢?

的 burndown chart

燃尽图表是Azure DevOps中更正式的“燃尽趋势报告”,是帮助管理冲刺的经典工具。它为团队提供了相对于当前冲刺计划的进度视图,指示事情是提前还是落后于进度。这是我们的一个项目/冲刺的真实燃尽示例,其中对一些指标进行了注释:












的 blue 是a represents work still to be completed, 和 the grey line indicates linear progress from start to end of the sprint. Comparing the two helps show where 您 是 against plan. You can use either 剩余时间 要么 工作项数 代表剩余的作品,前者通常更有意义。 

的 sprint above 确实n't have non-working days configured, so that would be a nice improvement to show a more accurate picture. 

有关燃尽图的更多信息,请参见 配置和监视sprint消耗.


的 Cumulative Flow Diagram

的 CFD 是 a fantastic tool once 您的 team has been working for a period. It helps 您 understand 怎么样 work flows the process, in particular:
  • 周期时间-项目平均处于活动状态的时间(即从某人开始处理该项目的时间到完成时间)
  • 提前期-物料的平均端到端时间(即从物料创建到完成的时间)
我将以下幻灯片用作我们其中一个项目的CFD的示例:

这是一个有助于解释某些要素的图表:

 

有关累积流程图的更多信息,请参见 累积流量,提前期和周期时间指导。

概要

Azure DevOps可以真正推动开发团队实现更多目标。值得注意的是,一些好处来自围绕系统中的工作项集中更新,讨论和问题-而不是单独进行讨论且有些脱离上下文(例如在团队中对同事进行ping操作)。这并不意味着 所有 交流是通过这种方式发生的,但是朝这个方向的微妙动作可以极大地帮助您。 

除此之外,还需要满足以下先决条件才能获得好处:
  • 确保将项目任务(工作项)输入到系统中,并估算每个任务的工作量
  • 定义一系列迭代(冲刺)以将项目分解为多个时间段
  • 定期更新任务上的“剩余工作量”
  • 使用预测和分析工具来不断改进
希望这是有用的。如果您没有收到有关DevOps电路板基础知识的第一篇文章,请访问以下网址:

2020年6月30日,星期二

使用Azure DevOps管理团队合作

在过去的两年中,在内容和代码部观察Azure DevOps的兴起非常有趣,尤其是看到使用范围已扩展到开发团队之外。现在我们有几个团队  以开发人员为重点,使用平台来管理他们的工作-包括架构和平台/基础架构团队,他们的工作面向构想,设计,配置,安全性或测试。在许多情况下,团队负责人一直在寻找Microsoft堆栈中某个任务管理工具,该工具具有比Planner或To Do更强大的功能,并且没有Project Online的项目管理重点。在某些情况下,其工作涉及文件(例如PowerShell脚本或JSON代码段),但通常不涉及文件。常见的事情是团队的工作需要进行管理-引入Azure DevOps董事会后,每个人似乎都喜欢董事会提供的功能集及其为工作带来的清晰度。能够理解优先级,谁在忙于什么以及如何将各种任务相互关联是团队合作的基础,但在DevOps董事会中做得很好。能够在不追逐所有者的情况下保持最新的状态,就可以以显着的方式改变团队的动力-令人惊讶的是,可以避免多少次打扰和提高团队的效率。 

在接下来的几篇文章中,我想谈一谈Azure DevOps如何在许多情况下提供帮助-不仅限于高级开发团队。 

我使用下面的幻灯片总结了一些好处-这是在针对开发人员的演示中,但是有趣的是,只有两点是特定于开发工作的:

顺便说一下,幻灯片显示了Azure DevOps中“工作详细信息”窗格的屏幕截图。仅此一项功能就非常强大,可以查看分配给每个团队成员的工作量以及这与预先定义的限制之间的关系。通过定义 容量 每个人在特定时期都有空余时间,这意味着可以考虑休假,从事其他项目的工作以及可以节省时间的其他任何事情,从而使预测和时间管理保持准确:
除了我公司的体系结构和平台/基础架构团队的示例外,我认为甚至在整个ITSM流程之外还有一些小型支持团队也可以使用Azure DevOps而不是其他工具的情况-稍后会详细介绍。总体而言,我看到了不同级别的Azure DevOps使用情况,其中只有运行敏捷sprint的开发团队可能会迁移到2或3级,但是1级可以为许多不同的团队工作:

为了稍微说明一下,以下是这些不同使用级别的含义概述:


目前,其中一些可能并不意味着太多,但我们将在这些文章中进一步探讨不同的领域。

深入了解Azure DevOps板

如果您不熟悉Boards功能,那么前提是团队可以看到任务积压的可视化面板,在其中可以将项目简单地拖到另一列以更新状态,类似于实物板(看板)。当然,这类似于Trello,Planner或其他一些任务管理工具。就个人而言,我喜欢以下功能:
  • 能够定义自己的列-这些列通常会映射到单个项目状态,例如新建,已批准,进行中等,但您也可以映射 指出诸如“ Build 和 Test”之类的列
  • 能够定义泳道以全面 水平地 -帮助对项目进行分类,而不管其状态如何
  • 样式规则-我喜欢实现的一些示例包括:
    • 将卡的颜色更改为红色,以表示物品被阻塞或过期
    • 突出显示卡上显示的某些标签的标签-上图以黄色突出显示了带有“数据”标签的任何项目,以便团队可以快速识别这些任务,例如
  • 实时更新-意味着无需更改页面即可立即反映其他团队成员的更改
这是一个展示其中某些功能的电路板示例:


设置Azure DevOps项目

在下面的视频中,我演示了从零开始的过程-创建一个新的DevOps项目,然后添加一些问题和任务以分配给团队成员。我认为,使用项目和使用某些协作功能给用户带来了良好的体验:


非常多 该视频中显示了其中的基本功能-定义任务,标记,使用拖放操作来更新板上的项目状态,使用@功能等协作功能以及在更改项目时“跟随”以接收更新,等等。显示的元素可以汇总到此列表中,分为三个区域:


概要

使用Azure DevOps可以快速轻松地开始。通常,您可以从最初获得的5个用户免费中获得许可,然后再获得许可 之后,每位使用者每月$ 6。在本文中,我们探讨了一些支持现代团队合作的功能-我的经验是,它们确实可以很好地适用于各种团队。尽管Azure DevOps为开发人员带来了很多好处,但我们肯定已经在内容和代码的其他上下文中看到了它的良好效果。 

回到不同的用法级别,本文和视频着重于第一级(“简单”):   

在下一篇文章中,我将介绍一些有助于团队运行sprint的敏捷功能,包括使用诸如燃尽图,累积流图之类的工具-这些工具可帮助团队通过一系列任务和总体速度来了解其进度随着时间的推移: 

2020年5月18日,星期一

Teams 和 的SharePoint provisioning solutions - new Group.Create permission

使用Office 365的组织提供自定义体验很常见 for requesting 和 creating Microsoft Teams 和/or 的SharePoint sites - often 提供从预定义模板中进行选择,提供元数据和 重要设置,检查是否可能重复,实施批准 过程等等。对于许多人来说,这是治理的关键部分,它提供了更多 而不是“允许所有人创建并执行一些清理” 后来”。我们多年来一直在构建这样的解决方案,例如, 我们的工作区请求和配置功能 新鲜的数字工作场所解决方案 随着团队的发展壮大,丰富性和控制力也不断增强 API变得更好。

您想要我们租户的许可吗?
直到最近,这些解决方案还存在很大的问题。由于两者 Microsoft Teams 和 的SharePoint team sites 是 underpinned by Office 365 Groups (though 不 的SharePoint communication sites of course), creating 两者都涉及在下面创建Office 365组。是否一个 登录的用户或应用程序或工具正在执行此步骤,具有很高的权限 需要- Group.ReadWrite.All。这实质上是允许该应用读取和写入任何内容 Microsoft Team, 的SharePoint site 要么 Office 365 Group within 您的 entire 租户-考虑一下!

如您所料,许多安全意识强的组织都不愿授予此权限 permission to something running in their tenant. Practically every business on the planet using Office 365 to it's full extent has Teams 和 的SharePoint sites which contain sensitive information, 和 the WHOle idea of a single application being able to change 要么 delete data across the entire estate 是 非常 远离最小特权原则。如果攻击者或某些恶意代码伪装成这种身份,则对企业的影响可能是巨大的。 

在一个全球组织中,我花了大约8周的时间说服 数字安全(Info Sec)组和其他利益相关者 我们的团队和其他内部团队采取的缓解措施足以抵消这种风险。要求不少于7个明显的签字。

因此,必须进行一些更改。我知道其他人会感觉到这种痛苦,我一直在像Microsoft这样的人讲话 杰里米·塔克(Jeremy Thake) 关于它一段时间。我终于开始筹集资金了 对UserVoice的请求,但在Twitter上也提到了。我很高兴看到微软团队平台架构师Bill Bliss的回应:


因此,这给了我希望。 很快过去了几个月,现在的好消息当然是一个解决方案在一段时间前问世-使使用Office 365的任何人的生活变得更加轻松。

的 new Group.Create permission in the Microsoft Graph

Solutions which create Microsoft Teams 要么 Group-connected 的SharePoint sites can now use a new permission scope in the Graph authorization model named Group.Create. This arrived without much noise 要么 fanfare, 和 I suspect 许多 people WHO this 是 relevant to may still 不 be aware. 

如您所料,这使用户或应用程序可以创建新的团队,组和站点,而无需访问所有现有实例。作为 文件资料 说:

允许呼叫应用创建没有登录用户的组。不允许读取,更新或删除任何组。

 对于使用Office 365的任何组织而言,这非常重要,他们关心其安全状况并希望使用置备解决方案。这是AAD中的样子:


哎呀!因此,现在我们可以满足两个要求:
  • 允许创建新的团队和站点
  • 最小化表面积,以便不能采取其他措施

号召性用语-这与您的环境有关吗?

If 您're using any kind of tailored approach to creating Teams 和 的SharePoint sites, whether it's solution developed in-house 要么 by a partner, a 3rd party product 要么 one of starter solutions found on Github, 您 应该 ensure the permission set used 是 Group.Create. If 您 find there's a change to be made, this 应该 be carefully managed with testing in 您的 non-production tenants before being going ahead with the switch in live of course - but the process 应该n't be too complex.  

之前我曾在Twitter上提到过这个新选项,并且相当多的人以某种方式做出了回应:


但是,我也想在此发布相关信息。 Office 365和基础平台元素(例如Microsoft Graph)的变化步伐是无情的,很容易错过。尽管总是存在缺陷,但很高兴知道这样的事情正在被解决。

希望这对某些人有用!


2020年4月22日,星期三

将AI注入您的Office 365应用–三种方法和定价:第3部分

这是我有关Office 365应用程序中AI的系列文章中的第三篇。显然,自几周前的最新文章以来,世界已经发生了翻天覆地的变化-首先,我希望您和您关心的人都健康,并且您能应付自如。我们每天都在学习有关新世界的更多信息,很明显,有些事情可能又不太一样了。我认为可以说我们会看到 更大的 使用本系列中讨论的技术-Power Platform,Azure和AI。 现在许多组织需要非常快速地进行转型-这意味着新的信息技术形式,新的流程,在许多情况下还需要更多的自动化。 您可能已经看过Power Apps,例如 危机通讯应用 and 紧急响应应用 这些应用程序的产生如此之快,凸显了这些技术的有效性。能够将AI插入此类应用程序为广泛的场景奠定了坚实的基础,正如您希望在我为本系列开发的“事件报告”示例应用程序中所看到的那样。

提醒一下,该组中的文章是:

  1. Office 365应用中的AI- a scenario, some AI examples 和 a sample Power App 
  2. Office 365应用中的AI- choosing between Power Apps AI Builder, Azure Cognitive Services 和 Power Automate 
  3. Office 365应用中的AI- pricing 和 conclusions (this article)
如您所料,定价是我们比较这三种方法时有趣的另一个领域。我们看着 能力 上一次(以及一些可以指导您确定哪种形式的AI适用于给定情况的因素)-但价格肯定是整个决策过程的一部分,因此,让我们现在就开始深入研究。

在撰写本文时,我根据先前文章中使用的“事件报告”应用程序的以下参数,为这三种方法编制了成本:
  • 200个用户
  • 各种交易(使用图像报告事件以标记/描述)-1000、100,000、200,000和1百万
  • 计算应用运行成本 每月

我最终得到了一个看起来像这样的电子表格-但是如果不加注释,单独花费的成本就不算什么,所以我现在已经弄不清楚了数字,但是我们稍后再讲。我只是在这里提供此信息,以便您了解我经历的过程:

 
因此,让我们从Power Apps AI Builder开始探讨不同的方法。

Power Apps AI Builder-定价

通过购买“ AI Builder服务积分”来启用Power Apps中的AI Builder。价格可以在 Power Apps定价页面,其想法是,以100万个服务信用的积分购买。撰写本文时的价格为$ 500 /£377/€每个区块每月421个。因此,当前的直接问题是“我将消费多少服务积分?”。在本系列中讨论的情况下,具体问题将是“将获得多少服务信用 my use of 物体检测 consume?”,因为这是合适的AI Builder功能的特定类型。

微软提供 Power Apps AI Builder价格计算器 to help with this kind of cost forecasting. 的re, 您 can enter the number of transactions 您'd like to price for - so I entered my range of numbers (1000, 100,000, 200,000 和 1 million) 和 assumed my model would be trained once 每月:


这使我估算了这么多事务需要多少个AI Builder附加单元,以及美元成本:


So, we get a monthly cost of $500 for 1000 transactions - 和 we can use the calculator to see costs for varying usage levels 的 caveat 是 that they 仅是估算值,而不是保证的价格,但应合理准确。

However, the big thing to also consider for this approach 是 that we also need Power Apps 每个用户/per app licensing to cover our 200个用户. 作为 Power Platform许可常见问题解答 状态, "AI Builder被许可作为独立Power Apps和Power Automate许可以及 Dynamics 365许可证。“当然,这意味着,如果您通过Office 365许可使用Power Apps,则不能使用AI Builder-本身也需要Power Apps许可。 正如我们将看到的,这对定价产生了巨大的影响-对于以前看过Power Platform许可的人来说,这并不令人感到惊讶。

因此,这种方法的定价最终如下所示-这些数字是我们每月不同使用量的价格:



因此,使用Power Apps AI Builder时感觉很昂贵-但费用主要来自200名用户的核心Power Apps许可要求,而不是AI Builder费用。  

Azure认知服务-定价

因此,回避Power Apps AI Builder并直接插入AI服务是否有任何帮助?好吧,如您所料,Azure中的Computer 视力 API(再次是与我们的场景需求相关的特定AI服务)是根据API事务的数量定价的,即它是基于消耗的Azure服务。级别分为0-1百万,1-5M,5M-10M,10M-100M等,您使用的价格越便宜,价格越便宜。定价会因地区而异,每种功能的定价都不同。

对于我们的方案,我们将使用计算机视觉API的以下功能:
  • 标签
  • 检测
  • 描述
定价如下:

项目定价(当前,英国,最低等级)1000100k200k1m
标签0-1M交易— £每1000笔交易0.746
1M-5M交易— £每1000个交易0.597
£0.75£74.60£149.20£597.00
检测0-1M交易— £每1,000笔交易1.118笔
1M-5M交易— £每1000笔交易0.746
£1.12£111.80£223.60£746.00
描述£每1,000笔交易1.864£1.86£186.40£372.80£1864.00
£3.73£372.80£745.60£3207.00

因此,如果我们的应用程序每月报告约1000起事件,那么我们总共可以看到£每月3.73。 2000年的事件将是£7.46, 和 so on.
如您所见,除非大规模运行,否则这是相当便宜的。 但是,要注意的是,尽管我们仍然*仍*需要每个应用程序/每个用户许可证使用Power Platform才能这样做-这是因为我们需要使用HTTP连接器来调用Azure,这意味着我们需要“付费” ” Power Platform领域。假设我们将使用按用户许可,则当前的英国价格为£每个用户每月7.50。 

的 impact of Power Apps licensing for HTTP calls

对于我们的事件报告应用程序和任何类似情况,这里的问题是Power App可以被许多用户使用。由于我们的应用程序需要通过HTTP连接器调用Azure,因此*每个*用户需要按应用程序/按用户许可。即使只有100个用户,也意味着£每月750,这还不包括Azure成本或任何其他方面的成本。因此,仅当您认为以一种极具成本效益的方式将AI内置到Office 365应用程序中时,如果您使用Power App作为前端,就会发现Power Platform许可可以在如果您设想大量用户,可以采用这种方式。

因此,这种方法的定价最终是这样-再次,每月一次,针对我们不同的使用级别:


同样,需要Power Apps许可使其变得昂贵,而不是Azure AI服务的成本。

用于AI的Power Automate(Flow)-定价

的 final option we looked 在 was using Power Automate to plug into AI. As we detailed last time, this 是 essentially a wrapper 周围 Azure's 视力 API anyway - making the services easily available to a Flow 您 might create. Is pricing any better here? Well, yes - 取决于Flow的调用方式。 If 您的 Flow 是 triggered by an item being added to 的SharePoint, rather than being directly triggered by the user - which 是 the case in my Incident Reporting app - then only a single user license 是 required for Flow. Clearly this 是 非常 different to requiring Power App的用户拥有许可证-如果您有大量用户,则差异是巨大的,根据Microsoft的许可准则,这完全有效。

因此,这种最终方法的定价最终是这样-再次,每月一次,针对我们不同的使用水平:



如您所见,成本差异很大! 迄今为止,最大的因素是消除了我们虚构的200个用户对每个用户/每个应用程序许可使用Power Apps的需求,但这也有助于与Power Apps AI Builder相比,使用Azure认知服务可以大大降低我们的AI成本。看来这里的结论是,如果您的解决方案可以通过某些方式构建,则可以节省大量的许可证成本。其中一些方面不是我们场景中特定于AI的使用,而是常见的注意事项:
  • 确保通过以下方式使用AI Power Automate中的Azure计算机视觉操作 作为Power Apps AI Builder的替代方法 
  • 确保您的电源自动化流程是“间接”触发的 
    • 换句话说,使用的触发器是“创建项目时”或 "When an item 是 created 要么 modified" provided by the 的SharePoint connector. This way the metadata 是 added to the file in 的SharePoint after it lands in the document library, 和 the process 是n't triggered by the user directly (e.g. from a button in the Power App)
当然,只有当您或您的团队乐于以这种方式进行构建时,这些选择才会叠加。例如,如果您不具备Power Automate的技能,则可能无法选择这种特定方法。

概要

Office 365中有多种AI途径,并且在运营成本方面存在很大差异。您的实施团队或合作伙伴在解决方案设计期间所做的决策将对您的应用程序的总拥有成本产生重大影响!了解可以降低成本但不违反任何Microsoft许可准则的使用技术是此处成功的关键-因此拥有正确的专业知识至关重要。

总体上有帮助的两个原则是:
  • 尽可能在Office 365中存储数据 -避免需要高级连接器(例如Azure,SQL,CDS,其他SaaS应用程序)或自定义连接器的数据源,这意味着您位于许可指南中所述的“ Office 365 Power Platform使用权利”的范围之内
  • 使用Office 365触发器进行电源自动化 - avoiding implementations where the Flow 是 triggered directly by the user, but instead uses an Office 365 trigger (e.g. 的SharePoint's "When an item 是 created", 要么 OneDrive's "When a file 是 created") will again keep 您 within the bounds of Office 365 licensing
对于熟悉Power Platform许可的人来说,这都不会让您感到惊讶,但是有趣的是,可以看到详细情况下成本的量化比较。当然,在许多情况下,在Office 365中存储数据将 正确的解决方案设计-也许您需要真正的数据库功能,例如关系(一对多或多对多),级联完整性或与数据相关的业务规则/触发器。也许您需要更好的支持以基于角色的访问。在这种情况下,选择CDS或SQL可能会提供更好的平台,并且利益相关者需要接受随之而来的成本-但这应反映在应用程序提供的价值中。

无论如何,这些决定应谨慎考虑。希望本系列文章中的信息有用!

2020年3月3日,星期二

Office 365应用中的AI–在Power Apps AI Builder,Azure认知服务和Power Automate之间进行选择:第2部分

在上一篇文章中,我们讨论了在Office 365中使用AI的一些示例,并详细介绍了构建 事件报告 app which combines common Office 365 building blocks with AI. Whilst Power Apps 和 的SharePoint underpin our solution, we use AI to triage the incident by understanding 什么 是 happening in the image. Is this a serious emergency? Are there casualties 要么 emergency services involved? Our 图像处理 AI can interpret the picture, 和 add tags 和 a description to where the file 是 stored in Office 365 - this can drive some automated actions to be taken, such as alerting particular teams 要么 having a human review the incident. We also looked 在 the results of feeding in a series of images to the AI to analyze the results of different scenarios.

总体而言,本文是系列文章的一部分:

  1. Office 365应用中的AI- a scenario, some AI examples 和 a sample Power App 
  2. Office 365应用中的AI-在Power Apps AI Builder,Azure认知服务和Power Automate之间进行选择(本文)
  3. Office 365应用中的AI- pricing 和 conclusions
在本文中,我们将重点介绍 怎么样 -特别是,比较了我们可以在Office 365中使用的三种方法来构建事件报告应用程序并利用AI。哪个更容易?需要什么技能?我们期望每种方法花费多长时间?

在Power Apps AI Builder,Azure认知服务和Power Automate之间进行选择

如上一篇文章所述,我们可以通过多种方式构建此应用程序:
  • 使用Power Apps AI Builder
  • 一个Power App(通过自定义连接器)直接与Azure认知服务对话
  • 使用Power Automate Flow消耗AI服务的Power App
对于每种方法,我们’re looking 在 应用的构建方式,定价以及任何限制和注意事项 该选项附带。

选项1-Power Apps AI Builder

在撰写本文时,AI Builder仍处于预览阶段(2020年2月- 发布将于2020年4月),并提供四种型号:

如您所料,其思想是使AI相对易于使用,并专注于常见场景。无需编码,拥有Power Apps经验的任何人现在都可以利用以前高度复杂的应用程序功能。
应用程序的构建方式
在我们的场景中’s the “Object 检测ion”相关的模型。这样可以检测提供给它的图像中的特定对象,并计算在图像中找到识别出的对象的次数。第一步是定义一个模型并提供一些样本图像:



您需要在CDS中预定义的实体才能使用AI Builder-我在这里跳过了几个屏幕,但是最终您选择了一个CDS实体来代表您要检测的对象:


In my case, I was building an app related to transport 和 my entity 是 "Bus". 的 next step 是 to start to train the AI model by providing some images containing the entity:



然后,我们使用实体在每个图像中标记对象:



完成所有这些操作后,您可以在Power App中使用“对象检测器”控件并将其配置为使用以下模型:



由于有关如何使用AI Builder构建应用程序的整个主题很有趣,因此我很可能在以后的文章中详细介绍此过程-但希望您对过程的外观有所了解。

In the case of our scenario, we said that we wanted the images to be tagged in 的SharePoint - 和 here's where we run into a consideration with AI Builder:

Power Apps AI Builder-非常适合某些形式的图像检测

通过对象检测器功能,我们可以检测某个对象是否在图像中以及检测多少次。但是,我们的场景要求能够识别图像中的*情况*,而不仅仅是识别是否存在预定义的对象!这就是AI Builder提供的功能-确定单个对象是否存在的百分比确定性。这与其他形式的AI图像处理相比,灵活性要差得多,我们需要以某种方式对其进行补充,以实现应用程序的目标。毕竟,我们无法为宇宙中的每个已知对象提供AI模型。

选项2-Azure认知服务

将AI引入应用程序的另一种方法是直接插入Azure认知服务。如您所料,这是一种以开发人员为中心的方法,它是更底层的-我们不在Power Platform或其他低代码框架中。 的 big advantage 是 that there's a wider array of 能力 to use. Compared to the other approaches discussed here, we're 不 restricted to 什么ever Microsoft have integrated into the Power Platform. 的 high-level 是as of Cognitive Services currently extend to:
  • 决断 -检测异常,进行内容审核等。
  • 语言 -LUIS,文本分析(例如情绪分析,提取关键短语和实体),60多种语言之间的翻译等服务
  • 言语 -文本和语音(双向)之间的转换,音频的实时语音翻译,说话者识别等。
  • 视力 -计算机视觉(例如,标记和描述图像,识别物体,名人,地标,品牌,执行OCR,生成缩略图等),表格数据提取,墨水/手写处理,视频索引,面部识别等
    • 注意-这是与本文中的方案相关的服务,尤其是Computer 视力 API标记和描述图像的能力) 
  • 网络搜索 -Bing自动建议,Bin实体/图片/新闻/视觉/视频搜索等 
就我们的场景而言,让我们看下图:


应用程序的构建方式
如果我可以编写一些代码来使用Computer 视力 API并将上面的图像发送给它,我将得到一个类似于以下的响应(注意诸如“ person”,“ indoor”,“ ceiling”,“ event”, “人群”等:

的 code I used to do this 是:

代码示例:

的 relationship between Azure Cognitive Services 和 other options

我们在谈论认知服务时,当然应该认识到此电子邮件中列出的所有选项都在下面使用这些服务。 Power Apps AI Builder,此处讨论的Power Automate活动以及Microsoft云技术中的许多其他功能 都在下面使用Azure认知服务。当您考虑技术选择时,值得考虑的是,您使用Azure的方法越直接,成本可能就越便宜。

选项3-使用电源自动化(流程)消耗AI

这里提供的最后一个选项是创建一个流程,该流程将完成标记和描述事件报告图像的工作。这是迄今为止我认为最简单的方法,也许是将AI内置到您的应用程序中的一种被忽视的方法-我强烈建议您使用Power Automate。注意,这些是 保费 流程操作-我们将在下一篇文章中讨论许可和定价的更多内容,但现在了解,以这种方式提供AI功能会导致额外的成本(与其他两种方法一样)。

在我们用于事件报告的Power App场景中,最简单的实现可能是:
  1. Power App uploads image to 的SharePoint document library
  2. Flow runs using the "的SharePoint - when a file 是 created in a folder" trigger
  3. 的 Flow calls Azure Cognitive Services (using the native Flow actions for this)
  4. Once the tags 和 image descriptions have been obtained, they 是 written back to the file in 的SharePoint as metadata
美的真正体现在步骤3中。由于Microsoft提供了许多像Flow动作那样的AI服务的钩子,因此以这种方式将AI注入您的应用程序非常简单-不需要代码,并且就像在Flow中排列一些动作一样简单。当然需要Power Automate的一些技能和经验,但是该门槛肯定比其他选项低得多。  

这是我的端到端流的样子:

In more specific terms, the trigger 是 on a new file being created in the 的SharePoint site 和 list where my Power App pushes the image to:

对于已添加的每个文件,我得到该文件,然后调用:
  • 描述图像内容 
  • 标签图像
的 Flow section below shows 怎么样 we get the details of the file added to 的SharePoint to be able to pass the contents to the Azure actions for processing:
On the Power App side of course, I need something to use the camera on the device to take the photo 和 upload the file to 的SharePoint - but that's 不 too complex, 和 it's just a question of adding the Power Apps camera control to my app to facilitate part of that. Of course, a major capability of Power Apps 是 being able to plug into device facilities such as camera, GPS 和 display functions, so it 应该 be no surprise that's simple. If 您 remember, I showed my sample app briefly in the last post:



However, I do need to do some work to get my image into 的SharePoint once it has been captured - in my case I use the integration between Power Apps 和 Power Automate to do this. I create a Flow which uses the Power Apps trigger 和 ultimately uses the 的SharePoint "Create File" action. 的 important part though, 是 the Compose action in the middle which uses the "DataUriToBinary" function to translate the image data from 怎么样 Power Apps captures it to 怎么样 的SharePoint needs it:

然后,我将流程链接到Power App:

然后,我可以在公式中使用它,如下所示:

UpdateContext( { PictureFilename:“事件_”& Text( 现在(), “ [$ -en-US] yyyy-mm-dd-hh-mm-ss” ) & ".jpg" } );

IncidentPhotoProcessing.Run(PictureFilename,First(Photos).Url);

..and there we go, a fairly quick 和 easy way to get the photo for my incident into 的SharePoint so that the AI can do it's processing.

概要


We've looked 在 three possible approaches in this post to building an Office 365 application which uses AI - Power Apps AI Builder, use of Azure Cognitive Services from code 和 use of actions in Power Automate which relate to AI. 的 findings can be summarized as:
  • 每种方法需要不同的技能:
    • Power Automate是最简单的使用方法,因为它提供了可以轻松插入AI的动作-只需构建一个可以接收图像的Flow,然后使用上面显示的Computer 视力动作即可
    • 直接使用Azure Cognitive Services API需要具备编码技能(使用提供的.NET和JavaScript等SDK或向Azure端点发出自己的REST请求),但是由于所有Microsoft AI功能都已公开,因此这是一种功能强大的方法
  • 各个选项的功能不同:-
    • Power Apps AI Builder has some constraints regarding our 图像处理 scenario. 的 "object detection" model 是 great for identifying if a known object 是 present in the image, but can't help with identifying any arbitrary objects 要么 concepts in the image
    •  Azure认知服务为基础 所有 Office 365中的AI功能,并提供Power Apps或Power Automate中未提供的许多服务。结果,它提供了最大的灵活性和功能,但付出了更多的精力和各种实施技巧
  • 要求和上下文很重要:
    • In our scenario we're talking about a Power App which captures incident data 和 stores it in 的SharePoint - in other words, we've already specified that the front-end 应该 be Power Apps. In this context, integrating Azure Cognitive Services directly would be a bit more challenging than the other two approaches (but 是 relatively simple from a coded application). In Power Apps, we'd need a custom connector to bring the code in (probably in the form of an Azure Function), 和 that's certainly more complex than staying purely in the Power Platform 
    • 在设计过程中,其他要求可能导致一种技术方法比另一种更为合适。再举一个例子,如果该应用需要一个难以在Power Apps中构建的丰富用户界面,则前端很可能是自定义代码。在这一点上,有一种说法是,在应用程序的内容服务后端使用代码也很有意义
像往常一样,拥有一支团队或合作伙伴能够很好地了解这一领域并具有跨所有选择的能力,可以带来最佳结果。在这种情况下,所有选项都可以放在桌子上,而不是因为技巧而局限于一个或两个。架构决策可以基于优点,考虑应用程序的使用案例和场景,所需的AI功能,用户体验,使用的设备范围,实施速度和成本。

当然,成本是我们尚未涵盖的要素!让我们在下一篇文章中进行讨论:



2020年2月28日,星期五

将AI注入您的Office 365应用–三种方法和定价:第1部分

We’所有人都听说过微软如何履行使人工智能民主化并将其带给大众的使命。上一届Ignite会议(2019年秋季)继续在这个鼓上大放异彩,在一些有趣的场景中以AI为主题的几个演示。实际上,微软’AI的民主化历程始于2015年初, 牛津计划,这是一组API,开发人员可以使用它们来识别脸部,执行语音到文本处理,对图像进行分类等。回想一下,我记得在微软的Tech Ed 2014大会上展示了我为Word创建的扩展程序, 使用非Microsoft AI根据内容查找相似的文档 -AI已经存在了一段时间。 LUIS(语言理解智能服务)也在此期间首次亮相,它是一种Microsoft服务,机器人开发人员通常会使用它从某些词来推断意图。所有这些对于开发人员来说都是很棒的,但是真正的民主化将意味着进一步降低进入门槛。

快进到2020年初,我认为我们’完全处于另一种情况。微软’作为Azure Cognitive Services的一部分,其AI功能已进入定义明确的Azure产品中,并且随着各个API跨Azure数据中心基础架构过渡到服务中,将在性能,扩展性,可靠性和准确性方面进行了大量投资。微软将与AWS,谷歌,IBM和其他主要的云提供商一起,尽可能多地抢占全球工作量,以收回其基础设施投资并确保利润。 竞争非常激烈,即使您的组织目前并未大量使用AI, 他们正在瞄准。 

除此之外,Power Platform成为了Microsoft’无需专业开发人员技能即可构建的业务应用程序模型。那么,对于使用Microsoft云技术的组织来说,使用AI的难易程度如何?本系列文章探讨了几种方法,还分析了每种情况下使用AI的定价。易于使用的AI是否会增加成本?如果组织*有开发人员或合作伙伴,哪个选项是最佳选择?

本文是系列文章的一部分:

  1. Office 365应用中的AI- a scenario, some AI examples 和 a sample Power App (this article)
  2. Office 365应用中的AI- choosing between Power Apps AI Builder, Azure Cognitive Services 和 Power Automate
  3. Office 365应用中的AI- pricing 和 conclusions
当我们考虑不同的方法时,一个场景将有助于我们的分析-因此,让我们首先考虑一下。

的 scenario

在许多部门都需要某种形式的事件或情况报告,从监视建筑工地的危险,医院的健康和安全监视到什至是商店经理向总部提交商品证据的商店。’s say we’重新构建一个事件报告应用程序,移动工作人员将在手机上的现场使用-我经常与客户一起使用此示例,因为它结合了智能数据捕获应用程序的多种要素。我们’ve决定该应用程序本身将成为Power App,以避免开发昂贵的本机应用程序并易于分发到移动设备,并且照片和图像细节将存储在SharePoint Online中。人工智能将被用来检测什么’图片中发生的情况– specifically, we’将以描述和关键字的形式向图像添加一些元数据。关键字将描述图像中检测到的对象和整体设置。这很有用,因为它可用于自动分类事件和/或警告不同的团队–使用健康与安全示例(如果包含关键字)“casualty”, “injury” 要么 “blood”,可以立即向某个团队发出警报。根据其他合适的规则或工作流程,也可以内置其他事件处理程序。

的re 是 a number of ways we could build this app:
  • 使用Power Apps AI Builder
  • 一个Power App(通过自定义连接器)直接与Azure认知服务对话
  • 使用Power Automate Flow消耗AI服务的Power App
对于每种方法,我们’ll look 在 应用的构建方式,定价以及任何限制和注意事项 该选项附带。

AI图像处理-看例子

在继续研究实现方法和成本之前,人工智能究竟如何在这样的应用程序中提供帮助?虽然AI工具的范围包括文本到语音(反之亦然),语言翻译,模式匹配,数据提取,文本处理以及各种与数据科学相关的工具,但在我们的场景中,它是一种形式 图像处理 这是最相关的。我们可以在这里解锁的潜在好处包括:
  • 图片(以及本例中的相关事件)变为 可搜寻的 当我们有一些文本数据给他们时。除非已执行某些解释,否则任何搜索功能(包括Office 365)都无法确定各种像素和颜色代表什么
  • 一旦应用程序知道图像/事件与图像/事件有关,就可以对其进行分类
  • 一旦我们将图像转换为信息,便可以进行一些自动化的“分类”。使用前面描述的示例,如果AI 确实 identify concepts such as "伤亡" 要么 "受伤" our system would take specific action - even if the process was simply to route these incidents for urgent human processing 和/or we accepted that some would be false positives, there could be huge benefits across the a busy system
  • AI可以轻松处理大量历史数据。因此,如果我已经有了一个现有文件的存储库,希望在其中执行一些自动化的图像处理(或者在其他文件的情况下,进行模式识别/翻译/文本转换为语音生成等),即使我没有这样做,我也可以轻松地做到这一点首次引入该应用程序时没有功能
总的来说,这里有几乎无限的可能性。

无论如何,回到图像处理。以下是一些示例-使用我创建的用于执行上述功能的测试Power App捕获的两个图像,以及一个来自互联网的图像。对于每个图像,请考虑图像以及AI检测到的图像:

图片

结果

图片

结果



图片

结果


我认为那里有一些非常惊人的结果。考虑一下一些公认的对象和概念,例如公共交通,地铁,会议室,紧急服务,警察等,它们具有足够的智能,能够成功检测到这些环境,并在您可以轻松访问的范围内为您提供这种功能众多创新解决方案的大门。你怎么用它 您的 组织?

用于事件报告的Power App

这就是后端可以做的。但是在前端,我们的方案需要一种捕获图像并报告事件的方法。这是我创建的一个快速Power App,它可以将相机控件与Power Apps结合使用,并允许我插入本系列中正在研究的三种架构中的任何一种:

在制造商视图中,它看起来像这样(使我难以工作,因为激活了我的Surface Pro的前置摄像头):

概要

因此,这为本系列奠定了基础。人工智能是获得广泛报道的主题之一,但是我看到许多组织都在努力地实际使用它。在这些文章中,我的目的是展示一些可以为常见的业务场景增加实际价值的方法,并且在这些选项之间需要考虑一些变量-能力,成本概况,实施所需的技能等。

充分了解Microsoft堆栈中提供给您的选项,可以帮助您为组织或客户带来真正的创新。在下一篇文章中,我们将详细介绍3个实现选项,因此您可以了解以这些方式利用AI的需求。

下一篇- Office 365应用中的AI- choosing between Power Apps AI Builder, Azure Cognitive Services 和 Power Automate

2020年1月31日,星期五

的拉斯维加斯SharePoint会议2020-我的想法(和会议细节)

I’很高兴在今年再次发言’的官方SharePoint会议,由Microsoft于五月在拉斯维加斯举行。 的SharePoint仍然是Office 365的重要焦点,但是像其他SharePoint事件一样,它’当然,“SharePoint” 是 in the name, the truth 是 that the content extends to most of Office 365 和 许多 aspects of Azure too. I think a few reasons combine to make this an *extremely* interesting time to be talking about 的SharePoint in context of other elements of Office 365. For most of us of course, this 是 against a backdrop of 怎么样 to provide the best tools to an 要么 ganisation 和 什么 a digital workplace 应该 look in these times, 和 specific 是as for me include:

  • 的 relationship between Teams 和 的SharePoint, 和 怎么样 the two can be combined to provide amazing experiences
  • Project Cortex,即将到来的工具集,我们可以期望它是组织内部知识的生成,发现,管理和发展方式的一步变化
  • 如何在控制数据使用方式的同时利用Power Platform,并能够为最终用户开发的应用程序提供有效的支持
  • 如何基于一种不仅仅是技术的方法提供世界一流的现代化工作场所。在实现业务变更和大量采用工具以及使业务达到计划目标方面,哪些具体实践有效?
  • 的 forthcoming “new Yammer”,并转向具有不同功能和有趣移动功能的面向社区的小组
  • Changes in the development landscape, including 更大的 能力 in the SPFx platform 和 the broadening out into other 是as of Microsoft 365 development. 的 ability to think beyond Teams 和 的SharePoint, 和 to understand 什么 kind of experiences can be provided across Office apps 是 a huge opportunity for most 要么 ganisations
  • 的 need for a considered, appropriate security posture
  • Moving forward with AI, so that it becomes something that 是 weaved into 您的 applications rather than just something discussed aspirationally. High-end data science tools in Azure 是 one thing, but 什么 about the easier to achieve possibilities across 的SharePoint, Power Apps 和 Power Automate? What 是 they, 和 怎么样 can they be used without developer skills?
我一直说我们’re in a “多么活着的时间!”Microsoft技术时期。在这样的事件中,能够听到Microsoft高管和程序经理以及该领域的一些最佳从业人员(以及我!)的重要发展信息,是加快学习速度和定位自己,推动自己发展的好方法组织或客户前进。

演讲者和会议

该会议将举办200多个会议和20个专题讨论会,展厅将有100多个参展商。微软的发言人包括Jeff Teper,Jared Spataro,Dan Holme,Bill Baer,Mark Kashman,Vesa Juvonen,Naomi Moneypenny,Murali Sitaram,Navjot Virk,Karuana Gatimu等。那里’业界中也有很多才华横溢的演讲者,包括安德鲁·康奈尔,苏珊·汉利,本杰明·尼亚林,埃里克·舒普斯,欧文·范·胡嫩,保罗·皮亚尔西,塞巴斯蒂安·莱弗特,弗拉德·卡特琳斯库,约翰·怀特等等。

的 conversations will be great, 和 I know the people above 是 always willing to talk in corridors 和 周围 the conference.

我的会议

I’我会受欢迎的“Office 365开发人员命中列表” session – here’s the blurb:

掌握的顶尖Office 365开发技术-命中列表:
在Office 365开发中,事情发展很快,并且随着Microsoft平台和API的发展,新技术和方法始终可用。作为一个才华横溢的开发团队的负责人,我会定期更新我认为对拥有良好能力来构建Office 365解决方案至关重要的技术清单。在SPFx,图,团队开发,Azure Functions中的编码以及PowerApps和Flow中的构建解决方案之间,让我们逐步了解2020年中期的高价值方案,该方案应包含在每个经验丰富的编码员工具箱中,并分别提供一个演示和代码示例。本次会议将帮助您消除任何技能差距,并且应该与房间中一些聪明的人进行一次很好的交谈。

使用代码“OBRIEN” for a $50 discount

与往常一样,如果您注册并使用我的姓氏作为折扣代码,则表示您’可以从门票价格中获得$ 50的折扣-当然,组织者也知道与会的演讲者感兴趣。既然是拉斯维加斯,我们’在这里谈论,所以我’如果可以的话会感到惊讶’找不到这50美元的好用

使用此链接比在表格中的框中输入我的名字更简单。 http://obrien.spc.ms。单击下面的图像也将带您到那里:

会议的更多细节

的 conference website 是 在 //sharepointna.com, 和 has 所有 您 need to know about the event, location, pricing, hotels 和 more. You can also tap into "的SharePointTV", which has some great content streamed most Wednesdays going forward.

希望能在活动中见到你!

2020年1月8日,星期三

改善Power Apps治理和分析

我的一些工作’最近(与一些有才华的同事一起)一直在改进组织内部对Power Platform使用的治理–尤其是Power Apps,因为很多风险倾向于集中在此处。它’Power Platform可以在公司内部被广泛采用(或者至少采用率在不断增长)已变得越来越普遍,但是从准确的角度来看,一系列新的问题变得显而易见 WHO 是在做 什么 与哪些应用。在某些方面,对Power Apps和Power Automate的无节制使用可以成为组织中的免费服务 –如果业务中某人创建的关键应用出现问题,或者该人更改了角色或离开了公司,这可能会导致严重的运营问题。在许多情况下,“企业中的人们”可以创建至关重要的应用程序,并且用户期望IT。提供支持–但它。对这个地区发生的事情有一个盲点,不要’对应用程序一无所知。

常见问题是:

  • 我怎么在此之上?我们如何得知已经存在哪些应用程序以及正在创建哪些应用程序?
  • How do we discover whether apps 是 connecting to Azure, SQL, 的SharePoint, 要么 perhaps even SAP, Workday, ServiceNow 要么 ungoverned cloud services such as Dropbox?
  • 哪些帐户用于连接?他们合适吗?
  • 如果创建该应用程序的人离开了组织或转到另一个角色,我们是否受到保护?
We’我们与一些组织围绕此问题做了一些工作,部分是基于 Power Apps COE入门套件。然而..

的 Power Apps COE入门套件 是 不 a turnkey solution

虽然COE入门工具包是一个很好的基准,但顾名思义,这是’一个完整的解决方案。一方面,不幸的是’是基于CDS的,这意味着您组织中每个重要应用的制造商都可能立即需要其他许可 只是为了使用治理解决方案! 这对我们来说似乎很疯狂,因为我们客户中的许多制造商都在广泛使用Power Apps,但专注于仅与Office 365来源进行通信的应用程序–因此,这些用户不会因此没有‘per app’ 要么 ‘per user’ plan license.

因此,我们决定创建一个重新设计的COE套件的分支,以将数据存储在Office 365中。这一步骤可以避免这种情况,并提供了一些比基线更高的收益,这就是我们的解决方案’与我们的客户一起使用。

速览解决方案提供的内容

该解决方案围绕分析提供了很多功能,在后台进行了大量数据收集(包括从Office 365审核日志中启动的应用程序)–我们必须调整的另一个区域)以提供Power BI仪表板,该仪表板提供了一些非常有用的见解。这只是一个屏幕,但是底部的选项卡使您对其中的内容有了一个大致的了解:

治理框架还引入了‘compliant’ 和 ‘non-compliant’为您的组织提供强大的应用程序。这包括几件事,包括要求应用程序制造商 为他们的应用提供缓解计划。到底是什么 应该 如果应用程序变得无法使用或更新中断了某些事情,该怎么办?自I.T.竞技场 ’如果一定要在一个合适的位置提供SLA支持,那么适当放置这些内容可能会给整个企业带来极大的风险。管理员可以看到每个应用程序的交通信号灯评级,并且对每个应用程序都具有很好的了解’的连接和数据源,使用的环境,使用方式,制造商和用户等。

我们还做了大量工作,以促进运作良好的Power Apps Maker社区–包括创建包含我们编写的一些政策内容的Power Apps知识中心网站,并使用我们收集的有关制造商的数据,创建Yammer组或Microsoft团队,邀请所有顶级制造商并互相介绍。从那里,他们有一个分享经验,寻求帮助等的地方。

关于此的播客采访

如果您想了解更多信息,Jeremy Thake最近接受了Microsoft 365开发者播客的采访。实际上,我们只是在最后一分钟才决定要讨论这个话题,但是我认为结果很好!如果下面的嵌入式版本没有’工作,直接链接是:

//www.podbean.com/eu/pb-s8iq2-cab99d