什么是低代码?

已完成

什么是低代码以及如何在基于画布的 Power Apps 中使用低代码?

您和 Kiana 已经在 VanArsdel 的同一个“高代码”或传统开发团队工作了很长时间。 您们已经一起开发了从 .NET 核心控制台应用到 ASP.NET 核心 Web API 再到可通过 NuGet 共享的可重复使用库的所有内容。 如果您能坐下来从传统开发背景的角度了解 Power Apps,则可帮助理解“低代码”的含义。

不同的人乍一听“低代码”一词,对其会有不同的理解。 我们在谈到低代码的时候,其实是想说借助 Power Apps 之类的工具,您只需写下少量代码,即可获得通过传统编程语言写下很多行才能获得的效果。

在基于画布的 Power Apps 中,所用低代码脚本语言称为 Power Fx;在整个这一模块,我们都将学习并使用该语言来构建我们的应用。

举个例子,要查找某个订单的员工名字,可以如以下动画所示写入 Power Fx 公式或等效的 JavaScript。 本动画显示了 Power Fx 公式的各部分与需要在等效 JavaScript 中明确编码的概念之间的映射。

Power Fx 和 JavaScript 对比

我们来深入了解 Power Fx 可以实现的操作及其提供的优化自由度(因为该公式是声明性的):

异步

Power Fx 中的所有数据操作均为异步操作。 开发人员无需指定这一点,也无需在调用结束后实施同步。 最重要的是,开发人员根本不需要了解这一概念,也不需要知道什么是承诺或匿名函数。

本地和远程

Power Fx 会对内存中的本地数据和数据库或服务中的远程数据使用相同的语法和函数。 用户无需考虑其中的区别。 Power Fx 会自动将其能够委托的事项委托给服务器,以便更高效地处理筛选器并对其排序。

关系数据

订单和客户是两个不同的表,通过多对一关系建立联系。 OData 查询需要一个了解外键的 "$expand",类似于 SQL 中的 Join。 这些本公式都没有,实际上也无需了解数据库键这一概念。 创建者可以使用简单的点符号访问一条记录中的整个关系图。

投影

写入查询时,很多开发人员都会写入“select * from …” 本代码将会拉回所有的数据列。 Power Fx 会对在整个应用中使用的所有列(包括跨公式依赖项)进行分析。 预测会自动优化,创建者甚至都不需要知道这个词的含义。

仅检索需要的内容

在本例中,LookUp 函数表示只能检索一条记录,而这就是返回的所有内容。 如果使用筛选器函数请求更多记录,而符合条件的记录达数千条,则一次只会返回一页数据,一页有一百条,按顺序排列。 用户必须通过手势才能浏览库或数据表以查看更多数据,这些数据将会自动返回。 创建者可以对大量数据进行推理,而无需考虑将数据请求限制在合理区块内。

仅在需要时运行

我们针对标签控件的文本属性定义了一个公式。 随着所选变量的变化,LookUp 函数会自动重新计算并更新标签。 创建者无需为“选择”编写 OnChange 处理程序,只需记住该标签是依赖于它的即可。 这就是前面讨论过的声明式编程;创建者指定其想要在标签中呈现的内容,而非其获取方式或获取时间。 事实上,如果标签因出现在不可见屏幕或其 Visible 属性为 false 的屏幕上而不可见,我们可以将本项计算推迟到标签可见的时候;如果标签极少可见,我们则可以将其有效消除。

Excel 语法翻译

Excel 的用户数以亿计,大部分用户知道“&”用于字符串连接。 JavaScript 使用“+”,其他语言则使用“.”。 Power Fx 可利用已有的知识适应制作者当下的需求。

显示名称和本地化

Power Fx 公式中使用“First Name”,而 JavaScript 等效项目中使用“nwind_firstname”。 在 Dataverse 和 SharePoint 中,除了字段和表格会有一个显示名称外,还会有一个唯一的逻辑名称。 与本例一样,显示名称通常对用户非常友好,并且还有一个非常重要的特质:可以本地化。 如果您有一支多语言团队,则每个团队成员均可用自己的语言查看表格和字段名称。 Power Fx 将始终确保自动向数据库发送正确的逻辑名称。

始终有效

Excel 还有一个对公民开发者来说非常重要的特质:即时反馈。 如果您停下来想一想,Excel 没有编辑模式、编译步骤或运行状态。 最棒的一点是,您以前可能从来没有考虑过这个问题:您只需加载电子表格,自由编辑公式和值,然后即可获取答案。 电子表格在 Excel 中始终有效,编辑和运行之间没有区别。 任何值或公式发生变动都会立即反映到整个电子表格中,创建者可以快速查看正确答案。 Excel 检测到的任何错误都可以立即呈现,并且不会对电子表格的其余部分造成干扰。