From 7bba7cd36411efed30d4a392a15870526cc80e03 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Thu, 10 Aug 2023 16:55:16 +0300 Subject: [PATCH] Update Abp-7_4.md --- docs/en/Migration-Guides/Abp-7_4.md | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/docs/en/Migration-Guides/Abp-7_4.md b/docs/en/Migration-Guides/Abp-7_4.md index 47f27fa059..1c3bc0fe8c 100644 --- a/docs/en/Migration-Guides/Abp-7_4.md +++ b/docs/en/Migration-Guides/Abp-7_4.md @@ -4,13 +4,13 @@ This document is a guide for upgrading ABP v7.3 solutions to ABP v7.4. There are ## Renamed `AddGlobalFilters<>` method as `FilterQueryable<>` in `IMongoDbRepositoryFilterer` -ABP Framework provides services to automatically filter data on querying from a database. Prior to this version, creating a new class that derives from the `MongoDbRepositoryFilterer` and overriding its `AddGlobalFilters` method was needed for implementing a data filter for MongoDB. +ABP Framework provides services to automatically filter data on querying from a database. Prior to this version, creating a new class that derives from the `MongoDbRepositoryFilterer` and overriding its `AddGlobalFilters` method was needed for implementing a data filter for [MongoDB](../MongoDB.md). -In this version, the `AddGlobalFilters` method renamed as `FilterQueryable`. Therefore, you need to update the method name if you have used data filtering for MongoDB, in your application. +In this version, the `AddGlobalFilters<>` method is renamed as `FilterQueryable<>`. Therefore, you need to update the method name if you have used data filtering for MongoDB, in your application. ## Exposing Integration Services -[Integration Services](../Integration-Services.md) are now not being exposed by default. Hiding integration services is useful because in a monolith application, integration services don't need to be exposed outside since the modules probably would be in-process communication with each other. Therefore, from this version on, the integration services will not be exposed as endpoints by default. +[Integration Services](../Integration-Services.md) are now not being exposed by default. In a monolith application, integration services don't need to be exposed outside since the modules probably would be in-process communication with each other. Therefore, from this version on, the integration services will not be exposed as endpoints by default. If you build a microservice solution, or you need to access an integration service via a network call from any other application, you probably will need to expose the integration services, so the other applications can consume them. @@ -23,13 +23,18 @@ Configure(options => }); ``` -## `LocalizationResource` removed from the `TemplateDefinition` class +## `LocalizationResource` property removed from the `TemplateDefinition` class -In this version, the `LocalizationResource` property (`Type`) removed from the `TemplateDefinition` class and instead the `LocalizationResourceName` property (`string`) has been added. +In this version, the `LocalizationResource` property was removed from the `TemplateDefinition` class and instead the `LocalizationResourceName` property has been added. + +```diff +- public Type LocalizationResource { get; set; } ++ public string LocalizationResourceName { get; set; } +``` ## Changed method signature for `ICorrelationIdProvider.Get()` -Prior to this version, `ICorrelationIdProvider.Get()` method was returning not nullable string that represents a *correlationId* (a unique key that used in distributed applications to trace requests accross multiple services/operations). With this version, now this method may return `null` if hasn't been generated by `AbpCorrelationIdMiddleware` before. +Prior to this version, `ICorrelationIdProvider.Get()` method was returning a not nullable string that represents a *correlationId* (a unique key that is used in distributed applications to trace requests across multiple services/operations). With this version, now this method may return `null` if hasn't been generated by `AbpCorrelationIdMiddleware` before. ```diff public interface ICorrelationIdProvider @@ -43,16 +48,16 @@ public interface ICorrelationIdProvider } ``` -Therefore, if you used this method in your application, you might want to make a null check for the method result. +Therefore, if you used this method in your application, you might want to make a null check and update the method signature where it's used. > See [#16795](https://github.com/abpframework/abp/pull/16795) for more information. ## Dynamic Setting Store - Setting Management Module -In this version, ABP Framework introduces Dynamic Setting Store, which is an important feature that allow us to collect and get all setting definitions from a single point. This feature requires some actions that need to be taken care of as in the following: +In this version, ABP Framework introduces Dynamic Setting Store, which is an important feature that allows us to collect and get all setting definitions from a single point. This feature requires some actions that need to be taken care of as the following: * You need to create a new migration and apply it to your database because a new database table has been added. -* `ISettingDefinitionManager`'s sync methods have been removed and instead asynchrounus versions of the existing methods have been added. +* `ISettingDefinitionManager`'s sync methods have been removed and instead, asynchronous versions of the existing methods have been added. ```diff public interface ISettingDefinitionManager @@ -70,13 +75,13 @@ public interface ISettingDefinitionManager ## `IdentityUserIntegrationService` - Identity Module -In this version, ABP Framework introduces the `IdentityUserIntegrationService`, which is designed to get current user's information such as his/her role names within a non-authorized integration service. This was need to prevent multiple calls to both permission and identity microservices, to be able to use the remote identity service. +In this version, ABP Framework introduces the `IdentityUserIntegrationService`, which is designed to get current user's information such as his/her role names within a non-authorized integration service. > For more information see the related PR: [#16962](https://github.com/abpframework/abp/pull/16962) -This is a breaking change for microservice solutions because of the following two reasons and it should be cared: +This is a breaking change for microservice solutions because of the following two reasons and it should be cared about: -* `IdentityUserIntegrationService` provides non-authorized services. This is not breaking the application, but should be taken care of. Since, everyone can use the service to retrieve some informations for a certain user (for example, role names of a user). +* `IdentityUserIntegrationService` provides non-authorized services. This is not breaking the application, but should be taken care of. Since, everyone can use the service to retrieve some information for a certain user (for example, the role names of a user). * Secondly, since integration services are not exposed by default anymore as explained in the *Exposing Integration Services* section above, you should explicitly enable exposing integration services. Otherwise, the operation will be failed and you get a `404` error from the identity microservice. To expose integration services and controllers, you can configure the `AbpAspNetCoreMvcOptions` and set the `ExposeIntegrationServices` property as *true* in the `ConfigureServices` method of your [module class](../Module-Development-Basics.md):