After adding a new service to your microservice template by following the [add new microservice guide](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/add-microservice.md), you can add any module to this service in your microservice solution by using the ABP CLI. Use the following command to add the preferred module under the newly added microservice directory:
After adding a new service to your microservice template by following the [add new microservice guide](https://abp.io/docs/latest/solution-templates/microservice/adding-new-microservices), you can add any module to this service in your microservice solution by using the ABP CLI. Use the following command to add the preferred module under the newly added microservice directory:
```powershell
abp add-module CmsKit
@ -20,7 +20,7 @@ dotnet build
## Using the static proxy
ABP supports [dynamic](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Dynamic-JavaScript-Proxies) and [static](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Static-JavaScript-Proxies) proxies. Both have advantages and disadvantages. By default, the static proxy is used in the microservice template to remove the coupling between services. The static proxy should be configured manually in the `HttpApiClientModule` of the microservice you have installed your module on as below:
ABP supports [dynamic](https://abp.io/docs/latest/framework/ui/mvc-razor-pages/dynamic-javascript-proxies) and [static](https://abp.io/docs/latest/framework/ui/mvc-razor-pages/static-javascript-proxies) proxies. Both have advantages and disadvantages. By default, the static proxy is used in the microservice template to remove the coupling between services. The static proxy should be configured manually in the `HttpApiClientModule` of the microservice you have installed your module on as below:
```csharp
public class ProductServiceHttpApiClientModule : AbpModule
@ -45,9 +45,9 @@ If the proxy is configured as `AddStaticHttpClientProxies`, you can start creati
> Note: This port is used by `Public-Web`. You can check your port from `launchSetting.json`. The Public Web calls the Public Web Gateway so it has called the related services and has generated proxy files. [For more](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/gateways#public-web-gateway)
> Note: This port is used by `Public-Web`. You can check your port from `launchSetting.json`. The Public Web calls the Public Web Gateway so it has called the related services and has generated proxy files. [For more](https://abp.io/docs/commercial/latest/startup-templates/microservice/gateways#public-web-gateway)
> If you have generated a new microservice with the ABP CLI by following the [add new microservice guide](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/add-microservice.md), it should already be configured to use the static proxy.
> If you have generated a new microservice with the ABP CLI by following the [add new microservice guide](https://abp.io/docs/commercial/8.1/startup-templates/microservice/add-microservice), it should already be configured to use the static proxy.
## Configure Gateways
The microservice template project has two gateway projects.
@ -8,7 +8,7 @@ The CMS kit provides a **FAQ** system to allow users to create, edit and delete
## Enabling the FAQ System
By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](https://docs.abp.io/en/abp/latest/Global-Features) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP Framework's [Feature System](https://docs.abp.io/en/abp/latest/Features) to disable a CMS Kit feature on runtime.
By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](https://abp.io/docs/latest/framework/infrastructure/global-features) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP Framework's [Feature System](https://abp.io/docs/latest/framework/infrastructure/features) to disable a CMS Kit feature on runtime.
> Check the ["How to Install" section of the CMS Kit Module documentation](index.md#how-to-install) to see how to enable/disable CMS Kit features on development time.
@ -32,7 +32,7 @@ You can list, create, update and delete sections and their questions FAQ's on th
## Faq Widget
The FAQ system provides a FAQ [widget](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Widgets) for users to display FAQ's. You can place the widget on a page like below:
The FAQ system provides a FAQ [widget](https://abp.io/docs/latest/framework/ui/mvc-razor-pages/widgets) for users to display FAQ's. You can place the widget on a page like below:
```csharp
@await Component.InvokeAsync(
@ -48,11 +48,11 @@ The FAQ system provides a FAQ [widget](https://docs.abp.io/en/abp/latest/UI/AspN
- `groupName` (optional): It allows to specify which FAQ group to show. If not specified, all groups will be shown.
- `sectionName` (optional): It is used to determine which section within the specified group will be shown. If not specified, all sections in the related group will be shown.
The FAQ system can also be used in combination with the [dynamic widget](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Dynamic-Widget) feature.
The FAQ system can also be used in combination with the [dynamic widget](https://abp.io/docs/latest/Modules/Cms-Kit/Dynamic-Widget) feature.
## Options
The FAQ system provides a mechanism to group sections by group name. For example, if you want to use the FAQ system for community and support page, you need to define two group names named Community and Support and add sections under these groups. So, before using the FAQ system, you need to define groups. For that, you can use `FaqOptions`. `FaqOptions` can be configured at the domain layer, in the `ConfigureServices` method of your [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics).
The FAQ system provides a mechanism to group sections by group name. For example, if you want to use the FAQ system for community and support page, you need to define two group names named Community and Support and add sections under these groups. So, before using the FAQ system, you need to define groups. For that, you can use `FaqOptions`. `FaqOptions` can be configured at the domain layer, in the `ConfigureServices` method of your [module]https://abp.io/docs/latest/framework/architecture/modularity/basics).
```csharp
Configure<FaqOptions>(options =>
@ -71,7 +71,7 @@ Configure<FaqOptions>(options =>
#### Aggregates
This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide.
This module follows the [Entity Best Practices & Conventions](https://abp.io/docs/latest/framework/architecture/best-practices/entities) guide.
##### FAQ
@ -82,7 +82,7 @@ A FAQ represents a generated FAQ with its questions:
#### Repositories
This module follows the guidelines of [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories).
This module follows the guidelines of [Repository Best Practices & Conventions](https://abp.io/docs/latest/framework/architecture/best-practices/repositories).
The following special repositories are defined for these features:
@ -92,7 +92,7 @@ The following special repositories are defined for these features:
#### Domain services
This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide.
This module follows the [Domain Services Best Practices & Conventions](https://abp.io/docs/latest/framework/architecture/best-practices/domain-services) guide.
### Application layer
@ -115,7 +115,7 @@ All tables/collections use the `Cms` prefix by default. Set static properties on
This module uses `CmsKit` for the connection string name. If you don't define a connection string with this name, it fallbacks to the `Default` connection string.
See the [connection strings](https://docs.abp.io/en/abp/latest/Connection-Strings) documentation for details.
See the [connection strings](https://abp.io/docs/latest/framework/fundamentals/connection-strings) documentation for details.
@ -92,7 +92,7 @@ You can configure the approval status of comments using the "Comment" tab under
#### Aggregates
This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide.
This module follows the [Entity Best Practices & Conventions](https://abp.io/docs/latest/framework/architecture/best-practices/entities) guide.
##### Comment
@ -102,7 +102,7 @@ A comment represents a written comment from a user.
#### Repositories
This module follows the [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories) guide.
This module follows the [Repository Best Practices & Conventions](https://abp.io/docs/latest/framework/architecture/best-practices/repositories) guide.
The following custom repositories are defined for this feature:
@ -110,7 +110,7 @@ The following custom repositories are defined for this feature:
#### Domain services
This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide.
This module follows the [Domain Services Best Practices & Conventions](https://abp.io/docs/latest/framework/architecture/best-practices/domain-services) guide.
@ -372,7 +372,7 @@ dotnet ef migrations add AbpOpenIddictMigration
* [Open source tiered & separate auth server application migrate Identity Server to OpenIddct](https://github.com/abpframework/abp-samples/tree/master/Ids2OpenId)
* [Commercial tiered & separate auth server application migrate Identity Server to OpenIddct](https://abp.io/Account/Login?returnUrl=/api/download/samples/Ids2OpenId)
- This tutorial assumes that you have completed the [Web Application Development tutorial](../../book-store/part-01.md) and built an ABP based application named `Acme.BookStore` with [React Native](../../../framework/ui/react-native) as the mobile option.. Therefore, if you haven't completed the [Web Application Development tutorial](../../book-store/part-01.md), you either need to complete it or download the source code from down below and follow this tutorial.
- In this tutorial, we will only focus on the UI side of the `Acme.BookStore` application and will implement the CRUD operations.
- Before starting, please make sure that the [React Native Development Environment](https://docs.abp.io/en/commercial/latest/getting-started-react-native) is ready on your machine.
- Before starting, please make sure that the [React Native Development Environment](https://abp.io/docs/latest/framework/ui/react-native?Tiered=No) is ready on your machine.
@ -21,7 +21,7 @@ public class CommentDto : ExtensibleObject, IHasConcurrencyStamp
publicDateTimeCreationTime{get;set;}
publicCmsUserDtoAuthor{get;set;}//TODO: Should only have AuthorId for the basic dto. see https://docs.abp.io/en/abp/latest/Best-Practices/Application-Services
publicCmsUserDtoAuthor{get;set;}//TODO: Should only have AuthorId for the basic dto. see https://abp.io/docs/latest/framework/architecture/best-practices/application-services
@ -34,7 +32,7 @@ For more information, check out the below links:
Why should you use the ABP.IO Platform instead of creating a new solution from scratch?
You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform)
You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/commercial/7.2/why-abp-io-platform)
## 🚀 Key Features of the ABP Framework
@ -100,7 +98,7 @@ You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en
## 🧐 How It Works?
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works)
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works)
### 📘 Supported Database Providers
@ -127,4 +125,4 @@ The following page explains how you use the ABP.IO Platform as a .NET developer
## 📫 Bug & Support
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io).
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions).
`Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-a-new-culture`,
`Cannot find the ${locale} locale file. You can check how can add new culture at https://abp.io/docs/latest/framework/ui/angular/localization#adding-a-new-culture`,
@ -34,7 +32,7 @@ For more information, check out the below links:
Why should you use the ABP.IO Platform instead of creating a new solution from scratch?
You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform)
You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/commercial/7.2/why-abp-io-platform)
## 🚀 Key Features of the ABP Framework
@ -99,7 +97,7 @@ You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en
## 🧐 How It Works?
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works)
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works)
### 📘 Supported Database Providers
@ -126,7 +124,7 @@ The following page explains how you use the ABP.IO Platform as a .NET developer
## 📫 Bug & Support
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io).
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions).
@ -34,7 +32,7 @@ For more information, check out the below links:
Why should you use the ABP.IO Platform instead of creating a new solution from scratch?
You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform)
You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/commercial/7.2/why-abp-io-platform)
## 🚀 Key Features of the ABP Framework
@ -99,7 +97,7 @@ You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en
## 🧐 How It Works?
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works)
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works)
### 📘 Supported Database Providers
@ -126,4 +124,4 @@ The following page explains how you use the ABP.IO Platform as a .NET developer
## 📫 Bug & Support
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io).
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions).
This is a layered startup solution based on [Domain Driven Design (DDD)](https://docs.abp.io/en/abp/latest/Domain-Driven-Design) practises. All the fundamental ABP modules are already installed.
This is a layered startup solution based on [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) practises. All the fundamental ABP modules are already installed.
### Pre-requirements
@ -52,7 +52,7 @@ It is recommended to use **two** RSA certificates, distinct from the certificate
For more information, please refer to: https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios
> Also, see the [Configuring OpenIddict](https://docs.abp.io/en/abp/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information.
> Also, see the [Configuring OpenIddict](https://abp.io/docs/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information.
#### Install Client-Side Libraries
@ -108,43 +108,43 @@ This is a layered monolith application that consists of the following applicatio
### Deploying the application
Deploying an ABP application is not different than deploying any .NET or ASP.NET Core application. However, there are some topics that you should care about when you are deploying your applications. You can check ABP's [Deployment documentation](https://docs.abp.io/en/abp/latest/Deployment/Index) before deploying your application.
Deploying an ABP application is not different than deploying any .NET or ASP.NET Core application. However, there are some topics that you should care about when you are deploying your applications. You can check ABP's [Deployment documentation](https://abp.io/docs/latest/Deployment/Index) before deploying your application.
### Additional resources
You can see the following resources to learn more about your solution and the ABP Framework:
* [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1)