ABP.IO Platform 5.2 RC Has Been Published

User Avatar
2 years ago, 11705 views, 2 comments
Cover Image

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

The planned release date for the 5.2.0 Stable version is April 05, 2022.

Please try this version and provide feedback for a more stable ABP version 5.2! Thank you all.

Get Started with the 5.2 RC

Follow the steps below to try the version 5.2.0 RC today:

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

or install it if you haven't before:

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

Please see the migration guides if you are upgrading from 5.x versions:

What's New with ABP Framework 5.2?

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

  • Single-layer Solution Template
  • API Versioning
  • libs Folder Has been Removed from Source Control
  • Hiding the Default ABP Endpoints from Swagger UI
  • Custom Global CSS and JavaScript for the CMS Kit module
  • Other news

Let's begin with the first item.

Single-layer Solution Template

ABP's application startup template is a well-organized and layered solution to create maintainable business applications. However, some developers find it a little bit complex for simple and short-term applications. For such applications, we've created a new startup template that has no layering and built as simple as possible. It has the same functionality, features and modules on runtime, but the development model is minimal and everything is in the single project (csproj), as shown in the following figure:

single-layer-solution.png

Use the app-nolayers as the template name while creating your solution:

abp new BookStore -t app-nolayers --preview

ABP Commercial developers can use the app-nolayers-pro as the startup template:

abp new BookStore -t app-nolayers-pro --preview

There is a bug for the app-nolayers-pro related to the licensing system, which will be fixed with 5.2.0-rc.2: appsettings.secrets.json is missing in the project folder (should be near to appsettings.json and contains the license code normally). As a workaround, create a new solution with the layered startup template, find and copy that file to the single-layer solution.

One note about the single-layer project is it doesn't have Blazor WebAssembly UI, because it requires 3 projects at least (one server-side, one UI and one shared library project between these two). We will consider to add Blazor UI support based on your feedback. You can continue to develop Blazor WASM projects using the standard layered solution template.

Database Migrations for EF Core

After creating your solution, you need to create the database before running the application. We've added a parameter to the application that can be specified to migrate the database and seed the initial data. Open the project's directory (that contains the csproj file) in a command-line terminal and type the following command:

dotnet run --migrate-database

It will run, migrate the database and exit. You can then run the application as normal.

You could use the standard dotnet ef database update command (or Update-Database command in Visual Studio's Package Manager Console). It can successfully create the database tables. However, it doesn't seed the initial data that is necessary to run the application.

To keep the solution simple, we haven't added an external application (like the DbMigrator in the layered application startup template) to migrate the database.

Using the same application to migrate the database is simple and useful for development environment, and it can also be used in production environment. However, there are other ways of migrating a database. Please read more on Microsoft's documentation.

Other UI and Database Options

The new single-layer solution template also supports Angular and Blazor UI, and MongoDB for the database side. For the UI, you can use mvc (default), angular or blazor-server with the -u (or --ui) parameter. For the database provider, you can use ef (default) or mongodb with the -d (or --database-provider) parameter. Example:

abp new BookStore -t app-nolayers -u angular -d mongodb --preview

This will create a single layer template with Angular as the UI framework and MongoDB as the database provider.

Single-Layer Tutorial

Hamza Albreem has created a video tutorial to explain how to develop a simple application with this startup template.

video-single-layer-tutorial.png

You can watch it here.

API Versioning

API versioning has always been possible with the ABP Framework, but we haven't had a documentation for it. With version 5.2, we've created a document to explain how to implement API versioning for your applications and add versioning support to your standard application service classes. See the documentation here.

libs Folder Has been Removed from Source Control

NOTICE: This can be a breaking change for your development environment and CI/CD pipelines. So, please read it carefully and take the necessary actions.

When you create solutions with MVC (Razor Pages) or Blazor Server UI, your application will have a wwwroot/libs folder in the UI project as shown below:

libs-folder.png

The libs folder contains all the client-side (mostly JavaScript and CSS) library dependencies. For example, in the figure above, the bootstap folder contains the necessary files for the Bootstrap library. The folder's content is copied from the node_modules folder (it only copies the minimum files to make the library work, not the whole folder) with ABP CLI's abp install-libs command.

Before version 5.2, the libs folder was coming with the startup template and committed into your source control system (e.g. Git). With version 5.2, this folder is excluded from the source control by default, so every developer getting the solution must run abp install-libs in the UI project's root directory to install these libraries. This approach saves a huge amount of size of the solution. For example, the initial size of an MVC UI application reduces from 9.83MB to 0.23MB (you read it right!).

When you create a new solution with ABP CLI, abp install-libs command is automatically executed, so your application directly works. However, if your teammates (or CI/CD system) get the solution from the source control, they should run the abp install-libs before running the solution. If you don't want that, you can simply remove the **/wwwroot/libs/* line from the .gitignore file in the root folder of your solution, then the libs folder is added to your source control again (if you are using a source control system other than Git, you should apply your system's rules to include/exclude that folder).

Hiding the Default ABP Endpoints from Swagger UI

Engincan Veske had written an article to explain how to hide ABP's default endpoints from Swagger UI. Then We thought that could be a good built-in option in the ABP Framework and added a HideAbpEndpoints method to the AddAbpSwaggerGen method, which can be used as in the following code example:

services.AddAbpSwaggerGen(
    options => 
    {
        //... other options
        
        //Hides ABP Related endpoints on Swagger UI
        options.HideAbpEndpoints();
    }
)

After that, ABP's default endpoints will still be functional, but will be hidden in Swagger UI.

Custom Global CSS and JavaScript for the CMS Kit module

We are improving the CMS Kit module and adding new features constantly. A new feature with version 5.2 is a global resources system, where you can write custom JavaScript or CSS code on the application's UI (added a new page for it), which will be immediately available in all your application pages:

cms-kit-global-resources.png

In this way, you can customize your application's look and behavior on runtime. See the documentation for more information.

Note that the pages feature already have a page-basis script/style editor. But this new feature allows you to write script/style that is applied to all pages of your application.

Other news

  • Upgraded the Blazorise library to v1.0 for Blazor UI. After the upgrade, ensure that all Blazorise-related packages are using v1.0 in your application.

If you want to see more details, you can check the release on GitHub, that contains a list of all issues and pull requests closed with this version.

What's New with ABP Commercial 5.2?

We've also made many enhancements for ABP Commercial, and also made the necessary changes and improvements to align with the v5.2 release of the ABP Framework. For example, the single-layer solution template is also available for ABP Commercial as explained above.

Many to Many Relations on Code Generation

One exciting new feature with ABP Commercial v5.2 is supporting many-to-many entity relations while generating CRUD code with ABP Suite.

When you open ABP Suite v5.2, you will see an "Add navigation collection" button in the Navigation tab. Here, you can click that button, select the target entity and other options:

suite-many-to-many-entity-relation.png

With this new feature, you can automatically generate advanced user interfaces without touching the code, then customize the generated code to implement your business logic.

Community News

We organized the 3rd live ABP Community Talks event on February 23rd. ABP community has a good interest in these events and we will continue to organize such a live event in every month. March's event will be announced in a few days. Follow us on twitter.

ABP Community website is being a huge resource of articles and video tutorials on the ABP Framework and .NET. There have been 93 articles/tutorials submitted so far. Here's a list of a few contents posted in the last weeks:

Thanks to all the contributors. It is appreciated if you want to submit your post and share your knowledge with the ABP community: https://community.abp.io/posts/submit

Conclusion

This version was mostly about minor features and enhancements for existing features, and getting the framework, architecture and solution structure more mature. Currently, we are working on middle and long term features, changes and goals. You can find most of them on the road map here.

The planned release date for the 5.2.0 Stable version is April 05, 2022. Please try the ABP v5.2 RC and provide feedback to have a more stable release.

2 comments

Leave Comment
User Avatar
mc86 2 years ago

HI, which version will support the blazor chat module?

User Avatar
hikalkan 2 years ago

Hi. It has been planned for v5.4.

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 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 Platform 4.4 RC Has Been Released

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

hikalkan June 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