Skip to content

Upgrading Volo.Abp.Http.Client 8 to 9

Breaking8.3.4 → 9.3.7Breaking10Security2Platform1Deprecated2New119Changed218Fixed180Other504

BreakingUpgrade verdict

10 breaking changes and a platform requirement change and 2 security fixes.

  • Angular projects no longer support the old ngcc compiler.
  • The shared MVC UI theme package no longer includes the @abp/toastr dependency.
  • Removes the cache prefix configuration from the CmsKit module.
  • Renames AbpCustomGuidMapper to AbpGuidCustomBsonTypeMapper.
Top 5 of 15 that need code or config changes

Target frameworks requirement changed in 9.0.0-rc.1: .NETStandard2.0, .NETStandard2.1, net8.0 → .NETStandard2.0, .NETStandard2.1, net8.0, net9.0.

Breaking10
Drops legacy ngcc compiler support in Angular.
ngcc
Removes @abp/toastr from the aspnetcore.mvc.ui.theme.shared package.
@abp/toastraspnetcore.mvc.ui.theme.shared
Removes the cache prefix configuration from the CmsKit module.
Renames AbpCustomGuidMapper to AbpGuidCustomBsonTypeMapper.
AbpCustomGuidMapperAbpGuidCustomBsonTypeMapper
Renames IProductRepository to IRepository<Product, Guid>.
IProductRepositoryIRepository<Product, Guid>
Removes datatables.net compatible code.
datatables.net
Removes the protected modifier from DTO properties.
Removes the React Native template from the open source side and updates docs accordingly.
Removes audit properties from OpenIddictAuthorization and OpenIddictToken.
OpenIddictAuthorizationOpenIddictToken
Removes ConcurrencyStamp from IdentitySession.
ConcurrencyStampIdentitySession
Security2
Bumps System.Linq.Dynamic.Core in Abp 8.3 to 1.6.7 to fix a vulnerability.
System.Linq.Dynamic.Core
Stops returning the SMTP password to the UI settings page.
Platform1
Updates MAUI supported OS version to 15.0 for iOS and MacCatalyst.
Deprecated2
Updates the obsolete attribute message for the UseAbpClaimsMap method.
UseAbpClaimsMap
Marks the AddBlazorWebAppServices method as obsolete.
AddBlazorWebAppServices

Generated by DepDelta from published .NET assemblies. Not mixed with prose notes.

  • added: method AbpHttpClientOptions.AddPreSendAction(string remoteServiceName, Action<HttpClientProxyConfig, ClientProxyRequestContext, HttpClient> action): AbpHttpClientOptions
  • added: property AbpHttpClientOptions.ProxyHttpClientPreSendActions: Dictionary<string, List<Action<HttpClientProxyConfig, ClientProxyRequestContext, HttpClient>>> { get; }
  • changed: ctor ClientProxyRequestPayloadBuilder(IServiceScopeFactory serviceScopeFactory, IOptions<AbpHttpClientProxyingOptions> httpClientProxyingOptions) → ctor ClientProxyRequestPayloadBuilder(IServiceScopeFactory serviceScopeFactory, IOptions<AbpHttpClientProxyingOptions> httpClientProxyingOptions, IClock clock)
  • changed: ctor ClientProxyUrlBuilder(IServiceScopeFactory serviceScopeFactory, IOptions<AbpHttpClientProxyingOptions> httpClientProxyingOptions) → ctor ClientProxyUrlBuilder(IServiceScopeFactory serviceScopeFactory, IOptions<AbpHttpClientProxyingOptions> httpClientProxyingOptions, IClock clock)
  • added: protected method ClientProxyApiDescriptionFinder.GetApplicationApiDescriptionModel(): ApplicationApiDescriptionModel
  • added: protected method ClientProxyApiDescriptionFinder.GetGenerateProxyFileInfos(List<IFileInfo> fileInfoList, string path = …): void
  • added: protected method ClientProxyApiDescriptionFinder.Initialize(): void
  • added: protected method ClientProxyRequestPayloadBuilder.ConvertValueToStringAsync(object value): Task<string>
  • added: protected property ClientProxyBase.CurrentTimezoneProvider: ICurrentTimezoneProvider { get; }
  • added: protected property ClientProxyRequestPayloadBuilder.Clock: IClock { get; }
  • added: protected property ClientProxyUrlBuilder.Clock: IClock { get; }