Today, we are happy to release the ABP Framework and ABP Commercial version 5.3 RC (Release Candidate). This blog post introduces the new features and important changes in this new version.
The planned release date for the 5.3.0 Stable version is June 14, 2022.
Please try this version and provide feedback for a more stable ABP version 5.3! Thank you all.
Get Started with the 5.3 RC
Follow the steps below to try version 5.3.0 RC today:
- Upgrade the ABP CLI to version
5.3.0-rc.1using a command line terminal:
dotnet tool update Volo.Abp.Cli -g --version 5.3.0-rc.1
or install it if you haven't before:
dotnet tool install Volo.Abp.Cli -g --version 5.3.0-rc.1
- Create a new application with the
abp new BookStore --preview
See the ABP CLI documentation for all the available options.
You can also use the Direct Download tab on the Get Started page by selecting the Preview checkbox.
You can use any IDE that supports .NET 6.x, like Visual Studio 2022.
This version comes with a few breaking changes, so please see the migration guides if you are upgrading from v5.2:
What's New with ABP Framework 5.3?
In this section, I will introduce some major features released with this version. Here is a brief list of titles explained in the next sections:
- Single-layer option added to the Get Started page
- PWA Support for Startup Templates
- Introduced the
- Batch Publish Events from Outbox to the Event Bus
- Improvements on eShopOnAbp Project & E-Book Announcement
- LeptonX Lite Documentations & Project Status & Roadmap
- OpenIddict Module & Keycloack Integration
- Deployment Documentations
- Other News
Single-layer Option on Get Started Page
We've created a new startup template named
app-nolayers and announced it in the previous version. In this version, we've also added this startup template option to the Get Started page.
You can examine the screenshot below to see how to create an
app-nolayers template from the "Get Started" page:
PWA Support for Startup Templates
ABP v5.3 application startup template now supports PWA for Blazor WASM & Angular UIs. To create a startup template with the PWA support, you can use the
abp new MyProgressiveWebApp -t app -u blazor --pwa
Volo.Abp.Gdpr.Abstractions package has been added to the framework. This is an abstraction package, so doesn't contain any actual GDPR implementation. It defines some classes and interfaces to put a standard for who want to implement a GDPR module that can run in a modular or microservice system.
At that point, we are introducing the GDPR Module for the ABP Commercial customers and this module does the GDPR-related operations on behalf of you, such as "Download/Delete Personal Data". I'll describe the GDPR Module later in this blog post.
Please see the GDPR Module section below to learn more about this module.
Batch Publish Events from Outbox to the Event Bus
We introduced the "Transactional Outbox & Inbox Patterns" in ABP v5.0, it was one of the most awaited features by several software developers.
We've made some optimizations for the Batch Event Publishing in this version, you can examine the related development from here. After the optimization, the results are impressive. It is enabled by default (if you have configured event outbox), so you don't need to any manual configuration.
Improvements on eShopOnAbp Project & E-Book Announcement
There are some developments on the eShopOnAbp project made in this version. You can see the brief descriptions of some of the improvements below:
- Local certificates have been created to use while working in Kubernetes and also Helm Charts have been updated. See #107.
- The Order Management page has been created. See #92.
- Database migration event handlers have been removed and "Distributed Locking" is now used for database migrations. See #85 and #102.
- Switched from Ocelot to YARP as the gateway. See #97.
We have exciting news to share with the community, we're working on an "ABP Microservice Development" e-book. In this book, we're using the eShopOnAbp project as a reference microservice solution and we're trying to explain our experiences during the microservice application development process through this project.
We're planning to create this book in nine chapters and make it available after the third chapter is written. After that, you will be able to download this free e-book from the abp.io website.
LeptonX Lite Documentations & Project Status & Roadmap
It is finally here, we've released the 1.0.0-beta.1 and 1.0.0-beta.2 versions for the LeptonX Lite.
Lepton X Lite documents have been written for the three UI types within this version. You can see the related documentation from the screenshot above. You can follow these documents and try the new LeptonX Lite Theme.
We don't suggest using the beta.1 and beta.2 versions on production but we highly demand you to test LeptonX Lite and provide feedback to us. It's really important for us to be able to release a more stable version. Thanks in advance.
For the following versions (beta.3 and RC versions), we will focus on:
- Fixing the reported bugs from the community
- Providing documentations as much as possible
- Adding new custom pages to the demo
OpenIddict Module & Keycloack Integration
We have announced the plan of replacing the IdentityServer. ABP currently uses IdentityServer4 to add OAuth features as built-in on the server-side. However, since IdentityServer4's support ends at the end of the year 2022. Its replacement is Duende IdentityServer, which is not a free software anymore. (see more)
Therefore, we've decided to completely drop the IdentityServer4 from the ABP platform and implement the OpenIddict and install onto the startup templates.
We've implemented both open source and commercial OpenIddict modules, we plan to remove Identity Server and replace it with OpenIddict for template projects in ABP v6.0. Please check #12084 to see the development made on the open-source side.
We're creating the documentation for the OpenIddict Module, if you want to have general knowledge about this module, you can check the documentation from here. Currently, this is a draft documentation but it gives overall knowledge about the OpenIddict Module, we'll complete this documentation in ABP v6.0 and you'll be able to read it completely.
Currently, we are also working on Keycloak integration possibilities in parallel to the OpenIddict integration research and we've prepared some samples that you can examine. You can see #154 and #158.
Deploying an ABP-based application is not so different than deploying any .NET or ASP.NET Core application. You can deploy it to a cloud provider (e.g. Azure, AWS, Google Could) or on-premise server, IIS or any other web server. However, we wanted to prepare a "Deployment Guide" to mention the important points and considerations.
In the Deploying to a Clustered Environment documentation, we've documented the topics that you should consider when you are developing your application to a clustered environment and explained how you can deal with these topics in your ABP-based application.
- Global Features were only accessible from the C# code. From this version and on, Global Features can be also provided from application configurations. See #12043.
- Getting the user's detailed information (name, surname and phone number) from external login. See #12085.
- Date Pipes for Angular. See #11909.
If you want to see more details, you can check the release on GitHub, which contains a list of all the issues and pull requests closed with this version.
What's New with ABP Commercial 5.3?
GDPR (General Data Protection Regulation) is a regulation in EU law on data protection and known as the toughest privacy and security law in the world. GDPR applies to any organization operating within the EU, as well as any organizations outside of the EU which offer goods or services to customers or businesses in the EU.
With this version, we are introducing the new GDPR Module. This was one of the most awaited features, so we've prioritized it and implemented it in this version.
The GDPR Module is pre-installed in the startup templates for MVC. So, no need to manually install it. When you create a new startup template, you can directly use this module. We'll also implement this module for the other UI types as soon as possible and also add extra functionality such as "Cookie Consent" and more.
Currently, there are two main functions of this module and they are "Download Personal Data" and "Delete Personal Data".
There is a "Personal Data" section in the user menu as in the screenshot above and when you click on this section, you'll be redirected to the "Personal Data" page. On that page, you can either request to "Download Personal Data" or "Delete Personal Data".
After you've requested to download "Personal Data", you need to wait for 1 hour by default (you can configure the related option). Because the GDPR module is developed by considering the distributed systems and therefore a specific time should be passed to ensure all the published events are handled and all personal data is collected.
CMS Kit Pro - Polling Feature
We've added a Polling feature to the CMS Kit Pro module. This feature allows you to use a questionnaire/voting system in your application easily. You can create a question, define some options for it and the poll will be created for you. You can see the example poll in the screenshot below:
Also, there is an admin side of the Polling Feature. You can easily manage your polls in your admin (back-office) project. You can create, update, delete and show the results of the poll on the Polls page:
OAuth Resource Owner Password as External Login Provider
The Resource Owner Password flow allows for the exchanging of the username and password of a user for an access token. When using the resource owner password credentials grant, the user provides the credentials (username and password) directly to the application.
Now, you can login by entering a username and password from an OAuth server.
Example: Use OAuth external login provider with Keycloak:
Suite New Features & Enhancements
In this version, there are some enhancements and new features in Suite and they are listed briefly below:
- It's now possible to create an app-nolayers (Application - single layer) template via Suite and also code-generation is supported for the app-nolayers template with this version.
- Suite now allows users to see and download its logs.
- Suite now allows generating code via CLI. If you have a JSON file that contains code blocks, like entity configurations, you can use the
abp suite generatecommand to generate CRUD pages based on it.
abp suite generate -e C:\Users\.suite\entities\Country.json -s C:\Users\my-proj\SuiteProj\SuiteProj.sln
Suite Webinar: Take a closer look at the code generation
We've organized a webinar for Suite and in this webinar, we've talked about ABP Suite's capabilities, important features and more...
You can watch the event from here, if you haven't watched it yet.
Docker Compose Configurations for Single Layer Startup Template
Dockerfiles, docker-compose files and build script files have been added to the Single Layer Startup Template (app-nolayers) with this version.
And this way, applications created with this template now can be deployed more easily.
Microservice Solution Enhancements
There are some enhancements made in the Microservice Solution. You can see the list of these enhancements:
- Initial migration on the template has been updated with the small improvement that was made in the Language Management module.
- Database migration event handlers have been removed and "Distributed Locking" is now used for the database migrations.
PWA Support for the Application Pro Template
Application Pro template also supports the PWA for Blazor WASM & Angular UIS. To create a startup template with the PWA support, you can use the
abp new MyProgressiveWebApp -t app-pro -u blazor --pwa
New ABP Community Posts
- Anto Subash created a series named "Microservice with ABP" and shared a couple of video posts about the ABP Microservice solution.
- Francisco Kadzi has created his first ABP Community article that shows how to "Customize ABP Angular Application UI with AdminLTE".
- Jack Fistelmann has created an article to introduce a helpful project extension to speed up development on Visual Studio. You can read the article here.
- Jack Fistelmann has also created an article to show how you can generate PDF files with the
Sycyber.Corepackage in ABP-based applications. You can read it here.
- Halil Ibrahim Kalkan has created an article to show "Dealing with Multiple Implementations of a Service in ASP.NET Core & ABP Dependency Injection" with examples.
- Manoj Kumar submitted a new article about how to use "ABP authentication in a Flutter application". It was a frequently asked topic, which you can read here.
- Engincan Veske created a new community article to show "Concurrency Check/Control in ABP". You can read it here.
ABP Community Talks 2022.4: How can you contribute to the open source ABP Framework? (May 10, 2022 - 17:00 UTC)
We've asked you to pick the topic of the next Community Talks and you've chosen the "How to contribute to open source ABP Framework?" for the next talk topic. So, in this Community Talk, we will be talking about "How to contribute to ABP Framework" with one of the top contributors of the ABP Framework, Ismail Yılmaz. The event will be on May 10, 2022, at 17:00 (UTC) on YouTube.
You can register for the event from here, if you haven't registered yet.
You can also subscribe to the Volosoft channel to be informed about future ABP events and videos.
We've created an official ABP Discord server so the ABP Community can interact with each other and created a blog-post to introduce it. You can read the ABP Discord Server announcement post to learn more about the ABP Discord Server.
Thanks to the ABP Community, 700+ people joined our Discord Server so far and it grows every day.
You can join our Discord Server from here, if you haven't yet.
jhsanc 10 months ago
Hello it's possible add pwa support to blazor wasm existing solution not only for new startup templates?.
EngincanV 10 months ago
Hi, currently it's not possible. But you can add PWA support to your application by making a few changes. You can check https://github.com/abpframework/abp/pull/12179 to see the required changes.
EngincanV 9 months ago
Hi, we've created documentation for that. Please check the https://docs.abp.io/en/abp/5.3/UI/Blazor/Pwa-Configuration#adding-pwa-support-to-an-existing-project .
trina.thompson 10 months ago
When will we have access to the source code for the LeptonX theme?
hikalkan 10 months ago
For ABP Commercial, you will be getting the source code with the next version (6.0). You will also be able to select it while creating new projects.
m_josiah 10 months ago
Is it safe to start developing solutions on the release candidate (especially with the new OAuth provider) and easily update to the official release at the end of the month or do you recommend we wait?
hikalkan 10 months ago
Hi, We are testing RC releases and considering they are stable actually. But we don't mark them as stable since the development is just complete and needs more test and feedback. We typically publish RC.1 and RC.2 versions. RC.2 can be considered as much more stable since we fix all our findings and bug reports in RC.1. Upgrading from RC to stable is easy using ABP CLI's `abp update` command (https://docs.abp.io/en/abp/latest/CLI)
Mudasir 10 months ago
1) any support for serverless deployment for modules? 2) is caching updation handled on insert,update and delete ? 3) does eager caching on bootup supported?
hikalkan 10 months ago
1) No work related to that. Deployment is not ABP's topic currently. 2) I didn't understand what type of cache you are asking? If you cache something, you are responsible to invalidate it. You can handle pre-built entity change events to get notified when a related entity changes (update, delete, or create). 3) I didn't understand what you want to cache, but ABP has no such a feature.