ABP Framework 4.3 RC Has Been Published

User Avatar
3 years ago, 6965 views, 0 comments
Cover Image

Notice that the version 4.3.0 stable has already been released. We've updated the version usages in this post.

We are super excited to announce the ABP Framework 4.3 RC (Release Candidate). Here, a list of highlights of this release;

  • CMS Kit module initial release.
  • Blazor UI server-side support.
  • Module extensibility system for the Blazor UI.
  • Angular UI resource owner password flow comes back.
  • Volo.Abp.EntityFrameworkCore.Oracle package is now compatible with .NET 5.
  • CLI support to easily add the Basic Theme into the solution.
  • New IInitLogger service to write logs before dependency injection phase completed.

Besides the new features above, we've done many performance improvements, enhancements and bug fixes on the current features. See the 4.3 milestone on GitHub for all changes made on this version.

This version was a big development journey for us; ~160 issues resolved, ~300 PRs merged and ~1,700 commits done only in the main framework repository. Thanks to the ABP Framework team and all the contributors.

ABP Commercial 4.3 RC has also been published. We will write a separate blog post for it.

The Migration Guide

We normally don't make breaking changes in feature versions. However, this version has some small breaking changes mostly related to Blazor UI WebAssembly & Server separation. Please check the migration guide while upgrading to version 4.3.

Known Issues

Some minor issues will be fixed in the stable release. You can see the known issues here.

Get Started With The 4.3

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

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

or install if you haven't installed before:

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

Quick Start Tutorial

If you are new to ABP Framework, we've prepared a new quick start tutorial that can be pretty helpful to warm up to the ABP Framework.

What's New With The ABP Framework 4.3

CMS Kit

CMS (Content Management System) Kit was a module we worked on for the last couple of months. It is usable now, and we are releasing the initial version with this release. We are considering this module as pre-mature. It will be improved in the next versions. The goal to provide a flexible and extensible CMS infrastructure to .NET community. It currently has the following features;

  • Pages: Used to create UI pages with a Markdown + WYSIWYG editor. Once you create a page, it becomes available via URL like /pages/my-page-url.
  • Blog: A built-in blog system that supports multiple blogs with blog posts.
  • Comments: Allows users to write comments under contents. It is used for blog posts.
  • Tags: To add tag feature to any content/entity. It is used for blog posts.
  • Reactions: Allows users to react to content via emojis, like a smile, upvote, downvote, etc.
  • Rating: This component is used to rate content by users.

All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the Global Features System.

We will create a separate blog post for the CMS Kit module, so I keep it short.

Blazor Server Side

We'd implemented Blazor WebAssembly before. With version 4.3, we have the Blazor Server-Side option too. All the current functionalities are available to the Blazor Server.

You can select Blazor Server as the UI type while creating a new solution.

Example:

abp new Acme.BookStore -u blazor-server

If you write blazor as the UI type, it will create Blazor WebAssembly just as before.

You can also select the Blazor Server on the get started page.

Blazor Server applications are mixed applications; You can mix the server-side MVC / Razor Pages with the Blazor SPA. This brings an interesting opportunity: MVC / Razor Pages modules can work seamlessly in the Blazor Server applications. For example, the CMS Kit module has no Blazor UI yet, but you can use its MVC UI inside your Blazor Server application.

Blazor Server UI has a --tiered option just like the MVC / Razor Pages UI. This can be used to separate the HTTP API server from the UI server (UI application doesn't directly connect to the database).

Blazor UI Module Extensibility

Module Entity Extensions and some other extensibility features was not supported by the Blazor UI. With this version, we've implemented that system for Blazor UI.

For anyone wondering what the module entity extensions is, please check the document or this community video.

Email Setting Management UI

With this release, a new item is added to the main menu to navigate to the setting management page. This page contains the email setting management UI, as shown below:

email-settings-page.png

The setting page is provided by the setting management module, and it is extensible; You can add your tabs to this page for your application settings.

Angular UI Resource Owner Password Flow

The login page was removed from the Angular UI in previous versions because Authorization Code flow is the recommended approach for SPAs. However, it requires redirecting the user to the authentication server, logging there, and returning to the application. We got a lot of feedback because this brings overhead for simple applications.

With version 4.3, Angular UI can use its login page with resource owner password flow. Please refer to the documentation to learn how to make it work.

Volo.Abp.EntityFrameworkCore.Oracle Package

We couldn't update the Oracle.EntityFrameworkCore package on .NET 5.0 upgrade since it was not supporting .NET 5.0 at that time. Now, it supports .NET 5.0 and we've upgraded the package.

See the documentation to learn how to switch to this package for the Oracle database.

Add Basic Theme Into Your Solution

ABP Framework provides a strong theming system. However, the default theme, named the Basic Theme, has a non-styled, base Bootstrap UI. It is expected that you override the styles and UI components of that theme in a serious application.

There are some articles (see for mvc & blazor) to explain how to include the Basic Theme's source code into your solution to modify it fully. However, it still requires some manual work.

With this version, ABP CLI providing a command to add the Basic Theme's source code into your solution. Run the following command in a command-line terminal inside the root directory of your solution:

MVC UI

abp add-package Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic --with-source-code --add-to-solution-file

Blazor Web Assembly UI

abp add-package Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme --with-source-code --add-to-solution-file
abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution-file

Blazor Server UI

abp add-package Volo.Abp.AspNetCore.Components.Server.BasicTheme --with-source-code --add-to-solution-file
abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution-file

As you see, Blazor UI developers should add two packages. The Basic Theme consists of two packages for the Blazor UI: one for wasm/server and one shared.

Angular UI

Execute the following command in a terminal inside the angular folder of your solution:

abp add-package @abp/ng.theme.basic --with-source-code

IInitLogger

In ASP.NET Core, logging is not possible before the dependency injection phase is completed. For example, you can't write log in ConfigureServices method. However, we sometimes need to write logs in this stage.

We are introducing the IInitLogger service, which allows writing logs inside the ConfigureServices method.

Example:

public class MyModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        var logger = context.Services.GetInitLogger<MyModule>();
        logger.LogInformation("Some log...");
    }
}

Logs are written once the service registration phase is completed. It stores the written logs in memory and then writes logs to the actual ILogger when ready.

Notice: Startup templates come with Serilog pre-installed. So, you can write logs everywhere by directly using its static API (ex: Log.Information("...");). The InitLogger is a way to write pre-initialization logs without depending on a particular logging library. So, it makes it very handy to write logs inside reusable modules.

Other Features/Changes

  • #7423 MongoDB repository base aggregation API.
  • #8163 Ignoring given files on minification for MVC UI.
  • #7799 Added RequiredPermissionName to ApplicationMenuItem for MVC & Blazor UI to easily show/hide menu items based on user permissions. Also added RequiredPermissionName to ToolbarItem for the MVC UI for the same purpose.
  • #7523 Add more bundle methods to the distributed cache.
  • #8013 Handle JsonProperty attribute on Angular proxy generation.

See the 4.3 milestone on GitHub for all changes made on this version.

Feedback

Please check out the ABP Framework 4.3 RC and provide feedback to help us release a more stable version. The planned release date for the 4.3.0 final version is April 21, 2021.

abp

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 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.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