ABP Commercial 4.3 RC Has Been Published

User Avatar
3 years ago, 5846 views, 8 comments
Cover Image

ABP Commercial version 4.3 RC (Release Candidate) has been published alongside ABP Framework 4.3. RC. I will introduce the new features in this blog post. Here, a list of highlights for this release;

  • The microservice starter template is getting more mature. We've also added a service template to add new microservices to the solution.
  • New option for the application starter template to have a separate database schema for tenant databases.
  • New Forms module to create surveys
  • Enable/disable modules per edition/tenant.
  • Lepton theme and Account module's source codes are available with the Team License.

Here, some other features already covered in the ABP Framework announcement, but worth mentioning here since they are also implemented for the ABP Commercial;

  • Blazor UI server-side support
  • Email setting management UI
  • Module extensibility system is now available for the Blazor UI too.

This post doesn't cover the features and changes done on the ABP Framework side. Please also see the ABP Framework 4.3. RC blog post.

The Migration Guide

This upgrade requires some manual work documented in the migration guide. Please read the guide carefully. Even if your application doesn't break on upgrade, you should apply the changes to avoid future release problems.

Known Issues

If you upgrade the ABP CLI to 4.3.0-rc.1 and try to create a new solution using the stable (4.2.x) version, it won't compile because of some missing packages. Use ABP CLI to create solutions with --preview option and downgrade to 4.2.2 to create 4.2.2 solutions. This will be fixed in 4.3.0-rc.2.

What's New With The ABP Commercial 4.3

The Microservice Starter Template

We'd introduced an initial version of the microservice starter template in the previous version. It is getting more mature with this release. We've made a lot of improvements and changes, including;

  • New "service" template to add new microservices for the solution. It still requires some manual work to integrate to other services and gateways; however, it makes progress very easy and straightforward.
  • Added Tye configuration to develop and test the solution easier.
  • Added Prometheus, Grafana integrations for monitoring the solution.
  • Automatic database migrations. Every microservice automatically checks and migrates/seeds its database on startup (concurrency issues are resolved for multiple instances). For multi-tenant systems, tenant databases are also upgraded by the queue.
  • For multi-tenant systems, databases are being created on the fly for new tenants with separate connection strings.
  • Created separate solution (.sln) file for each microservice, gateway, and application. In this way, you can focus on what you are working on. The main (roof) solution file only includes the executable projects in these solutions.
  • All microservices are converted to the standard layered module structure, making it easier to align with ABP application development practices.

After this release, we will be preparing microservice development guides based on this startup solution.

Separate Tenant Schema

ABP's multi-tenancy system allows to the creation of dedicated databases for tenants. However, the application startup solution comes with a single database migration path; hence it has a single database schema. As a result, tenant databases have some host-related tables. These tables are not used for tenants, and they are always empty. However, their existence may disturb us as a clean developer.

With this release, the application startup template provides an option to address this problem. So, if you want, you can have a separate migration path for tenant databases. Of course, this has a cost; You will have two DbContexts for migration purposes, bringing additional complexity to your solution. We've done our best to reduce this complexity and added a README file into the migration assembly. If you prefer this approach, please check that README file.

You can specify the new --separate-tenant-schema parameter while you are creating a new solution using the ABP CLI:

abp new Acme.BookStore --separate-tenant-schema

If you prefer the ABP Suite to create solutions, you can check the Separated tenant schema option.

abp-suite-separate-tenant-schema.png

Creating Tenant Databases On The Fly

With this release, the separate tenant database feature becomes more mature. When you create a new tenant with specifying a connection string, the new database is automatically created with all the tables and the initial seed data if available. So, tenants can immediately start to use the new database. With this change, tenant connection string textboxes come in the tenant creation modal:

new-tenant-modal.png

Besides, we've added an "Apply database migrations" action to the tenant management UI to manually trigger the database creation & migration in case you have a problem with automatic migration:

tenant-db-migrate.png

Automatic migration only tries one time. If it fails, it writes the exception log and discards this request. For example, this can happen if the connection string is wrong or the database server is not available. In this case, you can manually retry with this action.

Note that this feature requires to make changes in your solution, if you upgrade from an older version. Because the tenant database creation and migration code are located in the application startup template. See the version 4.3 migration guide for details.

New Module: CMS Kit

CMS Kit module initial version has been released with this version. As stated in the ABP Framework 4.3 announcement post, it should be considered premature for now.

For ABP Commercial application startup template, we are providing an option to include the CMS Kit into the solution while creating new solutions:

cms-kit-selection.png

It is available only if you select the Public web site option. Once you include CMS Kit, a Cms item is shown on the menu:

cms-kit-menu.png

Each CMS Kit feature can be individually enabled/disabled, using the global feature system. Once you disable a feature, it becomes completely invisible; even the related tables are not included in your database.

CMS Kit features are separated into two categories: Open source (free) features and pro (commercial) features. For now, only newsletter and contact form features are commercial. By the time, we will add more free and commercial features.

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

New Module: Forms

Forms is a new module that is being introduced with this version. It looks like the Google Forms application; You dynamically create forms on the UI and send them to people to answer. Then you can get statistics/report and export answers to a CSV file.

Forms module currently supports the following question types;

  • Free text
  • Selecting a single option from a dropdown list or a radio button list
  • Multiple choice: Selecting multiple options from a checkbox list

Screenshot: editing form and questions - view responses

forms-edit-report.png

Screenshot: answering to the form

forms-answer.png

Team License Source Code for Modules

Team License users can't access the source code of modules and themes as a license restriction. You have to buy a Business or Enterprise license to download any module/theme's full source code. However, we got a lot of feedback from the Team License owners on the source code of the account module and the lepton theme. We see that customization of these two modules is highly necessary for most of our customers.

With this version, we decided to allow Team License holders to download the source code of the Account Module and the Lepton Theme to freely customize them based on their requirements.

You can Replace these modules with their source code using the ABP Suite:

account-lepton-source.png

Remember that; when you include the source code in your solution, it is your responsibility to upgrade them when we release new versions (while you don't have to upgrade them).

Lepton Theme Public Website Layout

We'd added a public website application in the application starter template in the previous versions. It was using the public website layout of the Lepton Theme. We realized that the layout of this application is customized or completely changed in most of the solutions. So, with this version, the layout is included inside the application in the downloaded solution. You can freely change it. Before, you had to download it separately and include it in your solution manually.

Enable/Disable Modules

With this release, all modules can be enabled/disabled per edition/tenant. You can allow/disallow modules when you click Features action for an edition or tenant:

enable-disable-features.png

Other Features/Changes

  • ABP Suite now supports defining required navigation properties on code generation.
  • Blazor server-side (with tiered option) is added for the application and microservice starter templates.
  • An "Email" tab has been added to the Settings page to configure the email settings.

Feedback

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

8 comments

Leave Comment
User Avatar
rashed 3 years ago

@hikalkan When is the release date for 4.4 ?

User Avatar
william@iwell.nl 3 years ago

Hi, great to see that an email setting UI is added. I followed the migration guide, but the new tab is not visible. Is this also available for Angular, or did I miss something? Thanks a lot!

User Avatar
trendline 3 years ago

Check the permission if was checked?

User Avatar
murat.yuceer 3 years ago

Hi, Thanks for work I saw new approach in microservice template you migrate and seed data on OnPostApplicationInitialization event. Also i saw DbMigrator. Actually we dont need DbMigrator if we use OnPostApplicationInitialization right?

User Avatar
hikalkan 3 years ago

Yes, DbMigration is completely unnecessary. We keep it by thinking some companies may not want to on-the-fly migration system, because of some "enterprise" rules :)

User Avatar
trendline 3 years ago

how to deal with one application with mutil module databases for a tenant to create separate database?

User Avatar
hikalkan 3 years ago

We suggest to use a single database for a tenant, even if you have multiple databases to separate modules. That has less complexity. Host database is splitted for modules and also shared by tenants (those have not separate databases). However, your scenario is possible in the framework level, however not implemented in the UI and some other parts yet. With the version 4.4, we are planning to add UI support for that for a full support. If you have urgent, you can customize/override the SaaS module to do it yourself.

User Avatar
trendline 3 years ago

Thanks for your suggestion, look forward to the version 4.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 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 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