Today, we are releasing the ABP Framework and ABP Commercial version 5.1 (with a version number 5.1.1). This blog post introduces the new features and important changes in this new version.

Get Started with 5.1

Follow the steps below to try the 5.1 version today:

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

or install if you haven't installed it before:

dotnet tool install Volo.Abp.Cli -g
  1. Create a new application:
abp new BookStore

Check out the ABP CLI documentation for all the available options.

You can also use the Direct Download tab on the Get Started page.

You can use any IDE that supports .NET 6.x development (e.g. Visual Studio 2022).

Migration Notes & Breaking Changes

This is a minor feature release, mostly with enhancements and improvements based on version 5.0. There aren't any breaking changes except for the Angular UI upgrade. ABP 5.1 startup templates use Angular 13.

Angular UI

If you want to upgrade the ABP Framework but want to continue with Angular 12, add the following section to the package.json file of the Angular project:

"resolutions": {
    "ng-zorro-antd": "^12.1.1",
    "@ng-bootstrap/ng-bootstrap": "11.0.0-beta.2"
  }

What's New with the ABP Framework 5.1?

In this section, I will introduce some major features released with this version.

The New Hosting Model

The ABP startup application template now uses the new ASP.NET Core hosting APIs (check out the Microsoft's minimal APIs document) on application startup (check out the exact place in the ABP startup template). So, the Startup.cs file has been removed.

Old-style hosting logic will continue to work as long as ASP.NET Core supports it. It is recommended to switch to the new model if it's possible for your solution. Check out this guide if you need to know how to do that.

Asynchronous Startup Lifecycle Methods

The new hosting model allows us to execute asynchronous code on application initialization in the ABP module classes. If you are using the new hosting model (which is default with 5.1 startup templates), you can override the Async versions of the module lifecycle methods.

For example, you can now override the ConfigureServicesAsync (instead of ConfigureServices) or OnApplicationInitializationAsync (instead of OnApplicationInitialization) as shown in the following code block:

public class MyModule : AbpModule
{
    public override async Task ConfigureServicesAsync(ServiceConfigurationContext context)
    {
        /* You can use await here and safely execute other async methods */
    }

    public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
    {
        /* You can use await here and safely execute other async methods */
    }
}

If you override both the asynchronous and synchronous versions of the same method, only the asynchronous one will be executed. So, override only one of them based on your needs.

eShopOnABP Is Getting More Stable

Our team is working to finalize the eShopOnAbp example solution, which is a reference microservice solution built with the ABP Framework. They will explain the project status and show what's done in the next ABP Community Talks meeting (Check out the ABP Community Talks 2021.1 section at the bottom of this post).

The New ABP.IO Design!

We've been working on a new design for the abp.io websites for a while. We are adding the final touches; the new design will be live very soon. Here's a screenshot from the design work:

new-abp-io-design.png

The ABP Commercial and ABP Community websites will also have new designs as part of this update.

Other Changes

Here are some other notable changes that come with this release:

All issues & PRs in 5.1 milesone.

About ABP Commercial

The core team is also working on ABP Commercial (which provides pre-built modules, themes, tooling and support on top of the ABP Framework). We've done a lot of minor improvements and fixes to the modules and tooling.

There's some exciting news about the LeptonX theme; We are working on making it available in the MVC (Razor Pages) and Blazor UI options too (in addition to Angular UI). We are also adding more components, layout options, demo pages, etc... We are planning to release a beta version in the next weeks. Here's an animated GIF from the dashboard we've prepared as a demonstration:

leptonx-dash-2.png

If you are wondering what is the LeptonX project, please check out this blog post.

As another visible functionality, we've added a new feature to the CMS Kit Pro module that is used to forward a URL to another URL. This is a screenshot from the management UI:

url-forward.png

This feature can be used to create short URLs in your application (like URL shortening services providers) or forward old pages to their new URLs.

In addition to the new features shipped in every minor version, we are working on long-term projects for ABP.IO Platform and ABP Commercial (a little secret for now :). We will have announcements once these projects get more stable.

Community News

ABP Community Talks 2021.1

abp-community-talks-2022-1.png

This is the second episode of the ABP Community Talks and we are talking about microservice development with the ABP Framework, based on the eShopOnAbp reference solution. We will also briefly talk about the changes that come with ABP version 5.1. This live meeting will be on January 20, 2022, 17:00 (UTC) on YouTube.

Join this event on the Kommunity platform: https://kommunity.com/volosoft/events/abp-community-talks-20221-microservice-development-acd0f44b

You can also subscribe to Volosoft YouTube channel for reminders of further ABP events and videos.

New ABP Community Posts

Here are some of the recent posts added to the ABP community:

Thanks to the ABP Community for all the contents they have published. You can also post your ABP and .NET related (text or video) contents to the ABP Community.

Conclusion

In this blog post, I summarized the news about the new version and the ABP Community. Please try it and provide feedback by opening issues on the GitHub repository. Thank you all!