From e2cd1f2d8998fd589bd380b317dbc7b6510f514a Mon Sep 17 00:00:00 2001 From: EngincanV Date: Wed, 23 Oct 2024 09:41:16 +0300 Subject: [PATCH 1/3] Initial commit for migration guide 9.0 --- .../release-info/migration-guides/abp-9-0.md | 57 +++++++++++++++++++ .../en/release-info/migration-guides/index.md | 1 + 2 files changed, 58 insertions(+) create mode 100644 docs/en/release-info/migration-guides/abp-9-0.md diff --git a/docs/en/release-info/migration-guides/abp-9-0.md b/docs/en/release-info/migration-guides/abp-9-0.md new file mode 100644 index 0000000000..9985424410 --- /dev/null +++ b/docs/en/release-info/migration-guides/abp-9-0.md @@ -0,0 +1,57 @@ +# ABP Version 9.0 Migration Guide + +This document is a guide for upgrading ABP v8.x solutions to ABP v9.0. There are some changes in this version that may affect your applications, please read it carefully and apply the necessary changes to your application. + +> ABP upgraded to .NET 9.0, so you need to move your solutions to .NET 9.0 if you want to use the ABP 9.0. You can check the [Migrate from ASP.NET Core 8.0 to 9.0](https://learn.microsoft.com/en-us/aspnet/core/migration/80-90) documentation. + +## Open-Source (Framework) + + + +## PRO + +> Please check the **Open-Source (Framework)** section before reading this section. The listed topics might affect your application and you might need to take care of them. + +If you are a paid-license owner and using the ABP's paid version, then please follow the following sections to get informed about the breaking changes and apply the necessary ones: + +### ABP Suite: Better Naming For Multiple Navigation Properties + +> **Note:** As a developer, you don't need to make any changes in your solution regarding this change. We just wanted to highlight this change to let you know. + +Prior to this version, when you defined multiple (same) navigation properties to same entity, then ABP Suite was renaming them with a duplicate number. + +Consider the following scenerio for an example. If you have a book with an author and coauthor, prior to this version ABP Suite was creating a DTO class as below: + +```csharp +public class BookWithNavigationPropertiesDto +{ + public BookDto Book { get; set; } + + public AuthorDto Author { get; set; } + + public AuthorDto Author1 { get; set; } +} +``` + +Notice, the since the book entity has two same navigation properties, ABP Suite renamed them with a duplicate number. In this version on, ABP Suite will ask you to define a propertyName for the navigationProperties and you'll be able to specify a meaningful name such as: + +```csharp +public class BookWithNavigationPropertiesDto +{ + public BookDto Book { get; set; } + + public AuthorDto Author { get; set; } + + public AuthorDto Author1 { get; set; } +} +``` + +### CMS Kit Pro: Feedback Feature Improvements + +In this version, we revised the **CMS Kit's Feedback Feature** and as a result, we made the following changes: + +* `CmsKitProSettingGroupViewComponent` doesn't inject any service anymore and the design of the component has been updated. (no need for a change in your code, if you did not override the component) +* `Default.cshtml` and `Default.js` files (under the **Pages/Public/Shared/Components/PageFeedbacks/** directory) have been updated. (no need for a change in your code, if you did not override the files) +* `FeedbackUserId` property has been added to the `PageFeedback` entity, and that means you should create a new migration and apply it to your database. +* `PageFeedbackManager.CreateAsync` method now expecting an additional parameter: ***Guid feedbackUserId***. (no need for a change in your code, if you did not override or use this file) +* `PageFeedbackPublicAppService` has been updated due to saving the feedback user id. (no need for a change in your code, if you did not override or use this file) \ No newline at end of file diff --git a/docs/en/release-info/migration-guides/index.md b/docs/en/release-info/migration-guides/index.md index 804b17b376..27c6752338 100644 --- a/docs/en/release-info/migration-guides/index.md +++ b/docs/en/release-info/migration-guides/index.md @@ -2,6 +2,7 @@ The following documents explain how to migrate your existing ABP applications. We write migration documents only if you need to take an action while upgrading your solution. Otherwise, you can easily upgrade your solution using the [abp update command](../upgrading.md). +- [8.x to 9.0](abp-9-0.md) - [8.x to 8.3](abp-8-3.md) - [8.1 to 8.2](abp-8-2.md) - [8.0 to 8.1](abp-8-1.md) From 77ebd758cf1332b1507ca5a512bd6c5764f0d4e7 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Wed, 23 Oct 2024 10:06:02 +0300 Subject: [PATCH 2/3] Complete the migration guide for 9.0 --- .../release-info/migration-guides/abp-9-0.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/docs/en/release-info/migration-guides/abp-9-0.md b/docs/en/release-info/migration-guides/abp-9-0.md index 9985424410..e04f965f12 100644 --- a/docs/en/release-info/migration-guides/abp-9-0.md +++ b/docs/en/release-info/migration-guides/abp-9-0.md @@ -6,7 +6,49 @@ This document is a guide for upgrading ABP v8.x solutions to ABP v9.0. There are ## Open-Source (Framework) +### Upgraded to .NET 9.0 +We've upgraded ABP to .NET 9.0, so you need to move your solutions to .NET 9.0 if you want to use ABP 9.0. You can check Microsoft’s [Migrate from ASP.NET Core 8.0 to 9.0](https://learn.microsoft.com/en-us/aspnet/core/migration/80-90) documentation, to see how to update an existing ASP.NET Core 8.0 project to ASP.NET Core 9.0. + +After updating your solution to .NET 9.0, you should apply the following steps: + +* Change the `app.UseStaticFiles()` to `app.MapAbpStaticAssets()` in your module classes of your host applications. + * Some JavaScript/CSS/Images files exist in the Virtual File System, but ASP NET Core 9's `MapStaticAssets` can't handle them. This is why we created the **MapAbpStaticAssets**. +* Upgrade the Microsoft packages (also other packages) for .NET 9.0. You can check the [Directory.Packages.props](https://github.com/abpframework/abp/blob/rel-9.0/Directory.Packages.props) file for package versions and update the necessary ones. + +### Made the IdentitySession Entity Extensible & Updated the MaxIpAddressesLength + +In this version, we made the `IdentitySession` entity as extensible and as a result of that, you should aware of the changes explained below: + +* `IdentitySession` entity inherits from **AggregateRoot** instead of **BasicAggregateRoot**. Here is the PR for the related change: [#20771](https://github.com/abpframework/abp/pull/20771) +* `IdentitySession` entity's **MaxIpAddress** property now allows up to 2048 character. You can check the related PR, [here](https://github.com/abpframework/abp/pull/20819). + +You should create a new migration and apply it to your database for the changes explained above. + +### Removed Auditing Properties From the `OpenIddictAuthorization` and `OpenIddictToken` Entities + +In this version, we removed the auditing properties from the `OpenIddictAuthorization` and `OpenIddictToken` entities. Now, these entities are inherited from `AggregateRoot` instead of `FullAuditedAggregateRoot`. + +> See the PR, if you need further information: https://github.com/abpframework/abp/pull/20671 + +Since the auditing properties are removed, you should create a new migration and apply it to your database. + +### Updated Method Signature of `AbpCrudPageBase` + +The method signature of [framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs](https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs) has been changed as follows: + +```diff +- IEnumerable GetExtensionTableColumns(string moduleName, string entityType) ++ Task> GetExtensionTableColumnsAsync(string moduleName, string entityType) +``` + +### Removed React Native Mobile Option From Open Source Templates + +In this version, we removed the **React Native** mobile option from the open source templates due to maintaining reasons. We updated the related documents and the ABP CLI (both old & new CLI) for this change, and with v9.0, you will not be able to create a free template with react-native as the mobile option. + +> **Note:** Pro templates still provides the **React Native** as the mobile option and we will continue supporting it. + +If you want to access the open-source React-Native template, you can visit the **abp-archive** repository: https://github.com/abpframework/abp-archive ## PRO From 98f06cad7ff12c28bd3558f46e8f1c0ff7585958 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Wed, 23 Oct 2024 10:14:31 +0300 Subject: [PATCH 3/3] Update abp-9-0.md --- docs/en/release-info/migration-guides/abp-9-0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/en/release-info/migration-guides/abp-9-0.md b/docs/en/release-info/migration-guides/abp-9-0.md index e04f965f12..420b73e258 100644 --- a/docs/en/release-info/migration-guides/abp-9-0.md +++ b/docs/en/release-info/migration-guides/abp-9-0.md @@ -12,16 +12,16 @@ We've upgraded ABP to .NET 9.0, so you need to move your solutions to .NET 9.0 i After updating your solution to .NET 9.0, you should apply the following steps: -* Change the `app.UseStaticFiles()` to `app.MapAbpStaticAssets()` in your module classes of your host applications. +* Change the `app.UseStaticFiles()` to `app.MapAbpStaticAssets()` in the module classes of your host applications. * Some JavaScript/CSS/Images files exist in the Virtual File System, but ASP NET Core 9's `MapStaticAssets` can't handle them. This is why we created the **MapAbpStaticAssets**. * Upgrade the Microsoft packages (also other packages) for .NET 9.0. You can check the [Directory.Packages.props](https://github.com/abpframework/abp/blob/rel-9.0/Directory.Packages.props) file for package versions and update the necessary ones. ### Made the IdentitySession Entity Extensible & Updated the MaxIpAddressesLength -In this version, we made the `IdentitySession` entity as extensible and as a result of that, you should aware of the changes explained below: +In this version, we made the `IdentitySession` entity extensible and as a result of that, you should be aware of the changes explained below: * `IdentitySession` entity inherits from **AggregateRoot** instead of **BasicAggregateRoot**. Here is the PR for the related change: [#20771](https://github.com/abpframework/abp/pull/20771) -* `IdentitySession` entity's **MaxIpAddress** property now allows up to 2048 character. You can check the related PR, [here](https://github.com/abpframework/abp/pull/20819). +* `IdentitySession` entity's **MaxIpAddress** property now allows up to 2048 characters. You can check the related PR, [here](https://github.com/abpframework/abp/pull/20819). You should create a new migration and apply it to your database for the changes explained above. @@ -46,7 +46,7 @@ The method signature of [framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs]( In this version, we removed the **React Native** mobile option from the open source templates due to maintaining reasons. We updated the related documents and the ABP CLI (both old & new CLI) for this change, and with v9.0, you will not be able to create a free template with react-native as the mobile option. -> **Note:** Pro templates still provides the **React Native** as the mobile option and we will continue supporting it. +> **Note:** Pro templates still provide the **React Native** as the mobile option and we will continue supporting it. If you want to access the open-source React-Native template, you can visit the **abp-archive** repository: https://github.com/abpframework/abp-archive @@ -58,11 +58,11 @@ If you are a paid-license owner and using the ABP's paid version, then please fo ### ABP Suite: Better Naming For Multiple Navigation Properties -> **Note:** As a developer, you don't need to make any changes in your solution regarding this change. We just wanted to highlight this change to let you know. +> **Note:** As a developer, you don't need to make any changes in your solution regarding this change. We just wanted to highlight this change and let you know. Prior to this version, when you defined multiple (same) navigation properties to same entity, then ABP Suite was renaming them with a duplicate number. -Consider the following scenerio for an example. If you have a book with an author and coauthor, prior to this version ABP Suite was creating a DTO class as below: +Consider the following scenario for an example: If you have a book with an author and coauthor, prior to this version ABP Suite was creating a DTO class as below: ```csharp public class BookWithNavigationPropertiesDto @@ -75,7 +75,7 @@ public class BookWithNavigationPropertiesDto } ``` -Notice, the since the book entity has two same navigation properties, ABP Suite renamed them with a duplicate number. In this version on, ABP Suite will ask you to define a propertyName for the navigationProperties and you'll be able to specify a meaningful name such as: +Notice, that since the book entity has two same navigation properties, ABP Suite renamed them with a duplicate number. In this version, ABP Suite will ask you to define a propertyName for the **navigation properties** and you'll be able to specify a meaningful name such as: ```csharp public class BookWithNavigationPropertiesDto