ABP Platform 4.4 RC Has Been Released

User Avatar
3 years ago, 9333 views, 6 comments
Cover Image

Today, we have released the ABP Framework and the ABP Commercial version 4.4 RC (Release Candidate). This blog post introduces the new features and important changes in this new version.

The planned release date for the 4.4.0 final version is July 27, 2021.

Get Started with the 4.4 RC

If you want to try the version 4.4.0 today, follow the steps below;

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

or install if you haven't installed before:

dotnet tool install Volo.Abp.Cli -g --version 4.4.0-rc.2
  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.

Migration Notes

There is no breaking change with this version. However, if you are using Entity Framework Core, you will need to run the Add-Migration command to add a new database migration since some changes done in the module database mappings.

What's new with the ABP Framework 4.4

Removed EntityFrameworkCore.DbMigrations Project

With this version, we are doing an important change in the application startup solution template. The startup solution was containing an EntityFrameworkCore.DbMigrations project that contains a separate DbContext class which was responsible to unify the module database mappings and maintain the code-first database migrations. With the v4.4, we've removed that project from the solution. In the new structure, the EntityFrameworkCore integration project will be used for database migrations as well as on runtime.

We'd published a community article about that change. Please see the article to understand the motivation behind the change.

Beside the DbContext unification, we've also used the new ReplaceDbContext attribute and replaced the IIdentityDbContext and ITenantManagementDbContext interfaces to make it possible to perform join queries over repositories for these modules easily. In the next days, we will publish another community article to explain the problem and the solution. However, most of times, you don't need to know these details.

Dynamic Menu Management for the CMS Kit Module

CMS Kit is a set of reusable Content Management System features packaged as an ABP application module. We had published the first usable version with the previous release. With this release, we are adding another feature to the CMS Kit module: You can now dynamically arrange the main menu on the UI, which is an essential feature for any kind of content management system. In this way, you can add pages or any kind of arbitrary URLs to the main menu from the UI.

A screenshot from the menu management page (from the CMS Kit admin side):

image.png

And the items rendered in a public website:

image.png

Note that this feature is also available with the open source CMS Kit module (while the screenshots have been taken from the ABP Commercial).

Razor Engine Support for Text Templating

Text Templating is a system to generate content on runtime by using a model (data) and a template. It was running on the Scriban templating engine. Beginning from this version, we have a second option: We can use the familiar razor syntax to build and render the templates. See the text templating razor integration document to get started with the new engine!

New Customization Points for DbContext/Entities

Two new extension methods are added to ObjectExtensionManager.Instance to override EF Core mappings of pre-built application modules.

Example: Change mappings for the IdentityDbContext to override mappings for the IdentityUser entity

ObjectExtensionManager.Instance.MapEfCoreDbContext<IdentityDbContext>(modelBuilder =>
{
    modelBuilder.Entity<IdentityUser>(b =>
    {
        b.ToTable("MyUsers");
        b.Property(x => x.Email).HasMaxLength(300);
    });
});

The startup template contains a class, like YourProjectNameEfCoreEntityExtensionMappings, that can be used to place that code.

New ABP CLI Commands

There are new ABP CLI commands introduced with the v4.4:

  • abp install-libs command is used for MVC / Razor Pages and Blazor Server applications to restore the wwwroot/libs folder. Previously we were running the yarn and gulp commands to restore that folder. While the install-libs command still uses yarn (if available), it is no longer needed to use gulp.
  • abp prompt command can be used to open a prompt for the ABP CLI and run multiple commands without needing to specify the abp command every time. For example, if you run abp prompt, then you can directly run install-libs instead of abp install-libs. Use exit to quit from the ABP prompt.
  • abp batch command can be used to run multiple ABP commands with one command. Prepare a text file, write each command as a line (without the abp command prefix), then execute abp batch <batch-file> (ex: abp batch your_commands.txt) command to execute all the commands in that file.

appsettings.secrets.json

Added appsettings.secrets.json to the startup template that can be used to set your sensitive/secret configuration values. You can ignore this file from source control (by adding to .gitignore if you're using git) and keep it only in developer/production machines.

Other ABP Framework Improvements

  • #9350 Extracted IRemoteServiceConfigurationProvider to get remote service configurations. You can replace this service to get the configuration from any source.
  • #8829 Implemented error handler and retry for distributed event bus.
  • #9288 Use default CORS policy instead of a named one in the startup template. It is suggested to update your own solutions to make it simpler.
  • Translated the framework and module localization strings to Hindi, Italian (thanks to Emanuele Filardo), Finnish, French and Slovak (thanks to Michal Čadecký) languages.

Beside these, there are a lot of enhancements and bug fixes. See the 4.4-preview milestone for all issues and pull requests closed with this version.

What's new with the ABP Commercial 4.4

New Features for the SaaS Module

We've implemented some important features to the SaaS module:

  • Integrated to the Payment module and implemented subscription system for the SaaS module.
  • Allow to make a tenant active/passive. In this way, you can take a tenant to passive to prevent the users of that tenant from using the system. In addition, you can set a date to automatically make a tenant passive when the date comes.
  • Allow to limit user count for a tenant.
  • Allow to set different connection strings for a tenant for each database/module, which makes possible to create different databases for a tenant for each microservice in a microservice solution.

New ABP Suite Code Generation Features

There are many improvements done for for ABP Suite, including CRUD page generation for the microservice solution template.

Angular UI: Two Factor Authentication for the Resource Owner Password Flow

In the previous version, we had implemented the resource owner password authentication flow for the Angular UI, which makes the login process easier for simpler applications. With this release, we've implemented two-factor authentication for that flow. Authorization code flow already supports 2FA.

Other ABP Commercial Improvements

  • Added web layers to microservices in the microservice solution. You can use them to create modular UI or override existing pages/components of pre-built modules (e.g. Identity and SaaS).
  • ABP Commercial license code has been moved to appsettings.secrets.json in the new startup templates.

Beside these, there are many minor improvements and fixes done in the modules and themes.

Other News

In this section, I will share some news that you may be interested in.

New Article: Using Elsa Workflow with ABP Framework

We have been frequently asked how to use Elsa Workflows with the ABP Framework. Finally, we have created an article to demonstrate it.

elsa-overview.gif

You can check it to see how to integrate Elsa into an ABP based solution easily.

Free E-Book: Implementing Domain Driven Design

We've published a free e-book for the ABP Community in the beginning of June. This is a practical guide for implementing Domain Driven Design (DDD). While the implementation details are based on the ABP Framework infrastructure, the basic concepts, principles and models can be applied to any solution, even if it is not a .NET solution.

ddd-book.png

Thousands of copies are already downloaded. If you haven't seen it yet, click here to get a free copy of that e-book.

The LeptonX Theme

We have been working on a new ABP theme, named the LeptonX, for a long time. The theme will be available for ABP Framework (free - lite version) and ABP Commercial (pro version). It is being finalized in the next weeks and we will release the first version in a short time.

leptonx.png

See this blog post to learn more about that project.

Volosoft & .NET Foundation

Volosoft, the company leads the ABP Framework project, has been a corporate sponsor of the .NET Foundation. We are happy by taking our place among other great sponsors!

dotnetfoundation-sponsor-volosoft.png

We will continue to contribute to and support open source! See this blog post for the announcement.

Looking for Developer Advocate(s)

We are actively looking for professional developer advocates for the ABP.IO platform. If you want to create content and touch to the ABP community, please check our job post.

About the Next Version

The next version will be a major version: 5.0, which will be based on .NET 6.0. We are planning to release it in the end of 2021, short time after the .NET 6.0 release. We will release multiple preview/beta versions before the RC version. See the road map for details of the planned works for the version 5.0.

6 comments

Leave Comment
User Avatar
laosandegudai 3 years ago

so,how can i custom class to extend user in 4.4.0?

User Avatar
kfrancis@clinicalsupportsystems.com 3 years ago

Looking forward to LeptonX! Great work @volosoft!

User Avatar
trendline 3 years ago

When could release the app-pro-4.4.0-rc.1 template for commercial user? Current generate a start template from abp cli still using the app-pro-4.3.3 template.

User Avatar
hikalkan 3 years ago

All release are done. We actually released 4.4.0-rc.2 that fixes some problems with rc.1.

User Avatar
Vayth 3 years ago

Hi, I got an error trying to create a new solution with mysql, both using get-started page (500 error) and cli (System.InvalidOperationException: Sequence contains no matching element).

User Avatar
hikalkan 3 years ago

Hi, Are you an ABP Commercial customer? If so, deployment of the ABP Commercial packages continues and they will be available in a short time.

More From Hikalkan

Announcing ABP Studio (beta) General Availability

ABP Studio (beta) is generally available to everyone and ready for download. Continue Reading

hikalkan July 2024

Unifying the ABP Platform

Some big changes and improvements are coming to the ABP.IO Platform soon Continue Reading

hikalkan April 2024

ABP.IO Platform 7.1 Final Has Been Released

Introducing the ABP.IO Platform version 7.1! Continue Reading

hikalkan March 2023

ABP.IO Platform 5.2 Final Has Been Released

Introducing the ABP.IO Platform version 5.2.0! Continue Reading

hikalkan April 2022

ABP.IO Platform 5.2 RC Has Been Published

Introducing the new features and changes coming with ABP Framework and ABP Commercial version 5.2. Continue Reading

hikalkan March 2022

ABP.IO Platform v5.1 Has Been Released

Introducing the new features and changes coming with ABP Framework and ABP Commercial version 5.1. Continue Reading

hikalkan January 2022

ABP.IO Platform 5.0 RC.1 Has Been Released

Introducing the ABP v5.0 RC and the new features coming with this version. Continue Reading

hikalkan November 2021

ABP.IO Platform 4.4 Final Has Been Released!

ABP Framework and ABP Commercial 4.4 versions have been released. Continue Reading

hikalkan August 2021

ABP.IO Platform v4.3 Has Been Released!

Introducing the ABP.IO Platform version 4.3.0! Continue Reading

hikalkan April 2021

ABP Commercial 4.3 RC Has Been Published

Introducing the ABP Commercial v4.3 RC and the new features coming with this version Continue Reading

hikalkan April 2021

ABP Framework 4.3 RC Has Been Published

Introducing the ABP v4.3 RC and the new features coming with this version Continue Reading

hikalkan April 2021

ABP.IO Platform 4.2 Final Has Been Released!

ABP Framework and ABP Commercial 4.2 versions have been released today. Continue Reading

hikalkan January 2021

ABP.IO Platform v4.2 RC Has Been Released!

This post covers the new features and changes coming with the ABP.IO platform 4.2 version. Continue Reading

hikalkan January 2021

ABP.IO Platform v4.1 Final Has Been Released!

ABP Framework and ABP Commercial 4.1 versions have been released. Continue Reading

hikalkan January 2021

ABP.IO Platform v4.1 RC Has Been Released!

Released ABP.IO Platform v4.1 RC. Some new features: Module Entity Extensions, Blazor UI Improvements, Spanish Language Translation etc. Learn more... Continue Reading

hikalkan December 2020

ABP.IO Platform 4.0 with .NET 5.0 in the 4th Year!

Released ABP.IO Platform v4.0 Final. Some new features: Migrated to .NET 5.0, Stable Blazor UI, Identity Server 4 Upgrade, Moved to System.Text.Jso... Continue Reading

hikalkan December 2020

ABP.IO Platform v4.0 RC Has Been Released based on .NET 5.0!

Released ABP.IO Platform v4.0 RC. Some new features: Migrated to .NET 5.0, Stable Blazor UI, Identity Server 4 Upgrade, Moved to System.Text.Json, ... Continue Reading

hikalkan November 2020

ABP Framework & ABP Commercial 3.3 Final Have Been Released

Released ABP v3.3. Some new features: New modules & features for the Blazor UI, Automatic Validation for AntiForgery Token for HTTP APIs, Rebus Int... Continue Reading

hikalkan October 2020

ABP Framework & ABP Commercial v3.3 RC Have Been Released

Released ABP v3.3 RC. Some new features: New modules & features for the Blazor UI, Automatic Validation for AntiForgery Token for HTTP APIs, Rebus ... Continue Reading

hikalkan October 2020

ABP Framework v3.2 Final Has Been Released

Released ABP v3.2 final. Some new features: The Blazor UI, MongoDB ACID Transactions, Kafka Integration for the Distributed Event Bus etc. Learn mo... Continue Reading

hikalkan October 2020

ABP Framework & ABP Commercial 3.2 RC With The New Blazor UI 🚀

Released ABP v3.2 RC. Some new features: The Blazor UI, MongoDB ACID Transactions, Kafka Integration for the Distributed Event Bus etc. Learn more ... Continue Reading

hikalkan September 2020

Introducing the Angular Service Proxy Generation

ABP Framework has introduced the new Angular Service Proxy Generation system with the version 3.1. This post introduces the service proxy generatio... Continue Reading

hikalkan September 2020

ABP Framework v3.1 Final Has Been Released

Released ABP v3.1 final. Some new features: Angular Service Proxies, Authorization Code Flow for the Angular UI, Global Feature System etc. Learn m... Continue Reading

hikalkan September 2020

ABP Framework v3.1 RC Has Been Released

Released ABP v3.1 RC. Some new features: Angular Service Proxies, Authorization Code Flow for the Angular UI, Global Feature System etc. Learn more... Continue Reading

hikalkan August 2020

ABP Framework v3.0 Has Been Released

Released ABP v3.0. Some new features: Angular 10, The Oracle Integration Package, Azure BLOB Storage Provider etc. Learn more about what's new with... Continue Reading

hikalkan July 2020

ABP Framework v2.9.0 Has Been Released

Released ABP v2.9.0. Some new features: Organization Units System, Blob Storing Package, EF Core Oracle Integration Package, Chat Module Angular UI... Continue Reading

hikalkan June 2020

ABP v2.8.0 Releases & Road Map

Released ABP Framework and ABP Commercial v2.8. Some new features: SignalR Integration Package, RTL Support for the MVC UI, New Lepton Theme Styles... Continue Reading

hikalkan May 2020

ABP Framework v2.7.0 Has Been Released!

Released ABP Framework v2.7. Some new features: Object Extending System, Text Templating Package, Subscribing to the Exceptions etc. Learn more abo... Continue Reading

hikalkan May 2020

ABP Framework v2.3.0 Has Been Released!

Released ABP Framework v2.3. Some new features: React Native Mobile App, Angular TypeScript Proxy Generator, CRUD app service etc. See the GitHub m... Continue Reading

hikalkan March 2020

ABP Framework v2.0 and the ABP Commercial

Released ABP Framework v2.0 and ABP Commercial. See the release notes for changes. Create a demo to see application startup template of ABP Commerc... Continue Reading

hikalkan January 2020

ABP v1.0 Has Been Finally Released

Released the first stable ABP v1.0, after ~3 years of continuous development! Start playing with the new ABP framework now. See the GitHub mileston... Continue Reading

hikalkan October 2019

ABP v0.21 Has Been Released based on the ASP.NET Core 3.0

Released ABP v0.21 with no new feature. The release is just upgrade to the stable AspNet Core 3.0. Check v0.20 release notes for new features, and ... Continue Reading

hikalkan September 2019

ABP v0.19 Release With New Angular UI

Released ABP v0.19 with 90+ issues resolved and 650+ commits pushed. Some new features: Angular UI, Widget System. See the roadmap for all upcomings. Continue Reading

hikalkan August 2019

ABP CLI, New Templates & Features v0.18 Release

Released ABP v0.18 with 80+ issues resolved and 550+ commits pushed. Changes: ABP CLI command line tool, and new startup templates. See the roadmap... Continue Reading

hikalkan June 2019

Microservice Demo, Projects Status and Road Map

See microservice solution demo documentation for a detailed explanation of the solution. It aims to demonstrate a simple yet complete microservice ... Continue Reading

hikalkan February 2019