Skip to content

Upgrading Volo.Abp.Ddd.Application.Contracts 3 to 4

Breaking3.3.2 → 4.4.4Breaking69Security5Deprecated8New359Changed424Fixed450Other407

BreakingUpgrade verdict

59 breaking changes and 5 security fixes.

  • Some StateChecker services and properties get new names, so code using the old names must be updated.
  • Removes the EntityFrameworkCore.DbMigrations project from the solution and makes it compatible with the CLI.
  • You can no longer set a tenant connection string from the tenant management UI.
  • Removes the set of all DbContext interfaces.
Top 5 of 70 that need code or config changes
Breaking59
Renames some services and properties of StateChecker.
StateChecker
Removes the EntityFrameworkCore.DbMigrations project from the solution and makes it compatible with the CLI.
EntityFrameworkCore.DbMigrations
Removes setting the connection string on the tenant management UI.
Removes the set of all DbContext interfaces.
Removes unused method AbpCommonDbContextRegistrationOptions.ShouldRegisterDefaultRepositoryFor.
AbpCommonDbContextRegistrationOptions.ShouldRegisterDefaultRepositoryFor
Removes the AddAutofac method.
AddAutofac
Removes the multi-lingual objects feature.
Removes the CmsKit Content component.
Renames EmailSetting to Emailing.
EmailSettingEmailing
Removes BlogLookupDto from Cms Kit.
BlogLookupDto
Removes BlogId from the BlogPost update operation in CmsKit.
BlogIdBlogPost
Renames EmailSettingManagement to EmailSetting.
EmailSettingManagementEmailSetting
Removes TwoFactor settings and feature.
TwoFactor
Removes the features and settings of TwoFactor in the identity module.
Removes the DeleteMigrationsIfNeeded method from the CLI since migrations are already removed.
DeleteMigrationsIfNeeded
Repository classes are no longer registered to dependency injection by default.
Renames InternalStore patch method to deepPatch and adds a new patch method.
InternalStoreInternalStore.patchInternalStore.deepPatch
Removes the @ngxs/router-plugin dependency from the @abp/ng.core package.
@abp/ng.core@ngxs/router-plugin
Renames OnSearchAsync to SearchEntitiesAsync.
OnSearchAsyncSearchEntitiesAsync
Removes AsyncHelper usage for the IdentityOptions.
AsyncHelperIdentityOptions
Removes all deprecated components and services from Angular packages.
Removes abstract component bases and more for Blazor components.
Removes the Angular Account Module UI.
Removes the SessionState in the @abp/ng.core package.
SessionState@abp/ng.core
Uses IBrandingProvider in Volo.Abp.UI and removes the one in Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.
IBrandingProviderVolo.Abp.UIVolo.Abp.AspNetCore.Mvc.UI.Theme.Shared
Removes the Async suffix from IUiMessageService methods.
IUiMessageService
Removes the SessionState.
SessionState
Requests removing OnOpeningEditModalAsync.
OnOpeningEditModalAsync
Removes the unique constraint on the Name property of ApiResource, IdentityResource and ApiScope and updates migrations.
ApiResource.NameIdentityResource.NameApiScope.Name
Adds the basic-theme module.
Uses DateTimeModelBinder instead of SimpleTypeModelBinder for binding datetime values.
DateTimeModelBinderSimpleTypeModelBinder
Replaces tui-editor with the toast-ui editor.
tui-editortoast-ui editorTuiEditor
Makes IRemoteServiceConfigurationProvider async.
IRemoteServiceConfigurationProvider
Introduces Blazor.Server and Blazor.WebAssembly packages for the application modules.
Marks EntityAction.RequiredPolicy obsolete for the Blazor UI.
EntityAction.RequiredPolicy
Makes Virtual File Middleware compatible with IWebHostEnvironment.WebRootFileProvider.
IWebHostEnvironment.WebRootFileProvider
Moves EllipsisDirective to the @abp/ng.theme.shared package and creates a new EllipsisModule.
EllipsisDirectiveEllipsisModule@abp/ng.theme.shared
Makes FeatureManagementProvider's NormalizeProviderKey method async.
FeatureManagementProvider.NormalizeProviderKey
Makes transaction management async.
Makes AccountEmailer.NormalizeReturnUrl protected instead of public.
AccountEmailer.NormalizeReturnUrl
Creates a Loader Service.
Uses object as the parameter of form binding and converts all parameters into camel case.
Replaces AbpOptionsFactory with AbpDynamicOptionsManager.
AbpDynamicOptionsManagerAbpOptionsFactory
Uses a specialized dictionary class for IHasExtraProperties.
IHasExtraProperties
Refactors namespaces for Blazor components.
Moves retry logic for the Dynamic HTTP Client Proxy to the startup template.
Replaces the Id parameter with object at OpenEditModalAsync in AbpCrudPageBase.
AbpCrudPageBaseOpenEditModalAsync
Makes Creation audit properties of entities readonly.
Fixes inconsistent Async suffix usage.
Replaces abstract base class with partial class for Blazor components.
Creates auto controller routes in kebab-case.
Changes the IBrandingProvider namespace.
IBrandingProvider
Adds a Blazor UI Entity actions component.
Unifies route format, renaming checkPassword to check-password.
checkPasswordcheck-password
Uses async to resolve the tenant.
Considers making ITenantResolver's ResolveTenantIdOrName method async.
ITenantResolverResolveTenantIdOrName
Upgrades IdentityServer4 to 4.x.
IdentityServer4
Changes the type of IHasExtraProperties.ExtraProperties.
IHasExtraPropertiesExtraProperties
Moves to System.Text.Json.
System.Text.Json
Security5
Adds protection against possible XSS.
Suggests adding anti-XSS measures.
Uses an XSS-preventing render by default when a column does not specify one.
Adds security response headers.
Adds antiforgery token to HTTP request headers for the Blazor UI.
Blazor
Deprecated6
Marks ServiceProvider properties as Obsolete in base classes where LazyServiceProvider is available.
ServiceProviderLazyServiceProvider
Deprecates legacy object extensions types.
Deprecates SortOrderIconComponent.
SortOrderIconComponent
Deprecates the ConfigState.
ConfigState
Deprecates the attribute usage of PermissonDirective.
PermissonDirective
Deprecates the attribute usage of PermissionDirective.
PermissionDirective