⚡ Update ABP CLI and ABP Suite
dotnet tool update -g Volo.Abp.Cli --prerelease
abp suite update --preview
📗 Blog post
- https://blog.abp.io/abp/ABP.IO-Platform-7-4-RC-Has-Been-Published
📘 Commercial release logs
- https://docs.abp.io/en/commercial/latest/release-notes
- https://commercial.abp.io/releases/
🔼 Migration guides
- https://docs.abp.io/en/abp/latest/Migration-Guides/Index
✏️ Feel free to report any bugs, issues and problems.
67 Answer(s)
-
0
- ABP Framework version: v7.4.0.rc-1
- UI Type: MVC
- Database System: EF Core (PostgreSQL)
- Tiered (for MVC) or Auth Server Separated (for Angular): no
There are a lot of warnings that can be included in the next RC. There are related to the IConfiguration interface.
For example, in OpenIddictDataSeedContributor.cs
Line 86: var webClientRootUrl = configurationSection["Demo74rc1_Web:RootUrl"].EnsureEndsWith('/'); Line 206: var blazorServerTieredRootUrl = configurationSection["Demo74rc1_BlazorServerTiered:RootUrl"].EnsureEndsWith('/'); Line 250:var webPublicRootUrl = configurationSection["Demo74rc1_Web_Public:RootUrl"].EnsureEndsWith('/'); Line 274: var webPublicTieredRootUrl = configurationSection["Demo74rc1_Web_Public_Tiered:RootUrl"].EnsureEndsWith('/');
To avoid those warnings, you include a null-forgiving operator(!) for the configurationSection variable.
-
0
ABP Framework version: v7.4.0.rc-1 UI Type: MVC Database System: EF Core (PostgreSQL) Tiered (for MVC) or Auth Server Separated (for Angular): no
There is an issue in test/Demo74rc1.TestBase/Security/FakeCurrentPrincipalAccessor.cs
private ClaimsPrincipal _principal;
_principal is not initialized in the constructor making a warning (or error if <WarningsAsErrors>Nullable</WarningsAsErrors> is setup)
A solution could be to make ClaimsPrincipal nullable
private ClaimsPrincipal? _principal;
In the same file, there is an issue with the implementation of the interface
The solution could be to change the interface ICurrentPrincipalAccessor.cs in Volo.Abp.Security.Claims and make the IDisposable as IDisposable?
public interface ICurrentPrincipalAccessor { ClaimsPrincipal Principal { get; } IDisposable? Change(ClaimsPrincipal principal); }
-
0
ABP Framework version: v7.4.0.rc-1 UI Type: MVC Database System: EF Core (PostgreSQL) Tiered (for MVC) or Auth Server Separated (for Angular): no
In src/Demo74rc1.Domain/OpenIddict/OpenIddictDataSeedContributor.cs
There is a possible null reference argument in that method (in visual studio and rider) because it's using the ABP wrapper of string.IsNullOrWhiteSpace(str)
If I replace the
if (!webPublicClientId.IsNullOrWhiteSpace())
with thisif (!string.IsNullOrWhiteSpace(webPublicClientId))
-
0
ABP Framework version: v7.4.0.rc-1 UI Type: MVC Database System: EF Core (PostgreSQL) Tiered (for MVC) or Auth Server Separated (for Angular): no
If <WarningsAsErrors>Nullable</WarningsAsErrors> is enabled, there is an issue with the property name.
It suggested adding the "required" modifier to solve this issue as shown next.
-
0
ABP Framework version: v7.4.0.rc-1 UI Type: MVC Database System: EF Core (PostgreSQL) Tiered (for MVC) or Auth Server Separated (for Angular): no
In a nullable reference-enabled project, there is a missing "?" in the parameter of MapHealthChecksUiEndpoints
Actual version:
private static IServiceCollection MapHealthChecksUiEndpoints (this IServiceCollection services, Action<global::HealthChecks.UI.Configuration.Options> setupOption = null) { services.Configure<AbpEndpointRouterOptions>(routerOptions => { routerOptions.EndpointConfigureActions.Add(endpointContext => { endpointContext.Endpoints.MapHealthChecksUI(setupOption); }); }); return services; }
It should be:
private static IServiceCollection MapHealthChecksUiEndpoints (this IServiceCollection services, Action<global::HealthChecks.UI.Configuration.Options>? setupOption = null) { services.Configure<AbpEndpointRouterOptions>(routerOptions => { routerOptions.EndpointConfigureActions.Add(endpointContext => { endpointContext.Endpoints.MapHealthChecksUI(setupOption); }); }); return services; }
-
0
In ABP Suite, there is an update in the entity generator, whenever you select a string, there is a new option to allow empty strings but it's only enabled when the "Required" option is checked.
What is the sense of allowing empty strings if it's required? Why not allow Nullable strings in the ABP Suite entity generator?
-
0
-
0
In the AppService generated by ABP Suite, there is an issue in some methods in the AppService if a non-nullable string property is created in an entity.
src/Demo74rc1.Application/EntityDemos/EntityDemosAppService.cs
A solution could be to use the Check.NotNull method
Adding this before the CreateAsync method call
input.StringColumn = Check.NotNull(input.StringColumn, nameof(input.StringColumn));
-
0
In the AppService generated by ABP Suite, there is an issue in some methods in the AppService if a non-nullable string property is created in an entity.
src/Demo74rc1.Application/EntityDemos/EntityDemosAppService.cs
A solution could be to use the Check.NotNull method
Adding this before the CreateAsync and UpdateAsync method call in the AppService generated class solve this issue.
input.StringColumn = Check.NotNull(input.StringColumn, nameof(input.StringColumn));
-
0
In the ABP Suite generated Entity in src/Demo74rc1.Domain/EntityDemos/EntityDemo.cs
There is no need to add an empty constructor. It will generated a Warning or Error (if WarningAsError is activated).
Can you consider removing it from the template?
This also happens in the .Extended version of the Entity generated class. The empty constructor should be removed from the template.
-
0
In the ABP Suite Generated code, there is an issue in the generated class test/Demo74rc1.TestBase/EntityDemos/EntityDemosDataSeedContributor.cs
Do we need a null validation in await _unitOfWorkManager.Current.SaveChangesAsync(); ?
Current property is nullable and there will be a warning or error (if WarningAsNull is activated)
-
0
-
1
-
0
In the ABP Suite generated code,Application Service Extended.cs Should inherit interface ,not in AppServiceBase.
Hi, thanks for your suggestion. This really makes sense, because otherwise if a custom method is added to the application service interface, it should be implemented in the application service base class and it will be overridden in the next generation, which we don't want in any case. I will create an internal issue for this.
-
0
Hello, are there any comments regarding my findings?
-
0
-
0
Hi, I have created an internal issue for your findings related to nullable warnings on Suite-generated codes.
In the ABP Suite generated code,Application Service Extended.cs Should inherit interface ,not in AppServiceBase.
This is fixed with v7.4.0-rc.2. Thanks again for reporting the problem.
thanks @EngincanV
-
0
-
0
in the leptonXtheme , user avatar path 404.
hi
This is fixed in the new version.
-
0
We will resolve all nullable warnings in 7.4
-
0
-
1
Hi, I have created an internal issue for your findings related to nullable warnings on Suite-generated codes.
In the ABP Suite generated code,Application Service Extended.cs Should inherit interface ,not in AppServiceBase.
This is fixed with v7.4.0-rc.2. Thanks again for reporting the problem.
hi, the same problem also exists in entityFramework layer.
-
0
Any quick fix for angular project with basic theme issue please ?
-
0
-
0
Why you generate all of these clients regardless the template used !!!
hi
This is exactly what template projects are for, you can remove clients you don't need.