@ -20,7 +20,7 @@ Currently, three themes are **officially provided**:
* The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](https://docs.abp.io/en/commercial/latest/themes/lepton-x/angular) and [lite](../../../ui-themes/lepton-x-lite/angular.md) choices.
* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](../../../ui-themes/lepton-x/angular.md) and [lite](../../../ui-themes/lepton-x-lite/angular.md) choices.
@ -36,7 +36,7 @@ Currently, three themes are **officially provided**:
* The [Basic Theme](Basic-Theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Basic Theme](Basic-Theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](https://docs.abp.io/en/commercial/latest/themes/lepton-x/mvc) and [lite](../../../ui-themes/lepton-x-lite/asp-net-core.md) choices.
* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](../../../ui-themes/lepton-x/mvc.md) and [lite](../../../ui-themes/lepton-x-lite/asp-net-core.md) choices.
There are also some community-driven themes for the ABP (you can search on the web).
There are also some community-driven themes for the ABP (you can search on the web).
@ -38,7 +38,7 @@ Security Headers middleware is an ASP.NET Core request pipeline [middleware](htt
app.UseAbpSecurityHeaders();
app.UseAbpSecurityHeaders();
```
```
> You can add this middleware after `app.UseRouting()` in your module class's `OnApplicationInitialization` method to register it to the request pipeline. This middleware is already configured in the [ABP Commercial Startup Templates](https://docs.abp.io/en/commercial/latest/startup-templates/index), so you don't need to manually add it if you are using one of these startup templates.
> You can add this middleware after `app.UseRouting()` in your module class's `OnApplicationInitialization` method to register it to the request pipeline. This middleware is already configured in the [ABP Commercial Startup Templates](../../../solution-templates/index.md), so you don't need to manually add it if you are using one of these startup templates.
After that, you have registered the `UseAbpSecurityHeaders` middleware into the request pipeline, the defined security headers will be shown in the response headers as in the figure below:
After that, you have registered the `UseAbpSecurityHeaders` middleware into the request pipeline, the defined security headers will be shown in the response headers as in the figure below:
@ -21,7 +21,7 @@ Currently, four themes are **officially provided**:
* The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [LeptonX Lite Theme](../../../ui-themes/lepton-x-lite/asp-net-core.md) is modern and stylish Bootstrap UI theme. It is ideal if you want to have a production ready UI theme. It is also **open source and free**.
* The [LeptonX Lite Theme](../../../ui-themes/lepton-x-lite/asp-net-core.md) is modern and stylish Bootstrap UI theme. It is ideal if you want to have a production ready UI theme. It is also **open source and free**.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
* The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license.
* The [LeptonX Theme](https://docs.abp.io/en/commercial/latest/themes/lepton-x/index) is also a **commercial** theme developed by the core ABP theme and is a part of the [ABP](https://abp.io/) license. This is the default theme after ABP v6.0.0.
* The [LeptonX Theme](../../../ui-themes/lepton-x/index.md) is also a **commercial** theme developed by the core ABP theme and is a part of the [ABP](https://abp.io/) license. This is the default theme after ABP v6.0.0.
There are also some community-driven themes for the ABP (you can search on the web).
There are also some community-driven themes for the ABP (you can search on the web).
@ -26,9 +26,9 @@ The following tools should be installed on your development machine:
* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <supid="a-yarn">[2](#f-yarn)</sup> or npm v6+ (already installed with Node)
* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <supid="a-yarn">[2](#f-yarn)</sup> or npm v6+ (already installed with Node)
{{ end }}
{{ end }}
{{ if Tiered == "Yes" }}
{{ if Tiered == "Yes" }}
* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)).
* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)).
{{ else }}
{{ else }}
* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)) is required if you select the Public website option.
* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)) is required if you select the Public website option.
{{ end }}
{{ end }}
<supid="f-editor"><b>1</b></sup>_You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._<sup>[↩](#a-editor)</sup>
<supid="f-editor"><b>1</b></sup>_You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._<sup>[↩](#a-editor)</sup>
@ -25,9 +25,9 @@ The following tools should be installed on your development machine:
* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <supid="a-yarn">[2](#f-yarn)</sup> or npm v6+ (already installed with Node)
* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <supid="a-yarn">[2](#f-yarn)</sup> or npm v6+ (already installed with Node)
{{ end }}
{{ end }}
{{ if Tiered == "Yes" }}
{{ if Tiered == "Yes" }}
* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)).
* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)).
{{ else }}
{{ else }}
* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)) is required if you select the Public website option.
* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)) is required if you select the Public website option.
{{ end }}
{{ end }}
<supid="f-editor"><b>1</b></sup>_You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._<sup>[↩](#a-editor)</sup>
<supid="f-editor"><b>1</b></sup>_You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._<sup>[↩](#a-editor)</sup>
@ -115,7 +115,7 @@ To see `AbpAuditingOptions` properties, please see its [documentation](../framew
### ExpiredAuditLogDeleterOptions
### ExpiredAuditLogDeleterOptions
`ExpiredAuditLogDeleterOptions` can be configured in the UI layer, within the `ConfigureServices` method of your [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics). Example:
`ExpiredAuditLogDeleterOptions` can be configured in the UI layer, within the `ConfigureServices` method of your [module](../framework/architecture/modularity/basics.md). Example:
@ -241,7 +241,7 @@ You can modify the look and behavior of the module pages by passing the followin
#### Services / Models
#### Services / Models
Audit Logging module services and models are generated via `generate-proxy` command of the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI). If you need the module's proxies, you can run the following command in the Angular project directory:
Audit Logging module services and models are generated via `generate-proxy` command of the [ABP CLI](../cli/index.md). If you need the module's proxies, you can run the following command in the Angular project directory:
@ -35,7 +35,7 @@ The top menu is the main menu bar in ABP Studio. It offers access to various fun
### ABP Suite
### ABP Suite
[ABP Suite](https://abp.io/tools/suite) is a complementary tool to the ABP Platform, designed to enable the rapid construction of web pages in just a few minutes. With the ABP Suite button in the Top Menu, you can access the Suite from the browser embedded in ABP Studio.
[ABP Suite](https://abp.io/suite) is a complementary tool to the ABP Platform, designed to enable the rapid construction of web pages in just a few minutes. With the ABP Suite button in the Top Menu, you can access the Suite from the browser embedded in ABP Studio.
@ -157,7 +157,7 @@ ABP modules have their own file extension `.abpmdl`, and they are located in the
### Difference Between ABP Module Template and ABP Studio Module Approach
### Difference Between ABP Module Template and ABP Studio Module Approach
In ABP, creating a module solution using the [CLI](https://docs.abp.io/en/commercial/latest/startup-templates/module/creating-a-new-solution) results in a solution with numerous projects, some of which may not be necessary for a specific use case. The ABP Studio module approach differs from the ABP module template, offering greater flexibility. With ABP Studio, we can create a module containing only the required projects; for example, an empty module with only the `Domain` and `Application` projects. In this approach, the term [Package](./concepts.md#package) is used for module projects.
In ABP, creating a module solution using the [CLI](../cli/index.md) results in a solution with numerous projects, some of which may not be necessary for a specific use case. The ABP Studio module approach differs from the ABP module template, offering greater flexibility. With ABP Studio, we can create a module containing only the required projects; for example, an empty module with only the `Domain` and `Application` projects. In this approach, the term [Package](./concepts.md#package) is used for module projects.
Furthermore, it's important to mention that we can create not just DDD-principled modules. The [Modularity](../framework/architecture/modularity/basics.md) document clarifies the difference between *Framework* and *Application* modules. Basically, every C# project refers to the `Volo.Abp.Core` package and defines the *Module* class as an ABP Class Library. We have the option to develop an infrastructure module using only the *ABP Class Library* packages and provide a module reference to other modules.
Furthermore, it's important to mention that we can create not just DDD-principled modules. The [Modularity](../framework/architecture/modularity/basics.md) document clarifies the difference between *Framework* and *Application* modules. Basically, every C# project refers to the `Volo.Abp.Core` package and defines the *Module* class as an ABP Class Library. We have the option to develop an infrastructure module using only the *ABP Class Library* packages and provide a module reference to other modules.
@ -93,7 +93,7 @@ To create a new entity, make sure the *-New entity-* is selected in the **Entity
* **Customizable code**: Specifies hook-points to allow adding custom code blocks. Then, the code blocks that were written by you will not be overridden in the next entity generation and will be respected.
* **Customizable code**: Specifies hook-points to allow adding custom code blocks. Then, the code blocks that were written by you will not be overridden in the next entity generation and will be respected.
* **Multi-tenant**: For your multi-tenant application, you can set an entity as multi-tenant which means the data will be isolated between the tenants. To make an entity multi-tenant, ABP Suite adds the `IMultiTenant` interface to the entity. Further information see [Multi-Tenancy](https://docs.abp.io/{{Document_Language_Code}}/abp/{{Document_Version}}/Multi-Tenancy)
* **Multi-tenant**: For your multi-tenant application, you can set an entity as multi-tenant which means the data will be isolated between the tenants. To make an entity multi-tenant, ABP Suite adds the `IMultiTenant` interface to the entity. Further information see [Multi-Tenancy](../framework/architecture/multi-tenancy/index.md)
* If you created your application with *Separated tenant schema* support, then when you enable the multi-tenancy for the entity, database configurations (DbSet definitions and model configurations) will be defined in both `MyProjectNameDbContext` and `MyProjectNameTenantDbContext` (can be used for tenant-specific configurations) classes. Otherwise, the database configurations will only be defined in the `MyProjectNameDbContext` class for the host.
* If you created your application with *Separated tenant schema* support, then when you enable the multi-tenancy for the entity, database configurations (DbSet definitions and model configurations) will be defined in both `MyProjectNameDbContext` and `MyProjectNameTenantDbContext` (can be used for tenant-specific configurations) classes. Otherwise, the database configurations will only be defined in the `MyProjectNameDbContext` class for the host.
@ -152,7 +152,7 @@ Commonly used components in all layouts.


Breadcrumbs can be customized by using the `IPageLayout` service. See [PageLayout - Breadcrumb](https://docs.abp.io/en/abp/7.2/UI%2FAspNetCore%2FPage-Header#breadcrumb) for more information.
Breadcrumbs can be customized by using the `IPageLayout` service. See [PageLayout - Breadcrumb](https://abp.io/docs/latest/UI%2FAspNetCore%2FPage-Header#breadcrumb) for more information.
If you need to replace the component, you can follow the steps below.
If you need to replace the component, you can follow the steps below.
@ -166,7 +166,7 @@ If you need to replace the component, you can follow the steps below.
Page Titles can be customized by using the `IPageLayout` service. See [PageLayout - Page Title](https://docs.abp.io/en/abp/7.2/UI%2FAspNetCore%2FPage-Header#page-title) for more information.
Page Titles can be customized by using the `IPageLayout` service. See [PageLayout - Page Title](https://abp.io/docs/latest/UI%2FAspNetCore%2FPage-Header#page-title) for more information.
If you need to replace the component, you can follow the steps below.
If you need to replace the component, you can follow the steps below.