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 WASM 和 Angular UI PWA。要创建支持 PWA 的启动模板,可以使用 --pwa
参数。
示例:
abp new MyProgressiveWebApp -t app -u blazor --pwa
什么是PWA?PWA(Progressive Web Apps,渐进式 Web 应用),该技术的出现是通过各种 Web 技术实现与原生 App 相近的用户体验。扩展阅读:
• 一文读懂什么是 PWA?
• PWA 入门: 写个非常简单的 PWA 页面
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 中引入了 事务发件箱和收件箱模式 ,在 5.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.1
和 1.0.0-beta.2
版本。
Lepton X Lite 文档已针对三种 UI 类型(MVC/Razor Pages、Blazor、Angular)分别编写。
可以参考帮助文档尝试新的 LeptonX Lite 主题:
• LeptonX Lite MVC UI
• LeptonX Lite Blazor UI
• LeptonX Lite Angular UI
目前启动模板中的默认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爱好者提供学习交流家园!
历史更新版本说明
• ABP Framework 5.2 RC 新增功能
• ABP Framework 5.0 RC.1 新特性和变更说明
• ABP Framework V4.4 RC 新增功能介绍