ABP Commercial 4.x to 4.3 Migration Guide

This release comes with some important changes. While most of them are not breaking changes, it is strongly suggested to implement these changes in your existing solutions for a smooth upgrade and have no problem with the future releases.

This upgrade requires some manual changes in your solution files to take advantage of some new features. You can check this guide to learn how you can make the necessary changes in your solution. If you apply that guide, you will also have applied the changes below.

See also ABP Framework migration guide for the changes made in the ABP Framework.

Identity Pro Module

With this release, we've published new packages for the Identity.Pro module. These packages extend the open source Identity module and will provide flexibility to us for adding unique features to the Identity Pro module.

Existing applications should replace some usages as described below.

Package Changes

  • Replace Volo.Abp.Identity.Domain with the new Volo.Abp.Identity.Pro.Domain package and also replace AbpIdentityDomainModule usage with AbpIdentityProDomainModule in your module's [DependsOn] attribute.
  • Replace Volo.Abp.Identity.Domain.Shared with the new Volo.Abp.Identity.Pro.Domain.Shared package and also replace AbpIdentityDomainSharedModule usage with AbpIdentityProDomainSharedModule in your module's [DependsOn] attribute.
  • If you are using EF Core, Replace Volo.Abp.Identity.EntityFrameworkCore with the new Volo.Abp.Identity.Pro.EntityFrameworkCore package and also replace AbpIdentityEntityFrameworkCoreModule usage with AbpIdentityProEntityFrameworkCoreModule in your module's [DependsOn] attribute.
  • If you are using MongoDB, Replace Volo.Abp.Identity.MongoDB with the new Volo.Abp.Identity.Pro.MongoDB package and also replace AbpIdentityMongoDbModule usage with AbpIdentityProMongoDbModule in your module's [DependsOn] attribute.

Other Changes

  • Find modelBuilder.ConfigureIdentity() and change by modelBuilder.ConfigureIdentityPro() in your EF Core project.
  • If you've used IdentityDbContext, use IdentityProDbContext instead.

Blazor UI

Blazor server support comes with this release and we've created separate WebAssembly and Server packages for the modules.

So, if you are using Blazor WebAssembly UI, please make the following changes in your Blazor project;

  • Identity Module: Use Volo.Abp.Identity.Pro.Blazor.WebAssembly NuGet package instead of Volo.Abp.Identity.Pro.Blazor package. Also, change AbpIdentityProBlazorModule usage to AbpIdentityProBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.
  • Audit Logging Module: Use Volo.Abp.AuditLogging.Blazor.WebAssembly NuGet package instead of Volo.Abp.AuditLogging.Blazor package. Also, change AbpAuditLoggingBlazorModule usage to AbpAuditLoggingBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.
  • Text Template Management Module: Use Volo.Abp.TextTemplateManagement.Blazor.WebAssembly NuGet package instead of Volo.Abp.TextTemplateManagement.Blazor package. Also, change TextTemplateManagementBlazorModule usage to TextTemplateManagementBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.
  • Identity Server Module: Use Volo.Abp.IdentityServer.Blazor.WebAssembly NuGet package instead of Volo.Abp.IdentityServer.Blazor package. Also, change AbpIdentityServerBlazorModule usage to AbpIdentityServerBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.
  • Language Management Module: Use Volo.Abp.LanguageManagement.Blazor.WebAssembly NuGet package instead of Volo.Abp.LanguageManagement.Blazor package. Also, change LanguageManagementBlazorModule usage to LanguageManagementBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.
  • SaaS Module (host): Use Volo.Saas.Host.Blazor.WebAssembly NuGet package instead of Volo.Saas.Host.Blazor package. Also, change SaasHostBlazorModule usage to SaasHostBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.
  • SaaS Module (tenant): Use Volo.Saas.Tenant.Blazor.WebAssembly NuGet package instead of Volo.Saas.Tenant.Blazor package. Also, change SaasTenantBlazorModule usage to SaasTenantBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.
  • File Management Module: Use Volo.FileManagement.Blazor.WebAssembly NuGet package instead of Volo.FileManagement.Blazor package. Also, change FileManagementBlazorModule usage to FileManagementBlazorWebAssemblyModule in the [DependsOn] attribute on your module class.

Resource Reference Changes

Open <YourProjectName>BundleContributor.cs and replace context.Add("main.css"); to context.Add("main.css", true);

Open appsettings.json and add the following:

"AbpCli": {
    "Bundle": {
      "Mode": "BundleAndMinify", /* Options: None, Bundle, BundleAndMinify */
      "Name": "global",
      "Parameters": {
        "LeptonTheme.Style": "Style6", /* Options: Style1, Style2... Style6 */
        "LeptonTheme.ChangeStyleDynamically": "true"
      }
    }
  }

Then run abp bundle command in the blazor folder to update resource references.

Angular UI

  • AccountConfigModule: AccountConfigModule has been deprecated. It will be removed in v5.0. Import AccountAdminConfigModule instead as shown below:
// app.module.ts

import { AccountAdminConfigModule } from '@volo/abp.ng.account/admin/config';

@NgModule({
  //...
  imports: [
    //...
    AccountAdminConfigModule.forRoot(),
    //...
  ]
})
export class AppModule {}
  • CommercialUiConfigModule: CommercialUiConfigModule has been created to make CommercialUIModule lazy-loadable. The module will also provide some benefits for the configuration. Import it to the app.module.ts as shown below:
import { CommercialUiConfigModule } from '@volo/abp.commercial.ng.ui/config';

@NgModule({
  //...
  imports: [
    //...
    CommercialUiConfigModule.forRoot(),
    //...other abp config modules
  ]
})
export class AppModule {}

ABP Framework Migration Guide

See also ABP Framework migration guide for the changes made in the framework.

In this document