See the [ABP CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all the available options.
> You can also use the [Get Started](https://abp.io/get-started) page to generate CLI command for creating an application.
> You can also use the [Get Started](https://abp.io/get-started) page to generate a CLI command for creating an application.
You can use any IDE that supports .NET 7.x, like **[Visual Studio 2022](https://visualstudio.microsoft.com/downloads/)**.
@ -37,8 +37,8 @@ You can use any IDE that supports .NET 7.x, like **[Visual Studio 2022](https://
There are breaking changes in this version that may affect your application.
Please see the following migration documents, if you are upgrading from v6.0:
* [ABP Framework 6.0 to 7.0 Migration Guide](https://docs.abp.io/en/abp/7.0/Migration-Guides/Abp-7_0)
* [ABP Commercial 6.0 to 7.0 Migration Guide](https://docs.abp.io/en/commercial/7.0/migration-guides/v7_0)
* [ABP Framework 6.x to 7.0 Migration Guide](https://docs.abp.io/en/abp/7.0/Migration-Guides/Abp-7_0)
* [ABP Commercial 6.x to 7.0 Migration Guide](https://docs.abp.io/en/commercial/7.0/migration-guides/v7_0)
## What's New with ABP Framework 7.0?
@ -46,7 +46,7 @@ In this section, I will introduce some major features released in this version.
* Upgraded to .NET 7.0
* ABP Dapr Integration
* Upgrade to OpenIddict 4.0
* Upgraded to OpenIddict 4.0
* Dynamic Features
* Integration Services
* External Localization Infrastructure
@ -67,13 +67,13 @@ Upgraded to .NET 7.0, so you need to move your solutions to .NET 7.0 if you want
[Dapr (Distributed Application Runtime)](https://dapr.io/) provides APIs that simplify microservice connectivity.
ABP and Dapr have some intersecting features like service-to-service communication, distributed message bus and distributed locking. However their purposes are totally different.
ABP and Dapr have some intersecting features like service-to-service communication, distributed message bus and distributed locking. However, their purposes are totally different.
ABP's goal is to provide and end-to-end developer expericen with an opinionated architecture. On the other hand, Dapr's purpose is to provide a runtime to decouple common microservice communication patterns from your application logic.
ABP's goal is to provide an end-to-end developer experience with an opinionated architecture. On the other hand, Dapr's purpose is to provide a runtime to decouple common microservice communication patterns from your application logic.
ABP 7.0 offers some packages to provide better integration with Dapper.
> You can read the [ABP Dapr Integration documentation](https://docs.abp.io/en/abp/7.0/Dapr/Index) to learn more.
> I will cover some important integration notes below but if you want to get a full overview of ABP Dapr Integration please see the [ABP Dapr Integration documentation](https://docs.abp.io/en/abp/7.0/Dapr/Index).
#### Distributed Event Bus Integration
@ -81,7 +81,7 @@ ABP's [Distributed Event Bus System](https://docs.abp.io/en/abp/7.0/Distributed-
ABP's [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr) and [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) packages make it possible to use the Dapr infrastructure with the ABP's distributed event bus.
> **Volo.Abp.EventBus.Dapr** package is used to publish events and other hand the **Volo.Abp.AspNetCore.Mvc.Dapr.EventBus** package is used to subscribe to these events.
> **Volo.Abp.EventBus.Dapr** package is used to publish events and on other hand the **Volo.Abp.AspNetCore.Mvc.Dapr.EventBus** package is used to subscribe to these events.
> See [the documentation](https://docs.abp.io/en/abp/7.0/Dapr/Index#distributed-event-bus-integration) to learn more.
ABP can [dynamically](https://docs.abp.io/en/abp/7.0/API/Dynamic-CSharp-API-Clients) or [statically](https://docs.abp.io/en/abp/7.0/API/Static-CSharp-API-Clients) generate proxy classes to invoke your HTTP APIs from a Dotnet client application.
The [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) package configures the client-side proxies system, so it uses Dapr's service invocation building block for the communication between your applications.
The [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) package configures the client-side proxy system, so it uses Dapr's service invocation building block for the communication between your applications.
> See [the documentation](https://docs.abp.io/en/abp/7.0/Dapr/Index#c-api-client-proxies-integration) to learn more.
@ -101,13 +101,13 @@ The [Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.D
> See [the documentation](https://docs.abp.io/en/abp/7.0/Dapr/Index#distributed-lock) to learn more.
### Upgrade to OpenIddict 4.0
### Upgraded to OpenIddict 4.0
OpenIddict 4.0 preview has been released on June 22. So, we decided to upgrade the OpenIddict packages to 4.0-preview in ABP 7.0.
Once the final release of OpenIddict 4.0 is published, we will immediately upgrade it to the stable version and planning to make ABP 7.0 final to use the OpenIddict 4.0 stable version.
Once the final release of OpenIddict 4.0 is published, we will immediately upgrade it to the stable version and plan to make ABP 7.0 final to use the OpenIddict 4.0 stable version.
> You can read the "[OpenIddict 4.0 preview1 is out](https://kevinchalet.com/2022/06/22/openiddict-4-0-preview1-is-out/)" post to learn what's new with this release.
> You can read the "[OpenIddict 4.0 preview1 is out](https://kevinchalet.com/2022/06/22/openiddict-4-0-preview1-is-out/)" post to learn what's new with OpenIddict 4.0.
### Dynamic Features
@ -125,15 +125,21 @@ Once the final release of OpenIddict 4.0 is published, we will immediately upgra
//TODO: (@hikalkan)
### Distributed Entity Cache Base Class
### Distributed Entity Cache Base Class
//TODO:
ABP introduces **Distributed Entity Cache Base Class** with v7.0.
There is an `EntityCache<>` base class that can help you if you want to cache entities. This base class helps you to easily implement caching for entities.
> Check [this PR](https://github.com/abpframework/abp/pull/14055) to see the implementation and additional notes.
### Layout Hooks for the Blazor UI
The **Layout Hook System** allows you to add code to some specific parts of the layout and all layout of the themes provided by the ABP Framework implement these hooks.
The **Layout Hook System** allows you to add code to some specific parts of the layout and all layouts of the themes provided by the ABP Framework implement these hooks.
This system was already implemented for MVC UI but not for the Blazor UI.
This system was already implemented for MVC UI but not for the Blazor UI and we've announced in the [ABP 6.0 Release Candidate blog post](https://blog.abp.io/abp/ABP.IO-Platform-6.0-RC-Has-Been-Published) to we're planning to implement it in version 7.0.
We've announced in the previous blog post ([ABP 6.0 Release Candidate blog post](https://blog.abp.io/abp/ABP.IO-Platform-6.0-RC-Has-Been-Published)) to we're planning to implement it in version 7.0.
And now, we are introducing the Layout Hook System for Blazor UI as planned within this version.
@ -141,30 +147,30 @@ And now, we are introducing the Layout Hook System for Blazor UI as planned with
### CMS Kit - New Features
There are two new features that came with this version on CMS Kit module:
There are two new features that came with this version on the CMS Kit module:
#### Features Integration

ABP's [Feature System](https://docs.abp.io/en/abp/latest/Features) is used to **enable**, **disable** or **change the behaviour** of the application features on runtime. In ABP 7.0, this is implemented for the CMS Kit module.
ABP's [Feature System](https://docs.abp.io/en/abp/latest/Features) is used to **enable**, **disable** or **change the behavior** of the application features on runtime. In ABP 7.0, this is implemented for the CMS Kit module.
#### Set a Page as the Homepage

ABP 7.0 introduces a new feature on CMS Kit module and that's allow you to set any page as the home page (if you haven't created a homepage in your code such as `/Pages/Index.cshtml` for Razor Page applications). Then when the users access to your website, they will see this page as the homepage.
ABP 7.0 introduces a new feature on the CMS Kit module and that allows you to set any page as the home page (if you haven't created a homepage in your code such as `/Pages/Index.cshtml` for Razor Page applications). Then when the users access your website, they will see this page as the homepage.
### Improvements on eShopOnAbp
The following improvements have been made on [eShopOnAbp project](https://github.com/abpframework/eShopOnAbp) with this version:
The following improvements have been made on the [eShopOnAbp project](https://github.com/abpframework/eShopOnAbp) within this version:
* Keycloak is an open-source identity management system. Keycloak Integration has been added to the project within this release period. See [#12021](https://github.com/abpframework/abp/issues/12021) for more info.
* Product detail page now uses CMS Kit's [Rating](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Ratings) and [Comment](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Comments) features. See [#11429](https://github.com/abpframework/abp/issues/11429) for more info.
* The product detail page now uses CMS Kit's [Rating](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Ratings) and [Comment](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Comments) features. See [#11429](https://github.com/abpframework/abp/issues/11429) for more info.
### Other News
* ABP 7.0 introduces the `AbpDistributedLockOptions` for main options class to configure the distributed locking. You can specify any name as the lock prefix by configuring the `AbpDistributedLockOptions`. See the [documentation](https://docs.abp.io/en/abp/7.0/Distributed-Locking#abpdistributedlockoptions) for more.
* ABP 7.0 introduces the `AbpDistributedLockOptions` for the main options class to configure the distributed locking. You can specify any name as the lock prefix by configuring the `AbpDistributedLockOptions`. See the [documentation](https://docs.abp.io/en/abp/7.0/Distributed-Locking#abpdistributedlockoptions) for more.
## What's New with ABP Commercial 7.0?
@ -176,7 +182,7 @@ The following improvements have been made on [eShopOnAbp project](https://github

ABP 7.0 allows to set tenant admin's password from the Host side. You can set a new password to any tenant admin's password from the Tenants page, if you are the Host of the system.
ABP 7.0 allows setting the tenant admin's password from the Host side. You can set a new password to any tenant admin's password from the Tenants page if you are the Host of the system.
### WeChat and Alipay Integrations for the Payment Module
@ -198,7 +204,7 @@ You can read the [Payment Module documentation](https://docs.abp.io/en/commercia
* [gdlcf88](https://github.com/gdlcf88) has created a new community article. You can read it 👉 [here](https://community.abp.io/posts/use-stepping-to-perform-atomic-multistep-operations-4kqu8ewp).
* [GDUnit](https://community.abp.io/members/GDUnit) has created her/his first ABP community article that shows multi-tenant subdomain resolution in blazor applications. You can read it 👉 [here](https://community.abp.io/posts/abp-blazor-multitenant-subdomain-resolution-c1x4un8x).
* [EngincanV](https://twitter.com/EngincanVeske) has created a new community article to introduces ABP's testing infrastructure. You can read it 👉 [here](https://community.abp.io/posts/testing-in-abp-framework-with-examples-3w29v6ce).
* [EngincanV](https://twitter.com/EngincanVeske) has created a new community article to introduce the ABP's testing infrastructure. You can read it 👉 [here](https://community.abp.io/posts/testing-in-abp-framework-with-examples-3w29v6ce).
* [Alper Ebicoglu](https://twitter.com/alperebicoglu) has created a new community article to show "How to upgrade an existing project to .NET7". You can read it 👉 [here](https://community.abp.io/posts/upgrade-your-existing-projects-to-.net7-nmx6vm9m).
* [Kirti Kulkarni](https://community.abp.io/members/kirtik) has created a new community article to show "How to integrate and enable the Chat Module in an ABP Commercial application". You can read it 👉 [here](https://community.abp.io/posts/integrating-and-enabling-the-chat-module-in-abp-commercial-vsci3ov2).
@ -206,7 +212,7 @@ You can read the [Payment Module documentation](https://docs.abp.io/en/commercia

Halil İbrahim Kalkan, the lead developer of ABP Framework attended to [.NET Conf 2022](https://www.dotnetconf.net/) on November 10, 2022. His topic was "Authorization in a Distributed / Microservice System". In this talk, he talked about the permisson-based authorization systems and its challenges. Then, gave solutions that are implemented in open source ABP Framework.
Halil İbrahim Kalkan, the lead developer of ABP Framework attended [.NET Conf 2022](https://www.dotnetconf.net/) on November 10, 2022. His topic was "Authorization in a Distributed / Microservice System". In this talk, he talked about permission-based authorization systems and its challenges. Then, gave solutions that are implemented in open source ABP Framework.
You can watch his speech from 👉 [here](https://www.youtube.com/watch?v=DVqvRZ0w-7g).
@ -214,7 +220,7 @@ You can watch his speech from 👉 [here](https://www.youtube.com/watch?v=DVqvRZ

In this episode of ABP Community Talks, 2022.9; we'll talk about .NET 7.0 and ABP 7.0 with ABP Core Team. We will dive into the features that came with .NET 7.0, how they are implemented in ABP 7.0, what were the highlights in the .NET Conf 2022 with [Halil İbrahim Kalkan](https://github.com/hikalkan), [Alper Ebicoglu](https://github.com/ebicoglu), [Engincan Veske](https://github.com/EngincanV), [Hamza Albreem](https://github.com/braim23) and [Bige Besikci Yaman](https://github.com/bigebesikci).
In this episode of ABP Community Talks, 2022.9; we'll talk about .NET 7.0 and ABP 7.0 with ABP Core Team. We will dive into the features that came with .NET 7.0, how they are implemented in ABP 7.0, the highlights in the .NET Conf 2022 with [Halil İbrahim Kalkan](https://github.com/hikalkan), [Alper Ebicoglu](https://github.com/ebicoglu), [Engincan Veske](https://github.com/EngincanV), [Hamza Albreem](https://github.com/braim23) and [Bige Besikci Yaman](https://github.com/bigebesikci).
> Register to listen and ask your questions now 👉 https://kommunity.com/volosoft/events/abp-community-20229-net-70-abp-70-f9e8fb72 .