Today, we are happy to release the ABP Framework and ABP Commercial version 6.0 RC (release candidate). This blog post introduces the new features and important changes in this new version.

The planned release date for the 6.0.0 Stable version is September 26, 2022.

Try this version and provide feedback for the stable ABP v6.0! Thank you to all.

Get Started with the 6.0 RC

Follow the steps below to try version 6.0.0 RC today:

  1. Upgrade the ABP CLI to version 6.0.0-rc.4 using a command line terminal:
dotnet tool update Volo.Abp.Cli -g --version 6.0.0-rc.4

or install it if you haven't before:

dotnet tool install Volo.Abp.Cli -g --version 6.0.0-rc.4
  1. Create a new application with the --preview option:
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.

Migration Guides

There are breaking changes in this version that may affect your application. Please see the following migration documents, if you are upgrading from v5.3.0:

What's New with ABP Framework 6.0?

In this section, I will introduce some major features released in this version. Here is a brief list of titles explained in the next sections:

  • LeptonX Lite is now the default theme for startup templates.
  • Optional PWA support is added to Get Started page.
  • Introducing the OpenIddict Module and switching to OpenIddict for the startup templates.
  • New .NET MAUI Startup Template.
  • Introducing the ITransientCachedServiceProvider interface.
  • Introducing the dynamic components for Blazor UI.
  • Improvements in ABP CLI.
  • Introducing the Volo.Abp.RemoteServices package.
  • Create/Update user accounts for external logins.
  • Sending test email in the setting page for MVC and Blazor user interfaces.
  • Improvements on the eShopOnAbp project.
  • Other news...

LeptonX Lite Theme on Startup Templates

leptonx-lite-theme.png

With this version, startup templates (app and app-nolayers templates) use the LeptonX Lite as the default theme. However, it's still possible to create a project with Basic Theme either using the ABP CLI or downloading the project via Get Started page on the abp.io website.

via ABP CLI

To create a new project with Basic Theme, you can use the --theme option as below:

abp new Acme.BookStore --theme basic --preview

via Get Started page

Also, you can create a new project with LeptonX Lite or Basic Theme on Get Started page.

get-started-page.png

The "Preview" checkbox should be checked to be able to see the theme selection section on the Get Started page.

Optional PWA Support is Added to the Get Started Page

We've introduced the PWA (Progressive Web Application) support for the startup templates for Angular & Blazor WASM UIs in v5.3. In this version, we also added this PWA support to the Get Started page on the abp.io website.

pwa-support-get-started-page.png

If you check the "Progressive Web Application" checkbox while creating an application, the all required configurations will be done for you and you will get the benefit of PWA features in your application.

Introducing the OpenIddict Module and Switching to OpenIddict in the Startup Templates

We already announced the plan of replacing the IdentityServer with OpenIddict.

Therefore, we have created the OpenIddict module in this version and switched to OpenIddict in the startup templates. The ABP Framework uses this module to add OAuth features to the applications. We created documentation for the OpenIddict Module.

We will continue to ship Identity Server packages for a while but in the long term, you may need to replace it, because Identity Server support ends at the end of 2022. Please see the announcement for more info.

New .NET MAUI Startup Template

maui-template.png

ABP Framework provides .NET MAUI startup templates with v6.0.0. You can create a new .NET MAUI project with the command below:

abp new Acme.BookStore -t maui --preview

Introducing the ITransientCachedServiceProvider

ICachedServiceProvider interface is used to resolve the cached services within a new scope. We created a new interface to resolve cached services without creating scopes. It's called ITransientCachedServiceProvider. The difference between ICachedServiceProvider and ITransientCachedServiceProvider is; ITransientCachedServiceProvider is transient. Check out this issue for more information.

Introducing the dynamic layout components for Blazor UI

ABP Framework provides different ways of customizing the UI and one of them is to use Layout Hooks in MVC. The Layout Hook System allows you to add code to some specific parts of the layout and all layouts of the themes provided by the ABP Framework implement these hooks.

However, Blazor UI doesn't have such a system yet and we are planning to implement Layout Hooks for the Blazor UI in version 7.0.

We are introducing the dynamic layout components for the Blazor UI to be able to add components to the Blazor layouts.

You can configure the AbpDynamicLayoutComponentOptions to render your components in the layout, as below:

Configure<AbpDynamicLayoutComponentOptions>(options =>
{
    options.Components.Add(typeof(MyBlazorComponent), null);
});

Improvements in ABP CLI

There are some enhancements in ABP CLI. You can see the brief list of some of these improvements below:

  • You can list all available templates by using the abp list-templates command with v6.0. See #13083.
  • You can select the theme when creating a new project by specifying the --theme option. You can see the LeptonX Lite Theme on the Startup Templates section above for an example.
  • abp update command has been updating the version of the main application until now. With v6.0.0, this command updates all package versions inside all solutions in the sub-folders. Checkout the issue #12735 for more information.

Introducing the Volo.Abp.RemoteService Package

A new Volo.Abp.RemoteService package has been added to the framework. Some of the classes that are related to the remote service configurations such as AbpRemoteServiceOptions class moved from Volo.Abp.Http.Client to this package. In this way, it became more reusable for further usages.

Create/Update User Accounts For External Logins

If a user authenticates from an external provider like Keycloak, the user is being redirected to this external provider, and comes back to the main application. In this process, the user's data is not being saved in the main application's database. With this version, ABP saves the user information and lists in the users page. And this fixes permission management, user information mismatches and other issues. For more info, see the related issue.

Sending test email on the setting page for MVC and Blazor UIs

"Sending Test Email" feature is added to the Setting Management module, which allows checking the email settings are configured properly and sending emails successfully to the target email address.

setting-management-emailing.png

After configuring the email settings such as the target email address, you can click the "Send" button to send a test email to see if everything went well.

Note that this feature will be implemented for the Angular UI in the stable v6.0.

Improvements on eShopOnAbp Project

The following improvements have been made on eShopOnAbp project with this version:

  • Some improvements have been made on the Admin Application for Order Management for Angular UI. See #110.
  • SignalR error on Kubernetes & Docker Compose has been fixed. See #113.
  • eShopOnAbp project has been deployed to Azure Kubernetes Service. See #114. The live demo can be seen from eshoponabp.com.
  • Configurations have been made for some services on the docker-compose.yml file. See #112.
  • Gateway Redirect Loop problem on Kubernetes has been fixed. See the commit.

Other News

  • Autofac library has been upgraded to v6.4.0. Please see #12816 for more info.
  • Performance Improvements have been made in the Settings Module and tabs on the Settings page are lazy loading now.
  • Some improvements have been made in the CMS Kit Module. You can see the improvements from here.

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 in this version.

What's New with ABP Commercial 6.0?

LeptonX Theme is the Default Theme

With this version, the startup templates (app-pro, app-nolayers-pro and microservice-pro templates) use the LeptonX Theme as the default theme. However, it's still possible to create a new project with Lepton Theme or Basic Theme, either using the ABP CLI or ABP Suite.

via ABP CLI

To create a new project with Lepton Theme or Basic Theme, you can use the --theme option as below. For "Basic Theme" specify the theme name as --theme basic.

abp new Acme.BookStore --theme lepton --preview

via ABP Suite

Also, you can create a new project with Lepton Theme or Basic Theme from ABP Suite.

suite-create-new-solution.png

Switching to OpenIddict in the Startup Templates

We have also switched to the OpenIddict for the startup templates for ABP Commercial as explained above.

New .NET MAUI Mobile

maui-mobile-option.gif

ABP Commercial has been providing a React Native mobile app since with the very early versions. Alternative to this application, we created a new .NET MAUI mobile app. To create a new app-pro ABP project with the .NET MAUI mobile app, you can use the command below:

abp new Acme.BookStore -t app-pro --mobile maui

Note that, when Microsoft supports WebAuthenticator on Windows, we'll also support it to work on Windows OS.

GDPR: Cookie Consent

cookie-banner.png

With this version, the Cookie Consent feature has been added to the GDPR module. It's enabled by default for the new startup templates. There are two pages in the templates: "Cookie Policy" page and "Privacy Policy" page.

If you want to disable/hide the "Cookie Consent", you can simply open the startup project module class and set the IsEnabled property as false for the AddAbpCookieConsent method as below:

context.Services.AddAbpCookieConsent(options =>
{
    options.IsEnabled = false; //disabled    
    options.CookiePolicyUrl = "/CookiePolicy";
    options.PrivacyPolicyUrl = "/PrivacyPolicy";
});

These pages are used to build up the cookie consent text and you can change the content or url of these pages by your needs.

If you want to use the Cookie Consent feature of the GDPR module in your existing project, please see the GDPR Module documentation for configurations.

Improvements/Developments on CMS Kit Poll

Some improvements have been made on the Poll System of CMS Kit module as listed below:

  • The Widget rendering and Admin side for the Blazor UI improvements.
  • A Widget can be picked from the editor as seen in the image below.

poll-add-widget.png

Blazor UI for the Chat Module

Chat Module is now also available for the Blazor UI after the MVC and Angular UIs. You can read the Chat Module documentation to get the overall knowledge about the module and add to your application.

blazor-chat-module-1.png

blazor-chat-module-2.png

Blazor Admin UI for CMS Kit Module

All admin side CMS Kit and CMS Kit Pro features have been implemented for the Blazor UI. Blazor UI will only be available to ABP Commercial customers.

cms-blog-blazor.png

cms-blog-post-blazor.png

Suite: Excel Export

With v6.0, now it's possible to export the records as Excel for Blazor & MVC UIs. Angular UI is still in-progress, and we will implement it with the stable v6.0 release. Check the "Excel export" checkbox to add this feature.

excel-export.png

A new Excel Export button is being located at the top of the generated page as seen below:

export-excel-page.png

Then, you can download the records as .xlsx format by clicking the "Excel Export" button. Note that the exported Excel list is the filtered list.

ABP Suite: Optional PWA Support

With this version, it's possible to add the PWA (Progressive Web App) support for Blazor & Angular UIs while creating the application via Suite.

suite-pwa-support.png

You just need to check the "Progressive web application" checkbox, when creating a new application. Then, ABP Suite will add the PWA support to your application. When you publish your application, you get the full benefits of PWA features such as offline support.

Other News

Explainer Videos

We are creating explainer videos for the ABP Commercial Modules to provide an overview. Within this milestone, we've created four new explainer videos:

You can subscribe to Volosoft's YouTube channel to be informed about future ABP events and videos.

Trial License is now available!

pricing-page.png

If you are considering purchasing a new ABP Commercial license, and you want to see ABP in action then, check out https://commercial.abp.io/pricing and click the "FREE TRIAL" button.

Community News

New ABP Community Posts

Volosoft Has Attended the DNF Summit 2022

dnf-summit.png

Core team members of ABP Framework, Halil Ibrahim Kalkan and Alper Ebicoglu have attended the DNF Summit on the 20th of July. Halil Ibrahim Kalkan talked about the creation of the ABP Framework and Alper Ebicoglu showed how easy to create a project with ABP Framework within 15 minutes.

Watch the DNF Summit session 👉 https://www.youtube.com/embed/VL0ewZ-0ruo

dnf-summit-attendees.jpg

Conclusion

This version comes with some features and enhancements to the existing features. You can see the Road Map documentation to learn about the release schedule and planned features for the next releases. The planned release date for the 6.0.0 Stable version is September 26, 2022. Please try the ABP v6.0 RC and provide feedback to us.

Thanks for being a part of this community!