Upgrading Volo.Abp.Ddd.Application.Contracts 3 to 4
Breaking3.3.2 → 4.4.4Breaking69Security5Deprecated8New359Changed424Fixed450Other407
BreakingUpgrade verdict
59 breaking changes and 5 security fixes.
In plain terms
- 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.
Must act Top 5 of 70 that need code or config changes
What you must change
Breaking59
Renames some services and properties of StateChecker.
StateCheckerRemoves the EntityFrameworkCore.DbMigrations project from the solution and makes it compatible with the CLI.
EntityFrameworkCore.DbMigrationsRemoves setting the connection string on the tenant management UI.
Removes the set of all DbContext interfaces.
Removes unused method AbpCommonDbContextRegistrationOptions.ShouldRegisterDefaultRepositoryFor.
AbpCommonDbContextRegistrationOptions.ShouldRegisterDefaultRepositoryForRemoves the AddAutofac method.
AddAutofacRemoves the multi-lingual objects feature.
Removes the CmsKit Content component.
Renames EmailSetting to Emailing.
EmailSettingEmailingRemoves BlogLookupDto from Cms Kit.
BlogLookupDtoRemoves BlogId from the BlogPost update operation in CmsKit.
BlogIdBlogPostRenames EmailSettingManagement to EmailSetting.
EmailSettingManagementEmailSettingRemoves TwoFactor settings and feature.
TwoFactorRemoves the features and settings of TwoFactor in the identity module.
Removes the DeleteMigrationsIfNeeded method from the CLI since migrations are already removed.
DeleteMigrationsIfNeededRepository classes are no longer registered to dependency injection by default.
Renames InternalStore patch method to deepPatch and adds a new patch method.
InternalStoreInternalStore.patchInternalStore.deepPatchRemoves the @ngxs/router-plugin dependency from the @abp/ng.core package.
@abp/ng.core@ngxs/router-pluginRenames OnSearchAsync to SearchEntitiesAsync.
OnSearchAsyncSearchEntitiesAsyncRemoves AsyncHelper usage for the IdentityOptions.
AsyncHelperIdentityOptionsRemoves 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.coreUses 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.SharedRemoves the Async suffix from IUiMessageService methods.
IUiMessageServiceRemoves the SessionState.
SessionStateRequests removing OnOpeningEditModalAsync.
OnOpeningEditModalAsyncRemoves the unique constraint on the Name property of ApiResource, IdentityResource and ApiScope and updates migrations.
ApiResource.NameIdentityResource.NameApiScope.NameAdds the basic-theme module.
Uses DateTimeModelBinder instead of SimpleTypeModelBinder for binding datetime values.
DateTimeModelBinderSimpleTypeModelBinderReplaces tui-editor with the toast-ui editor.
tui-editortoast-ui editorTuiEditorMakes IRemoteServiceConfigurationProvider async.
IRemoteServiceConfigurationProviderIntroduces Blazor.Server and Blazor.WebAssembly packages for the application modules.
Marks EntityAction.RequiredPolicy obsolete for the Blazor UI.
EntityAction.RequiredPolicyMakes Virtual File Middleware compatible with IWebHostEnvironment.WebRootFileProvider.
IWebHostEnvironment.WebRootFileProviderMoves EllipsisDirective to the @abp/ng.theme.shared package and creates a new EllipsisModule.
EllipsisDirectiveEllipsisModule@abp/ng.theme.sharedMakes FeatureManagementProvider's NormalizeProviderKey method async.
FeatureManagementProvider.NormalizeProviderKeyMakes transaction management async.
Makes AccountEmailer.NormalizeReturnUrl protected instead of public.
AccountEmailer.NormalizeReturnUrlCreates a Loader Service.
Uses object as the parameter of form binding and converts all parameters into camel case.
Replaces AbpOptionsFactory with AbpDynamicOptionsManager.
AbpDynamicOptionsManagerAbpOptionsFactoryUses a specialized dictionary class for IHasExtraProperties.
IHasExtraPropertiesRefactors 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.
AbpCrudPageBaseOpenEditModalAsyncMakes 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.
IBrandingProviderAdds a Blazor UI Entity actions component.
Unifies route format, renaming checkPassword to check-password.
checkPasswordcheck-passwordUses async to resolve the tenant.
Considers making ITenantResolver's ResolveTenantIdOrName method async.
ITenantResolverResolveTenantIdOrNameUpgrades IdentityServer4 to 4.x.
IdentityServer4Changes the type of IHasExtraProperties.ExtraProperties.
IHasExtraPropertiesExtraPropertiesMoves to System.Text.Json.
System.Text.JsonSecurity5
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.
BlazorDeprecations to plan for
Deprecated6
Marks ServiceProvider properties as Obsolete in base classes where LazyServiceProvider is available.
ServiceProviderLazyServiceProviderDeprecates legacy object extensions types.
Deprecates SortOrderIconComponent.
SortOrderIconComponentDeprecates the ConfigState.
ConfigStateDeprecates the attribute usage of PermissonDirective.
PermissonDirectiveDeprecates the attribute usage of PermissionDirective.
PermissionDirective