ABP Framework 5.3.0 版本新增功能和变更说明

ABP Framework 5.3.0 稳定版已在2022年6月14日正式发布。

以下是本版本的新增功能:

  • “开始”页面提供创建单层项目选项
  • 启动模板提供 PWA 支持
  • Volo.Abp.Gdpr.Abstractions 包介绍
  • 将发件箱中的事件批量发布到事件总线
  • eShopOnAbp 项目改进和电子书公告
  • LeptonX Lite 文档、项目状态和路线图
  • OpenIddict 模块和 Keyclock 集成
  • 部署文档

欢迎加入 ABP Framework 研习社,千人QQ学习群(QQ群:726299208),问题解答、经验分享、示例源码、电子书共享,欢迎入住!

“开始”页面提供创建单层项目选项

单层项目,顾名思义生成的解决方案只有一个项目,逻辑上遵循DDD,适用于业务逻辑并不复杂的项目,优点是小而快,单层项目中良好的目录划分,如果后期项目开始变大,拆分成多层项目也很方便。

从“开始”页面创建项目,在项目类型选项选择 Application(single layer),即可使用 app-nolayers 模板生成新项目。

新的启动模板可以在 templates/app-nolayers 目录中查看,该模板在之前的版本中已经发布,只是在此版本中,可以在“开始”页面中增加了该模板选项。

同样的,我们还可以通过 ABP CLI 来创建单层项目

示例:

abp new -t Acme.BookStore app-nolayers

启动模板提供 PWA 支持

ABP v5.3 应用程序启动模板现在支持 Blazor WASMAngular UI PWA。 要创建支持 PWA 的启动模板,可以使用 --pwa 参数。

示例:

abp new MyProgressiveWebApp -t app -u blazor --pwa

什么是PWA?
PWA(Progressive Web Apps,渐进式 Web 应用),该技术的出现是通过各种 Web 技术实现与原生 App 相近的用户体验。
扩展阅读:

Volo.Abp.Gdpr.Abstractions 包介绍

新的 Volo.Abp.Gdpr.Abstractions 包已添加到框架中。这是一个抽象包,因此不包含任何 GDPR 的实际实现。它定义了一些类和接口,为想要在模块化或微服务系统中运行的 GDPR 模块的制定标准。

什么是 GDPR?
《通用数据保护条例》(General Data Protection Regulation,简称GDPR),欧洲联盟于2018年5月25日出台的条例,前身是欧盟在1995年制定的《计算机数据保护法》。

届时,官方将为 ABP Commercial 商业用户引入 GDPR 模块,该模块提供执行 GDPR 相关操作,例如:下载、删除个人数据。

ABP Framework 版本需要自己实现。

将发件箱中的事件批量发布到事件总线

在 ABP v5.0 中引入了 事务发件箱和收件箱模式 ,在 6.3.0 这个版本中对批量事件发布进行了一些优化,您可以从这里查看相关的开发。优化后的效果令人印象深刻。如果已配置事件发件箱则默认启用,因此您不需要任何手动配置。

eShopOnAbp 项目改进和电子书公告

eShopOnAbp 项目持续开发中,以下是改进简要说明:

  • 本地证书可以在 Kubernetes 中使用,并且 Helm Charts 已更新,参见#107
  • 订单管理页面已创建完成,参见#92
  • 数据库迁移事件处理程序已被删除,分布式锁定现在用于数据库迁移。参见#85#102
  • Ocelot 切换到 YARP 作为网关。见#97

令人振奋的消息是,官方正在编写《ABP 微服务开发》电子书。在本书中,我们使用 eShopOnAbp 作为参考的微服务解决方案,并试图通过该项目解释我们在微服务应用程序开发过程中的经验。

本书计划分为九章,并在第三章完成后提供。之后,您将能够从 abp.io 网站下载这本免费的电子书。

ABP的学习资料无疑是非常丰富的,这是官方发布的第三本电子书。《实现 DDD》-已翻译、《Mastering ABP Framework》在 ABP Framework 研习社(QQ群:726299208)群共享中有分享,ABP Framework 的目标之一是帮助开发人员更好地实现微服务架构,非常Nice,期待电子书发布!

LeptonX Lite 文档、项目状态和路线图

LeptonX Lite 终于发布了 1.0.0-beta.11.0.0-beta.2 版本。

Lepton X Lite 文档已针对三种 UI 类型(MVC/Razor Pages、Blazor、Angular)分别编写。

可以参考帮助文档尝试新的 LeptonX Lite 主题:

目前启动模板中的默认UI模板确实很Low,配不上框架本身的高大上,这就让人很不爽,希望 LeptonX Lite 的发布能够改变这一现状。因为目前是 beta 版,所以不建议在生产中使用,但强烈建议提前测试。

对于下一个版本(beta.3 和 RC 版本),将重点关注:

  • 修复社区报告的错误(在测试时也可以积极反馈bug)
  • 提供尽可能多的帮助文档
  • 在演示示例中添加新的自定义页面

OpenIddict 模块和 Keyclock 集成

此前官方已经宣布更换 IdentityServer 的计划。 ABP 目前使用 IdentityServer4 将 OAuth 功能添加为服务器端的内置功能。但是,由于 IdentityServer4 的支持在 2022 年底结束。新的替代版本是 Duende IdentityServer,不再是免费软件。 (看更多

因此,官方决定从 ABP 平台完全删除 IdentityServer4,并集成 OpenIddict 到启动模板中。

目前已经实现了 OpenIddict 模块,官方计划在 ABP v6.0 启动模板项目中删除 Identity Server 并将其替换为 OpenIddict 。

目前官方正在为 OpenIddict 模块创建文档,如果您想了解有关此模块的基础知识,可以从此处查看文档。目前,这是一个草稿文档,但提供了有关 OpenIddict 模块的整体知识,官方将在 ABP v6.0 中完成此文档,到时将能够完整地阅读它。

目前,官方还在研究 OpenIddict 和 Keycloak 并行集成的可能性,并且准备了一些示例,可以查看#154#158

Keycloak 是为现代应用和服务提供了开源IAM(Identity and Access Management)解决方案。Java开发,貌似国内用的不多,集成意义不大。
IdentityServer 4 一直是 .NET Core 平台上的首选,在 2020 年成立公司, IdentityServer 5 就开始收费了。ABP Framework 迫不得已选择新的替代方案。
ASP.NET Core Team 明确表示他们不会投入任何资源去研发类似 IdentityServer 的东西, 从 ASP.NET Core 5.0 开始, SPA项目模板是默认依赖 IdentityServer 4 ,6.0 也会依赖, 7.0 会有替代。

部署文档

部署基于 ABP 的应用程序与部署任何 .NET 或 ASP.NET Core 应用程序没有太大区别。 您可以将其部署到云提供商(例如 Azure、AWS、Google Can)或本地服务器、IIS 或任何其他 Web 服务器。 官方准备了一份“部署指南”来提示要点和注意事项。

Deploying to a Clustered Environment 文档中,记录了在将应用程序开发到集群环境时应考虑的要点,并解释了如何在基于 ABP 的应用程序中处理。

其他

  • 全局特性以前只能通过 C# 代码访问。 从这个版本开始,全局特性可以从应用程序配置中提供。 参见#12043
  • 从第三方登录可以获取用户的详细信息,如:姓名、姓氏和电话号码等。 请参阅#12085
  • Angular 日期管道,datePipe函数,直接给日期格式化。请参阅#11909

下一个版本

下一个大版本将是 6.0 ,计划在7月12日发布 6.0 RC(候选版),并在2022年8月16日发布最终版本。

dotNET兄弟会-公众号

专注.Net开源技术及跨平台开发!致力于构建完善的.Net开放技术文库!为.Net爱好者提供学习交流家园!

image

历史更新版本说明