From 41f128c2ed946c9e93eecd0686beaeadc5ba7fbe Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 19 Feb 2019 16:37:55 +0800 Subject: [PATCH 01/37] Update Getting-Started-AspNetCore-Application.md --- .../Getting-Started-AspNetCore-Application.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/zh-Hans/Getting-Started-AspNetCore-Application.md b/docs/zh-Hans/Getting-Started-AspNetCore-Application.md index d0733bb140..cf9ac3f66f 100644 --- a/docs/zh-Hans/Getting-Started-AspNetCore-Application.md +++ b/docs/zh-Hans/Getting-Started-AspNetCore-Application.md @@ -156,6 +156,26 @@ services.AddApplication(options => }); ```` +4. 更新 `Program.cs`代码, 不再使用`WebHost.CreateDefaultBuilder()`方法(因为它使用默认的DI容器): + + ````csharp +public class Program +{ + public static void Main(string[] args) + { + BuildWebHostInternal(args).Run(); + } + public static IWebHost BuildWebHostInternal(string[] args) => + new WebHostBuilder() + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseStartup() + .Build(); +} +```` + + ### 源码 从[此处](../samples/BasicAspNetCoreApplication)获取本教程中创建的示例项目的源代码. From b4abefd76d42d8abae457826f129ddc608268b1e Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 21 Feb 2019 14:42:07 +0800 Subject: [PATCH 02/37] Preparing to translate microservice documents. --- docs/zh-Hans/Samples/Microservice-Demo.md | 1411 ++++++++++++++++- .../microservice-sample-authserver-home.png | Bin 0 -> 15896 bytes .../microservice-sample-authserver-login.png | Bin 0 -> 12713 bytes ...oservice-sample-backend-ui-permissions.png | Bin 0 -> 40957 bytes .../images/microservice-sample-backend-ui.png | Bin 0 -> 45686 bytes ...ple-blogservice-permission-in-database.png | Bin 0 -> 3304 bytes .../images/microservice-sample-kibana-1.png | Bin 0 -> 79209 bytes .../images/microservice-sample-kibana-2.png | Bin 0 -> 54003 bytes ...vice-sample-product-module-in-solution.png | Bin 0 -> 12817 bytes ...icroservice-sample-public-product-list.png | Bin 0 -> 28913 bytes .../images/microservice-sample-solution.png | Bin 0 -> 10730 bytes 11 files changed, 1407 insertions(+), 4 deletions(-) create mode 100644 docs/zh-Hans/images/microservice-sample-authserver-home.png create mode 100644 docs/zh-Hans/images/microservice-sample-authserver-login.png create mode 100644 docs/zh-Hans/images/microservice-sample-backend-ui-permissions.png create mode 100644 docs/zh-Hans/images/microservice-sample-backend-ui.png create mode 100644 docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png create mode 100644 docs/zh-Hans/images/microservice-sample-kibana-1.png create mode 100644 docs/zh-Hans/images/microservice-sample-kibana-2.png create mode 100644 docs/zh-Hans/images/microservice-sample-product-module-in-solution.png create mode 100644 docs/zh-Hans/images/microservice-sample-public-product-list.png create mode 100644 docs/zh-Hans/images/microservice-sample-solution.png diff --git a/docs/zh-Hans/Samples/Microservice-Demo.md b/docs/zh-Hans/Samples/Microservice-Demo.md index eeac6e0749..e7dd2cfd8a 100644 --- a/docs/zh-Hans/Samples/Microservice-Demo.md +++ b/docs/zh-Hans/Samples/Microservice-Demo.md @@ -19,7 +19,9 @@ ABP框架的主要目标之一就是提供[便捷的基础设施来创建微服 * 有一个**控制台应用程序**使用身份验证展示使用服务最简单的方法. * 使用[Redis](https://redis.io/)做**分布式缓存**. * 使用[RabbitMQ](https://www.rabbitmq.com/)做服务间的**消息**传递. -* 使用[Kubernates](https://kubernetes.io/)**部署**和运行所有的服务和应用程序. +* 使用 [Docker](https://www.docker.com/) & [Kubernates](https://kubernetes.io/) 来**部署**&**运行**所有的服务和应用程序. +* 使用 [Elasticsearch](https://www.elastic.co/products/elasticsearch) & [Kibana](https://www.elastic.co/products/kibana) 来存储和可视化日志 (使用[Serilog](https://serilog.net/)写日志). + 下图显示了该系统: @@ -33,8 +35,1409 @@ ABP框架的主要目标之一就是提供[便捷的基础设施来创建微服 此示例仍处于开发阶段,尚未完成. -## 微服务 +## Running the Solution + +You can either run from the **source code** or from the pre-configured **docker-compose** file. + +### Using the Docker Containers + +#### Pre Requirements + +Running as docker containers is easier since all dependencies are pre-configured. You only need to install the [latest docker](https://docs.docker.com/compose/install/). + +#### Running Containers + +- Clone or download the [ABP repository](https://github.com/abpframework/abp). + +- Open a command line in the `samples/MicroserviceDemo` folder of the repository. + +- Restore SQL Server databases: + + ``` + docker-compose -f docker-compose.yml -f docker-compose.migrations.yml run restore-database + ``` + +- Start the containers: + + ``` + docker-compose up -d + ``` + + At the first run, it will take a **long time** because it will build all docker images. + +- Add this line to the end of your `hosts` file: + + ``` + 127.0.0.1 auth-server + ``` + + hosts file is located inside the `C:\Windows\System32\Drivers\etc\hosts` folder on Windows and `/etc/hosts` for Linux/MacOS. + +#### Run the Applications + +There are a few applications running in the containers you may want to explore: + +* Backend Admin Application (BackendAdminApp.Host): `http://localhost:51512` + *(Used to manage users & products in the system)* +* Public Web Site (PublicWebsite.Host): `http://localhost:51513` + *(Used to list products and run/manage the blog module)* +* Authentication Server (AuthServer.Host): `http://auth-server:51511/` + *(Used as a single sign on and authentication server built with IdentityServer4)* +* Kibana UI: `http://localhost:51510` + *(Use to show/trace logs written by all services/applications/gateways)* + +### Running From the Source Code + +#### Pre Requirements + +To be able to run the solution from source code, following tools should be installed and running on your computer: + +* [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) 2015+ (can be [express edition](https://www.microsoft.com/en-us/sql-server/sql-server-editions-express)) +* [Redis](https://redis.io/download) 5.0+ +* [RabbitMQ](https://www.rabbitmq.com/install-windows.html) 3.7.11+ +* [MongoDB](https://www.mongodb.com/download-center) 4.0+ +* [ElasticSearch](https://www.elastic.co/downloads/elasticsearch) 6.6+ +* [Kibana](https://www.elastic.co/downloads/kibana) 6.6+ (optional, recommended to show logs) + +#### Open & Build the Visual Studio Solution + +* Open the `samples\MicroserviceDemo\MicroserviceDemo.sln` in Visual Studio 2017 (15.9.0+). +* Run `dotnet restore` from the command line inside the `samples\MicroserviceDemo` folder. +* Build the solution in Visual Studio. + +#### Restore Databases + +Open `MsDemo_Identity.zip` and `MsDemo_ProductManagement.zip` inside the `samples\MicroserviceDemo\databases` folder and restore to the SQL Server. + +> Notice that: These databases have EF Core migrations in the solution, however they don't have seed data, especially required for IdentityServer4 configuration. So, restoring the databases is much more easier. + +#### Run Projects + +Run the projects with the following order (right click to each project, set as startup project an press Ctrl+F5 to run without debug): + +* AuthServer.Host +* IdentityService.Host +* BloggingService.Host +* ProductService.Host +* InternalGateway.Host +* BackendAdminAppGateway.Host +* PublicWebSiteGateway.Host +* BackendAdminApp.Host +* PublicWebSite.Host + +## A Brief Overview of the Solution + +The Visual Studio solution consists of multiple projects each have different roles in the system: + +![microservice-sample-solution](../images/microservice-sample-solution.png) + +### Applications + +These are the actual applications those have user interfaces to interact to the users and use the system. + +- **AuthServer.Host**: Host the IdentityServer4 to provide an authentication service to other services and applications. It is a single-sign server and contains the login page. +- **BackendAdminApp.Host**: This is a backend admin application that host UI for Identity and Product management modules. +- **PubicWebSite.Host**: As public web site that contains a simple product list page and blog module UI. +- **ConsoleClientDemo**: A simple console application to demonstrate the usage of services from a C# application. + +### Gateways / BFFs (Backend for Frontend) + +Gateways are used to provide a single entry point to the applications. It can also used for rate limiting, load balancing... etc. Used the [Ocelot](https://github.com/ThreeMammals/Ocelot) library. + +* **BackendAdminAppGateway.Host**: Used by the BackendAdminApp.Host application as backend. +* **PublicWebSiteGateway.Host**: Used by the PublicWebSite.Host application as backend. +* **InternalGateway.Host**: Used for inter-service communication (the communication between microservices). + +### Microservices + +Microservices have no UI, but exposes some REST APIs. + +- **IdentityService.Host**: Host the ABP Identity module which is used to manage users & roles. It has no additional service, but only hosts the Identity module's API. +- **BloggingService.Host**: Host the ABP Blogging module which is used to manage blog & posts (a typical blog application). It has no additional service, but only hosts the Blogging module's API. +- **ProductService.Host**: Hosts the Product module (that is inside the solution) which is used to manage products. It also contains the EF Core migrations to create/update the Product Management database schema. + +### Modules + +* **Product**: A layered module that is developed with the [module development best practices](../Best-Practices/Index.md). It can be embedded into a monolithic application or can be hosted as a microservice by separately deploying API and UI (as done in this demo solution). + +### Databases + +This solution is using multiple databases: + +* **MsDemo_Identity**: An SQL database. Used **SQL Server** by default, but can be any DBMS supported by the EF Core. Shared by AuthServer and IdentityService. Also audit logs, permissions and settings are stored in this database (while they could easily have their own databases, shared the same database to keep it simple). +* **MsDemo_ProductManagement**: An SQL database. Again, used **SQL Server** by default, but can be any DBMS supported by the EF Core. Used by the ProductService as a dedicated database. +* **MsDemo_Blogging**: A **MongoDB** database. Used by the BloggingService. +* **Elasticsearch**: Used to write logs over Serilog. + +## Applications + +### Authentication Server (AuthServer.Host) + +This project is used by all other services and applications for authentication & single sign on. Mainly, uses **IdentityServer4** to provide these services. It uses some of the [pre-build ABP modules](../Modules/Index) like *Identity*, *Audit Logging* and *Permission Management*. + +#### Database & EF Core Configuration + +This application uses a SQL database (named it as **MsDemo_Identity**) and maintains its schema via **Entity Framework Core migrations.** + +It has a DbContext named **AuthServerDbContext** and defined as shown below: + +````csharp +public class AuthServerDbContext : AbpDbContext +{ + public AuthServerDbContext(DbContextOptions options) + : base(options) + { + + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + modelBuilder.ConfigureIdentity(); + modelBuilder.ConfigureIdentityServer(); + modelBuilder.ConfigureAuditLogging(); + modelBuilder.ConfigurePermissionManagement(); + modelBuilder.ConfigureSettingManagement(); + } +} +```` + +In the **OnModelCreating**, you see **ConfigureX()** method calls. A module with a database schema generally declares such an extension method to configure EF Core mappings for its own entities. This is a flexible approach where you can arrange your databases and modules inside them; You can use a different database for each module, or combine some of them in a shared database. In the AuthServer project, we decided to combine multiple module schemas in a single EF Core DbContext, in a single physical database. These modules are Identity, IdentityServer, AuditLogging, PermissionManagement and SettingManagement modules. + +Notice that this DbContext is only for database migrations. All modules have their own `DbContext` classes those are used in the runtime by the modules. + +#### User Interface + +AuthServer has a simple home page that shows the current user info if the current user has logged in: + +![microservice-sample-authserver-home](../images/microservice-sample-authserver-home.png) + +It also provides Login & Register pages: + +![microservice-sample-authserver-login](../images/microservice-sample-authserver-login.png) + +These pages are not included in the project itself. Instead, AuthServer project uses the prebuilt ABP [account module](https://github.com/abpframework/abp/tree/master/modules/account) with IdentityServer extension. That means it can also act as an OpenId Connect server with necessary UI and logic. + +#### Dependencies + +* **RabbitMQ** for messaging to other services. +* **Redis** for distributed/shared caching. +* **Elasticsearch** for storing logs. + +### Backend Admin Application (BackendAdminApp.Host) + +This is a web application that is used to manage users, roles, permissions and products in the system. + +#### Authentication + +BackendAdminApp redirects to the AuthServer for authentication. Once the user enters a correct username & password, the page is redirected to the backend application again. Authentication configuration is setup in the `BackendAdminAppHostModule` class: + +````charp +context.Services.AddAuthentication(options => +{ + options.DefaultScheme = "Cookies"; + options.DefaultChallengeScheme = "oidc"; +}) +.AddCookie("Cookies", options => +{ + options.Cookie.Expiration = TimeSpan.FromDays(365); + options.ExpireTimeSpan = TimeSpan.FromDays(365); +}) +.AddOpenIdConnect("oidc", options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ClientId = configuration["AuthServer:ClientId"]; + options.ClientSecret = configuration["AuthServer:ClientSecret"]; + options.RequireHttpsMetadata = false; + options.ResponseType = OpenIdConnectResponseType.CodeIdToken; + options.SaveTokens = true; + options.GetClaimsFromUserInfoEndpoint = true; + options.Scope.Add("role"); + options.Scope.Add("email"); + options.Scope.Add("phone"); + options.Scope.Add("BackendAdminAppGateway"); + options.Scope.Add("IdentityService"); + options.Scope.Add("ProductService"); + options.ClaimActions.MapAbpClaimTypes(); +}); +```` + +* It adds "Cookies" authentication as the primary authentication type. +* "oidc" authentication is configured to use the AuthServer application as the authentication server. +* It requires the additional identity scopes *role*, *email* and *phone*. +* It requires the API resource scopes *BackendAdminAppGateway*, *IdentityService* and *ProductService* because it will use these services as APIs. + +IdentityServer client settings are stored inside the `appsettings.json` file: + +````json +"AuthServer": { + "Authority": "http://localhost:64999", + "ClientId": "backend-admin-app-client", + "ClientSecret": "1q2w3e*" +} +```` + +#### User Interface + +The BackendAdminApp.Host project itself has not a single UI element/page. It is only used to serve UI pages of the Identity and Product Management modules. `BackendAdminAppHostModule` adds dependencies to `AbpIdentityWebModule` (*[Volo.Abp.Identity.Web](https://www.nuget.org/packages/Volo.Abp.Identity.Web)* package) and `ProductManagementWebModule` (*ProductManagement.Web* project) for that purpose. + +A screenshot from the user management page: + +![microservice-sample-backend-ui](../images/microservice-sample-backend-ui.png) + +A screenshot from the permission management modal for a role: + +![microservice-sample-backend-ui-permissions](../images/microservice-sample-backend-ui-permissions.png) + +#### Using Microservices + +Backend admin application uses the Identity and Product microservices for all operations, over the Backend Admin Gateway (BackendAdminAppGateway.Host). + +##### Remote End Point + +`appsettings.json` file contains the `RemoteServices` section to declare the remote service endpoint(s). Each microservice will normally have different endpoints. However, this solution uses the API Gateway pattern to provide a single endpoint for the applications: + +````json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:65115/" + } +} +```` + +`http://localhost:65115/` is the URL of the *BackendAdminAppGateway.Host* project. It knows where are Identity and Product services are located. + +##### HTTP Clients + +ABP application modules generally provides C# client libraries to consume services (APIs) easily (they generally uses the [Dynamic C# API Clients](../AspNetCore/Dynamic-CSharp-API-Clients.md) feature of the ABP framework). That means if you need to consume Identity service API, you can reference to its client package and easily use the APIs by provided interfaces. + +For that purpose, `BackendAdminAppHostModule` class declares dependencies for `AbpIdentityHttpApiClientModule` and `ProductManagementHttpApiClientModule`. + +Once you refer these client packages, you can directly inject an application service interface (e.g. `IIdentityUserAppService`) and use its methods like a local method call. It actually invokes remote service calls over HTTP to the related service endpoint. + +##### Passing the Access Token + +Since microservices requires authentication & authorization, each remote service call should contain an Authentication header. This header is obtained from the `access_token` inside the current `HttpContext` for the current user. This is automatically done when you use the `Volo.Abp.Http.Client.IdentityModel` package. `BackendAdminAppHostModule` declares dependencies to this package and to the related `AbpHttpClientIdentityModelModule` class. It is integrated to the HTTP Clients explained above. + +#### Dependencies + +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Public Web Site (PublicWebSite.Host) + +This is a public web site project that has a web blog and product list page. + +#### Authentication + +PublicWebSite can show blog posts and product list without login. If you login, you can also manage blogs. It redirects to the AuthServer for authentication. Once the user enters a correct username & password, the page is redirected to the public web site application again. Authentication configuration is setup in the `PublicWebSiteHostModule` class: + +```charp +context.Services.AddAuthentication(options => +{ + options.DefaultScheme = "Cookies"; + options.DefaultChallengeScheme = "oidc"; +}) +.AddCookie("Cookies", options => +{ + options.Cookie.Expiration = TimeSpan.FromDays(365); + options.ExpireTimeSpan = TimeSpan.FromDays(365); +}) +.AddOpenIdConnect("oidc", options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ClientId = configuration["AuthServer:ClientId"]; + options.ClientSecret = configuration["AuthServer:ClientSecret"]; + options.RequireHttpsMetadata = false; + options.ResponseType = OpenIdConnectResponseType.CodeIdToken; + options.SaveTokens = true; + options.GetClaimsFromUserInfoEndpoint = true; + options.Scope.Add("role"); + options.Scope.Add("email"); + options.Scope.Add("phone"); + options.Scope.Add("PublicWebSiteGateway"); + options.Scope.Add("ProductService"); + options.Scope.Add("BloggingService"); + options.ClaimActions.MapAbpClaimTypes(); +}); +``` + +- It adds "Cookies" authentication as the primary authentication type. +- "oidc" authentication is configured to use the AuthServer application as the authentication server. +- It requires the additional identity scopes *role*, *email* and *phone*. +- It requires the API resource scopes *PublicWebSiteGateway*, *BloggingService* and *ProductService* because it will use these services as APIs. + +IdentityServer client settings are stored inside the `appsettings.json` file: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ClientId": "public-website-client", + "ClientSecret": "1q2w3e*" +} +``` + +#### User Interface + +The PublicWebSite.Host project has a page to list products (`Pages/Products.cshtml`). It also uses the UI from the blogging module. `PublicWebSiteHostModule` adds dependencies to `BloggingWebModule` (*[Volo.Blogging.Web](https://www.nuget.org/packages/Volo.Blogging.Web)* package) for that purpose. + +A screenshot from the Products page: + +![microservice-sample-public-product-list](../images/microservice-sample-public-product-list.png) + +#### Using Microservices + +Publc web site application uses the Blogging and Product microservices for all operations, over the Public Web Site Gateway (PublicWebSiteGateway.Host). + +##### Remote End Point + +`appsettings.json` file contains the `RemoteServices` section to declare the remote service endpoint(s). Each microservice will normally have different endpoints. However, this solution uses the API Gateway pattern to provide a single endpoint for the applications: + +```json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:64897/" + } +} +``` + +`http://localhost:64897/` is the URL of the *PublicWebSiteGateway.Host* project. It knows where are Blogging and Product services are located. + +##### HTTP Clients + +`PublicWebSiteHostModule` class declares dependencies for `BloggingHttpApiClientModule` and `ProductManagementHttpApiClientModule` to be able to use remote HTTP APIs for these services. + +##### Passing the Access Token + +Just like explained in the Backend Admin Application section, Public Web Site project also uses the `AbpHttpClientIdentityModelModule` to pass `access_token` to the calling services for authentication. + +#### Dependencies + +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Console Client Demo + +Finally, the solution includes a very simple console application, named ConsoleClientDemo, that uses Identity and Product services by authenticating through the AuthServer. It uses the Internal Gateway (InternalGateway.Host) to perform HTTP API calls. + +#### Remote Service Configuration + +`RemoteService` configuration in the `appsettings.json` file is simple: + +````json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:65129/" + } +} +```` + +`http://localhost:65129/` is the URL of the Internal Gateway. All API calls to the services are performed over this URL. + +#### Authentication (IdentityServer Client) Configuration + +`appsettings.json` also has a configuration for the IdentityServer authentication: + +````json +"IdentityClients": { + "Default": { + "GrantType": "client_credentials", + "ClientId": "console-client-demo", + "ClientSecret": "1q2w3e*", + "Authority": "http://localhost:64999", + "Scope": "InternalGateway IdentityService ProductService" + } +} +```` + +This sample uses the `client_credentials` grant type which requires a `ClientId` and `ClientSecret` for the authentication process. There are also [other grant types](http://docs.identityserver.io/en/latest/topics/grant_types.html). For example, you can use the following configuration to swith to the `password` (Resource Owner Password) grant type: + +````json +"IdentityClients": { + "Default": { + "GrantType": "password", + "ClientId": "console-client-demo", + "ClientSecret": "1q2w3e*", + "UserName": "admin", + "UserPassword": "1q2w3E*", + "Authority": "http://localhost:64999", + "Scope": "InternalGateway IdentityService ProductService" + } +} +```` + +Resource Owner Password requires a `UserName` & `UserPassword` in addition to client credentials. This grant type is useful to call remote services on behalf of a user. + +`Scope` declares the APIs (and the gateway) to grant access. This application uses the Internal Gateway. + +#### HTTP Client Dependencies + +`ConsoleClientDemoModule` has dependencies to `AbpIdentityHttpApiClientModule` and `ProductManagementHttpApiClientModule` in order to use Identity and Product APIs. It also has `AbpHttpClientIdentityModelModule` dependency to authenticate via IdentityServer. + +#### Using the Services + +Using the services is straightforward. See the `ClientDemoService` class which simply injects `IIdentityUserAppService` and `IProductAppService` and uses them. This class also shows a manual HTTP call using an `HttpClient` object. See source code of the `ClientDemoService` for details. + +## API Gateways / BFFs (Backend for Frontend) + +Gateways are used to provide a **single entry point** to the applications. In this way, an application only deal with a single service address (API endpoint) instead of a different addresses for each services. Gateways are also used for rate limiting, security, authentication, load balancing and many more requirements. + +"**Backend for Frontend**" (BFF) is a common architectural pattern which offers to build a **dedicated and specialized** gateway for each different application / client type. This solution uses this pattern and has multiple gateways. + +This solution uses the [Ocelot](https://github.com/ThreeMammals/Ocelot) library to build API Gateways. It's a widely accepted API Gateway library for ASP.NET Core. + +### Backend Admin Application Gateway (BackendAdminAppGateway.Host) + +This is backend (server side API) for the "Backend Admin Application" (don't confuse about the naming; Backend Admin Application is a frontend web application actually, but used by system admins rather than regular users). + +#### Authentication + +This gateway uses IdentityServer `Bearer` authentication and configured like that: + +````csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +```` + +`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). + +`ApiName` is the API which is being protected, `BackendAdminAppGateway` in this case. So, this solution defines gateways as API resources. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +````json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "BackendAdminAppGateway" +} +```` + +#### Ocelot Configuration + +Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: + +````json +"ReRoutes": [ + { + "DownstreamPathTemplate": "/api/identity/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 63568 + } + ], + "UpstreamPathTemplate": "/api/identity/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/productManagement/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 60244 + } + ], + "UpstreamPathTemplate": "/api/productManagement/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + } +], +"GlobalConfiguration": { + "BaseUrl": "http://localhost:65115" +} +```` + +`ReRoutes` is an array of URL mappings. `BaseUrl` in the `GlobalConfiguration` section is the URL of this gateway (Ocelot needs to know its own URL). See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the configuration. + +Ocelot is a finalizer ASP.NET Core middleware and should be written as the last item in the pipeline: + +````csharp +app.UseOcelot().Wait(); +```` + +It handles and redirects requests based on the configuration above. + +#### ABP Configuration Endpoints + +ABP provides some built-in APIs to get some configuration and information from the server. Examples: + +* `/api/abp/application-configuration` returns localization texts, permission and setting values (try http://localhost:65115/api/abp/application-configuration for this gateway). +* `/Abp/ServiceProxyScript` returns dynamic javascript proxies to call services from a javascript client (try http://localhost:65115/Abp/ServiceProxyScript for this gateway). + +These endpoints should be served by the gateway service, not by microservices. A microservice can only know permissions related to that microservice. But, once properly configured, gateway can aggregate permission values for multiple services as a single list which is more suitable for clients. + +For this purpose, the ASP.NET Core pipeline was configured to handle some specific routes via MVC, instead of Ocelot. To make this possible, MapWhen extension method is used like that: + +````csharp +app.MapWhen(ctx => ctx.Request.Path.ToString().StartsWith("/api/abp/") || + ctx.Request.Path.ToString().StartsWith("/Abp/"), + app2 => + { + app2.UseMvcWithDefaultRouteAndArea(); + }); + +app.UseOcelot().Wait(); +```` + +This configuration uses standard MVC middleware when request path starts with `/api/abp/` or `/Abp/`. + +#### Swagger + +This gateway is configured to use the [swagger UI](https://swagger.io/tools/swagger-ui/), a popular tool to discover & test HTTP APIs. Normally, Ocelot does not support to show APIs on the swagger, because it can not know details of each microservice API. But it is possible when you follow ABP layered module architecture [best practices](../Best-Practices/Index.md). + +`BackendAdminAppGatewayHostModule` adds dependency to `AbpIdentityHttpApiModule` (*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* package) and `ProductManagementHttpApiModule` (*ProductManagement.HttpApi* project) to include their HTTP API Controllers. In this way, swagger can discover them. While it references to the API layer, it does not reference to the implementation of application services, because they will be running in the related microservice endpoints and redirected by the Ocelot based on the request URL. + +Anyway, when you open the URL `http://localhost:65115/swagger/index.html`, you will see APIs of all configured microservices. + +#### Permission Management + +Backend Admin Application provides a permission management UI (seen before) and uses this gateway to get/set permissions. Permission management API is hosted inside the gateway, instead of a separate service. This is a design decision, but it could be hosted as another microservice if you would like. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Public Web Site Gateway (PublicWebSiteGateway.Host) + +This is backend (server side API gateway) for the "Public Web Site" application. + +#### Authentication + +This gateway uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). + +`ApiName` is the API which is being protected, `PublicWebSiteGateway` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "PublicWebSiteGateway" +} +``` + +#### Ocelot Configuration + +Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: + +```json +"ReRoutes": [ + { + "DownstreamPathTemplate": "/api/productManagement/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 60244 + } + ], + "UpstreamPathTemplate": "/api/productManagement/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/blogging/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 62157 + } + ], + "UpstreamPathTemplate": "/api/blogging/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + } +], +"GlobalConfiguration": { + "BaseUrl": "http://localhost:64897" +} +``` + +See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the Ocelot configuration. + +#### Other + +See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend Admin Application Gateway" section which are very similar for this gateway. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Internal Gateway (InternalGateway.Host) + +This gateway is not a BFF. It is designed for inter-microservice communication and is not exposed publicly. + +#### Authentication + +This gateway uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). + +`ApiName` is the API which is being protected, `InternalGateway` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "InternalGateway" +} +``` + +#### Ocelot Configuration + +Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: + +```json +"ReRoutes": [ + { + "DownstreamPathTemplate": "/api/identity/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 63568 + } + ], + "UpstreamPathTemplate": "/api/identity/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/productManagement/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 60244 + } + ], + "UpstreamPathTemplate": "/api/productManagement/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/blogging/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 62157 + } + ], + "UpstreamPathTemplate": "/api/blogging/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + } +], +"GlobalConfiguration": { + "BaseUrl": "http://localhost:65129" +} +``` + +`ReRoutes` configuration covers all microservices in the system. See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the Ocelot configuration. + +#### Other + +See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend Admin Application Gateway" section which are very similar for this gateway. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +## Microservices + +Microservices are standalone HTTP APIs those implement the business of the system in a distributed manner. + +* They are used by applications and other microservices through the gateways and HTTP APIs. +* They can raise or register to events in the system. +* They can communicate to each other via asynchronous messaging. + +### Identity Service (IdentityService.Host) + +This service provides user and role management APIs. + +#### Database + +Shares the same database (MsDemo_Identity) with the AuthServer application. + +#### Identity Module + +This service actually just hosts the ABP Identity package/module. Does not include any API itself. In order to host it, adds the following dependencies: + +* `AbpIdentityHttpApiModule` (*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* package) to provide Identity APIs. +* `AbpIdentityApplicationModule` (*[Volo.Abp.Identity.Application](https://www.nuget.org/packages/Volo.Abp.Identity.Application)* package) to host the implementation of the application and domain layers of the module. +* `AbpIdentityEntityFrameworkCoreModule` (*[Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* package) to use EF Core as database API. + +See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. + +#### Authentication + +This microservice uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`ApiName` is the API which is being protected, `IdentityService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "IdentityService" +} +``` + +#### Swagger + +Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:63568/`, you are redirected to the swagger page to see and test the API. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Blogging Service (BloggingService.Host) + +This service hosts the blogging API. + +#### Database + +It has a dedicated MongoDB database (MsDemo_Blogging) to store blog and posts. It also uses the MsDemo_Identity SQL database for audit logs, permissions and settings. So, there are two connection strings in the `appsettings.json` file: + +````json +"ConnectionStrings": { + "Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true", + "Blogging": "mongodb://localhost|MsDemo_Blogging" +} +```` + +#### Blogging Module + +This service actually just hosts the ABP Blogging package/module. Does not include any API itself. In order to host it, adds the following dependencies: + +- `BloggingHttpApiModule` (*[Volo.Blogging.HttpApi](https://www.nuget.org/packages/Volo.Blogging.HttpApi)* package) to provide Blogging APIs. +- `BloggingApplicationModule` (*[Volo.Blogging.Application](https://www.nuget.org/packages/Volo.Blogging.Application)* package) to host the implementation of the application and domain layers of the module. +- `BloggingMongoDbModule` (*[Volo.Blogging.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* package) to use MongoDB as the database. + +See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. + +#### Authentication + +This microservice uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`ApiName` is the API which is being protected, `BloggingService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "BloggingService" +} +``` + +#### IdentityServer Client + +This microservice also uses the Identity microservice API through the Internal Gateway, because it needs to query user details (username, email, phone, name and surname) in some cases. So, it is also a client for the IdentityServer and defines a section in the `appsettings.json` file for that: + +````json +"IdentityClients": { + "Default": { + "GrantType": "client_credentials", + "ClientId": "blogging-service-client", + "ClientSecret": "1q2w3e*", + "Authority": "http://localhost:64999", + "Scope": "InternalGateway IdentityService" + } +} +```` + +Since it uses the Internal Gateway, it should also configure the remote endpoint of the gateway: + +````json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:65129/", + "UseCurrentAccessToken": "false" + } +} +```` + +When you set `UseCurrentAccessToken` to `false`, ABP ignores the current `access_token` in the current `HttpContext` and authenticates to the AuthServer with the credentials defined above. + +Why not using the token of the current user in the current request? Because, the user may not have required permissions on the Identity module, so it can not just pass the current authentication token directly to the Identity service. In addition, some of the blog service APIs are anonymous (not requires authenticated user), so in some cases there is no "current user" in the HTTP request. For these reasons, Blogging service should be defined as a client for the Identity service with its own credentials and permissions. + +If you check the `AbpPermissionGrants` table in the `MsDemo_Identity` database, you can see the related permission for the `blogging-service-client`. + +![microservice-sample-blogservice-permission-in-database](../images/microservice-sample-blogservice-permission-in-database.png) + +#### Swagger + +Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:62157/`, you are redirected to the swagger page to see and test the API. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Product Service (ProductService.Host) + +This service hosts the Product Management API. + +#### Database & EF Core Migrations + +It has a separated SQL database, named **MsDemo_ProductManagement**, for the product management module. It uses EF Core as the database provider and has a DbContext named `ProductServiceMigrationDbContext`: + +````csharp +public class ProductServiceMigrationDbContext : AbpDbContext +{ + public ProductServiceMigrationDbContext( + DbContextOptions options + ) : base(options) + { + + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + modelBuilder.ConfigureProductManagement(); + } +} +```` + +Actual model configuration is done inside the `modelBuilder.ConfigureProductManagement()` extension method. This project maintains the database schema using EF Core migrations. + +Notice that this DbContext is only for database migrations. Product Management module has its own `DbContext` class that is used in the runtime (See `ProductManagementDbContext` class in the ProductManagement.EntityFrameworkCore project). + +There are two connection strings in the `appsettings.json` file: + +````json +"ConnectionStrings": { + "Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true", + "ProductManagement": "Server=localhost;Database=MsDemo_ProductManagement;Trusted_Connection=True;MultipleActiveResultSets=true" +} +```` + +`Default` connection strings points to the MsDemo_Identity database that is used for audit logging, permission and setting stores. `ProductManagement` connection string is used by the product module. + +#### Product Module + +This service actually just hosts the Product Management module. Does not include any API itself. In order to host it, adds the following dependencies: + +- `ProductManagementHttpApiModule` to provide product management APIs. +- `ProductManagementApplicationModule` to host the implementation of the application and domain layers of the module. +- `ProductManagementEntityFrameworkCoreModule` to use EF Core as database API. + +See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. See the Product Management module section below for more information about this module. + +#### Authentication + +This microservice uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`ApiName` is the API which is being protected, `ProductService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "ProductService" +} +``` + +#### Swagger + +Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:60244/`, you are redirected to the swagger page to see and test the API. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +## Modules + +ABP provides a strong infrastructure to make modular application development easier by providing services and architecture (see the [module development best practices guide](../Best-Practices/Index.md)). + +This solution demonstrate how to use [prebuilt application modules](../Modules/Index.md) in a distributed architecture. The solution also includes a simple "Product Management" module to show the implementation of a well layered module example. + +### Product Management + +Product Management is a module that consists of several layers and packages/projects: + +![microservice-sample-product-module-in-solution](../images/microservice-sample-product-module-in-solution.png) + +* `ProductManagement.Domain.Shared` contains constants and types shared among all layers. +* `ProductManagement.Domain` contains the domain logic and defines entities, domain services, domain events, business/domain exceptions. +* `ProductManagement.Application.Contracts` contains application service interfaces and DTOs. +* `ProductManagement.Application` contains the implementation of application services. +* `ProductManagement.EntityFrameworkCore` contains DbConext and other EF Core related classes and configuration. +* `ProductManagement.HttpApi` contains API Controllers. +* `ProductManagement.HttpApi.Client` contains C# proxies to directly use the HTTP API remotely. Uses [Dynamic C# API Clients](../AspNetCore/Dynamic-CSharp-API-Clients.md) feature of the ABP framework. +* `ProductManagement.Web` contains the UI elements (pages, scripts, styles... etc). + +By the help of this layering, it is possible to use the same module as a package reference in a monolithic application or use as a service that runs in another server. It is possible to separate UI (Web) and API layers, so they run in different servers. + +In this solution, Web layer runs in the Backend Admin Application while API layer is hosted by the Product microservice. + +This tutorial will highlight some important aspects of the module. But, it's suggested to see the source code for a better understanding. + +#### Domain Layer + +`Product` is the main [Aggregate Root](../Entities.md) of this module: + +````csharp +public class Product : AuditedAggregateRoot +{ + /// + /// A unique value for this product. + /// ProductManager ensures the uniqueness of it. + /// It can not be changed after creation of the product. + /// + [NotNull] + public string Code { get; private set; } + + [NotNull] + public string Name { get; private set; } + + public float Price { get; private set; } + + public int StockCount { get; private set; } + + //... +} +```` + +All of its properties have private setters which prevents any direct change of the properties from out of the class. Product class ensures its own integrity and validity by its own constructors and methods. + +It has two constructors: + +````csharp +private Product() +{ + //Default constructor is needed for ORMs. +} + +internal Product( + Guid id, + [NotNull] string code, + [NotNull] string name, + float price = 0.0f, + int stockCount = 0) +{ + Check.NotNullOrWhiteSpace(code, nameof(code)); + + if (code.Length >= ProductConsts.MaxCodeLength) + { + throw new ArgumentException( + $"Product code can not be longer than {ProductConsts.MaxCodeLength}" + ); + } + + Id = id; + Code = code; + SetName(Check.NotNullOrWhiteSpace(name, nameof(name))); + SetPrice(price); + SetStockCountInternal(stockCount, triggerEvent: false); +} + +```` + +Default (**parameterless**) constructor is private and is not used in the application code. It is needed because most ORMs requires a parameterless constructor on deserializing entities while getting from the database. + +Second constructor is **internal** that means it can only be used inside the domain layer. This enforces to use the `ProductManager` while creating a new `Product`. Because, `ProductManager` should implement a business rule on a new product creation. This constructor only requires the minimal required arguments to create a new product with some optional arguments. It checks some simple business rules to ensure that the entity is created as a valid product. + +Rest of the class has methods to manipulate properties of the entity. Example: + +````csharp +public Product SetPrice(float price) +{ + if (price < 0.0f) + { + throw new ArgumentException($"{nameof(price)} can not be less than 0.0!"); + } + + Price = price; + return this; +} + +```` + +`SetPrice` method is used to change the price of the product in a safe manner (by checking a validation rule). + +`SetStockCount` is another method that is used to change stock count of a product: + +````csharp +public Product SetStockCount(int stockCount) +{ + return SetStockCountInternal(stockCount); +} + +private Product SetStockCountInternal(int stockCount, bool triggerEvent = true) +{ + if (StockCount < 0) + { + throw new ArgumentException($"{nameof(stockCount)} can not be less than 0!"); + } + + if (StockCount == stockCount) + { + return this; + } + + if (triggerEvent) + { + AddDistributedEvent( + new ProductStockCountChangedEto( + Id, StockCount, stockCount + ) + ); + } + + StockCount = stockCount; + return this; +} + +```` + +This method also triggers a **distributed event** with the `ProductStockCountChangedEto` parameter (Eto is a conventional postfix stands for **E**vent **T**ransfer **O**bject, but not required) to notify listeners that stock count of a product has changed. Any subscriber can receive this event and perform an action based on that knowledge. + +Events are distributed by RabbitMQ for this solution. But ABP is message broker independent by providing necessary abstractions (see the [Event Bus](../Event-Bus.md) document). + +As said before, this module forces to always use the `ProductManager` to create a new `Product`. `ProductManager` is a simple domain service defined as shown: + +````csharp +public class ProductManager : DomainService +{ + private readonly IRepository _productRepository; + + public ProductManager(IRepository productRepository) + { + _productRepository = productRepository; + } + + public async Task CreateAsync( + [NotNull] string code, + [NotNull] string name, + float price = 0.0f, + int stockCount = 0) + { + var existingProduct = + await _productRepository.FirstOrDefaultAsync(p => p.Code == code); + + if (existingProduct != null) + { + throw new ProductCodeAlreadyExistsException(code); + } + + return await _productRepository.InsertAsync( + new Product( + GuidGenerator.Create(), + code, + name, + price, + stockCount + ) + ); + } +} +```` + +* It checks if given code is used before. Throws `ProductCodeAlreadyExistsException` so. +* If uses the `GuidGenerator` (`IGuidGenerator`) service to create a new `Guid`. +* It inserts the entity to the repository. + +So, with this design, uniqueness of the product code is guaranteed. + +`ProductCodeAlreadyExistsException` is a domain/business exception defined as like below: + +````csharp +public class ProductCodeAlreadyExistsException : BusinessException +{ + public ProductCodeAlreadyExistsException(string productCode) + : base("PM:000001", $"A product with code {productCode} has already exists!") + { + + } +} +```` + +`PM:000001` is a code for the exception type that is sent to the clients, so they can understand the error type. Not implemented for this case, but it is also possible to localize business exceptions. See the [exception handling documentation](../Exception-Handling.md). + +#### Application Layer + +Application layer of this module has two services: + +* `ProductAppService` is mainly used by the Backend Admin Application to manage (create, update, delete...) products. It requires permission to perform any operation. +* `PublicProductAppService` is used by the Public Web Site to show list of products to the visitors. It does not require any permission since most of the visitors are not logged in to the application. + +Notice that; instead of putting two application service into the same project, it might be a better principle to have separated application layers per application. But we unified them for simplicity in this solution. + +As an example, `ProductAppService` has the following method to update a product: + +````csharp +[Authorize(ProductManagementPermissions.Products.Update)] +public async Task UpdateAsync(Guid id, UpdateProductDto input) +{ + var product = await _productRepository.GetAsync(id); + + product.SetName(input.Name); + product.SetPrice(input.Price); + product.SetStockCount(input.StockCount); + + return ObjectMapper.Map(product); +} +```` + +* It defines the required permission (*ProductManagementPermissions.Products.Update* is a constant with value `ProductManagement.Update`) to perform this operation. +* Gets the id of the product and a DTO contains the values to update. +* Gets the related product entity from the repository. +* Uses the related methods (like `SetName`) of the `Product` class to change properties, because they are with private setters and the only way to change a value is to use an entity method. +* Returns an updated `ProductDto` to the client (client may need it for some reason) by using the [ObjectMapper](../Object-To-Object-Mapping.md). + +The implementation may vary based on the requirements. This implementation follows the [best practices offered here](../Best-Practices/Application-Services.md). + +#### Other Layers + +See other layers from the source code. + +## Infrastructure + +### Messaging and RabbitMQ + +Asynchronous Messaging is a key concept in distributed systems. It makes possible to communicate as a loosely coupled manner with fault tolerance. It does not require both sides to be online at the moment of messaging. So, it is a widely used communication pattern in microservice architecture. + +#### Distributed Event Bus + +Distributed Events (Event Bus) is a way of messaging where a service raise/trigger events while other services registers/listens to these events to be notified when an important event occurs. ABP makes distributed events easier to use by providing conventions, services and integrations. + +You have seen that the `Product` class publishing an event using the following code line: + +````csharp +AddDistributedEvent(new ProductStockCountChangedEto(Id, StockCount, stockCount)); +```` + +`ProductStockCountChangedEto` was defined as shown below: + +````csharp +[Serializable] +public class ProductStockCountChangedEto : EtoBase +{ + public Guid Id { get; } + + public int OldCount { get; set; } + + public int CurrentCount { get; set; } + + private ProductStockCountChangedEto() + { + //Default constructor is needed for deserialization. + } + + public ProductStockCountChangedEto(Guid id, int oldCount, int currentCount) + { + Id = id; + OldCount = oldCount; + CurrentCount = currentCount; + } +} +```` + +This object stores necessary information about the event. Another service can easily register to this event by implementing the `IDistributedEventHandler` interface with the generic `ProductStockCountChangedEto` parameter: + +````csharp +public class MyHandler : IDistributedEventHandler +{ + public async Task HandleEventAsync(ProductStockCountChangedEto eventData) + { + var productId = eventData.Id; + //... + } +} +```` + +All the integration and communication are done by the ABP framework when you use the [Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ) package. If you need to publish events out of an entity, just inject the `IDistributedEventBus` and use the `PublishAsync` method. + +See the [Event Bus](../Event-Bus.md) documentation for more information about the distributed event system. + +#### RabbitMQ Configuration + +In this solution, [RabbitMQ](https://www.rabbitmq.com/) is used for messaging & distributed events. + +[Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ) package is required to integrate to the RabbitMQ for distributed event system. Then you need to add dependency to the `AbpEventBusRabbitMqModule` for your module. For example, `ProductServiceHostModule` declares this dependency. + +`AbpEventBusRabbitMqModule` gets configuration from the `appsettings.json` by default. For example, the Product Service has such a configuration: + +````json +"RabbitMQ": { + "Connections": { + "Default": { + "HostName": "localhost" + } + }, + "EventBus": { + "ClientName": "MsDemo_ProductService", + "ExchangeName": "MsDemo" + } +} +```` + +### Caching and Redis + +A distributed system obviously needs to a distributed and shared cache, instead of isolated in-memory caches for each service. + +[Redis](https://redis.io/) is used as a distributed cache in this solution. The solution uses Microsoft's standard [Microsoft.Extensions.Caching.Redis](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Redis) package for integration. All applications and services uses Redis cache when you use and configure this package. See [Microsoft's documentation](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed) for more. + +The solution also uses the [Microsoft.AspNetCore.DataProtection.StackExchangeRedis](https://www.nuget.org/packages/Microsoft.AspNetCore.DataProtection.StackExchangeRedis) package to share data protection keys between applications and services over Redis cache. + +### Logging, Serilog, Elasticsearch and Kibana + +This solution uses [Serilog](https://serilog.net/) as a logging library. It is a widely used library which has many data source integrations including [Elasticsearch](https://www.elastic.co/products/elasticsearch). + +Logging configurations are done in `Program.cs` files using a code block similar to the given below: + +````csharp +Log.Logger = new LoggerConfiguration() + .MinimumLevel.Debug() + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .Enrich.WithProperty("Application", "ProductService") + .Enrich.FromLogContext() + .WriteTo.File("Logs/logs.txt") + .WriteTo.Elasticsearch( + new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"])) + { + AutoRegisterTemplate = true, + AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6, + IndexFormat = "msdemo-log-{0:yyyy.MM}" + }) + .CreateLogger(); +```` + +This configures multiple log target: File and Elasticsearch. `Application` property is set to `ProductService` for this example. This is a way of distinguishing the logs of multiple services in a single database. You can then query logs by the `Application` name. + +Elasticsearch URL is read from the `appsettings.json` configuration file: + +````json +"ElasticSearch": { + "Url": "http://localhost:9200" +} +```` + +If you use Kibana, which is a Visualization tool that is well integrated to Elasticsearch, you can see some fancy UI about your logs: + +![microservice-sample-kibana-2](../images/microservice-sample-kibana-2.png) + +*Figure - A dashboard that shows log and error counts by service/application.* + +![microservice-sample-kibana-1](../images/microservice-sample-kibana-1.png) + +*Figure - A list of log entries* + +Kibana URL is `http://localhost:5601/` by default. + +### Audit Logging + +ABP provides automatic audit logging which saves every request in detail (who is the current user, what is the browser/client, what actions performed, which entities changed, even which properties of entities has been updated). See the [audit logging document](../Audit-Logging.md) for details. -### 身份认证服务 +All of the services and applications are configured to write audit logs. Audit logs are saved to the MsDemo_Identity SQL database. So, you can query all audit logs of all applications from a single point. -... \ No newline at end of file +An Audit Log record has a `CorrelationId` property that can be used to track a request. When a service calls another service in a single web request, they both save audit logs with the same `CorrelationId`. See the `AbpAuditLogs` table in the database. \ No newline at end of file diff --git a/docs/zh-Hans/images/microservice-sample-authserver-home.png b/docs/zh-Hans/images/microservice-sample-authserver-home.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae62ad6d5e0946480a1eeaa3f3e77eea05fa85f GIT binary patch literal 15896 zcmch;1#BEav@JMh#|$wub8N?K$IQ&k%*@P8F*7qWvmG-tGcz;fPu_c9E3N+DeXCt< zt4EqCbys)wblp1loO8qFWJKX%uweiI0KB-EkOBYzf(QKILxTca*fUiE002UOxDdaR zTjph!=P#vGg5jQ?D&|E}dDcy4<{yGW3gQwr!ucC0n~B8&YGjFHb6u>74pc>RgJiDa z5>(nn#udt9`D((+tJuxjJ-kOQkW7%GA>Lc`zPQJ~Qm);nyr$fz9H-oQ{#u%wgMfqj z)9^mH0HB3Vvecx-merNlPG8=}Xp&7vzbm5tf7T;3uxLc#<=&e?;`9aSseKJ`umDdxscF6Z@2Sd zr)wgn2_mbEXd|%xcEX0k_?t-|J3q4TYVquAkmc{6=@ZXBwkNPE8XZvnbogG7E8ugA zvWYorB()|!{6omZ5d{F4*)|U4qFYpmFBln-R<7fEtiPvXoRPTBT5nl$XfEbtswrQ( zD2jQ{$M4?ffKkLWoAc-~D`FF9S;MJ?k(XOm?|kCBfW^*XjnhZa0Pq!e;93^p3X4q9 zh3gu6)1Np)Q1N%KB*!V{6dM{`IuTyD$fI6+NjCwTvzJ6TsmG$U6qQXf)NJ7;%xhRu zYkdKg-nP`!2+nnx#bag@Xvmj%ZCge2pS|yFb7>efv%$^i3U0&m(kIgaR@Um?N`599 zpSs)a>GfqNX9&-JFA6pw-c>ao**Leq*r>gVHT7;nPVsoos@qW;FH3%RPNynQHp)(4 zi&%GflCABYh}X3BFNNVLB%wA=zE5<;R%KVu@T#U9DyJNFkxitR%xn!DlymW~w+J_S zP|r)ft0kv=2ky>R>b+D1`v@Jp($fL7DnVV}cQBucvlf-VJ~Oe0;!ESQ<9jg!a+GWzGr%RM*&%)VZ3c9Sq~uaY(vUK+dW4Y|?_zf~sz#DC;b z5)MY?G#;9(Lta^7x)|mbot>;EG=6e{>HonjV*~(h5UZX@NbvLzFd3!rNIY5=&*wUm ztt6{=J#s_@KOA*#DRTd+f3|g{fB^ux)aDJrT$YuvLSgZHsA$ZhOWZz>$*(R5T?co` zWRJcjkQujJvr1&{ava0LW~YVK7LnO0j2I;f3-+l1oEIer$QWg(jgKw+ne9pP#o=oN6;M_rMgt(HvjQ9^Xp-eeR2M zey!1an3x3VU_Fy)z!#X2NO-Qg7pJs^^gHTIh+DpVs+*P*`D%&6lnmw>im1PP&mAxhlmc%w7@Lc%y5LPi518Dm_xos`gwz0~ZkB^9<;Uq8AY={&Iv zk%=x?T~n#r$b$g*wPe=kWOUO#tre4dBp09n0A%-2RMn}rGY97<=(+al-IB}$VL&Pc zcJ^~M;*Vi(%(hgv%x+&5&7;;O@36P4I4@bb_$L=FSqk{EZ8p1yD@un# z2$FHxM_LLfah()YeSJ~)va2p&a6Xsly_|RsH!o<9V)Y=Brdy+4qOc}3?>|0%=^U%p zN7L2t5Kqj^7-XkmON_hID2`w<|F&oK-`jZqRWrZQIXP;SSt10-#!+_9!*>B`K0&kN zo=>#CdSfN8pP$ffz*d1o%%P~*OOO3hG~w-55*KF{1G&9N9vyG=qpQMg(!d3UJiBq1Fj*bX3|i+9a;WPF}% z(h{Hq`#Qx5%N6zo>f8lKDP&#*M?Sug2uPKvBW%XInjoHRnCXANI_BNqekdHhqk>jZ zAnJcCOL;nztQa0vrlphr*kzMgcW>5I(O5g>{CXYQ4`0aj_s&Cw&g#|?r<5fVlwkz$ z-3C$|R#VU69iB9VA&EvJ5)jJG#d+`PrF7H%DGB9IHS6S3G#!jS+3Bt2>S4;RW108q z!58bo=S-V!*d#Jg0Oj#az$Et~InF9*xUDd=5ErnA2k`kA2<)zXJ;gO|fTJ`NaP{pP z`M!W_3u~a~eh2KtrelNL|MDC-%a+L`943L6U-H8?;w$=$bA4A>I32lA%{1*Gz^2cs z*XQ+5r<4Yz1OudY(5cRZ1KxgR`S8k(_qzRZtb4FJS)}d`hbW9&8Zoup)b-t!57$Ey z68(8SZuy1uU`n|mCOQ5S9ovE62qv-M>QK^TIht1V>f}C$fCaq`PtwidII)C$KOEm{ zYPIDW<~TgF71NP>!Rw4^AbYd;{(92_7-IAhU|5atZX&PS>qFp8x0Y0UsE$9462A&> zJhw*5XexmHU;je6Fr_>wm7dkhqS}jR;==6)ql{@A+pz!IPg8@GG_!6+IxLua(P!SC z>Kfl7t>V+~Ooezwyk3OCcGfL{-3}L9ZR1o(9kZC&Fy6=4{n0yX0aZU?bTn76&gRzS zwzw#1{!wk>Mp9i>G^AGE?Zk?mGH&ns`mWhx!Z4FvGVCFj>~eR|fG}1r0T=!fUB~WH z*LN|cB(#*t;@|et9Dg72dV%Gb);|RgJ9)V#TQoge^a`e&Nel`n`ZGC$m&~1>@zLtJ z0E)H|g9=LZD>Fo!j9WWl71p*J!=1G!3%w*|_?j#G-kU&JGD8!G$p>n(?Q4P1r)Qv? z%b%;jrF{j{HrbFEaXQt;*1mpCqrzjq;jVaUy)HiBNpIwdH!U*O>`?t7WZKOk$cq zyGZR*POZ4lvv$?pjeYfEG!(4|BR$LX-*KfEnxwg>w%-46dzBk>8o@Z$u}`>5%dtKc z6c^uJ^g1_dGMx>_;=pdBeq&mWwwOSWmQSt97SzkQHC!Wbr+Qzuq+h}OXzb2HvGXV9 z4PNx^u%qoPYgQn2HtxA{ZDl=ewd0|)?Wya(Zk*YEE zqMjQ#p|8XBB)bCxFdsuUXBQI#l;!+y>7W31K!)fJ=yo^ZsgHlSK!SLV)pV^9-wJh)xvxoL zO1$hN;Cd8CPN{}FB?f!T9FH|;ZvaHZdtgdkDwa?cZ8_Y{Lg}9lN=#M7?d|35?Pnxa zSb8Igi~9Q276IHs{b*DL+_%TvCKB~v?;5&;(3S1!bkuRPOl-D{Dc5y`%y?ZFwS4BaSQp`GCapa`<|2jK}4zKWhO1(B$a|j#}OzRpLH(unwm@v z5Z6cRLoqVU307A*8c1YWpVv#bSG7?^+TTB{Ya6dZ4BIU&bPqSjMn+maD_#V>ow?5^ z20u=$m*51!8qzv-oZ^12CFJROyzZU8Skg;ixeJHIJ2WI$*=w1WZ+J4vqLwI<5Ug>_ za^T_k9$(oORpub<2X?kOqGQo%%*>-2N}jw^=*;}WLq@*eVc9>E#w9B$<}8jJL@rSr zxL!><(vj@)V7cGzh^@RP=MQ3+FnIWrHgqJ3L6NrVz`KV0hhA@Gc%=*;Bx_zrJ_3%2O+0$LEw>b4;;?!N8Ru{~gbKxENx2du5!37Rl z$QSH2oDk_H&?%U22XPJ!)Sp*O6&n1DP@Cxg-$smJfAa5Xlj7SQYkQ@K<%*^r#kZ_S z?^~qS#Umqa-p?UOKi-0?Q8s~z$W(aNsDh_`6EI0wr90)q41A!}&FFq`fz~D)RgWPa z*q^36@l1Exlhu93yCxpA59fdxqqeo7AX`jZ4Rg)RV~HhR#vfbQa8G;l&g$AOzIs9^ zUN^mB)31_O&rz%GE`hmLPfWgi%o*15!Mb!jMFd;UaS~x<;1=siLKsdYovYk zwZHr-sO?8~RT-gZ958okcJe&ayij?2e0dq8Dki69aI3D)JGqa%jcsk9;Apwrrf44> zNrOZOWw;*ing@vxOdcJPUpdEOPBMk6W>S(jQMyFi9_wv9lPQfnWLA!d!W9;upQE}! z7_v@Lr@s`wSSr$xaQKd8Jn4SkpThtz3JWGp`7>F65OA6um4P(0!nbaAdR;$|m3&r8 z`7fJl3%`N*eK>I69nY*SR#82mY&$@=JqJP|=i)#h91@-jN#q6(l z@6$sqot7r^tMu<=kvB5ibZC%Rqw<-k6<6R@%PPi$fgCWID(g~ljJs=p%QNjLM8L+% zWHryQ)8}EY&im&O4~lXoDl;J8sUhj^o4X`?5Ax)mH75pB$lzBlmlfx* zm9?El0emyF^EmhzDVc{Xf_5o8J_6J=1o}W(;P0((xD@Kgv$s%xmeIyHB z2Hq4<`O|Ftxyq?W550BF`W#N#{yI#_;9YxNrvmAXmAJh8Y9Q2H|E&sU1dq$@JcJlb zf9+V^`Tl1m`M|L2GG;;m%Jqz0#7$r6tT)w&0xdh3NrEO}PIJG({$qx|XjC7gMFZVe zCd{P0P=(B0&Ao(el-B8H36Jez{5=zPtJywq{ab})XHVzlNg@jdL9p!i6`N}6S?f4c za!O6xEiPeD3xX^J?$#^u*Kp1Ehn^Zk?MOR5Vw&c6Q_G(6{fTeYr1klVp!+#WY-GZ7 zLvEa&=gUJwHJOb~DR_sYDipd6Up>185=$HD{^GOoCqgRBaI|KMgZTvzUUT1ZSyV{l zOgYHB^i(r(az%+PJvQ~0GEefw)0?Scy1EW6zjlR5@9x5W%A}E!-50!G=<#UT$qka4 znNvYCA6%Go#m(5hlqR4pYNPNrHVU5A`K_m}*AF9mE zLCGqnDz}LmzBrs09Eu>#P_*U3kaa~)_8}CO&)a;AfVr$Wo-8F01v@w_Om1kW0Vj@g zEcfta+10uK?#=xq7TkR$FgtXxV&s+m_jlz|dc&miH;sFzVLn5W0ut4XxZktvCZi6p zF|R-Pt-rj~-JZ^CQc;{#tdtBxX^N_fz~yxRs`s9qVvU;T2v0sWAK$jh zIMH%1tU0Flu1ZM14_qWwEOMw4QW=6to4q^=69Hyyb;r%Vv#f@F!-S-%Zk$DCSc{2U zoI6?gt)MMp;SpF^w5c$mQ+_^4!T)93b2qvK1`Ikgi-TpCl)6J%7y7t5}AoXk~UXV%* zhchVoltY&OORB884nu#+;P@g239CZBd7w*9?$@~ zlW@}RDb(i(PV`a9VB}|EmMje4GC~0Cdex5jDx_HK?FU^Jrea%K40ZrtY#3v#9V+F` zHjbG&i*V#{mag8)@g0ZNg}lP#GHH3$Mk301^k3xe_hl4#iR3)X){$Q;OO_lhF5vw$ zSHa`4{$TBPib8eotIg6lhFAVQu>JWo0QN@Tn!N6<0a01%?H&SNo6JE4N1d#J7$99I zhlnj_PCwPUehGUEli|3j3_-}o^av(Z$8ENLMyr;AijwNVvCFuaK(}}2inemEsqb!% zL84D0feRuhj%jPo(a|A%TV}}KyIMV+K=k=mhFAVjmLqB2o?XFp)se7#ky~61z22@jO9zFsX)g%Ut%QEC;l}N} zjYh%m`Q?x>Lj2q32ZLGE>_~vcH{TMK8eH+!Pp_T0V9&6D4bLM>t70+00=g+FTYAYQ zOIlGGReXGx>+6;5I2PDU$(ZN}$ggA7)>)Gt2-l4P+#?>NWJqT+wg#qfRyM>mFu$=e z>7nDz`IdC`ul6YwWn2qb!>NtLxm1v(3yJ{XiV53dB4gL_y$3(EBV)CA9L>Nt+=21a zalk`5oc`K2E8HqM4R|PtpibNTX}a|Y!e_86uC?z8w-nDl8VE(~gv6MP58UbdLhu1%@j5y*-*o$jAce0)L*f4VIv z0fK)DjY>4D<`Xcyj-gG~V}H@y%fQ{Wu^C-N{B}_gOT+6VEq@rFbvzaIHc0nph!g$Tujsf_wgwb-ecmn0y*`~d)|j9A4P%|nL3G{KDn zyED5szupE_#CMTMBnlbEEsr(Jo$v{#zUNZMQua^?@B2;EH2jk^N`XY(+Vin1e~JZ1 zcF~aBBM%;*3;mv%hZ#Sde>XccGR3f7O24d#e7oaIM@P5aCIOzmO``Rz3N7>(@V^x@ z{`-;#@W>!Nr#`KKjN-~orliHmfw$&7f4>JPZ8XTV<}Ao0{`FBg`%2cCAYu~Hw4>Q< zQ5pT;^4n~Ky(vBEZ|$y<6eo!7XWBd^7aWO?1aE^*SoR5@h&jg;KBiE~Is#!%i!(DP zJ*Iz&8;TTJOytWEoj8$7B$;kLyl2KN%uw!c;T5VQZ3o3~E69eJMB5p`J4 zX@tJb5mIvsuE>FwO^>L4TT5q{pl^+01^mNt^FG;cN=L<6s*K%OQnB;pnS`P4XH_=a z;pF&S7-7mHm%L9=+bog09gK?JU&qHI}b%5}(wrftj_UV6q6#GMCXw?t`~Zf6Vv z@VO!l9!{a8JhwVDj~zSY$S*W+W9be%@8qMOMsU=gu)~*MY}iWqx+1s&OH(5S8}DClu7sh8LAo8p%T zm~j$%a@wtnb3zbZ>T9iN+G-P<{9`B$F7Te$+1}X!_l+5PGINR_7Yx3i9EW!rQ{P*! z4Sxkt#>hXD6lqHLQyU+39j<-iQMhC-M7pY4`i3m^CuC#_oR_Fs-zcMnu0idJqPnhp zGQA8TqfS*?<}`4#Cc>#-?Y4A2&7RJ@kWA@-t3q?=v^W)P-{nov1`2T;k$|=)+!QiQ z#CaUaDm#{JDw5{1vONfOwhXWdoXMN8D~o40Utv9rid48vt@H?& zXzgP&FTG>(i?4;lGEQZP;QpLgO(X7D9ai0wJYC#34P>(>s-F~H+uhDrq#=$x%=*<* z6STH5gDNhH%NDsAaS;(%{QK718r^LUk2fx$SJ>K`98+(STnCrwxPIEq+}z6QPqH2K ze&j8YO#<~WOwcY`fIX3ZjSZdMbh7whqrGB3c_>D#R;K+D^f2i_KxfRYs{42rH4i_-z2RADyUT# z>F9KIvm52f^fyINw8V{s-9yb>J|X-g#f*gKoK%}rzHtvoCRLg_mq%sw*IIuo_Q!lr zJW-bD+WDMC1!5f}US8zvC@gLb@U89c!Bcaja5&MRje`}1RKs(>wk5H&lgXf=4~$fQ zhq+3u&STq@`jy=Z-WTJO>itW^s*1`djcPwC9ce-I9qmC&DU|r|Q7aXgaE=Bg5WV&) z?)CA&UxJa~@V49C5CH#8aksqsv2huYeUzWhoLIS?duRXvHy2X_zf&G8njwjRoR;C@ z)WXDl6vq@EH8#^QAd0cUz%valo6DQL_neK)3pA}IBBD-qc1{KIWy3GFMY4vN_LJ}9 zL&%NTrdfZyDStq}f;s>2QKd@Twx))xS>sX^+mBWi)Ez6zG>qLI697kIV1kUta0BHB zi9J9f%ixN_0~GX(3%6STwm-CN^DxhyS(pJPa&=V`1vM4p`@kTZs03B~qr{mr*>M43 z100snV3459%y(%uSsmc1%o-?!Js(+qPgDX?wI}6VKExzp`GCjmFY}IIO9d~&(i*Oe zwnjoS+Lyf|=xIyjf(g)ST;o;c@N=8HpJw~m!A(LJBQ)TJ$=CN&OOIU5pN%pTPSteM z(*jm1q2B{i>qDLn+{Y_NQQ#3tz~Z?!8W4aN`S!VboAlH-%^&qsThyfc6Q$m5;4@56 zE0)DAEuIiuP|XQq^9D68Ihz#bTU%^oOR2psg+(OHIRApwH^(RPunG*B!3dpOlmK^sY}Dz&bZ!{bidqyU07}n`=M17oYjKHDm#pP0!;XxY7&X z;Zb71-EsP2z>jb{y*^S-jj^HGX7C%-!@WC*O-oDCovUzf+EchIzBXftjLR5=&L?`( zrJ+udPO8_-C3wY*lOM>;l(|fZB6T9=pDQmDo!CAxPF4S)6#@Y8=KpyCw&J=c|J>YZ zZE`Rvg>?Ep5K_>TJm{VphqlziW$0$<=;yG^_DPt2$oaKX>>iH^9bGV_fdjxv*a-Hm zu2E^=2xyyHl;Z$?YkTW#HHZxzUAhdCU~mUbT&#r}P^P?k+qD2;MN3*CkNYH_5 zrh_9Z!9S*Mf|Vbyrm*ODHWISkK20wY;~d;NNuLdD+OZW?14&)}Sg0UzJSaCkSQrx7 z@F-TL`l@-27*Ghae{!7CdXod4ns|x^nuxCBxL3; z&;9a%wj$8)yJ(ft z9-C;%%nTUas^3#k4Q$Q6cCR-fa zhNf|U3yI^*Oeu{lt(2uz+ZHr_2B%&~#aO5|sg{O`aGSC;RGbxFZi2E6>|CUNuJx{; zpyK99(vjuC;qP)%u%55mKQBRbKm5XXvfS?QM>;Lf%VRuI8z~r$rP=Pu$tyE2tud`z z(7L(USE8fkio+#>eyG$%F#04Uhk3MaVc~|YSF=B&Z|F+v9ztz10U?!Vc__=41yz+- zP4#8>F>dJ=THpA@)o<%LtMDQIOfRPWYh8zO-mLz);-YDtj=@rC(Y-y$y^(Jqn0bZn zZLztNYV8^PcL>23n16B~Qz&2>QIi}e3(-eB8>!irTGqh&3V`iYrj;9d@_Qmj zI^)|zw+E&@(u}5+U>ItrhbBjrJ5x^UL#{=xY%YoX2b0!TM(wc?g9G66#2>F?QQ!Oi zSeW#QIPYJ7CbPpSh-MrSRbMX7#{K;HkRDd5Fs3qk}r5V_g(haTphvim?~5bXY)}P z-s_Qh8UNVJ&`%+r?HeZ#>Dt?;rYdhQa(2d<+0a@v0pBtv*T*J2jb}nqcK7o!5E6%{ z+9M&!JB@l8%_ShL(g(6uWZ@J8f?9Y`nUc;|PwZlQ2=kX53DGLnj<~#ur>%A7JA>dR zeGebKhX{SPLW{{Z4kl6z=rWr(&p_K!wLo_lf~$;8YPZKRD5ZEbyQh2PKJ;5Z7l`-) zJeRAa7nL|n1YAKos^VJKRQfz2%^fzn^&O)@5b|ZS%StIN{S>&8viLiKQFNY;g95?F zn@z?=TUr@`(sH#4v+AzB=J^agtZOioY|2Xo`|LDVzP}Xku{lOO6?T?9I459=zrLpe z0A4ik4j-=}59QH5Pu^nH(E~y-E)nbeND~^0$mKj0(il%MNlD3nd>Cd)%sQ7TO+1{hzIq%fr+$}! z#;VZ`#bfJVJej@+E}w>xh_}!j1A(l=#9r~4IXCZfC*ev>iTp_7@XGcx(Ba|z(mLSR z(yRWb+n4m+vQcB&_?-wk|5?J+2f7DO5XX^-a;uv7+|%KU?%FS3)W3))NNpk+lzC9oH237RSDJ^vAYXF2tsUbgbEvoH*gr zX?dUkCTo>iSz9CEayFx;@s*sk^~e2PD@t)#%h}nl{>~LNq#p{k1dlT_0P4K794s*z z7=`$JOgyNh)GsY!IG9l3t*ynZCDN?NZjt3@7vjNxYZ(miBG3TT2@1kh7+bNhL8YI2k*xj&O9s5kfW z#7+G2n#!=tD(>IcaH�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 L%Lr8q=mq=_z{tee literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/microservice-sample-authserver-login.png b/docs/zh-Hans/images/microservice-sample-authserver-login.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e8dfaa9f3ce2c3c25a8cca66d669225a49bac6 GIT binary patch literal 12713 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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/microservice-sample-backend-ui.png b/docs/zh-Hans/images/microservice-sample-backend-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..0935a6047a5cdaa09c28db4bd12132a1f00308b3 GIT binary patch literal 45686 zcmce;2T;?`7cYwXQ*6i&6_Bn0=|y@6mC&2gAr$Eyq=gPD(tED~=^YFZdO)T3-U&ev z0)Y?+B|s<-{J%T%=FWZd?z?S8h7>6o;s{$Qci!EuYB={T1=7xS6;<8OcFlDn+yFzKapU((sPNtN9*7+-k#lGyi&h{UahGE$c!dyKQDegrG0= zP)$uDkhVpdPYW96bJ}5q0cK|A!~41q0!s4p6~;FiMwr9&h@-Pz5)XebnIc^#{}A_p z$3c0bZBAY4$m)4IP3Vu@iSNY4u^X<0g%E>`e&1Y0G4gcr~KNV+I>)dVU-LYE^ z6SL9HMLrDhagAFoIz~fV#-(;MQ%0ubb~XsqXSOGIyoJF0L`0rYI5xV?dH09@fZY*` zAl1ya?bD(3+P*68;Wy?C+Rh*yT~7CG@lF%2xlmGL2hk;r)jXe{VH`wZWz(d=FGt$E z7dSF~%c@NG%)M6eDgGZf5RG!;S@{uH#)3X5{pqViP0f#o_&n=ar_VPobiGeXcln7Q z(YM{kj21D7c-5^CZ#k{Xd3?7=luwPdb1!~rrcr~BSU}XQ7Z>v*2R^}GpcxxGTnlAoE2=2E4t{Y&Z7+QCXJCl{tVyvB*wV7Q+dM zBDw{ctA6|$UF%UG&tYBbbT7nOH0T;)%J|Ba*o`-&G#vYzJMK(8q(b z-~nOBbHWFOk2VUsKaIAgxqRw9wFml(Y>h@o)PUQk{(3?S?{-Jj(bbib;pLWCQHBb` z7F%TYa)il0553s{NV(GOA18<6V=!FuJJv8?4h?N&FOb`m|pU}Fo7iL9_VHn(modd zm{%;1N{_+0*uiFwCC556fizSV$jFjxDdy3)OgkIurGSK1oZg~{x-(vlKkLtGk{HNR z;20?lpFzIA&s}V+pe-uC01~P9UG9i}(>~~T&@!80i6vmGok>0>oDJ6XK9!-Q6o1fD zPa05Dwi+Qy>Q7@5%lOVQcA(y#Ny9KM^Kl{@IHtayo2~_)7zcaIY#DNpblL-SxUmX5(&e<`JhgQqe&A?jV3-%4DC0&mb2K3hauC>$k6o>D z^K`zKZ1e%S^m#{!Lhg=6*^r`G%c^T7-*iCGoqv1;goXLy##dSg_KLxGy&YuyC31`?)fLv zRb=4150UHFTr;TXix7wTqS7PaXfYqK@5C(K)=1;SorR+9?@z6I=$8JaEvyuYnnFfu zDo<-)_A3@_i?x7>)jEv7r1q1O$!O2ba9GN(=NO6JxOKigs1*zq*Kv+c&cKFMu}X{o zw%Fb2$7}tWXYo5B7&|hVp3v;=AN9xDM3a!)t;C*z$7-eIs}pt%wVE|q2s#ihHTv-l z;a4S*#lhU?y(eaYGj=?z_TCT5aTBVEWKip^&k++t_Pu{{>2I?HESkLf<}9zv@g(_; zt&4GgsSzl~S}Qxw4!ob>`nF7Jig|n39h}z-lZ}~RV)xLU9m4wFe$TNsJj>Fqq zHn5HTg{bewm6#z_tviLyZ&gpbBtbGy287>TxGu z4X8^u*ekCo_m^#pwK^+@;@J1cxwnxTCojs54Y6z+($7n_zw%5Mgg7tw0E}2p%}peU zrTIVw!!N!?yEWe=qK?uYv6l9B`BW|A#?Qz$X4MmXaolfje^}MP<=g&!IXSm&c=}39 z91SL`ssk!7PFYgF4u41NpSH^6FXc?Zf};)UHh)XQap;8om_%uIkeOZw1$dgKbp4t? zj}}gORv3``-eMp^rndQ^2b#}5>U5Ljl*_}{Ton}O%N-T0_& zVkyuP!+1Zp&MCW^Q-2gW_Fd#~S$N;1YPPO<=vIz|g~oeeDow-XR$$=qYUv{GHhpb? zvDnZ|?o0*CR7?9*L`9na<^A}j94Ece5$>(gFN!=E_^A*A6+l1}v1q&W$5)%=m_Q$x zP3&&n7RS^bs1 zYY0N=NP%U;f4fit66l`TIjk;p{bc*02Da9sc!+ZoU>mwmsx841wHQLm%K>+n0?be5 z7N*J!EXhPd3M`fLlS;yDAf>gj#pW%a8Sm>j-sN!iYWN+rAjs3(=>FTRYPh#ZR#_OI z-9h~4oPt(U-<&^EZ57Ku5E&~1dR`P$*}4rnqBBlwM4mrxfx7`!Q9^W7x`(k>G)c(Qv_+szY8L66wM2A(t^)+sV$)OKxs%<6n_K7b}99FqNz4a%O(nvA)-gw+2_83 z9OP_e^Ul?#iKpHf6qd%#|E8Do*SPGv+if-Tu!^zv;*o9;~mt+0bVx#IP9a$);j&?s&1+=%E$Y%b!?|dKJDi7Vh*Bj zKL<~dEKmIScxY#v`Cp6-w%|X}`>zM=V<#iF91oXcQ@A%KB&0?CP)HPi=X7--vcZIx zlf17|Cp>q+JZF$M{DCng`x1f}>?FOF7?=)m6l^k*+iiwXtsDE_@z}(l$zzSuj$&|H z`BsSb)9xvzvz%z+fsC==zhxPiA7$$z!{6GYx@pv+G?1gLrY4w3I)Sm;i6qfsnzoAO zqq`XsBLnYhVlVY)dOQBezM$;(KJ@{6bt+0#oNg^%6>59JW}v7^cObkEgE&$rOT8EDK=ZZE;%q~io@P2 zt`66f8c?eAxCvzJ&AX9m`9v~V#uhR;ap~L`n)~N#fY81^e78dKl2D7)x~SVOEuAtU z$0Km7j29CF-7w6*@v4UioxywL`UN zoa_u}FUGQPovZ-S1rrl~ClqZUOnt@$x6r)h^ivhOF<%XVm>Mr;YcH7hGY0p2jDG#e zRbCXvhZXu(>0digJY6aME?~}o(0b$R&z&}ZjJhuPR>pi<=fys1dZR{c_z)seU#S{d zbrkw#Vm~jIA?Ap7a(qE2GvN3&M6=$`ES4_nka}g!yjWGzt8qn)8_)!id4K|QYw)fp zPc1E|6)MM;O|xl2U`=3bnWMD_08rc16lm7y&!t(?VYheq`!9(O)hAnR9!tJvG%^ zvAYzu6{B;IO~*aJggJ#t*Ym3URxNe;HIpxi2|d7Mlmi!}a`kNf~qOhY8oKA2N31qrw zYOWe$$SVF@+3gAG&b-DL%!|owa+1DEt(}z-ic#l=g0zHff=piSV$j9SKvjZ*XUO_$_*IoBrJt z@Xig_(}J+Do^SL!>%n{C0o5WjFI!Q^W1o#7U%<|#XZ((iFIlFmxnj@d$K};F*VZSQ z6}YpLCi#gq3(GaXm49Ae`F#uKgdX)=xQY~C-K&shdYT}0A+x+NQpN^!`2j;Rs3e5RNtorFe+LEa2iMcv= z#1k_8r0+H;+RGzz|Fr_M$1a|!Yq3L|96XUD7tR=EqaeAFI7f~o<9Cq(POa&ktcSj8 z`C$sUJdAan*~WFQqAZw^VRMD^!IZPHxu+z!71SuuC))JdAJ>M^?7E})B^u$Ie8=He(?ak>j%)U=nbp2I(F z-+f&X)(E53y37qg%M%FYg-li`Uz#dspKLnH31H`V|5~%Lc9BDg_30Q=XL7y>+>wz; z1+a^)>L{xoHJsIf2hVH&b^(}~dTa8NBkpQ{cp#q4y{ht2WopQ*xf22P5#HCY!`En% z7iLSogQ-xGr@w!mG6X-g>yMbDGSZg^1AVf?;!iVHHLBNF(kK0(9}lXZiIk%^Y^&K- zq-csX161G4pVX3<3tCSI0utQV3TjOIpy{{s`0RJyy}#%kcJvYEM*o^{l~ox$pg(+` zKv(Gbv1Yi?{=kzHj5K-SBb;w#(%(VxB`tc(7$D`HQ!GN>)9{Sey>R8wxAlA6OVLppjw6yqOIHdkU%_@P?^SeRZge*3u z)v&Avzwun7`pLz-7Q~M>%H5VlXi6nY_^sQ)+vefUxpv=^{WvYUg_g8UJ^<;|SV5ZP z!Vwzcq`xX45_e7-Z3;wQPYwuB1cNmBim%LR$4|tyQ(nTlarmP?yBiA z4jOrbQq@nj=@wns$Z7kIu}<3e`l8-i$?OW^zEwDxXYoa3@r#YOl8Gf=p1S6i3_1+d zqqk6I%=#|G`3F+6x#3NDHSW`yB(UcvlfU~{bHxMMKrHO$wLSsGWyPlIxc!W-^T*WpV0bNgnq>hFVK4IH!-NUIg zOVeHNn0_x#+pC4xuSwaQ9UB|nG{QJ!WpS#iaH(!J1kd}4HyMQ4JW&gogbDreGfK$>|M&Gxf$P>qRM6a(ColIX@Gt6~~d#gEIgb2fuhcj--^% zU;OroNP4Ee-m~(D(NWrf6H9x;%uH&5A5gBzt0{q44P#wbS)jJmHC)$}sqj`(?byDY0D-@6UNu#`5rmLz5expOI7}9$b5!=L;BIiJ za2e$6i&&j|-7DdSS3(uw=H!8ailgv>F^c5CNHRtMfZc5bjPQeV4h>eQ*k@s5)~z&> z^!7KB`;*HUIH$S+-E9-}_{uqMx6u9xZCvfaaGr!?c-ThWl+@S4HHKgAWE?PP7!-M{ z_S{Z;Q_s6u=h86J!afo>spF)58y(wtm&o%5%p6IKilJIYf51A~m+`^ITjKDr2C^aO zC^bHbV&+0QC*J)nwt2-hR|k0ikXdw;A~m8!wdyF^XTB@&ATVlRENn7L^w1^I1v=>A zm)uOKl^m1o@zs^^&0ozlzd4oQ@8u5}`OVs3YJZ#v@oB8jM6+OlVG3AYM@#{ekbB`p zTE|i1O*+}m??ZL|FDC3}OpUCiD|9q3d(v#&G^>qD=oc$EfxtwcsRez>?!ePAbGRgD zfA+;Y!#L2pIP%1A_871^#O!F@j%WO}Jlyakkoy6sz5$_1=osW)seY1&=Ll-#>D6 zRfbKuJRtO5(PEKOeK9K4-XH}iGs^YnnzD=j zNq0=8!NSaYjnAqx?^oyN%9S1n&Sfkn%^ob?%%pg;Gwt(INvZ0jymZ5LyQ#A^L%CYY zeV;ml-yHD7PIr#A_R9^T42cnzb|ayo8I@EBZBCMxt26Lzvu<^|B;ru%DJ5I1MYFxp z$hk0EWCJkDOYDc|v0;y8j)zx8dAeBH+L>02^W;6@WrO=IFP|(RTV*Ku{90z~onBJoDTH((H&J)IJnT0= z7&?ARDQi(KrZ^0MvzG*gdY4{oyxD6;7HfCe8Eq!ZiPU?`z67Ah2Rn$-k`%{P@#S2P z#qD*iML`%2j^zBN@QrbeCk4hVepF913H?hJWP5dEzQ$(8@595A{Xd1_W{z;pAOb7mU|Yc+hj zxwt{9wCyT7rdkxjxk4cVt?cd1b*zwmQg2&$!OKNcTTEgiwS2)FWOqSxn3FH6fx1OQ z=XYmjNe}s27#7C7sRul);lh?1)d$8!8ZZg-ZaZK+?yD6UQjn!i%RI%tJjxvFn0P0^ z(w=oX9h)5fzH<&2k`wRsM=L?6^B3HW&^&$QwEBTHuTQbU-ZC+c%wNSktEmahAb z9YCU0c%Hh&(nAjMMr(+654WI|sN;|EK9F6@-xEK6^)>J*md&4vZv=Not=^j}WDf<) zv?jGrwY23Ii+eNaB%K4U!JsYJx5e4_+m{S*p-}Sag+V z0YJk|scXJAbxEys`xNFTG|llir}PO8UTSGZI^$hm`d1amtk=PA(;U0%;7$h0^CnSM zQFKsr@7ggu*`;fBbIE5ys6vWL7eIe*(pHULF-G`Y1icX!9O;HEi(SU0Nc%EwM2}IR zaV(C8$|tvI7E}*uEV0fn=j4T)M?s(qFFDoOlxBw8Q168kZ$z`+Ouz?ox66Cxlj3En z_&j>yQV2Xuh`p}+pWONz`8}nV`nr|dC2XI;fcX-c8D7ZdPi@n_b7C<%6!C1PS# zEUjD?2+}(*b=Zk@*J^I#7igT$iYO;F%$it2HsLF%(AM^Y!TI$3FM8FO#PjA~IGUL~ z0v0v>BU(ozICP=mF84WY-Wz69H8ez)*xw?c31*1#Y#WjM`0MG6@?Ln87+G>MBtOXe zsBOw8wy3fBYsHy{r*DIkj4u<#d?w2IzLZ9JZ(+q34bm10$va0XtnROPX20(@hJ|r+ zN^}K&%8xC7Z|b@+RrI6j23e^n-F7BHmDY&@bYyei^NG>tFmHd8oPRx=Mr(sXv5GQ= zPx|Slmp{DId!DTB8NTRQh4>mGT`$NKN*m=yyFvEKHbdFZ&^1O4XlaYJu+H|_ZGarY ze^>9|^EO+)+vnhqKhu9sENV)|w4_5qTk?a;o(Iez*GRoedhYR9k1%<-9=UG`x@6hA zD}Cg1VWLC8IjKn50`?vt#o|>5y*Iz7F4d{1b~$SvoDAhJ~d^ z*9Q43PL5(47Z{fy`b-G}|s<4s3U^r>4sqRK7ZjPg}Qwd$MZFwGNC`s(g~!2;M} z8l-ocE)h52>&|Dkz1fW6C+k%ZUk|5j`b;*#Vy5;1LtXX!u&@3wE)5Q_Qp!LS0dkL*jY0|5~M?`M8iVFK|$qGdI1`vLwIn$Y)?xn8Vb5?`pXkv+7=Edx@CrE%P3R(G)Tg`r7#*XpN!EGcL?|S;%BD9 z$CO}<2qdMt=IG$?YU{Sio>rPRIzyk!brUITRzEuEge%U)h|_e3Iz*Hmu>hP13=8Tn zQG&Iu`wy-*2u&_v%#5`!a|94JLWXiFc_=eQe6Dv;@3`t@pG4_)WVKT@d>>J>_wHZ~ z085Mw{O~F8Q*~ygOTfVtOKaH+F#h6!epiuNz>NT|LFJ|qa-to(QigV@jk-#_>hh0L z&2IIL4|Ujl(S`CM5qcatNmnOZ!Eri|Fw2(6Ok(%4he8@A&=g;k)#{(&vFVXB-rO|s zg~65)rSs5h19aXc(|)=YO+Wo|EKn`;Ed64%t)_U&dfOX5J%OH@NOki5Wuk3nlLp0X zvN>xXj)}I_;8OdHLz?8J=#E>>VoiEHb-AdvS=m~w)V(enlcGr-xF{dp0fDKOnNFJ0 z*{IA=7WS5936F>7OtQ029H)}*S+@M!6j*IJ(>AOT=O!vB;{eG3Wl$-GuP;XEtLqGz zbJPYrN?+%QAMhQiO8Zb!C8>eLFR52QayB&(y3fxcsku$-$fX)Rd^vtNh6U21&c2`B zlh!0N3a~Oz$_)>KBnQ9gK9ZS}Iju{<@vUW<7`8d(73Xf?_$RoxD)@wAea;ACnJ-p& z&k4@-BsIKG$JS6*MFmNE;tK|#5|YB_0b7B^ZFu#mVEwtDrEM>Q;WD>T7ZY+m%9AN3 zU!2!Ib$92XrH-KBY1^Ja1K$d0=1s#y{5Psw2xas7%EdW%=Ne)nqM3yWR=`3^NKwSm zVv6ix_8U1u&(Z?}8JUg@^XCxyZL||>!jlX9)DD^C#a7=xrH4Pd$4hjJrOpw*>j38B z&OGuQ+AdaRv(DA36Y5dgmOO3zwnwqV6A_c(?4_6#x#od;EYqzAp90J(gfY@sm2})M ztbCqkwQNUH=UTA7~_&jZq!hNm|lZ=xu78sjvcTh((fsaZ7_$ULwf@vE)sdCL@d zwA~_ZR$DhT=wOsp>2ad#9S2(MXJM8&Tq^qhb9Y*lQ1` zuHMi#_-0i8Y`P9{@UX_WFJwQ3Q`+~r|j4_nmca7LoJQohsIqk|9)ov z)x7@|`uQlqbt9FF1^XqI;R>lz4H8yFXp0O{?G#gB(jmIO1&kj--iI{vMGE%otDCH; z>X;_}C;8Tw#J&PNgKb#}+RyW9T-`mOwXeAQL<7S*!|h*O=j3M+sm9zlqAK79nW=WQ0K9|L$7J82%$lgEhmid8 z{Nnt~&tXXvlr|b8R~VLKLpgKdhb1y{K2@;|mC7{Mp10yPjNV_Y9k0scgS+=bZ(Jd* zs(#AkHxJcTA9y4sG}1k25Im^=blOt4kAE4B2+1rIg`ba1L?iBg%U*da)EO)QzM|*{ ziB03^ECE?=vgKrX9iY%qWPx}uWvtf!g15wnNCvYF)D4oMg~^3YZvw`D7LG_8&lD8> z?PcCM8qB`Ny%9As3L2{ag^n%9$p0ULn*FztYLnaj$sEy$JJ(dbej@uHqW;J6Z2#>= z{!gLl{`*!hrLIE%`t_@#qGEh}JTEUVWa00byv|W7Da< ztn0@?V+mHIbGovH%0S? zLgv31$dBqY^}oE-IX#~X)g)*rjtTe%M2_WHKWrFgwcB3T>gcT&EkOu%jFSd-LZA=FKYACmPgNjfSNxr|8H8hgBvXoZCOWz zvK*kN``Z0kF1h^)(jxf4pXpOdHml&vUEHmpQ?L#4sxQ`wk>1yHh)NaqxVWAEs^z?( zT0Qb;@l=@Q5Hs4Q89H-WHTxr75GyTIX2Nq>lS-N)M98H6%f?UQvj|%1MBz3*_x>;1 zJ&9fO)#^Ob*7ki;Zp&EyaP60MEN%V=Ka1OD$@M>s=b4YF8K)%pm`%0QQ=g6({h6P# zboB9`ZrK_}k%vDe-vR;?gokMMM$eGyOc5ThtFv#Yr6kZnoii`~YVz`Mk=^zkfoGVa z*d;`|<)Y8gN+FNC5D%y*d>+O)U6TjI6$zvKy_+YUPk-?kZ(yq^$i})c#>eCK(vFu{ zc^Y3XTE}t|&b@k}rSWOW{94{<{x-jNbi_Vik^@ucs5b+^+$=-)BvcYA*Rd=E^FOJH5mpE(_Dl^}zDuNyV7Spxqe z*vk)#!}ezil>;A0wODj^ z>5DoRSL}+nX5JELf0Gqu-~RM!&Bjnm#iV2j5giJ@7bxl$uEu8ZqGG7gz;ri&jb+5J z!VPw$H_JwL@8R7tn35xnh}q6BX>f&4WpSZ}^Z8kE5C9Nh%oQy=u9j0CI8*o-=C~YY zEd_#kt_}EezO*Ok4v;RoCtsfzqVlzI)W0rq9_G|7FB?a86|T&px4%)8Y|ME*dYP*^R|_NVs6tAnsI1s7 zNPcZ0REL~-29j_4T%Kx!2&Z4{?6>G)dZy=CoNmmqN0K_G8aigpth^|GeVX37E9?FI zraECTZ}K6XX13P;nP z*6q!5&eK$?lU1^AIR>=)Ox&cy&$N@NWP~dh849JVZE@X*P+$SXWKQ&hxX)=&6(GDF zE`m+1^;xS+FP?5a#Nmsp=e~`qa*%2ve-uG-0gwM(4h(9!hPMm2I6742e+TWCS8=Bh zUnVdydZXX$X>%XuG~u*;cSg%PR0E|m|zjjmrDGZB$xTOIr zsB8iPl@~qgn)@TH*JM4z!{bKq1Ei?JUX3$$9m(A|hb^v@CfsVk$yuXCT3=-BByFCk zcSu@j#E_qD{YHoo(qfUF00*Db`GGwtjI+8L)f&4_n+ZEUXj5li z!bb<$Z#}9CE(WafU+tja(2c)pE;|Xr0N+Q;GYhFrJ8_*)g`1+D@C(Rx2e=t$jMbQ4 zA;O7>K6hnomWQo*Da^zn0_L18GHZ z7A{?d&tYMM3mhz{{>~SCt1V^sweInGU6MF9hc~%hVS0fW@wLFri?iK5UOKpgN`!zd zTc2%L_akEny_fe%hUz69>b+x|<|QGAe(GlrFf;2h)EO1tX%-63Uk|8VFShw&4u@Fa_%?{%A$g=SW>B!3b%*P z_EvPu10f4<{D)Gn)x)#sY-NkJf&>M+PPiHH{ZGwCd_ItkXDl)xB$5x)OusI@*CJ z3@l{vUpiddv~C(CSNklg)@WFIG&hPU>6@%-?f~>_n0|}R8@@EEQSO?SrRS?$thb1` z0szym0BQovz0Ei|S{Y?j94#x1Zx;_Qj)F6@#Y>8zQQiw=Zql^xV>7>i9{H>zgR+~f zcu~U>NMo^cOnH(GesJF0V`{>6bn$l3&TdQM_4Qzj&my<3c9PJPNxNfsI6;c+HG?NB zmL8Ts_2_5W_Es&HZsBsU2WDwuVT~DKX}t-zYYMu{l`JcIPdVojU#N@q>%|`mx#k4X zlEgb3t{pnz8l!3Z655Uu+@TdTxKqo%_Foo?zWRG1eo26VAj_ZWxb>5?@Gyy!8VUU^ zSxMlu?%Cxcf{$yPj`DB0h(N{{+IvG|1kvjG`MQ7Z!9R<|_R@T=DJXQna`@X-52wif z)~F4teI0WJh$g*YHXSV}fhYy;JpDAM`Oj&=|o7 zPyh7p53G4JrVDFI?WdT8Diu2>=riS|B%Sl|Y@LGlA9=_}+g{hneAH!6dGRxkH_;Om zaUof$%pIQA%iob~lJ>mVtuQ(B0G67F8c02lXD>R!g=ao3U@cN5>*IW??Ut@BdQuiI zQGRLjh!I+8sLlC+RIw}!mK@eQgDQM&v2DYf?0Zu(`dT-sO@12d&#EnfpOBSiHCbT| z=9XWY`zY7MIz*%xk|~2W*O;w^dpm2_EK`_!pGj{Tu`}qXXg5o}tvM^mgaWfFo5=l5 zWEBGgPflM_J!9^(qx!=l=MAtTF9#{kS}3-#US5gifdfxWVa+mRluhVu3eZS;N$gxz;~9|rdqk1a94_0% zcf@gG)~w=|*kc3)3fy*mq0`p(PP>2;U{KKOn{0kJR^eD-(~%VvR9)Y6*xuV3`sdQ1 zKL`%g<&-BK`1H8XvqTTVWZE>|0CRu!lr26<XHX3Ru1S%9r~G-VMRe}(aXf6>-|36MUcqobo8zhzv9HbjR7 zI_1taAtCpp+uGVlwEpkt%*@QpspgK8`t9o>|J$p{{`=zJ|2lH||EOgvxQZmMsc(3# zsA#KU5W-yj?c2MBS;rerU!n2w!A+%+`IXT4>ocML8wu`sy?j|nM!8ChaoAq0P*I(X zM$j(HJte2KM*WdBjM}%~94l~T{2S$Ywkr48f`w8ZfrX+G|1Nh^(NHBrIuuLOvz^qU z5n1d}*9ZE8PCZfg!@^=26m(BDgG@cTm+fv z2Ao=coeR6XI5`wat$CS9-SCDeL#X>&NftqBSrXjijta77|9mR{t2c`vLqj83wVeBG ztp>RT2&9yFsassTI?d%Lr^I#cB}hSo1`W*_rZ&;X9lbo!jbtgANz=`T@2&#Stn)cvCBl)NJ}W zIK*>^yO(jsrMX5F{dGa}O2Bux5cC1y&J5v{VJe@^rpq?b+R#wN%EyXZIaGvhlND+I z9m1RX1Q)Nl)Ep^~S33je3=ef8uRh4^A1pf8-emB?VV;BfM7~@6Za$e%o?MWovjyqP z{6eR;?dBY=UKD1p!B{GNO()A2aI`lW(g*=@l?v;nQ=w04IR>_ddD81~t;i?Nt&-Y& zq@1U?YMz{c9#ewn#3sq@45DkX`yttFxn0~&BN*s<(XUQVK!K2BBkf1qPtP~fnl7X- zFUsA2^w3bMat=5o%7NW{KCG-*a#)cB{89#X7GcjkcvSW|eESNFnM;F~5XZW^#EdLD zI<94n$n}OhUOH#bPCEAY8`e&SPCO3x=>`T=vIIcYieoQ$-BO+W+7bn+*dPZr4bd71uKc7yQkF>6n7cuj0odnR)W$khB8#QQP!0znm8#i5@r4Jc< z`1y7>NRN7^-qe8gxXbd76xXxP@EV2%X`GL&*;6u?&Dp|21;aCMIEfd2d#M>+{Jnje zj?E7Lt2j9vTE7%K%%&U#0C3|;H(n%E_BA!Z|M_S?dTruAI`i#4d*wU!$(FL=5?h#> z+Ag`d_XWn0W5bmYm%@~Aw#u2qVBhxRxsXZ$JS=S8tT#n9kfHhGj+WOKxx_2*nyr4N zjk5YViAb3 zO7bx253KzxT?@LIYMR*^b}+cLzciSa6uXk8;R>9w!szF+L9cM8f>>XUZ&i z2WjMQ>GJh@%1bA>q2*>QkCf%^#y1M96G~yuC9RDeu6w!*dChoblR-&7k1?8{P;7=E z%;W)opSnohrdIh0a-^y!t?NoFqkX{gk-EAS0SRO=ug(A7LKZ0lJUV`%B4v#jQ7KZ43sxBhz!|AXG|lX&)( zZ+Y+HV%~7G@wSqZ5(!DBj*7iO<+aas`V`z`3sy7!+s9Yy$~ibl-9kR~H(B_x$Nu;B zM>bI|F2-^w&CSKegoN?Iimb^fPD=TOZYO2IvTmoVDTqGSJ|rQTC%{^hvM4BApalhW z(9BzlcV%R5X+H6=cNR8h%)cJ}A7?{yHC6(V1oXK|Ig_)h*Bkk?(6fNJx^ul-dvrHi743D+pdXUK|NCituJMe3QeL&b_^1NHqZcl%;c&;BJ8xdzRg%EAzERaNCfd-TN`x+E;y9iC?PeQ%zdTX>vUbZI z=jb?AdF8f0`5K#c_FEUV)$A?)4pvt=`{1czE==60tH|to`CqUA$u^IF#R3cLYVuWOGC^Y|t1h?jo+UECFjZR!==58x5uV2_v-Pn#(Jg=VqwY@-}yX%3i={ z@ua``a2qWOBa`F(-3O1aoGY1jIZMFOKG3}3ZX*lTyqD(=mP>Rj7cev^A$GK9vrTcM zghfWv`qFq9&{xbTtM#Z2K}X#p+d%uDi01$CUj)qkUpk)8j6M&{0iRo4Je$6{T@fut z6;xuQ?%S+lX9&=>wf3;k}A2l8J7gAeHyuNjp;Ab({ zguWbXzLMC9+KVP!5dZcAslLVsh{9Z6*S=$1`_Bt0qor9Nj_!DdrPkB8pB3JpwoUy! z<9mIpKwjF7j++KBf8SOASP}M;b7|H%Go09l3NBh_fvh&w^CnMFG z?JqPh4_ANc1+(m3Wdau=xxCxe(JUN+y>l=({9&P-V|P;=vfaxT-8)>ZW0a4l2`#4k)A-P6?HR%$Dj>kSJMXH?ho52YQFc4#&lzY@gXncr?t_s) zsUsoB0r0MP<}YNED$T7OPR0x0^(~jYA(4{>dv$mVi*muM?FHu(E_wYjETo;3-jY+gbUi%}J`^DUWzRoV3pA}c*!@h?S zeZzdf&K1Fhi2fLhxHCy&{q$!5sa~RUb7>LtJD~dQ4Z0NCh5}9h+MT?fD56KFiY?Pm zXRA3`P8LI`cId8bYG$sonu19-mx>g{ z_Ue3TVUs{Y+fP*caIDNr;4};nR52no4E-^d29 ziKB5{#SM)@F+<7jbC)G$nI2rO;j#9`U{$U{ZBLyv2P0hm%`6eJ?KP%(P0j^hPSN;? ziY;;fm&iKzjChnIPJhO8IAQy#D(AK#vtwiL%usnqMvQ49Gpr_&q3!Ka&{qL2&GI`_ z|6C%_Yj>9JwonOmz@t5$Ns89;o7xagoBgC+`hhLWr+2$THuq5qr2 zMe+H_*r|1)m@0lS@+tc;pmHkOVg8|!t7!fwSJ#Bt+aw;}ZJ5|QEj9GenG$YaeU-(* z#%)bqwb8JO^4eD?dfyKQEfIASySLv9uQeFV#lK)VneA7Mur5!Q81Vy5x z;qK3oI!jIS+2am9yV%KLoq=m@0hJ<~n4#}fJJJS9<$J0pN97EyVhQ5nhOLc1mBHM* z?-z^jSMPfFiYfSpzLdXxK#s9g<(wxajZhqtjy*8rMiL3Rvh=4tx#D-&BgS>d5aO-^ zz}CDPL!Yn^_XH`qmz@u{XTSZX0C=^F^Q1Hwvizr7NYnhLFGx6^G`UUNE<|rynH(|SRMp1}4f*(Bl=4cB z)+gu(z8qr$*$CpdIeJ_8XWRK=D z-?wB6jbe!BdMcj<@$qZYZ4W{gGfTz!CAv6f#-_IYj(L&SrNPL2kWPD|RTJE#f7uy2 zMB{aU{p7Fwf3fz~L2)(T+UO7hgkT{A4{pKTU4px7(BKY(4;tJ;aCdiiNN{(z!QI{G zPTu$Y>eQ|JZrxM$o&IBrs@=PLt<}9-o@cE^`i;P6W=wYWa_!wY%f^aAi)7827kRZi zyy(#b?0EW)w2{#k%-ubQ?TZl0Dc=bu#Zzql;?wLB>c8+AVc}ebnlMPZC9U z%9meu*wc`Zj|^+){v;E%?D?_gt@M5`IZx&SI-#6q>MWBvX+4h)jZfesA+fY$W|icF z@;7*4l{A7ZS9?Xe2PAv~Bja0<2H>-(miwO4-2UuuFRUykd;aGZ-9W3}`=vKTCFg;? zAVcr7{kEqhtggp5bpU~lw|9pNZTdM7^#P89RLTkVYD?wQp_3IJEXYCoJgLf5 z2HS2L7uL&1z|3;}37xO_UIW1l41ntHtb;0@)^_ooL!aiNso1$6lB->RKY=DoMKLN} z8|rEl+8rC#_yYI(>B)WTQ~P@yDq*+Bd3~{dF<`CVaCCn!I5HBMa6yPbs4pLk6-2q6 zESNi_@CU(mrNiD$eOVgdyOPw6kO6bisu9lGw;S6VQ|G`v~+ zV`hA|7S&$IYTslN?+CDeb#(DugQ3X;Z%|i4 zc+aiO2qrlbNprr=j~y(Vg~=Bk7Ice@_pL=n>Mm#@{JskCv2Hpq7Q_PaA)UQk1i$B5 zg2`#k8%^c$wXz_$tN<%C7W3Un4BP(@h0h;trHR0kZ(&rH zUjY{}6{`YEPgbMhE;1sr6Tj8Cpgn3zjZ#cvFkOb>?L!Dd7OiUrh)W$$)b{xhihRE3 zW$6hn$2N;-SPM4ZI$P_o=jv%pBpGMzRi)_OJ+Vfn#pF|xQyCvA81#u@-sNkpF}$q7 znM8;sly`Zr;&kI#!T;Hl)1{x>>SE1xePZyl*X8Wwu z8%VKAvkngzP4`W()4jprD=G-6yH*ajhRyzStWo{F{eh?nX|04S?u)zg-PN3^Pp+7m ztqj3LL!MwN?4X4QdFf)d6a7199p@u!%E!Y&K?vY? zFpZbt5^Cm3Lj^#)57b(ZmD#AADe!!)-&J+Co&kiLuv{w+-_|m!MPF;bhQoX0f8q|m zI}I+5zNDk%f4AT8`Rt?&MQH+C0knxIUpP8L;Lx~bmzF;HIxR{?<495JepuU%F7cIW zbma??6&X=rs76jSMFbNw%qFA$N6sOO2hqZDx!WzfzHmE$7N;fki@JfP0+A%(r`sL_ zu}=tnA*F@1l7v1V8sK-14d*m4+-~;`?p}f?P`jdHHtS|zs)Oug@qKih`Rt??6%Q%w z0O$iVP^d>$c(g!%%k1%%1#_TeM+#zk^MZ-p3R!RPN-sMVaJSR}0Ve3%dZTJekce-3 zh8}#%qC$N#%9|uj)iV;-z7Oy4&Zt(FFg}Xv$ly!Do?p(=0-C&EQp~$zfBrEg2}7cw z6apNa(SlQ}t(auRVY}RT-ML<1a_lB6&Ja0sZ2vL|P0F6&TVeN^=+vjzs0LrzgXom?_SlAE*GqKIrX_rbgo;C_FNqlYt5; zTGbQTWt2o7VqmZ`3|p~K8Y}7f$5*&Mu`Rf7dPmX9!yVw^_}sZXuP#HvdE2d;HDGX! zNy3f~_X99HaE5(?Wj0mh?J;Q&z1=8tAo5bucxNY3pIp_MFIHUcT-vtvXFgp-ruM8V z?ZIfySP|Qn+3&7oj}ugAs}IcT)Tr-w;lDO6~c^O~T2e+m(znsi%Bmn()i>r^hG){ORMK$=LS#ku>ce}cs%4JLmo2xv_t+S}M_4OvBmkO>mLxL{2V~3Pz0mNc1Hx zr;^b&Gd(Si9DnfU+nT^RTul+x0f`0Yo%NcY=nAgdU<{0JkOelFebOOO{zPk=l!0n% z0KG%ZFHAc|j{qba$cWd)`Ss?L(58A$UADzzWa(yruNDX+V|_nW-TznLkNua;^qD3Z zorl~|;iHB~F&}O`+hZ4BM$MTT;%6bNpeZ+R&_oB@F2JEAHBaDKm*ulh+)LjtfTTw|il zmq;7<*cAND zS?|T?mtu5b_Vp@1rFiOb@+j~5u-R&D zC|i2u7V7LDlCM9TP@G<;J1JgN`>Vwg^)%~V=Oo93Y7Mx%>^52)3D8)Gg>#&UjdLh4 zX0$2Qcoyn~A%A8v6I5J?Az@gsnhH`u9RKlQA1_r)W{ee&Z(MPbwxl!{P5pjcr86q~ zzOojff!tI$$$NJk$egMF&F|y<=*x)_*3bARCwYU2ed3AzLU~iZKa-s0+t(Hm;bCp0 zkEQCR31O~TvP-}!UFVbczHvqS(*hhW1g3D&O-q7Y0@&lmSWOMu#L0F)kN`s94!v41 zqy7+_asx`k8hkAJ##8%cg#s}>Ij4Y|d9A_XryEN>?8m#O{R+}W*RFuaU`EAz`P#_= z0Rn*r01Y#pI314b66m1*cm-jZ>UM!aP^xy4F}!~<DG6m$o`YZmHsXLY{v%6%*DfSK7O|_nfJiHRFe-867z=n(qF&b{e7XQ*Ht@x?V)hE`@U( z?vyFd6WV;ov$1+g5&&~e_rMeV)9JyomZsp~7IpS+)ACWP@I9g$lim;xVBLGch!7-) z297y&$@k1ho47bG`;7{2iMkY9SaK*7hC(X+Rmrt?OYQg)ST-^uj~wsH`i{9e%^Fh6 zq@nu@tM%>G@xU~1pCs5O-^>DB6qL983)%_m)1TUIRC@ceHvo^-0QuwOlerm1Tlj8M z!6(!@`bz`ek)?fbsb2yQ09YQB-WK3vp#7jGdlSZ6{LgI|3B>$}^{eRJ%n*1z` zm*!M}s#>tnzp{dv%W?}3KbYMAA36fTj;fR%niuoD{YS1G<*@(g^uH~2v118p)|XyL z?wo7m`k&z%yR~ATIJ*RGt$mAjB!`c$ibv%o#w7npF-yy>fVTxvvZ}5SQHE#jW4yd2 zAnc$!s%q|P{=}}DHL?yr{9{PT8)^Beq!cyBhI}r` z!R<4tf2vb_vG5vJFa8=94GsH;mUk4?|21Ygr2YQ~%lyBF0Mvb}&`@uE*b2Eq8sHY_ zv~p?{CYcXspvwA5p_hXYeP>Zf%!cKJko%H zuEeYi9hwg@?_Z#qS)ro7dUmB9GivcUw5J|r&PO2FEizBF`3`cAR}w6@fLyN+bfg%6 z0Eq7^g0d~B`d`~UIVy86C}o=Wp0>ewZ2f}cIXzLPB*zCGemR+GHaIQ9x6gVk^5op4ui1{ z8e3z%lD*7ZK98}y^?sLHbvf5BP3V?ikCgtDt`420)qdf5u|klBDi|lNH?@$({*iyO zfp6jiJGp+!4D68coMPJ1n^82Z4d1(0x3h-_X0Fz)cEL9SodB9_N5VASv*kvW)?GOp z`qT#769KEUlQh0*Q7`zqhT3{-sBU z$EjE+x@O`-i5@TGnLEK#i-L=DQ^1`Y4bCpJF!h;|{8(4X8u9o3Td7AUycqo!J& zx_o#3eC4dYb^sHQw#1IDW{_!9?as6LO@Fbr_$2RzyYX)9aJi!XyNZsEgi?MyXnJMM zrlsrj6T6i67Xm3nH2I3_Pvrw+*=Nt)XqUJ5a?66oucsxjW+<%6!=1Q3cF!-w9%D%- z_x!}2(~I1mw%UTZk>^gexMzWXSYx6}B=j(Hn!7EytWfzBcM^r7YHj5(H`V;k)e2aQ!x3}rt77BbJoHtleG4 z@C@k|=&ifY+RI|nW}WS7$j#eO?%eNy4E)aJfj6Y(D}Pi9hrNq)l(58|zV__Q^W9`J zL2aU@9Jneva~~OT2=y2EhT-i^ z*y?@bN6|Sld)+f6$l8LId0xAFbwy%zJ4UEdp}Z}-g9(Aw7KRKzT2wU#e2J*C=w=6^ zMcC1#lh{DhjLO!d{}H8QJ53vEynisBj2?Nq!H)L<$w9L5YnJ6SxyMVSZ&yQvAneIO zWXMprK$p=J(oG)?$H#fh(H57k9w6gLIzJ_Q1@Z;qqd1vYMnDD6-h87CvOdd&9}|~JT`vN{+F+;- zztO@FK9e=?MCo^WxjcO|@aKoUeHqR@J3V6Qzn`qM#?-zka(WFwv4Yfc2&7-ZXPJNv zSzY)%n&TklPLh6Y&-@9vGBF6_9axY!BxWt1JgyZb&6AEb%@J{|r|%rIXHt4mHfn5o(IDRCC-$bUE0xWN`(qDPUfO?EqPmi%L}P)_S3$X-{=^2T?sHGq?x{c{KCn=2V$f{1s0<`$82ICQ)b zukQxgfo=ztSUMc2E&HC}gmmpJ-R3QXi;)Wl&)NZ{n6BRaf|#lFwIl*<&eep zDhDVZS%Sw^jHP?WA#jepK6Cbi#1gWsnistk7Gq z{8-RP?{`=(foY@4gLx%%(fk}&v0KbKw_fRkl)lBDU`s=1?CcV(Mk!*uu1HfR8^+Z} zdgrOpcE@-RKGRbp_`GAhHZSvw`Hc_?l8iAi_YNvxJB`PYTxQuY}!Uns>dlsly>s6ixJxDVj&j@Q@&^DUS;RsC=g7Tljt7p+3 z2V^}IC3`uK7d37Tbn8hgy1voP>sYIL^jI6af|g~t+&}wg+X=QX`l2BSq&0^r(iFB0nR2w;@h#H` zRP_q{=xeD~8XDW^p`q@E@EPKLzQp}LIX;K8(n(2P4i;d$+8L`;@2yYMgy`PAYaXsq+OM-4_UJhu5n5j7`!D0^IfxuFL!yOUeSNrP3 z4EeZQSDb%zLEPBRC?D+(Z_@4F|P-TMKG$m-XsA+bA) zkPo2iPmN-u(}j~-)v8Jv)T4KA_%@EvSer*Ch6sJu#F8z372Cf1Fna8JcU$wBB`d4i z{cQpcNs2ZjCwS^M?aBrg?cvAQXGS^JLdeS5y}HH!4I;OHpieE5=m z)CMor)yYm*WpC{jm&9jyR7v=%dn*>CCeZ*79)p{^v1^uh=xXtno6qhZp+#zaqgJBP z-7C@P3(s`lft4ZPkp>%b+CeT(*pb6v|Iw~@YXH`)uI0WF3p5m}!|FD3cyvEDa){8a z4h<}#G5faid<4^b6B0YgS68?F?M}177he)kS6_$p2%Xpa81X52)n01}P1rm5*=yai z8b!4HFo}Wk!c^LO1rx(!A>@g?aqq#}_CZ`+ z>6QLnzYKx3-of&CWejG|w_Cnh#YYt^XSJWEJP4uZ_B1w$rM0vmdDty?)*OiLj=Q13 zxIe4O4jOYZ-L|N@IPS@$g@{;HDha9=Gg!V=24@kvtVoRr!=gkI=`0qHqo%agkGb)# zUN5L2$>TUPJ@Zl?8ffqb)Sc8O_AEcy*fB0GrIBUhS0vi8yFS^;|4OKKK)Z}gPH={_ zY+iL;aaOz$530GXbhBsVM%Z<1-nqIzlA3reJ`MID)hJiTgy^ziUtwiq96|NuavG110GU0QC3(mU#sJAE6AAzhXDo>2TnQxzxyVvix>}lf#_U!d zzs|8U?){mQ+faBN#);JC;^n1&tu59-EHW`UI^JFpiEB|iov45_LOlf`XE~1hQheK$ z5*F2Ky-96r-wbhA35qhtjTsQ7QINh%bJx zO*`HN6P{@k-Kwrmy-GCyVB*|ew{7P9v7Ls7$c>bKTdwV8zGc14Gb8pKq^5MqxIYl8 z(?~*jXN*NfnxmXE!)MXvmvS|si#;5iO=kFQ%k$SIkxweH{fqV@xnZCwTZ$nrW^}csx-N@75xsaxtP7cT2PPzB7%~#H1m76T*Zfaxe_?~ zeo+cxj^N|mR6kj7b3{GE(>37%OI3IbWk!F6K4_icF!J0b-g6@45Pn?!m5MeiBJ2Lqg$%^}tQ8QtgQU^3Kkh$8louKmU^vxeS0DnL-5Vfi*!tL2&c2~;IQS1{ zp)eWenC(>;@Nw-D&Gr{s_K#(7y|!7qY=DrYv_>j&ka0?sF3Z)!NS5)R&Ws;fLGi=) zHzyeF@WVk8Wh;X|t?KRI*OiYC{cY)om{zI4>&GqZ`ucu>qk2ZMUa_4F73{nRNCUTH zZv@j#7^RDGfIp3movYUEuKU%-(fpj|wa)pU2{TZDz=4ZfB-Kq(Q|!glU09=4>MKAtRzjMn|ZGqpAuP} zb@rYdO%19byBf{^$dk$YfL-|b9?oL&w;a%M&T%^;)|p{QGjjPDxW!lJ3<( zRqgu?LWcI$>fUSEP)GImBM`Ay!$sp4rLBT8yKGHSK1We))^Fyc8Jy{+$3L|;=myZC^0U6juxU)=Wd6IXJW{(`0xp3%$qbV5d%KENjwcRU7= zLN4iE;O4ybeVD*-d)-z*+6pm9xh>H~B{W1;KG!jKjBF1`SbWF@MSH?zp_khfi88@5 z0HAd~cRpP~uVvf#N|iLnD0&oHU%J3(mapEK-(sZO0{40bK+ODgHv7Xr2py(OK97Z0 zQc!S76g28_AIbUU=B(nMzona|*gv5D3*&)4{trPu8g8jv?ZL%3qik7RHHm*Ax?Z8d z!Mf`@C?fXbW4=f4T?s0*CumWv+$N7~)%{U|n!Wu+1)jF${O%u^G3R3(TZ)>e=hzl_ zDSoY5ZzmD@RE-TxJBk0_2pJS``b1G{X}2ZOt_=M2FStk{G3fpupz&+e|1Jz! zl2!tHUsZ^!^&buPJ9Ep+%c0<7hhN@gRa8caDDgiKA5H!OU;IBh{x89v|Ba&36dnS? zre^#1(Zil_-CpEpv%P9(hH?@(8m|5H^wfg?MGv7Shr;VO%yfw)%;~sW*zQlLclzu7 zYFr@w{~CBDW<|$eeVH7aFP>@$O8(c&6^HNsk+=xw3%8W9bU_K(7cIgLRp8ry?5c_! zmzH-yual2e?CNDL^DpN3{|hnFP=1_i)k$4?IQ6-mlAPz77d-fKjJ?pqCWvm6DB z&#eY*33$geQLIKBdP;b;CrQVJFyD;w&_DdhObiM6A_$#!y|dX$RGUSl!ss=hGF z_aroTlU}R4yqq-m_XVhL-E8O#-*n|k+QwR6OQ;fv)d?Sa+#vAaAhA*Q>}X+TYD7}` zb?iv1W^iL|lYj{s@6_x}?C1s^>_j#VlfYS#7{bg>Utb&mt<+8Iji3 z@7z>1OQJAg_hvNWkh8kVDY@<{h0ec;B0cV{0UHBEuB0sd4{Qq0r8jas>5eJ^06kPQ z0y&(Z_>dS1bGAewjd3$5E*=JQiu&LRaKi8MuToVe=~R~NFPpjM+?8u{dUTgit_jOX zaLg-fxq(|epG+Ul+6H3-52c3q4g~Ugbg;Ki3#LX3|FI?{GRIrh#b`Byr9B_s%@$OSC`$ zq30TO*hGHo3GekE4fQn7sgBO8hwCKmvEI?|9Op3XgnuZ2FAxH6TB4EbiZAJGk4kK& zTOf?U{%;BwSjU-jpy$aFx%561D_ywp3TrJQp4pea+@DO0Rw#ga?Z`}hUKwUzPQ;DZ zqY94N`j{vAByS3q-<-sBO7CI|zFse5fMBJ8Q<|;t*E7D2O$qPRFuu~UCWi*l_25if@tDbg9&mX)bO64+N##%9OOIv?7u%u&L>t922#pO9 z05{&w#f3OA=OOy*-O}l>;>)3~<9K78Ut59Yv_Inv1nPJ8`DtBxxIMK1LMu_22&|T9 zx&+*_^02-#l`i$Vy!6`bG+qNWr*8m73k$r?3D+Dy!)0_{GCjxj+b`DNS((8o_O{f9 z*BiY>wDQh)svKO`U+K}JJ`Ie-XR`y7Wfxqajh1A#UiS*}OmgO_aw@Fy!efhXbm7p= zDFMGg_qR-Gupn?`s*VGRb5vynC%-Pm(`JQFlizvhSz+Ho_PSiUB^JPDJEPpfne;rd z^tL(l&NftFtt0U#5-42!*E1qsy7xW0q@?UeP+NRjQaFzso=hPUPrW$|`C7Bi`6Jsg zo)*9&I+F(Ji(z-k2}C;*_lU09%y^eYEQR@vuQ);~mLtr%t@0ZKL)$`(=4NI7>rab;Lp?~XMDIJ?oTyz4I-HrWORA@?Otv~rnXluX@cvkm%QKoFydwN z87!1>jmm~4`P1IZW$CP&P5#pExmv$9dKB1a+)bvRGB zX=#%6>WdZz1T$ibG=8N=7UzMLGBT8E788&YZ!=Opxv)y`P_HZ(c{gS?{dJ(uZ%^g( zXQW}{YppUhB!3*yC$?NjaB{jMSJGe@z9qEMcwoZ_B(J*se00fRDSFTU@Kwc_{H5b> zUkCLp;-B@#Vv6OCQWwX0>BGrw9~2@-QsntbAH}_+IqF@`HAy@5Hqot=jeA;ai-FMx zN`u_K*Z5?^w_)KSuJ(Bun%r~w#rerfFO*m(tA)dmPjHg_BnQ`O_KkH4kGSy(SlHX< zrrRIW0AddzJV6e}IYwhu8HhhGxr84BnNB8+i}3N;K7h*X4059Sqo+*jX*V3+8yH!C zd7KdfYZ53B=D*)55PSp0Y^b#iyS6@MCFg(tqmucRP773CbG80TNfe^f-j+9+7Gsz} zKOiONi44Sec?`r-tkC^ae!BUpi$_vNxH&1zpiqDQUa-U6_DtNmRz6?xKpGF9YhBk9 z=YYh6R9Tm#9e-{Kof?CA8qnavb#m?}@<#S&3gSLUWDc7dH+n^o)10PUxtq#mpVes( zR9=zc1iLq$zBAb-`y3_3019BB&GQ{(qy88lp5(6BDJ)1|GO}M;8uU~U@yhc$gS8tRZ^J%LZ>;L3;8s|T$S~lG&hz5-P zF)7F?OA&-J5{Dlox7NmixbEFEBmm($<7w0i<4@BP;1j zm5?9McV6I=zZ2-6vRfy2ap9fW21cYf(kw}Irv2vAV&A z&ODVlFN({P;*_+ic3g!(q;1~>H4 zk9r>dn#M%Rkvpl%!+j>p`$Xjcpo@2}dJnqF9Ry5}bq z<3s+fAa2)!jI@XWbS%+Buu$4#BxbTUcAfkjb+h)m-9chKj!u+{N=#$B>2Jo+L9>sC z(;%yBys^oWwfCz7lsFD~Q7rr|KNa2?ZiZfE*WR@0%Idx9V835cq%v)SDR^+-j;?bT z;!1?gTfRr|5`DH9yJ8k10O;w@@G)9xNk#|D>0E9+X}>#rw%B&mG^$^w4z^GosL-nU76mdt1X#f{)a!(U4FfOlo> z^DnO>vraB(sf#%W^o3%Q;(yRXb*9RnF2yE$3dj1`aT-3low^6;?4>2__0-IV+Zo;+U$FdCMMpgnx@}f0+bNd zZE?)^Er(NF7{BMvS7N4YYqJ)*bBB~JTJ)4XK-YfHR;~AqQO7&3l8-Yy>_#GYF|C2> zf}RM_MT^Tu47(jNddzDOS$830+2dAt!5bL4N;w8yu3Qt$`co43T3agP?LMn4ud&*{ zuKa%R-g?w*U*IaMPd77%0Wtg}tTt8=KqVZIrr3XYov1%^&d0vQZ>|( zF1b0kz%wvhq&wr6M*(f?1^B{?t6w^)R=)E8ygqMO z`7GAkGhIhjG}+5{7MSw8DnlUW<7w|OO^2VM=mU3MeFyBvvq3d4V-<{t)&4APATh^- zfB_u9?%Q5YS_%NLc}B6V4*4T=%SHaO)?Oz)OB*JLh+#`nk{b01^9d@>Ik`!dmgL&N zu(T^r`?qPzufSy9C8|b|Xtilfy!jozR!5d&gP9XvR|awc4AVT*ZTj9kVgBZadT7sC z6!V_aiWQ$P*D!0$lgws(UT9{0hwpy%rqb+f2wMD(RlIx5cGu9Ae=UsF7#P3Dh0Y=u z!{Yg=-gU-c;*Pl|o1>v&5M@8geR~%XwNuN}ws=&L+`~(_RV` z-r2T+WvUximfQDKD+WU<;P_$Q)-b?F<3CBz9fP{xAS4Z+5Muj#VSz38Yn@I8f^wvn zhx1csam)lO4-%k3The#uY1>~QG1DSMv-pHaMj zunEVKqw_>*C{uf|{V_gtrC);y@O89=)4Q>>qQx)HRXTfkp}P#U(|o#``&O49bC|~c z`R0SmH(2~3H7fo+fhZ)jAVOY-|~)MO7P7IxerFShfwCOj9F$#^RcnY-MU|r z?iPCcPN9|N&6yQG-^)Vsa7TmtnE_zJiEzqHP4)aD$&C@|AvF_m^2ykcJKGB8j^M|j zp~{m2f8OHv+XlFHSxl?fgMCo6fuM)IXtQWQhLhkPIF}=hi_-ao0^nN~F0&F0FKEtZ zq!*%bj zH%bxm=9O&K`#FEs9%>_Bsxp>I5J?_vj}{{&a{1T>q!FkqaVP`?OMsLbNc#$b8!!??Uh z!w-~l{iQV6EG$efE~p^d4Zq;UOM+mE=g(ntGW&uRwVZV}-*Q+R?lZz;Ig`H@XuJ_K z#vZB6`2_dPhSM|Cg!5Ux^yAMQrNYGU^r;+`?!A!^u}s{xP$Yk^#Ktw=KiaT>&4$V- zj~qcdI_tJP_H?FWb0uqOqqTkyvkC}Wk(n+dq%6L!&M){7sOLd#5pXFL*1)D*?E@Kw zcMPl~=Tz9vGs}Y+@P=!9Y|Kj376jcQ7p1*0o=a;^T$?E%fz0IK{EUz)x05h5CI$-i zUK6sr$ef_?3e-f)FZY}lD}M+@on!ty9YyM)T%did)Hy!;Dlul6D(yuldKc ze4m}8lD1cps{4;GK-5S0@@0;$*mnHxxF86%Ktr7;+7?o#Ul^rqDY6M`VBIk*1U*zkNksSloNy9g4@SKIl6Kr z-S3t?OD9t1E85i+1(`ffxRfsRS9=kN_=#sD<{QmbSrO>Iz*x#du1=@iXDwFXT_3-K z;_y@#!1sJ2MJ>_UV=U#HdEdJi=E_* zra9h61$Ccwq8ZM6(G**^!S<(LXdZ6upU(^3&DGPcFUFswx_)!l8fP_856)=|ng$Z? zcQ`IoI=MFLOsXi9J`Aw?M8>6-aGHT{xZ&tcSqy^q{5pmUf%}d|n)**mn7%$l-?$x~ z3ucegjp=-6s+zBI*Xmz@Ik^m3M+ZmMb_-z^J`HI2b`<6p-DrpC65dDrTL*w}8p+Nk z%N^Ks_}{aPYacOAI{RG+CR~$L+TZ_u@UX^f&SdNO=M0evcc0g`vtLf->lli%0DCU^YL)bm$?3 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 LVIoX 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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png b/docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png new file mode 100644 index 0000000000000000000000000000000000000000..f99cd398937c184b7956ceed0fbdb64b2c220f67 GIT binary patch literal 3304 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 Cig7{! literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/microservice-sample-kibana-1.png b/docs/zh-Hans/images/microservice-sample-kibana-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a51bd3496495936299cad2e9d15be6a6a80488 GIT binary patch literal 79209 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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/microservice-sample-kibana-2.png b/docs/zh-Hans/images/microservice-sample-kibana-2.png new file mode 100644 index 0000000000000000000000000000000000000000..31b281486cf9afeefc5f208b836a5ca343c1a63e GIT binary patch literal 54003 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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/microservice-sample-product-module-in-solution.png b/docs/zh-Hans/images/microservice-sample-product-module-in-solution.png new file mode 100644 index 0000000000000000000000000000000000000000..27e841cdd569dfc7833650dbc9e0511fb80cef03 GIT binary patch literal 12817 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 Date: Tue, 26 Feb 2019 15:08:30 +0800 Subject: [PATCH 03/37] Translate Blog: 2019-02-22/Post.md --- docs/zh-Hans/Blog-Posts/2019-02-22/Post.md | 209 ++++++++++++++++++ .../Blog-Posts/2019-02-22/scott-and-jon.png | Bin 0 -> 488739 bytes 2 files changed, 209 insertions(+) create mode 100644 docs/zh-Hans/Blog-Posts/2019-02-22/Post.md create mode 100644 docs/zh-Hans/Blog-Posts/2019-02-22/scott-and-jon.png diff --git a/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md b/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md new file mode 100644 index 0000000000..4898325587 --- /dev/null +++ b/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md @@ -0,0 +1,209 @@ +# ABP vNext介绍 + +## 介绍 + +过去的一段时间,我们正在设计一个新的主要版本的ASP.NET Boilerplate框架.现在,是时候与社区分享了.我们非常兴奋,相信你也是. + + +## 命名 + +框架的名称保持不变,除了我们将其仅称为“ABP”而不是“ASP.NET Boilerplate”.因为,“Boilerplate(样板)”会导致误解,并没反映出它是一个框架(而不是样板代码).我们继续使用“ABP”名称,因为它是当前ASP.NET Boilerplate框架的继承者,除了它是完全重写的. + + +## 如何开始 + +我们已经创建了一个启动模板.你可以从[abp.io/Templates](https://abp.io/Templates)创建一个新项目并开始开发.欲了解更多信息,请访问[abp.io](https://abp.io/). + + +## 为什么要完全重写? + +为什么我们花了宝贵的时间从头开始重写它而不是增量更改和改进.为什么? + +### ASP.NET Core + +当我们第一次介绍ABP框架时,那是2013年(5年前)!那时候没有.Net Core和ASP.NET Core,也没有Angular2 +.ABP发布后,它们都是从头开发的. + +ASP.NET Core引入了许多内置解决方案(扩展库),用于依赖注入,日志记录,缓存,本地化,配置等.它们实际上独立于ASP.NET Core,可用于任何类型的应用程序. + +我们之前使用第三方库和我们自己的解决方案来满足这些要求.在它们发布后我们立即集成到ASP.NET Core功能中.但这是集成,而不是在这些扩展库之上构建ABP框架.例如,当前的ASP.NET Boilerplate依赖于Castle Windsor进行依赖注入,即使它已集成到ASP.NET Core的DI系统中. + +我们希望依赖这些新的扩展库而不是第三方和自定义解决方案,这会改变框架的基本结构. + +### 自身模块化 + +虽然目前的ABP本身已经是模块化的,并且包含许多包,但我们仍然希望将功能分解为更细粒度的nuget包. + +例如,核心Abp包包含许多功能,如DDD类,审计,授权,后台作业,事件总线,json序列化,本地化,多租户,线程,时间等......我们希望将所有这些功能拆分到各自的包中并使它们可选. + +### 放弃对传统技术的支持 + +是的,新的ABP框架将不支持ASP.NET MVC 5.x,Entity Framework 6.x和其他传统技术. + +这些传统技术会由Microsoft维护,但不会再添加任何新功能.因此,如果你仍在使用这些技术,则可以继续使用当前的ASP.NET Boilerplate框架.我们将继续维护它,修复错误并添加新功能. + +删除对这些传统库的支持将提高我们的开发速度(因为我们目前正在复制我们的某些功能的工作)并专注于.Net Core和ASP.NET Core. + +新的ABP框架将基于.net standard.因此,仍然可以在新的ABP框架中使用完整的.net framework或.net core. + + +## 目标 + +我们从社区学到了很多东西,并且有开发当前ASP.NET Boilerplate框架的经验.新的ABP框架有着重要而令人兴奋的目标. + +### 应用程序模块化 + +第一个目标是提供良好的基础设施来开发应用程序模块.我们将模块视为一组应用程序功能,具有自己的数据库,自己的实体,服务,API,UI页面,组件等. + +我们将创建一个包含免费和付费应用程序模块的模块市场.你还可以在市场上发布自己的模块.更多信息即将推出. + +### 微服务 + +我们正在设计新的ABP框架可方便的开发微服务并使它们相互通信. + +我们正在设计应用程序模块,以便它们可以作为微服务单独部署,或者可以嵌入到单个应用程序中. + +我们正在为此创建[规范/最佳实践文档](https://github.com/abpframework/abp/blob/master/docs/Best-Practices/Index.md) + +### 主题和UI组合 + +新的ABP框架将基于最新的Twitter Bootstrap 4.x提供主题基础设施.我们开发了一个仅使用普通Bootstrap 4.x样式的基本主题.它是免费和开源的.我们还在开发高级和付费主题. + +UI组合是主要目标之一.为此,主题系统将提供菜单,工具栏和其他可扩展区域,以允许其他模块交互(contribute). + +### ORM / 数据库无关性和MongoDB集成 + +虽然当前的ASP.NET Boilerplate框架已经实现了ORM /数据库无关的存储库(Repository)模式,但身份集成模块(以Abp.Zero*命名的包)与EF以外的ORM一直运行的不太好. + +使用新的ABP框架,最终目标是完全抽象的底层数据存储系统和开发与EF Core无关的模块. + +我们将MongoDB作为第一级别的数据库,并在没有任何关系数据库或ORM假设的情况下设计实体和存储库. + +### 更多可扩展性 + +新的ABP框架为内置服务提供了更多的扩展点和覆盖的能力. + + +## 一些功能 + +在本节中,我将介绍新ABP框架的一些令人兴奋的新功能. + +### Bootstrap Tag Helpers + +我们正在创建一个库将twitter bootstrap 4.x元素/组件包装到tag helper中.例: + +~~~ html + + + + Card title + +

+ This is a sample card component built by ABP bootstrap + card tag helper. ABP has tag helper wrappers for most of + the bootstrap components. +

+
+
Go somewhere → + + +~~~ + +“abp-*”标签是ABP tag helper,用于简化为Bootstrap 4.x编写HTML. + +### 动态表单 + +动态表单tag helper允许你为给定的模型类动态地创建表单.例: + +~~~ html + +~~~ + +输出: + +![dynamic-forms](dynamic-forms.png) + +目前支持最常用的输入类型. 更多类型正在开发中. + +### 虚拟文件系统 + +虚拟文件系统允许你将视图,页面,组件,javascript,css,json和其他类型的文件嵌入到模块程序集/包(dll)中,并在任何应用程序中使用.在应用程序中你的虚拟文件就像物理文件一样, 完全的集成在ASP.NET Core中. + +更多信息请参阅[关于虚拟文件系统](https://medium.com/volosoft/designing-modularity-on-asp-net-core-virtual-file-system-2dd2cc2078bd)和[相关文档](https://github.com/abpframework/abp/blob/master/docs/Virtual-File-System.md). + +### 动态捆绑和压缩系统 + +动态捆绑和压缩系统运行在虚拟文件系统上,并且允许模块以模块化,动态和强大的方式创建,修改和交互捆绑包.一个例子: + +~~~ html + + + + + +~~~ + +这段代码通过包含bootstrap(及其依赖项,如果有)和另外两个css文件来动态创建一个新的样式包.这些文件在生产环境中捆绑和压缩,但将在开发环境中单独添加. + +有关更多信息,请参阅[文档](https://github.com/abpframework/abp/blob/master/docs/AspNetCore/Bundling-Minification.md) + +### 分布式事件总线(Distributed Event Bus) + +在当前的ABP中,有一个IEventBus服务来触发和处理应用程序内的事件.除了这个本地事件总线,我们还创建了一个分布式事件总线抽象(和RabbitMQ集成)来实现分布式消息传递模式. + +### 动态C# HTTP客户端代理 + +ABP已经为所有HTTP API创建动态JavaScript代理.该功能也存在于新的ABP框架中.此外,它现在可以为所有HTTP API创建动态C#代理. + + + +## 未来的工作 + +上面提到的所有东西都已经开发出来了.但是,我们还有一些想法尚未着手. + +### 单页应用程序(Single Page Applications) + +我们在设计新框架时考虑到了SPA这一点.但是,我们还没有尝试过任何SPA框架,我们还没有为它准备一个启动模板. + +## ASP.NET Boilerplate(当前版本)和ASP.NET Zero会如何? + +我们有专门的开发和支持团队积极致力于ASP.NET Boilerplate和ASP.NET Zero项目.这些项目有一个很大的社区,我们也从社区中获得了贡献. + +我们将在很长一段时间内继续为这些项目进行改进,添加新功能和修复错误.因此,你可以安全地继续使用它们. + +## 新的ABP可用在生产环境吗? + +还没有.我们的第一个目标是使基本功能稳定,然后逐步完成其他功能. + +我们会经常发布新版本,每个新版本都可能会有重大变化.我们将在发行说明中写下重大更改. + +我们目前将其定义为实验性质.但我们希望这不会持续很长时间.我们无法确定一个准确的日期,请关注我们的发布. + +## 包和版本控制 + +新的ABP框架将从v1.0开始,而不是遵循当前的ASP.NET Boilerplate版本, 以反映它是一个重写的事实. + +我们会经常发布它.你可以期待许多重大变化,直到v1.0.从v1.0开始,我们将注意不要在1.x版本中引入重大更改. + +当前ABP的包名称以Abp前缀开头(如Abp.EntityFrameworkCore).新的包名称以Volo.Abp前缀开头(如Volo.Abp.EntityFrameworkCore). + +## 我应该用哪一个? + +如果你正在创建一个新项目,我们建议你继续使用当前的ASP.NET Boilerplate框架,因为它非常成熟,功能丰富且可用于生产环境. + +如果你愿意接受重大变化并希望体验新框架,那么你可以从新的ABP开始.我们不建议在临近截止日期和在短期内上线的项目上使用它. + +## 贡献 + +就像当前的ABP框架一样,你可为新框架做出贡献. + +* 你可以发送代码或文档的拉取请求. +* 你可以撰写关于它的博客文章或教程. +* 你可以尝试并分享你的经验. +* 你可以提出改进和功能请求. +* 你可以报告错误和其他问题. + +## 联系/链接 + +* 官方网站:[abp.io](https://abp.io/) +* Github:[github.com/abpframework](https://github.com/abpframework) +* Twitter:[@abpframework](https://twitter.com/abpframework) diff --git a/docs/zh-Hans/Blog-Posts/2019-02-22/scott-and-jon.png b/docs/zh-Hans/Blog-Posts/2019-02-22/scott-and-jon.png new file mode 100644 index 0000000000000000000000000000000000000000..79ad21aee7f1f43ca670123d84017ec965a5ab38 GIT binary patch literal 488739 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%0D1)JyV!fm-Xqs(x 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�@;IpTrLtZ6C$ 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
    }zg@E|pFd+~# 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 literal 0 HcmV?d00001 From f58eee73455bc64fd40556be50a15d39e29efbe6 Mon Sep 17 00:00:00 2001 From: Yuhang Ji Date: Tue, 26 Feb 2019 15:10:34 +0800 Subject: [PATCH 04/37] Update Post.md --- docs/zh-Hans/Blog-Posts/2019-02-22/Post.md | 221 +++------------------ 1 file changed, 33 insertions(+), 188 deletions(-) diff --git a/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md b/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md index 4898325587..f20e1a3772 100644 --- a/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md +++ b/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md @@ -1,209 +1,54 @@ -# ABP vNext介绍 +# 微服务演示,项目状态和路线图 -## 介绍 +在ABP vNext上的[第一个公告](https://cn.abp.io/blog/abp/Abp-vNext-Announcement)之后,我们对代码库进行了很多改进([GitHub存储库](https://github.com/abpframework/abp)上的1100多次提交).我们已经创建了功能,示例,文档等等.在这篇文章中,我想告诉你一些新闻和项目的状态. -过去的一段时间,我们正在设计一个新的主要版本的ASP.NET Boilerplate框架.现在,是时候与社区分享了.我们非常兴奋,相信你也是. +## 微服务演示解决方案 +ABP框架的主要目标之一是提供[创建微服务解决方案的便利基础设施](https://cn.abp.io/documents/abp/latest/Microservice-Architecture). -## 命名 +我们一直在努力开发微服务解决方案演示.初始版本已完成并[文档化](https://cn.abp.io/documents/abp/latest/Samples/Microservice-Demo).该示例解决方案旨在演示一个简单而完整的微服务解决方案; -框架的名称保持不变,除了我们将其仅称为“ABP”而不是“ASP.NET Boilerplate”.因为,“Boilerplate(样板)”会导致误解,并没反映出它是一个框架(而不是样板代码).我们继续使用“ABP”名称,因为它是当前ASP.NET Boilerplate框架的继承者,除了它是完全重写的. +- 具有多个独立的,可自我部署的**微服务**. +- 多个**Web应用程序**,每个都使用不同的API网关. +- 使用[Ocelot](https://github.com/ThreeMammals/Ocelot)库开发了多个**网关** / BFF(后端为前端(Backend for Frontends)). +- 使用[IdentityServer](https://identityserver.io/)框架开发**身份验证服务**.它也是一个带有必要UI的SSO(单点登录)应用程序. +- 有**多个数据库**.一些微服务有自己的数据库,而一些服务/应用程序共享一个数据库(以演示不同的用例). +- 具有不同类型的数据库:**SQL Server**(使用**Entity Framework Core** ORM)和**MongoDB**. +- 有一个**控制台应用程序**来显示通过身份验证使用服务的最简单方法. +- 使用[Redis](https://redis.io/)进行**分布式缓存**. +- 使用[RabbitMQ](https://www.rabbitmq.com/)进行服务到服务(service-to-service)的**消息传递**. +- 使用[Docker](https://www.docker.com/)和[Kubernates](https://kubernetes.io/)**部署**并运行所有服务和应用程序. +- 使用[Elasticsearch](https://www.elastic.co/products/elasticsearch)和[Kibana](https://www.elastic.co/products/kibana)存储和可视化日志(使用[Serilog](https://serilog.net/)编写). +有关解决方案的详细说明,请参阅[其文档](https://cn.abp.io/documents/abp/latest/Samples/Microservice-Demo). -## 如何开始 +## 改进/功能 -我们已经创建了一个启动模板.你可以从[abp.io/Templates](https://abp.io/Templates)创建一个新项目并开始开发.欲了解更多信息,请访问[abp.io](https://abp.io/). +我们已经开发了许多功能,包括**分布式事件总线**(与RabbitMQ集成),**IdentityServer4集成**以及几乎所有功能的增强.我们不断重构和添加测试,以使框架更稳定和生产就绪.它正在[快速增长](https://github.com/abpframework/abp/graphs/contributors). +## 路线图 -## 为什么要完全重写? +在第一个稳定版本(v1.0)之前还有很多工作要做.您可以在GitHub仓库上看到[优先的积压项目](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3ABacklog). -为什么我们花了宝贵的时间从头开始重写它而不是增量更改和改进.为什么? +根据我们的估计,我们计划在2019年第二季度(可能在五月或六月)发布v1.0.所以,没有太多时间等待.我们也对第一个稳定版本感到非常兴奋. -### ASP.NET Core +我们还将完善[文档](https://cn.abp.io/documents/abp/latest),因为它现在还远未完成. -当我们第一次介绍ABP框架时,那是2013年(5年前)!那时候没有.Net Core和ASP.NET Core,也没有Angular2 +.ABP发布后,它们都是从头开发的. +第一个版本可能不包含SPA模板.但是,如果可能的话,我们想要准备一个简单些的.SPA框架还没有确定下来.备选有:**Angular,React和Blazor**.请将您的想法写为对此帖的评论. -ASP.NET Core引入了许多内置解决方案(扩展库),用于依赖注入,日志记录,缓存,本地化,配置等.它们实际上独立于ASP.NET Core,可用于任何类型的应用程序. +## 中文网 -我们之前使用第三方库和我们自己的解决方案来满足这些要求.在它们发布后我们立即集成到ASP.NET Core功能中.但这是集成,而不是在这些扩展库之上构建ABP框架.例如,当前的ASP.NET Boilerplate依赖于Castle Windsor进行依赖注入,即使它已集成到ASP.NET Core的DI系统中. +中国有一个大型的ABP社区.他们创建了一个中文版的abp.io网站:https://cn.abp.io/. 他们一直在保持更新.感谢中国的开发人员,特别是[Liming Ma](https://github.com/maliming). -我们希望依赖这些新的扩展库而不是第三方和自定义解决方案,这会改变框架的基本结构. +## NDC {London} 2019 -### 自身模块化 +很高兴作为合作伙伴参加[NDC {London}](https://ndc-london.com/)2019 .我们已经与许多开发人员讨论过当前的ASP.NET Boilerplate和ABP vNext,我们得到了很好的反馈. -虽然目前的ABP本身已经是模块化的,并且包含许多包,但我们仍然希望将功能分解为更细粒度的nuget包. +我们还有机会与[Scott Hanselman](https://twitter.com/shanselman)和[Jon Galloway](https://twitter.com/jongalloway)交谈.他们参观了我们的展位,我们谈到了ABP vNext的想法.他们喜欢新的ABP框架的功能,方法和目标.在twitter上查看一些照片和评论: -例如,核心Abp包包含许多功能,如DDD类,审计,授权,后台作业,事件总线,json序列化,本地化,多租户,线程,时间等......我们希望将所有这些功能拆分到各自的包中并使它们可选. +![scott-and-jon](scott-and-jon.png) -### 放弃对传统技术的支持 +## 跟上步伐 -是的,新的ABP框架将不支持ASP.NET MVC 5.x,Entity Framework 6.x和其他传统技术. - -这些传统技术会由Microsoft维护,但不会再添加任何新功能.因此,如果你仍在使用这些技术,则可以继续使用当前的ASP.NET Boilerplate框架.我们将继续维护它,修复错误并添加新功能. - -删除对这些传统库的支持将提高我们的开发速度(因为我们目前正在复制我们的某些功能的工作)并专注于.Net Core和ASP.NET Core. - -新的ABP框架将基于.net standard.因此,仍然可以在新的ABP框架中使用完整的.net framework或.net core. - - -## 目标 - -我们从社区学到了很多东西,并且有开发当前ASP.NET Boilerplate框架的经验.新的ABP框架有着重要而令人兴奋的目标. - -### 应用程序模块化 - -第一个目标是提供良好的基础设施来开发应用程序模块.我们将模块视为一组应用程序功能,具有自己的数据库,自己的实体,服务,API,UI页面,组件等. - -我们将创建一个包含免费和付费应用程序模块的模块市场.你还可以在市场上发布自己的模块.更多信息即将推出. - -### 微服务 - -我们正在设计新的ABP框架可方便的开发微服务并使它们相互通信. - -我们正在设计应用程序模块,以便它们可以作为微服务单独部署,或者可以嵌入到单个应用程序中. - -我们正在为此创建[规范/最佳实践文档](https://github.com/abpframework/abp/blob/master/docs/Best-Practices/Index.md) - -### 主题和UI组合 - -新的ABP框架将基于最新的Twitter Bootstrap 4.x提供主题基础设施.我们开发了一个仅使用普通Bootstrap 4.x样式的基本主题.它是免费和开源的.我们还在开发高级和付费主题. - -UI组合是主要目标之一.为此,主题系统将提供菜单,工具栏和其他可扩展区域,以允许其他模块交互(contribute). - -### ORM / 数据库无关性和MongoDB集成 - -虽然当前的ASP.NET Boilerplate框架已经实现了ORM /数据库无关的存储库(Repository)模式,但身份集成模块(以Abp.Zero*命名的包)与EF以外的ORM一直运行的不太好. - -使用新的ABP框架,最终目标是完全抽象的底层数据存储系统和开发与EF Core无关的模块. - -我们将MongoDB作为第一级别的数据库,并在没有任何关系数据库或ORM假设的情况下设计实体和存储库. - -### 更多可扩展性 - -新的ABP框架为内置服务提供了更多的扩展点和覆盖的能力. - - -## 一些功能 - -在本节中,我将介绍新ABP框架的一些令人兴奋的新功能. - -### Bootstrap Tag Helpers - -我们正在创建一个库将twitter bootstrap 4.x元素/组件包装到tag helper中.例: - -~~~ html - - - - Card title - -

      - This is a sample card component built by ABP bootstrap - card tag helper. ABP has tag helper wrappers for most of - the bootstrap components. -

      -
      -
      Go somewhere → - - -~~~ - -“abp-*”标签是ABP tag helper,用于简化为Bootstrap 4.x编写HTML. - -### 动态表单 - -动态表单tag helper允许你为给定的模型类动态地创建表单.例: - -~~~ html - -~~~ - -输出: - -![dynamic-forms](dynamic-forms.png) - -目前支持最常用的输入类型. 更多类型正在开发中. - -### 虚拟文件系统 - -虚拟文件系统允许你将视图,页面,组件,javascript,css,json和其他类型的文件嵌入到模块程序集/包(dll)中,并在任何应用程序中使用.在应用程序中你的虚拟文件就像物理文件一样, 完全的集成在ASP.NET Core中. - -更多信息请参阅[关于虚拟文件系统](https://medium.com/volosoft/designing-modularity-on-asp-net-core-virtual-file-system-2dd2cc2078bd)和[相关文档](https://github.com/abpframework/abp/blob/master/docs/Virtual-File-System.md). - -### 动态捆绑和压缩系统 - -动态捆绑和压缩系统运行在虚拟文件系统上,并且允许模块以模块化,动态和强大的方式创建,修改和交互捆绑包.一个例子: - -~~~ html - - - - - -~~~ - -这段代码通过包含bootstrap(及其依赖项,如果有)和另外两个css文件来动态创建一个新的样式包.这些文件在生产环境中捆绑和压缩,但将在开发环境中单独添加. - -有关更多信息,请参阅[文档](https://github.com/abpframework/abp/blob/master/docs/AspNetCore/Bundling-Minification.md) - -### 分布式事件总线(Distributed Event Bus) - -在当前的ABP中,有一个IEventBus服务来触发和处理应用程序内的事件.除了这个本地事件总线,我们还创建了一个分布式事件总线抽象(和RabbitMQ集成)来实现分布式消息传递模式. - -### 动态C# HTTP客户端代理 - -ABP已经为所有HTTP API创建动态JavaScript代理.该功能也存在于新的ABP框架中.此外,它现在可以为所有HTTP API创建动态C#代理. - - - -## 未来的工作 - -上面提到的所有东西都已经开发出来了.但是,我们还有一些想法尚未着手. - -### 单页应用程序(Single Page Applications) - -我们在设计新框架时考虑到了SPA这一点.但是,我们还没有尝试过任何SPA框架,我们还没有为它准备一个启动模板. - -## ASP.NET Boilerplate(当前版本)和ASP.NET Zero会如何? - -我们有专门的开发和支持团队积极致力于ASP.NET Boilerplate和ASP.NET Zero项目.这些项目有一个很大的社区,我们也从社区中获得了贡献. - -我们将在很长一段时间内继续为这些项目进行改进,添加新功能和修复错误.因此,你可以安全地继续使用它们. - -## 新的ABP可用在生产环境吗? - -还没有.我们的第一个目标是使基本功能稳定,然后逐步完成其他功能. - -我们会经常发布新版本,每个新版本都可能会有重大变化.我们将在发行说明中写下重大更改. - -我们目前将其定义为实验性质.但我们希望这不会持续很长时间.我们无法确定一个准确的日期,请关注我们的发布. - -## 包和版本控制 - -新的ABP框架将从v1.0开始,而不是遵循当前的ASP.NET Boilerplate版本, 以反映它是一个重写的事实. - -我们会经常发布它.你可以期待许多重大变化,直到v1.0.从v1.0开始,我们将注意不要在1.x版本中引入重大更改. - -当前ABP的包名称以Abp前缀开头(如Abp.EntityFrameworkCore).新的包名称以Volo.Abp前缀开头(如Volo.Abp.EntityFrameworkCore). - -## 我应该用哪一个? - -如果你正在创建一个新项目,我们建议你继续使用当前的ASP.NET Boilerplate框架,因为它非常成熟,功能丰富且可用于生产环境. - -如果你愿意接受重大变化并希望体验新框架,那么你可以从新的ABP开始.我们不建议在临近截止日期和在短期内上线的项目上使用它. - -## 贡献 - -就像当前的ABP框架一样,你可为新框架做出贡献. - -* 你可以发送代码或文档的拉取请求. -* 你可以撰写关于它的博客文章或教程. -* 你可以尝试并分享你的经验. -* 你可以提出改进和功能请求. -* 你可以报告错误和其他问题. - -## 联系/链接 - -* 官方网站:[abp.io](https://abp.io/) -* Github:[github.com/abpframework](https://github.com/abpframework) -* Twitter:[@abpframework](https://twitter.com/abpframework) +* 您可以标星并关注**GitHub**存储库:https://github.com/abpframework/abp +* 您可以关注官方**Twitter**帐户获取新闻:https://twitter.com/abpframework From 5026d82147b3043d485910d9bed7749bb19436e6 Mon Sep 17 00:00:00 2001 From: Yuhang Ji Date: Tue, 26 Feb 2019 15:20:19 +0800 Subject: [PATCH 05/37] Update Post.md --- docs/zh-Hans/Blog-Posts/2019-02-22/Post.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md b/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md index f20e1a3772..69a8603baf 100644 --- a/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md +++ b/docs/zh-Hans/Blog-Posts/2019-02-22/Post.md @@ -30,7 +30,7 @@ ABP框架的主要目标之一是提供[创建微服务解决方案的便利基 在第一个稳定版本(v1.0)之前还有很多工作要做.您可以在GitHub仓库上看到[优先的积压项目](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3ABacklog). -根据我们的估计,我们计划在2019年第二季度(可能在五月或六月)发布v1.0.所以,没有太多时间等待.我们也对第一个稳定版本感到非常兴奋. +根据我们的估计,我们计划在2019年第二季度(可能在五月或六月)发布v1.0.所以,不用等待太长时间了.我们也对第一个稳定版本感到非常兴奋. 我们还将完善[文档](https://cn.abp.io/documents/abp/latest),因为它现在还远未完成. From 36a62c09ddc6ca8b31b13bd208e930c7b8a83711 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 4 Mar 2019 11:21:19 +0800 Subject: [PATCH 06/37] update Microservice-Demo.md --- docs/zh-Hans/Samples/Microservice-Demo.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/zh-Hans/Samples/Microservice-Demo.md b/docs/zh-Hans/Samples/Microservice-Demo.md index e7dd2cfd8a..67ba362c24 100644 --- a/docs/zh-Hans/Samples/Microservice-Demo.md +++ b/docs/zh-Hans/Samples/Microservice-Demo.md @@ -51,6 +51,21 @@ Running as docker containers is easier since all dependencies are pre-configured - Open a command line in the `samples/MicroserviceDemo` folder of the repository. + +- Pull images from Docker Hub: + + ``` + docker-compose -f docker-compose.yml -f docker-compose.migrations.yml pull + ``` + +- If you want to build images locally you may skip the above step and instead use build command: + + ``` + docker-compose -f docker-compose.yml -f docker-compose.migrations.yml build + ``` + + Building images may take a **long time** depending on your machine. + - Restore SQL Server databases: ``` @@ -63,8 +78,6 @@ Running as docker containers is easier since all dependencies are pre-configured docker-compose up -d ``` - At the first run, it will take a **long time** because it will build all docker images. - - Add this line to the end of your `hosts` file: ``` From d095f8cec648c098fd0accde2831cdf5fd7c609b Mon Sep 17 00:00:00 2001 From: LiangShiWei Date: Sat, 9 Mar 2019 20:30:30 +0800 Subject: [PATCH 07/37] Improve Chinese localization resources --- .../Resources/AbpAccount/Web/zh-Hans.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/account/src/Volo.Abp.Account.Web/Localization/Resources/AbpAccount/Web/zh-Hans.json b/modules/account/src/Volo.Abp.Account.Web/Localization/Resources/AbpAccount/Web/zh-Hans.json index fdaa5ff228..3eec6714f1 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Localization/Resources/AbpAccount/Web/zh-Hans.json +++ b/modules/account/src/Volo.Abp.Account.Web/Localization/Resources/AbpAccount/Web/zh-Hans.json @@ -11,12 +11,11 @@ "InvalidUserNameOrPassword": "用户名或密码错误!", "LoginIsNotAllowed": "无法登录!你需要验证邮箱地址/手机号.", "SelfRegistrationDisabledMessage": "应用程序未开放注册,请联系管理员添加新用户.", - "Login": "Login", - "Cancel": "Cancel", - "Register": "Register", - "UseAnotherServiceToLogIn.": "Use another service to log in.", - "InvalidLoginRequest": "Invalid login request", - "ThereAreNoLoginSchemesConfiguredForThisClient": "There are no login schemes configured for this client.", - "LogInUsingYourProviderAccount": "Log in using your {0} account" + "Login": "登录", + "Cancel": "取消", + "Register": "注册", + "InvalidLoginRequest": "无效的登录请求", + "ThereAreNoLoginSchemesConfiguredForThisClient": "没有为此客户端配置登录方案.", + "LogInUsingYourProviderAccount": "使用你的 {0} 账号登录" } } From af848f93fb2e82579e500af20ca98446d6ed36b2 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Wed, 20 Mar 2019 11:19:57 +0300 Subject: [PATCH 08/37] Update documents for the DbMigrations change --- .../Getting-Started-AspNetCore-MVC-Template.md | 10 ++++++---- docs/en/Tutorials/AspNetCore-Mvc/Part-I.md | 6 +++--- docs/en/Tutorials/AspNetCore-Mvc/Part-III.md | 2 -- .../bookstore-pmc-add-book-migration-v2.png | Bin 0 -> 7712 bytes .../bookstore-visual-studio-solution-v2.png | Bin 0 -> 8946 bytes .../bookstore-visual-studio-solution-v2.png | Bin 0 -> 8946 bytes docs/en/images/pcm-update-database-v2.png | Bin 0 -> 6441 bytes 7 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png create mode 100644 docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v2.png create mode 100644 docs/en/images/bookstore-visual-studio-solution-v2.png create mode 100644 docs/en/images/pcm-update-database-v2.png diff --git a/docs/en/Getting-Started-AspNetCore-MVC-Template.md b/docs/en/Getting-Started-AspNetCore-MVC-Template.md index de9a5b09cb..cb24eb543f 100644 --- a/docs/en/Getting-Started-AspNetCore-MVC-Template.md +++ b/docs/en/Getting-Started-AspNetCore-MVC-Template.md @@ -19,9 +19,9 @@ The downloaded project requires; ### The Solution Structure -Extract the zip file downloaded and open in **Visual Studio 2017 (15.7.0+)**: +Extract the zip file downloaded and open in **Visual Studio 2017 (15.9.0+)**: -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution.png) +![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v2.png) The solution has a layered structure (based on Domain Driven Design) where; @@ -30,6 +30,8 @@ The solution has a layered structure (based on Domain Driven Design) where; * ``.Web`` is the presentation layer. * ``.EntityFrameworkCore`` is the EF Core integration package. +EF Core database migrations are separated to a project named `.EntityFrameworkCore.DbMigrations`. + The solution also contains unit & integration test projects properly configured to work with **EF Core** & **SQLite in-memory** database. ### Creating the Database @@ -50,9 +52,9 @@ Right click to the `.Web` project and select **Set as StartUp Project**: ![set-as-startup-project](images/set-as-startup-project.png) -Open the **Package Manager Console**, select `.EntityFrameworkCore` project as the **Default Project** and run the `Update-Database` command: +Open the **Package Manager Console**, select `.EntityFrameworkCore.DbMigrations` project as the **Default Project** and run the `Update-Database` command: -![pcm-update-database](images/pcm-update-database.png) +![pcm-update-database](images/pcm-update-database-v2.png) This will create a new database based on the configured connection string. diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md index 6db6766c0b..337f021587 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md @@ -20,7 +20,7 @@ Go to the [startup template page](https://abp.io/Templates) and download a new p This is the how the layered solution structure looks after it's created from the startup template: -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution.png) +![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v2.png) ### Create the Book Entity @@ -91,9 +91,9 @@ EF Core requires you to relate entities with your DbContext. The easiest way to #### Add New Migration & Update the Database -The Startup template uses [EF Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) to create and maintain the database schema. Open the **Package Manager Console (PMC)** (under the *Tools/Nuget Package Manager* menu), select the `Acme.BookStore.EntityFrameworkCore` as the **default project** and execute the following command: +The Startup template uses [EF Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) to create and maintain the database schema. Open the **Package Manager Console (PMC)** (under the *Tools/Nuget Package Manager* menu), select the `Acme.BookStore.EntityFrameworkCore.DbMigrations` as the **default project** and execute the following command: -![bookstore-pmc-add-book-migration](images/bookstore-pmc-add-book-migration.png) +![bookstore-pmc-add-book-migration](images/bookstore-pmc-add-book-migration-v2.png) This will create a new migration class inside the `Migrations` folder. Then execute the `Update-Database` command to update the database schema: diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md index a45d406ce6..b70521dad0 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-III.md @@ -14,8 +14,6 @@ You can download the **source code** of the application [from here](https://gith There are two test projects in the solution: -![bookstore-test-projects](images/bookstore-test-projects.png) - * `Acme.BookStore.Application.Tests` is for unit & integration tests. You can write tests for application service methods. It uses **EF Core SQLite in-memory** database. * `Acme.BookStore.Web.Tests` is for full stack integration tests including the web layer. So, you can write tests for UI pages too. diff --git a/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png b/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..edf2826361db60d14fe2f8e9860d02d03ae104df GIT binary patch literal 7712 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 literal 0 HcmV?d00001 From 15914fd4f1fbe06c2bcaf0e729277e8113d73b95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=A3=AB=E4=BC=9F?= Date: Wed, 20 Mar 2019 17:28:31 +0800 Subject: [PATCH 09/37] Update documents for the DbMigrations change --- .../Getting-Started-AspNetCore-MVC-Template.md | 10 ++++++---- docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-I.md | 4 ++-- .../zh-Hans/Tutorials/AspNetCore-Mvc/Part-III.md | 1 - .../bookstore-visual-studio-solution-v2.png | Bin 0 -> 8946 bytes docs/zh-Hans/images/pcm-update-database-v2.png | Bin 0 -> 6441 bytes 5 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 docs/zh-Hans/images/bookstore-visual-studio-solution-v2.png create mode 100644 docs/zh-Hans/images/pcm-update-database-v2.png diff --git a/docs/zh-Hans/Getting-Started-AspNetCore-MVC-Template.md b/docs/zh-Hans/Getting-Started-AspNetCore-MVC-Template.md index 6f274b5177..e8ce4fa71a 100644 --- a/docs/zh-Hans/Getting-Started-AspNetCore-MVC-Template.md +++ b/docs/zh-Hans/Getting-Started-AspNetCore-MVC-Template.md @@ -12,14 +12,14 @@ 下载的项目需要: -* [Visual Studio 2017 (v15.7.0+)](https://visualstudio.microsoft.com/tr/downloads/) +* [Visual Studio 2017 (v15.9.0+)](https://visualstudio.microsoft.com/tr/downloads/) * [.NET Core 2.1.1+](https://www.microsoft.com/net/download/dotnet-core/) ### 解决方案结构 下载后解压文件并在 **Visual Studio 2017(15.7.0 +)** 中打开: -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution.png) +![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v2.png) 该解决方案具有分层结构(基于域驱动设计), 其中: @@ -28,6 +28,8 @@ * ``.Web`` 为是表示层. * ``.EntityFrameworkCore`` 是EF Core集成. +EF Core 数据库迁移被分离到名为`.EntityFrameworkCore.DbMigrations`项目中. + 解决方案还包含配置好的的单元&集成测试项目, 以便与 **EF Core** 和 **SQLite内存中** 数据库配合使用. ### 创建数据库 @@ -48,9 +50,9 @@ ![set-as-startup-project](images/set-as-startup-project.png) -打开**包管理器控制台(Package Manager Console)**, 选择`.EntityFrameworkCore`项目作为**默认项目**并运行`Update-Database`命令: +打开**包管理器控制台(Package Manager Console)**, 选择`.EntityFrameworkCore.DbMigrations`项目作为**默认项目**并运行`Update-Database`命令: -![pcm-update-database](images/pcm-update-database.png) +![pcm-update-database](images/pcm-update-database-v2.png) 这将基于配置的连接字符串创建新数据库. diff --git a/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-I.md b/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-I.md index 34acc3f01f..dfc17e431d 100644 --- a/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-I.md +++ b/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-I.md @@ -20,7 +20,7 @@ 下面的图片展示了从启动模板创建的项目是如何分层的. -![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution.png) +![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-v2.png) ### 创建Book实体 @@ -93,7 +93,7 @@ public class BookStoreDbContext : AbpDbContext 这个启动模板使用了[EF Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/)来创建并维护数据库结构.打开 **Package Manager Console (PMC)** (工具/Nuget包管理器菜单),选择 `Acme.BookStore.EntityFrameworkCore`作为默认的项目然后执行下面的命令: -![bookstore-pmc-add-book-migration](images/bookstore-pmc-add-book-migration.png) +![bookstore-pmc-add-book-migration](images/bookstore-pmc-add-book-migration-v2.png) 这样就会在`Migrations`文件夹中创建一个新的migration类.然后执行`Update-Database`命令更新数据库结构. diff --git a/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-III.md b/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-III.md index 6b31e9ba84..0514c8fc1a 100644 --- a/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-III.md +++ b/docs/zh-Hans/Tutorials/AspNetCore-Mvc/Part-III.md @@ -14,7 +14,6 @@ 本解决方案中有两个测试项目: -![bookstore-test-projects](images/bookstore-test-projects.png) * `Acme.BookStore.Application.Tests` 项目用于单元测试和集成测试.你可以在这个项目中为Application Service方法写测试代码.这个项目使用了 **EF Core SQLite in-memory** 数据库. * `Acme.BookStore.Web.Tests` 项目用于包含Web层的完整集成测试.所以,你也可以在这里写关于UI页面的测试. diff --git a/docs/zh-Hans/images/bookstore-visual-studio-solution-v2.png b/docs/zh-Hans/images/bookstore-visual-studio-solution-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..48b5881e96d7d55d8ac5a292183c6236a07e9f05 GIT binary patch literal 8946 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 literal 0 HcmV?d00001 From 898686e086047b3df2f3f91d1386b70ce02d2ee5 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 22 Mar 2019 11:17:42 +0800 Subject: [PATCH 10/37] Translation Microservice Demo Document. --- docs/zh-Hans/Samples/Microservice-Demo.md | 696 +++++++++++----------- 1 file changed, 351 insertions(+), 345 deletions(-) diff --git a/docs/zh-Hans/Samples/Microservice-Demo.md b/docs/zh-Hans/Samples/Microservice-Demo.md index 67ba362c24..3a9305f771 100644 --- a/docs/zh-Hans/Samples/Microservice-Demo.md +++ b/docs/zh-Hans/Samples/Microservice-Demo.md @@ -35,98 +35,97 @@ ABP框架的主要目标之一就是提供[便捷的基础设施来创建微服 此示例仍处于开发阶段,尚未完成. -## Running the Solution +## 运行解决方案 -You can either run from the **source code** or from the pre-configured **docker-compose** file. +您可以从 **源代码** 或者预先配置好的 **docker-compose** 文件运行. -### Using the Docker Containers +### 使用Docker容器 -#### Pre Requirements +#### 预先要求 -Running as docker containers is easier since all dependencies are pre-configured. You only need to install the [latest docker](https://docs.docker.com/compose/install/). +由于所有依赖项都已预先配置, 因此作为Docker容器运行更容易. 你只需要安装[最新的docker](https://docs.docker.com/compose/install/). -#### Running Containers +#### 运行容器 -- Clone or download the [ABP repository](https://github.com/abpframework/abp). +- 克隆或下载 [ABP仓库](https://github.com/abpframework/abp). -- Open a command line in the `samples/MicroserviceDemo` folder of the repository. +- 在存储库的`samples/MicroserviceDemo`文件夹中打开命令行. - -- Pull images from Docker Hub: +- 从Docker Hub中拉取image: ``` docker-compose -f docker-compose.yml -f docker-compose.migrations.yml pull ``` -- If you want to build images locally you may skip the above step and instead use build command: +- 如果要在本地构建映像, 可以跳过上述步骤, 使用build命令: ``` docker-compose -f docker-compose.yml -f docker-compose.migrations.yml build ``` - Building images may take a **long time** depending on your machine. + 根据你的电脑配置, 构建image可能需要**很长时间**. -- Restore SQL Server databases: +- 还原 SQL Server 数据库: ``` docker-compose -f docker-compose.yml -f docker-compose.migrations.yml run restore-database ``` -- Start the containers: +- 启动容器: ``` docker-compose up -d ``` -- Add this line to the end of your `hosts` file: +- 将此行添加到`hosts`文件的末尾: ``` 127.0.0.1 auth-server ``` - hosts file is located inside the `C:\Windows\System32\Drivers\etc\hosts` folder on Windows and `/etc/hosts` for Linux/MacOS. + hosts文件位于Windows上的`C:\Windows\System32\Drivers\etc\hosts`文件夹, Linux/MacOS的`/etc/hosts`中. -#### Run the Applications +#### 运行应用程序 -There are a few applications running in the containers you may want to explore: +你可能想要了解容器中运行一些应用程序: -* Backend Admin Application (BackendAdminApp.Host): `http://localhost:51512` - *(Used to manage users & products in the system)* -* Public Web Site (PublicWebsite.Host): `http://localhost:51513` - *(Used to list products and run/manage the blog module)* -* Authentication Server (AuthServer.Host): `http://auth-server:51511/` - *(Used as a single sign on and authentication server built with IdentityServer4)* +* 后端管理应用程序 (BackendAdminApp.Host): `http://localhost:51512` + *(用于管理系统中的用户和产品)* +* 公共网站 (PublicWebsite.Host): `http://localhost:51513` + *(用于列出产品并运行/管理博客模块)* +* 认证服务器 (AuthServer.Host): `http://auth-server:51511/` + *(用作使用IdentityServer4构建的单点登录和身份验证服务器)* * Kibana UI: `http://localhost:51510` - *(Use to show/trace logs written by all services/applications/gateways)* + *(用于显示/跟踪所有服务/应用程序/网关写入的日志)* -### Running From the Source Code +### 从源代码运行 -#### Pre Requirements +#### 预先要求 -To be able to run the solution from source code, following tools should be installed and running on your computer: +为了能够从源代码运行解决方案, 应在你的计算机上安装并运行以下工具: -* [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) 2015+ (can be [express edition](https://www.microsoft.com/en-us/sql-server/sql-server-editions-express)) +* [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) 2015+ (可以是 [express edition](https://www.microsoft.com/en-us/sql-server/sql-server-editions-express)) * [Redis](https://redis.io/download) 5.0+ * [RabbitMQ](https://www.rabbitmq.com/install-windows.html) 3.7.11+ * [MongoDB](https://www.mongodb.com/download-center) 4.0+ * [ElasticSearch](https://www.elastic.co/downloads/elasticsearch) 6.6+ -* [Kibana](https://www.elastic.co/downloads/kibana) 6.6+ (optional, recommended to show logs) +* [Kibana](https://www.elastic.co/downloads/kibana) 6.6+ (可选,建议显示日志) -#### Open & Build the Visual Studio Solution +#### 打开并构建Visual Studio解决方案 -* Open the `samples\MicroserviceDemo\MicroserviceDemo.sln` in Visual Studio 2017 (15.9.0+). -* Run `dotnet restore` from the command line inside the `samples\MicroserviceDemo` folder. -* Build the solution in Visual Studio. +* 在Visual Studio 2017 (15.9.0+)中打开`samples\MicroserviceDemo\MicroserviceDemo.sln`. +* 在`samples\MicroserviceDemo`文件夹中的命令行运行`dotnet restore`命令. +* 在Visual Studio中构建解决方案. -#### Restore Databases +#### 还原数据库 -Open `MsDemo_Identity.zip` and `MsDemo_ProductManagement.zip` inside the `samples\MicroserviceDemo\databases` folder and restore to the SQL Server. +在`samples\MicroserviceDemo\databases`文件夹中打开`MsDemo_Identity.zip`和`MsDemo_ProductManagement.zip`并恢复到SQL Server. -> Notice that: These databases have EF Core migrations in the solution, however they don't have seed data, especially required for IdentityServer4 configuration. So, restoring the databases is much more easier. +> 请注意:这些数据库在解决方案中具有EF Core迁移,但它们没有种子数据,尤其是IdentityServer4所需的配置. 因此,恢复数据库要容易得多. -#### Run Projects +#### 运行项目 -Run the projects with the following order (right click to each project, set as startup project an press Ctrl+F5 to run without debug): +按以下顺序运行项目(右键单击每个项目设置为启动项目,按Ctrl+F5运行,无需调试): * AuthServer.Host * IdentityService.Host @@ -138,61 +137,61 @@ Run the projects with the following order (right click to each project, set as s * BackendAdminApp.Host * PublicWebSite.Host -## A Brief Overview of the Solution +## 解决方案简介 -The Visual Studio solution consists of multiple projects each have different roles in the system: +Visual Studio解决方案由多个项目组成,每个项目在系统中具有不同的角色: ![microservice-sample-solution](../images/microservice-sample-solution.png) -### Applications +### 应用程序(Applications) -These are the actual applications those have user interfaces to interact to the users and use the system. +这些是具有用户界面以与用户交互并使用系统的实际应用程序. -- **AuthServer.Host**: Host the IdentityServer4 to provide an authentication service to other services and applications. It is a single-sign server and contains the login page. -- **BackendAdminApp.Host**: This is a backend admin application that host UI for Identity and Product management modules. -- **PubicWebSite.Host**: As public web site that contains a simple product list page and blog module UI. -- **ConsoleClientDemo**: A simple console application to demonstrate the usage of services from a C# application. +- **AuthServer.Host**: 托管IdentityServer4以向其他服务和应用程序提供身份验证服务. 它是一个单点登录服务器,包含登录页面. +- **BackendAdminApp.Host**: 这是一个后端管理应用程序,用于托管身份和产品管理模块的UI. +- **PubicWebSite.Host**: 作为包含简单产品列表页面和博客模块UI的公共网站. +- **ConsoleClientDemo**: 一个简单的控制台应用程序,用于演示C#应用程序中使用服务. -### Gateways / BFFs (Backend for Frontend) +### 网关/BFF(前端后端) -Gateways are used to provide a single entry point to the applications. It can also used for rate limiting, load balancing... etc. Used the [Ocelot](https://github.com/ThreeMammals/Ocelot) library. +网关用于为应用程序提供单一入口点.它还可以用于速率限制,负载平衡等. 使用[Ocelot](https://github.com/ThreeMammals/Ocelot)类库. -* **BackendAdminAppGateway.Host**: Used by the BackendAdminApp.Host application as backend. -* **PublicWebSiteGateway.Host**: Used by the PublicWebSite.Host application as backend. -* **InternalGateway.Host**: Used for inter-service communication (the communication between microservices). +* **BackendAdminAppGateway.Host**: 由BackendAdminApp.Host应用程序用作后端. +* **PublicWebSiteGateway.Host**: 由PublicWebSite.Host应用程序用作后端. +* **InternalGateway.Host**: 用于服务间通信(微服务之间的通信). -### Microservices +### 微服务 -Microservices have no UI, but exposes some REST APIs. +微服务没有UI,但暴露了一些REST API. -- **IdentityService.Host**: Host the ABP Identity module which is used to manage users & roles. It has no additional service, but only hosts the Identity module's API. -- **BloggingService.Host**: Host the ABP Blogging module which is used to manage blog & posts (a typical blog application). It has no additional service, but only hosts the Blogging module's API. -- **ProductService.Host**: Hosts the Product module (that is inside the solution) which is used to manage products. It also contains the EF Core migrations to create/update the Product Management database schema. +- **IdentityService.Host**: 托管用于管理用户和角色的ABP Identity模块. 它没有其他服务,仅托管Identity模块的API. +- **BloggingService.Host**: 托管ABP博客模块,该模块用于管理博客和帖子(典型的博客应用程序). 它没有其他服务,仅托管Blogging模块的API. +- **ProductService.Host**: 托管用于管理产品的产品模块(位于解决方案内). 它还包含用于创建/更新产品管理数据库架构的EF Core迁移. -### Modules +### 模块 -* **Product**: A layered module that is developed with the [module development best practices](../Best-Practices/Index.md). It can be embedded into a monolithic application or can be hosted as a microservice by separately deploying API and UI (as done in this demo solution). +* **产品**: 使用[模块开发最佳实践](../Best-Practices/Index.md)开发的分层模块. 它可以嵌入到单个应用程序中,也可以通过单独部署API和UI作为微服务托管(如本演示解决方案中所述). -### Databases +### 数据库 -This solution is using multiple databases: +此解决方案使用多个数据库: -* **MsDemo_Identity**: An SQL database. Used **SQL Server** by default, but can be any DBMS supported by the EF Core. Shared by AuthServer and IdentityService. Also audit logs, permissions and settings are stored in this database (while they could easily have their own databases, shared the same database to keep it simple). -* **MsDemo_ProductManagement**: An SQL database. Again, used **SQL Server** by default, but can be any DBMS supported by the EF Core. Used by the ProductService as a dedicated database. -* **MsDemo_Blogging**: A **MongoDB** database. Used by the BloggingService. -* **Elasticsearch**: Used to write logs over Serilog. +* **MsDemo_Identity**: 一个SQL数据库. 默认使用** SQL Server **,但可以是EF Core支持的任何DBMS. 由AuthServer和IdentityService共享. 审计日志,权限和设置也存储在此数据库中(虽然它们可以轻松拥有自己的数据库,共享相同的数据库以保持简单). +* **MsDemo_ProductManagement**: 一个SQL数据库. 同样默认使用 **SQL Server**,但可以是EF Core支持的任何DBMS. 由ProductService用作专用数据库. +* **MsDemo_Blogging**: **MongoDB**数据库. 由BloggingService使用. +* **Elasticsearch**: 用于在Serilog上写日志. -## Applications +## 应用 -### Authentication Server (AuthServer.Host) +### 认证服务器 (AuthServer.Host) -This project is used by all other services and applications for authentication & single sign on. Mainly, uses **IdentityServer4** to provide these services. It uses some of the [pre-build ABP modules](../Modules/Index) like *Identity*, *Audit Logging* and *Permission Management*. +所有其他服务和应用程序都使用此项目进行身份验证和单点登录. 主要使用**IdentityServer4**来提供这些服务. 它使用了一些[预构建ABP模块](../Modules/Index) 如 *Identity*, *Audit Logging* 和 *Permission Management*. -#### Database & EF Core Configuration +#### 数据库和EF Core配置 -This application uses a SQL database (named it as **MsDemo_Identity**) and maintains its schema via **Entity Framework Core migrations.** +此应用程序使用SQL数据库(将其命名为**MsDemo_Identity**)并通过**Entity Framework Core迁移**维护其架构. -It has a DbContext named **AuthServerDbContext** and defined as shown below: +它有一个名为**AuthServerDbContext**的DbContext,定义如下: ````csharp public class AuthServerDbContext : AbpDbContext @@ -216,35 +215,35 @@ public class AuthServerDbContext : AbpDbContext } ```` -In the **OnModelCreating**, you see **ConfigureX()** method calls. A module with a database schema generally declares such an extension method to configure EF Core mappings for its own entities. This is a flexible approach where you can arrange your databases and modules inside them; You can use a different database for each module, or combine some of them in a shared database. In the AuthServer project, we decided to combine multiple module schemas in a single EF Core DbContext, in a single physical database. These modules are Identity, IdentityServer, AuditLogging, PermissionManagement and SettingManagement modules. +在**OnModelCreating**方法中, 你会看到 **ConfigureX()** 方法调用. 具有数据库模式的模块通常声明这样的扩展方法,以便为其自己的实体配置EF Core映射. 这是一种灵活的方法, 可以在其中安排数据库和模块; 可以为每个模块使用不同的数据库,或者将它们中的一些组合在一个共享数据库中. 在AuthServer项目中,我们决定在单个物理数据库中将单个EF Core DbContext中的多个模块模式组合在一起. 这些模块是Identity,IdentityServer,AuditLogging,PermissionManagement和SettingManagement模块. -Notice that this DbContext is only for database migrations. All modules have their own `DbContext` classes those are used in the runtime by the modules. +请注意,此DbContext仅用于数据库迁移. 所有模块都有自己的`DbContext`类,模块在运行时使用这些类. -#### User Interface +#### 用户界面 -AuthServer has a simple home page that shows the current user info if the current user has logged in: +AuthServer有一个简单的主页,如果当前用户已登录,则显示当前用户信息: ![microservice-sample-authserver-home](../images/microservice-sample-authserver-home.png) -It also provides Login & Register pages: +它还提供登录和注册页面: ![microservice-sample-authserver-login](../images/microservice-sample-authserver-login.png) -These pages are not included in the project itself. Instead, AuthServer project uses the prebuilt ABP [account module](https://github.com/abpframework/abp/tree/master/modules/account) with IdentityServer extension. That means it can also act as an OpenId Connect server with necessary UI and logic. +这些页面不包含在项目本身中. 相反,AuthServer项目使用带有IdentityServer扩展的预构建ABP[帐户模块](https://github.com/abpframework/abp/tree/master/modules/account). 这意味着它还可以充当具有必要UI和逻辑的OpenId Connect服务器. -#### Dependencies +#### 依赖 -* **RabbitMQ** for messaging to other services. -* **Redis** for distributed/shared caching. -* **Elasticsearch** for storing logs. +* **RabbitMQ** 用于向其他服务发送消息. +* **Redis** 用于分布式/共享缓存. +* **Elasticsearch** 用于存储日志. -### Backend Admin Application (BackendAdminApp.Host) +### 后端管理应用程序 (BackendAdminApp.Host) -This is a web application that is used to manage users, roles, permissions and products in the system. +这是一个Web应用程序,用于管理系统中的用户,角色,权限和产品. -#### Authentication +#### 认证 -BackendAdminApp redirects to the AuthServer for authentication. Once the user enters a correct username & password, the page is redirected to the backend application again. Authentication configuration is setup in the `BackendAdminAppHostModule` class: +BackendAdminApp重定向到AuthServer进行身份验证. 用户输入正确的用户名和密码后,页面将再次重定向到后端应用程序. 身份验证配置在`BackendAdminAppHostModule`类中设置: ````charp context.Services.AddAuthentication(options => @@ -276,12 +275,13 @@ context.Services.AddAuthentication(options => }); ```` -* It adds "Cookies" authentication as the primary authentication type. -* "oidc" authentication is configured to use the AuthServer application as the authentication server. -* It requires the additional identity scopes *role*, *email* and *phone*. +* 它将"Cookies"身份验证添加为主要身份验证类型. +* "oidc"身份验证配置为使用AuthServer应用程序作为身份验证服务器. +* 它需要额外的身份范围(scopes) *role*, *email* and *phone*. * It requires the API resource scopes *BackendAdminAppGateway*, *IdentityService* and *ProductService* because it will use these services as APIs. +* 它需要API资源范围 *BackendAdminAppGateway*, *IdentityService* 和 *ProductService*,因为它将这些服务用作API. -IdentityServer client settings are stored inside the `appsettings.json` file: +IdentityServer客户端设置存储在`appsettings.json`文件中: ````json "AuthServer": { @@ -291,25 +291,27 @@ IdentityServer client settings are stored inside the `appsettings.json` file: } ```` -#### User Interface +#### 用户界面 + +BackendAdminApp.Host项目本身没有单个UI元素/页面. 它仅用于提供身份和产品管理模块的UI页面. -The BackendAdminApp.Host project itself has not a single UI element/page. It is only used to serve UI pages of the Identity and Product Management modules. `BackendAdminAppHostModule` adds dependencies to `AbpIdentityWebModule` (*[Volo.Abp.Identity.Web](https://www.nuget.org/packages/Volo.Abp.Identity.Web)* package) and `ProductManagementWebModule` (*ProductManagement.Web* project) for that purpose. +`BackendAdminAppHostModule`将依赖关系添加到`AbpIdentityWebModule`(*[Volo.Abp.Identity.Web](https://www.nuget.org/packages/Volo.Abp.Identity.Web)* 包)和`ProductManagementWebModule`(*ProductManagement.Web*项目)为此目的. -A screenshot from the user management page: +用户管理页面的屏幕截图: ![microservice-sample-backend-ui](../images/microservice-sample-backend-ui.png) -A screenshot from the permission management modal for a role: +来自权限的权限管理模式的屏幕截图: ![microservice-sample-backend-ui-permissions](../images/microservice-sample-backend-ui-permissions.png) -#### Using Microservices +#### 使用微服务 -Backend admin application uses the Identity and Product microservices for all operations, over the Backend Admin Gateway (BackendAdminAppGateway.Host). +后端管理应用程序通过后端管理网关对所有操作使用Identity和Product微服务(BackendAdminAppGateway.Host). -##### Remote End Point +##### 远程端点 -`appsettings.json` file contains the `RemoteServices` section to declare the remote service endpoint(s). Each microservice will normally have different endpoints. However, this solution uses the API Gateway pattern to provide a single endpoint for the applications: +`appsettings.json`文件包含`RemoteServices`部分,用于声明远程服务端点. 每个微服务通常都有不同的端点. 但是,此解决方案使用API网关模式为应用程序提供单个端点: ````json "RemoteServices": { @@ -319,32 +321,32 @@ Backend admin application uses the Identity and Product microservices for all op } ```` -`http://localhost:65115/` is the URL of the *BackendAdminAppGateway.Host* project. It knows where are Identity and Product services are located. +`http://localhost:65115/` 是 *BackendAdminAppGateway.Host* 项目的URL. 它知道身份和产品服务的位置. ##### HTTP Clients -ABP application modules generally provides C# client libraries to consume services (APIs) easily (they generally uses the [Dynamic C# API Clients](../AspNetCore/Dynamic-CSharp-API-Clients.md) feature of the ABP framework). That means if you need to consume Identity service API, you can reference to its client package and easily use the APIs by provided interfaces. +ABP应用程序模块通常提供C#客户端库以轻松地使用服务(API)(它们通常使用ABP框架的[Dynamic C# API客户端](../AspNetCore/Dynamic-CSharp-API-Clients.md)). 这意味着如果你需要使用Identity Service API, 你可以引用其客户端软件包,并通过提供的接口轻松使用API. -For that purpose, `BackendAdminAppHostModule` class declares dependencies for `AbpIdentityHttpApiClientModule` and `ProductManagementHttpApiClientModule`. +为此`BackendAdminAppHostModule`类声明了`AbpIdentityHttpApiClientModule`和`ProductManagementHttpApiClientModule`的依赖关系. -Once you refer these client packages, you can directly inject an application service interface (e.g. `IIdentityUserAppService`) and use its methods like a local method call. It actually invokes remote service calls over HTTP to the related service endpoint. +一旦引用这些客户端软件包,就可以直接注入应用程序服务接口(例如`IIdentityUserAppService`)并使用其方法,如本地方法调用. 它实际上通过HTTP调用到相关服务端点的远程服务调用. -##### Passing the Access Token +##### 传递访问令牌(Access Token) -Since microservices requires authentication & authorization, each remote service call should contain an Authentication header. This header is obtained from the `access_token` inside the current `HttpContext` for the current user. This is automatically done when you use the `Volo.Abp.Http.Client.IdentityModel` package. `BackendAdminAppHostModule` declares dependencies to this package and to the related `AbpHttpClientIdentityModelModule` class. It is integrated to the HTTP Clients explained above. +由于微服务需要身份验证和授权,因此每个远程服务调用都应包含Authentication头. 该头是从当前用户的当前`HttpContext`中的`access_token`获得的. 当你使用`Volo.Abp.Http.Client.IdentityModel`包时,会自动执行此操作. `BackendAdminAppHostModule`声明对此包和相关的`AbpHttpClientIdentityModelModule`类的依赖. 它集成到上面解释的HTTP客户端. -#### Dependencies +#### 依赖 -- **Redis** for distributed/shared caching. -- **Elasticsearch** for storing logs. +- **Redis** 用于分布式/共享缓存. +- **Elasticsearch** 用于存储日志. -### Public Web Site (PublicWebSite.Host) +### 公共网站 (PublicWebSite.Host) -This is a public web site project that has a web blog and product list page. +这是一个公共网站项目,具有Web博客和产品列表页面. -#### Authentication +#### 认证 -PublicWebSite can show blog posts and product list without login. If you login, you can also manage blogs. It redirects to the AuthServer for authentication. Once the user enters a correct username & password, the page is redirected to the public web site application again. Authentication configuration is setup in the `PublicWebSiteHostModule` class: +公共网站可以在不登录的情况下显示博客文章和产品列表. 如果你登录,你还可以管理博客. 它重定向到AuthServer进行身份验证. 用户输入正确的用户名和密码后,页面将再次重定向到公共网站应用程序. 身份验证配置在`PublicWebSiteHostModule`类中设置: ```charp context.Services.AddAuthentication(options => @@ -376,12 +378,12 @@ context.Services.AddAuthentication(options => }); ``` -- It adds "Cookies" authentication as the primary authentication type. -- "oidc" authentication is configured to use the AuthServer application as the authentication server. -- It requires the additional identity scopes *role*, *email* and *phone*. -- It requires the API resource scopes *PublicWebSiteGateway*, *BloggingService* and *ProductService* because it will use these services as APIs. +- 它将"Cookies"身份验证添加为主要身份验证类型. +- "oidc"身份验证配置为使用AuthServer应用程序作为身份验证服务器. +- 它需要额外的身份范围 *role*, *email* and *phone*. +- 它需要API资源范围 *PublicWebSiteGateway*,*BloggingService*和*ProductService*,因为它将这些服务用作API. -IdentityServer client settings are stored inside the `appsettings.json` file: +IdentityServer客户端设置存储在`appsettings.json`文件中: ```json "AuthServer": { @@ -391,21 +393,22 @@ IdentityServer client settings are stored inside the `appsettings.json` file: } ``` -#### User Interface +#### 用户界面 -The PublicWebSite.Host project has a page to list products (`Pages/Products.cshtml`). It also uses the UI from the blogging module. `PublicWebSiteHostModule` adds dependencies to `BloggingWebModule` (*[Volo.Blogging.Web](https://www.nuget.org/packages/Volo.Blogging.Web)* package) for that purpose. +PublicWebSite.Host项目有一个列出产品的页面 (`Pages/Products.cshtml`). 它还使用博客模块中的UI. 为此`PublicWebSiteHostModule`加入了`BloggingWebModule`(*[Volo.Blogging.Web](https://www.nuget.org/packages/Volo.Blogging.Web)* 包)的依赖项. -A screenshot from the Products page: +产品页面的屏幕截图: ![microservice-sample-public-product-list](../images/microservice-sample-public-product-list.png) -#### Using Microservices +#### 使用微服务 + +公共网站应用程序使用Blogging和Product微服务通过公共网站网关进行所有操作(PublicWebSiteGateway.Host). -Publc web site application uses the Blogging and Product microservices for all operations, over the Public Web Site Gateway (PublicWebSiteGateway.Host). +##### 远程端点 -##### Remote End Point -`appsettings.json` file contains the `RemoteServices` section to declare the remote service endpoint(s). Each microservice will normally have different endpoints. However, this solution uses the API Gateway pattern to provide a single endpoint for the applications: +`appsettings.json`文件包含`RemoteServices`部分,用于声明远程服务端点. 每个微服务通常都有不同的端点. 但是,此解决方案使用API网关模式为应用程序提供单个端点: ```json "RemoteServices": { @@ -415,28 +418,28 @@ Publc web site application uses the Blogging and Product microservices for all o } ``` -`http://localhost:64897/` is the URL of the *PublicWebSiteGateway.Host* project. It knows where are Blogging and Product services are located. +`http://localhost:64897/` 是*PublicWebSiteGateway.Host*项目的URL. 它知道Blogging和产品服务的位置. ##### HTTP Clients -`PublicWebSiteHostModule` class declares dependencies for `BloggingHttpApiClientModule` and `ProductManagementHttpApiClientModule` to be able to use remote HTTP APIs for these services. +`PublicWebSiteHostModule`类声明`BloggingHttpApiClientModule`和`ProductManagementHttpApiClientModule`的依赖关系,以便能够为这些服务使用远程HTTP API. -##### Passing the Access Token +##### 传递访问令牌(Access Token) -Just like explained in the Backend Admin Application section, Public Web Site project also uses the `AbpHttpClientIdentityModelModule` to pass `access_token` to the calling services for authentication. +正如后端管理应用程序部分中所述, Public Web Site项目还使用`AbpHttpClientIdentityModelModule`将`access_token`传递给调用服务进行身份验证. #### Dependencies -- **Redis** for distributed/shared caching. -- **Elasticsearch** for storing logs. +- **Redis** 用于分布式/共享缓存. +- **Elasticsearch** 用于存储日志. -### Console Client Demo +### 控制台客户端演示 -Finally, the solution includes a very simple console application, named ConsoleClientDemo, that uses Identity and Product services by authenticating through the AuthServer. It uses the Internal Gateway (InternalGateway.Host) to perform HTTP API calls. +最后,该解决方案包括一个非常简单的控制台应用程序,名为ConsoleClientDemo,它通过AuthServer进行身份验证来使用Identity和Product服务. 它使用内部网关(InternalGateway.Host)来执行HTTP API调用. -#### Remote Service Configuration +#### 远程服务配置 -`RemoteService` configuration in the `appsettings.json` file is simple: +`appsettings.json`文件中的`RemoteService`配置很简单: ````json "RemoteServices": { @@ -446,11 +449,11 @@ Finally, the solution includes a very simple console application, named ConsoleC } ```` -`http://localhost:65129/` is the URL of the Internal Gateway. All API calls to the services are performed over this URL. +`http://localhost:65129/` 是内部网关的URL. 对服务的所有API调用都是通过此URL执行的. -#### Authentication (IdentityServer Client) Configuration +#### 身份验证(IdentityServer客户端)配置 -`appsettings.json` also has a configuration for the IdentityServer authentication: +`appsettings.json`还有一个IdentityServer身份验证配置: ````json "IdentityClients": { @@ -464,7 +467,7 @@ Finally, the solution includes a very simple console application, named ConsoleC } ```` -This sample uses the `client_credentials` grant type which requires a `ClientId` and `ClientSecret` for the authentication process. There are also [other grant types](http://docs.identityserver.io/en/latest/topics/grant_types.html). For example, you can use the following configuration to swith to the `password` (Resource Owner Password) grant type: +此示例使用`client_credentials` 授予类型,该类型需要`ClientId`和`ClientSecret`进行身份验证过程. 还有[其他授予类型](http://docs.identityserver.io/en/latest/topics/grant_types.html). 例如, 你可以使用以下配置切换到`password`(Resource Owner Password)授予类型: ````json "IdentityClients": { @@ -480,33 +483,33 @@ This sample uses the `client_credentials` grant type which requires a `ClientId` } ```` -Resource Owner Password requires a `UserName` & `UserPassword` in addition to client credentials. This grant type is useful to call remote services on behalf of a user. +除客户端凭据外,Resource Owner Password还需要`UserName` 和 `UserPassword`. 此授权类型对于代表用户调用远程服务很有用. -`Scope` declares the APIs (and the gateway) to grant access. This application uses the Internal Gateway. +`Scope` 声明API(和网关)以授予访问权限. 此应用程序使用内部网关. -#### HTTP Client Dependencies +#### HTTP Client依赖 -`ConsoleClientDemoModule` has dependencies to `AbpIdentityHttpApiClientModule` and `ProductManagementHttpApiClientModule` in order to use Identity and Product APIs. It also has `AbpHttpClientIdentityModelModule` dependency to authenticate via IdentityServer. +`ConsoleClientDemoModule`与`AbpIdentityHttpApiClientModule`和`ProductManagementHttpApiClientModule`有依赖关系,以便使用Identity和Product API. 它还具有“AbpHttpClientIdentityModelModule”依赖性,可通过IdentityServer进行身份验证. -#### Using the Services +#### 使用服务 -Using the services is straightforward. See the `ClientDemoService` class which simply injects `IIdentityUserAppService` and `IProductAppService` and uses them. This class also shows a manual HTTP call using an `HttpClient` object. See source code of the `ClientDemoService` for details. +使用这些服务非常简单. 请参阅`ClientDemoService`类,它只是注入`IIdentityUserAppService`和`IProductAppService`并使用它们. 该类还显示了使用`HttpClient`对象的手动HTTP调用. 有关详细信息,请参阅`ClientDemoService`的源代码. -## API Gateways / BFFs (Backend for Frontend) +## API网关/ BFF(前端后端) -Gateways are used to provide a **single entry point** to the applications. In this way, an application only deal with a single service address (API endpoint) instead of a different addresses for each services. Gateways are also used for rate limiting, security, authentication, load balancing and many more requirements. +网关用于为应用程序提供 **单一入口点**. 通过这种方式,应用程序仅处理单个服务地址(API端点),而不是每个服务的不同地址. 网关还用于速率限制,安全性,身份验证,负载平衡和更多要求. -"**Backend for Frontend**" (BFF) is a common architectural pattern which offers to build a **dedicated and specialized** gateway for each different application / client type. This solution uses this pattern and has multiple gateways. +"**后端前端**"(BFF)是一种常见的架构模式,可为每种不同的应用程序/客户端类型构建**专注而专业的**网关. 此解决方案使用此模式并具有多个网关. -This solution uses the [Ocelot](https://github.com/ThreeMammals/Ocelot) library to build API Gateways. It's a widely accepted API Gateway library for ASP.NET Core. +此解决方案使用[Ocelot](https://github.com/ThreeMammals/Ocelot)库来构建API网关. 它是ASP.NET核心广泛接受的API网关库. -### Backend Admin Application Gateway (BackendAdminAppGateway.Host) +### 后端管理应用程序网关 (BackendAdminAppGateway.Host) -This is backend (server side API) for the "Backend Admin Application" (don't confuse about the naming; Backend Admin Application is a frontend web application actually, but used by system admins rather than regular users). +这是"后端管理应用程序"的后端(服务器端API)(不要混淆命名;后端管理应用程序实际上是前端Web应用程序,但系统管理员而不是普通用户使用). -#### Authentication +#### 认证 -This gateway uses IdentityServer `Bearer` authentication and configured like that: +此网关使用IdentityServer `Bearer`身份验证并配置如下: ````csharp context.Services.AddAuthentication("Bearer") @@ -526,9 +529,9 @@ context.Services.AddAuthentication("Bearer") }); ```` -`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). +`AddIdentityServerAuthentication` 扩展方法来自 [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) 包, IdentityServer4项目的一部分 (参见 [identityserver文档](http://docs.identityserver.io/en/latest/topics/apis.html)). -`ApiName` is the API which is being protected, `BackendAdminAppGateway` in this case. So, this solution defines gateways as API resources. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: +`ApiName`是受保护的API,在这种情况下是`BackendAdminAppGateway`. 因此,此解决方案将网关定义为API资源. 其余配置与声明映射(计划在下一个ABP版本中自动化)相关. `appsettings.json`中的身份验证相关的配置很简单: ````json "AuthServer": { @@ -537,9 +540,9 @@ context.Services.AddAuthentication("Bearer") } ```` -#### Ocelot Configuration +#### Ocelot配置 -Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: +Ocelot需要知道微服务的真实URL才能重定向HTTP请求. 此网关的配置如下所示: ````json "ReRoutes": [ @@ -573,26 +576,28 @@ Ocelot needs to know the real URLs of the microservices to be able to redirect H } ```` -`ReRoutes` is an array of URL mappings. `BaseUrl` in the `GlobalConfiguration` section is the URL of this gateway (Ocelot needs to know its own URL). See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the configuration. +`ReRoutes`是一个URL映射数组. `GlobalConfiguration`部分中的`BaseUrl`是该网关的URL(Ocelot需要知道自己的URL). 参见 [ocelot文档](https://ocelot.readthedocs.io/en/latest/features/configuration.html) 更好地了解配置. Ocelot is a finalizer ASP.NET Core middleware and should be written as the last item in the pipeline: +Ocelot是一个终结ASP.NET核心中间件,应该写成管道中的最后一项: + ````csharp app.UseOcelot().Wait(); ```` -It handles and redirects requests based on the configuration above. +它根据上面的配置处理和重定向请求. -#### ABP Configuration Endpoints +#### ABP 配置端点 -ABP provides some built-in APIs to get some configuration and information from the server. Examples: +ABP提供了一些内置API,以从服务器获取一些配置和信息. 例子: -* `/api/abp/application-configuration` returns localization texts, permission and setting values (try http://localhost:65115/api/abp/application-configuration for this gateway). -* `/Abp/ServiceProxyScript` returns dynamic javascript proxies to call services from a javascript client (try http://localhost:65115/Abp/ServiceProxyScript for this gateway). +* `/api/abp/application-configuration` 返回本地化文本,权限和设置值 (http://localhost:65115/api/abp/application-configuration). +* `/Abp/ServiceProxyScript` 返回动态javascript代理以从javascript客户端调用服务 (http://localhost:65115/Abp/ServiceProxyScript ). -These endpoints should be served by the gateway service, not by microservices. A microservice can only know permissions related to that microservice. But, once properly configured, gateway can aggregate permission values for multiple services as a single list which is more suitable for clients. +这些端点应由网关服务提供,而不是由微服务提供. 微服务只能知道与该微服务相关的权限. 但是,一旦正确配置,网关就可以将多个服务的权限值聚合为一个更适合客户端的列表. -For this purpose, the ASP.NET Core pipeline was configured to handle some specific routes via MVC, instead of Ocelot. To make this possible, MapWhen extension method is used like that: +为此, ASP.NET Core管道配置为通过MVC而不是Ocelot处理某些特定路由. 为了实现这一点,MapWhen扩展方法使用如下: ````csharp app.MapWhen(ctx => ctx.Request.Path.ToString().StartsWith("/api/abp/") || @@ -605,33 +610,33 @@ app.MapWhen(ctx => ctx.Request.Path.ToString().StartsWith("/api/abp/") || app.UseOcelot().Wait(); ```` -This configuration uses standard MVC middleware when request path starts with `/api/abp/` or `/Abp/`. +当请求路径以 `/api/abp/` 或 `/Abp/`.开头时,此配置使用标准MVC中间件. #### Swagger -This gateway is configured to use the [swagger UI](https://swagger.io/tools/swagger-ui/), a popular tool to discover & test HTTP APIs. Normally, Ocelot does not support to show APIs on the swagger, because it can not know details of each microservice API. But it is possible when you follow ABP layered module architecture [best practices](../Best-Practices/Index.md). +此网关配置为使用[swagger UI](https://swagger.io/tools/swagger-ui/), 这是一种用于发现和测试HTTP API的流行工具. 通常,Ocelot不支持在swagger上显示API,因为它无法了解每个微服务API的详细信息. 但是当你遵循ABP分层模块架构[最佳实践](../Best-Practices/Index.md)时,它是可能的. -`BackendAdminAppGatewayHostModule` adds dependency to `AbpIdentityHttpApiModule` (*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* package) and `ProductManagementHttpApiModule` (*ProductManagement.HttpApi* project) to include their HTTP API Controllers. In this way, swagger can discover them. While it references to the API layer, it does not reference to the implementation of application services, because they will be running in the related microservice endpoints and redirected by the Ocelot based on the request URL. +`BackendAdminAppGatewayHostModule`将依赖性添加到`AbpIdentityHttpApiModule`(*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* 包)和`ProductManagementHttpApiModule`(*ProductManagement.HttpApi* 项目)以包含它们的HTTP API控制器. 通过这种方式,swagger可以发现它们. 虽然它引用了API层,但它没有引用应用程序服务的实现,因为它们将在相关的微服务端点中运行,并由Ocelot根据请求URL重定向. -Anyway, when you open the URL `http://localhost:65115/swagger/index.html`, you will see APIs of all configured microservices. +无论如何,当你打开URL`http://localhost:65115/swagger/index.html`时, 你将看到所有已配置的微服务的API. -#### Permission Management +#### 权限管理 -Backend Admin Application provides a permission management UI (seen before) and uses this gateway to get/set permissions. Permission management API is hosted inside the gateway, instead of a separate service. This is a design decision, but it could be hosted as another microservice if you would like. +后端管理应用程序提供权限管理UI(之前见过),并使用此网关获取/设置权限. 权限管理API托管在网关内,而不是单独的服务. 这是一个设计决策,但如果您愿意,它可以作为另一个微服务托管. #### Dependencies -- **RabbitMQ** for messaging to other services. -- **Redis** for distributed/shared caching. -- **Elasticsearch** for storing logs. +- **RabbitMQ** 用于向其他服务发送消息. +- **Redis** 用于分布式/共享缓存. +- **Elasticsearch** 用于存储日志. -### Public Web Site Gateway (PublicWebSiteGateway.Host) +### 公共网站网关 (PublicWebSiteGateway.Host) -This is backend (server side API gateway) for the "Public Web Site" application. +这是"公共网站"应用程序的后端(服务器端API网关). -#### Authentication +#### 认证 -This gateway uses IdentityServer `Bearer` authentication and configured like that: +此网关使用IdentityServer `Bearer`身份验证并配置如下: ```csharp context.Services.AddAuthentication("Bearer") @@ -651,9 +656,9 @@ context.Services.AddAuthentication("Bearer") }); ``` -`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). +`AddIdentityServerAuthentication` 扩展方法来自 [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation)包, IdentityServer4项目的一部分 (参见 [identityserver文档](http://docs.identityserver.io/en/latest/topics/apis.html)). -`ApiName` is the API which is being protected, `PublicWebSiteGateway` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: +`ApiName`是受保护的API,在这种情况下是`PublicWebSiteGateway`. 其余配置与声明映射(计划在下一个ABP版本中自动化)相关. 与`appsettings.json`中的身份验证相关的配置很简单: ```json "AuthServer": { @@ -662,9 +667,9 @@ context.Services.AddAuthentication("Bearer") } ``` -#### Ocelot Configuration +#### Ocelot配置 -Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: +Ocelot需要知道微服务的真实URL才能重定向HTTP请求. 此网关的配置如下所示: ```json "ReRoutes": [ @@ -698,25 +703,25 @@ Ocelot needs to know the real URLs of the microservices to be able to redirect H } ``` -See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the Ocelot configuration. +参见 [ocelot文档](https://ocelot.readthedocs.io/en/latest/features/configuration.html) 更好地了解配置. -#### Other +#### 其它 -See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend Admin Application Gateway" section which are very similar for this gateway. +请参阅"后端管理应用程序网关"部分中的"ABP配置端点"和"Swagger"主题,这些主题与此网关非常相似. -#### Dependencies +#### 依赖 -- **RabbitMQ** for messaging to other services. -- **Redis** for distributed/shared caching. -- **Elasticsearch** for storing logs. +- **RabbitMQ** 用于向其他服务发送消息. +- **Redis** 用于分布式/共享缓存. +- **Elasticsearch** 用于存储日志. -### Internal Gateway (InternalGateway.Host) +### 内部网关 (InternalGateway.Host) -This gateway is not a BFF. It is designed for inter-microservice communication and is not exposed publicly. +该网关不是BFF. 它专为微服务间通信而设计,不会公开. -#### Authentication +#### 认证 -This gateway uses IdentityServer `Bearer` authentication and configured like that: +此网关使用IdentityServer `Bearer`身份验证并配置如下: ```csharp context.Services.AddAuthentication("Bearer") @@ -735,9 +740,9 @@ context.Services.AddAuthentication("Bearer") }); ``` -`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). +`AddIdentityServerAuthentication` 扩展方法来自 [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation)包, IdentityServer4项目的一部分 (参见 [identityserver文档](http://docs.identityserver.io/en/latest/topics/apis.html)). -`ApiName` is the API which is being protected, `InternalGateway` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: +`ApiName`是受保护的API,在这种情况下是`InternalGateway`. 其余配置与声明映射(计划在下一个ABP版本中自动化)相关. 与`appsettings.json`中的身份验证相关的配置很简单: ```json "AuthServer": { @@ -746,9 +751,9 @@ context.Services.AddAuthentication("Bearer") } ``` -#### Ocelot Configuration +#### Ocelot 配置 -Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: +Ocelot需要知道微服务的真实URL才能重定向HTTP请求. 此网关的配置如下所示: ```json "ReRoutes": [ @@ -794,47 +799,47 @@ Ocelot needs to know the real URLs of the microservices to be able to redirect H } ``` -`ReRoutes` configuration covers all microservices in the system. See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the Ocelot configuration. +`ReRoutes`配置涵盖了系统中的所有微服务. 参见 [ocelot文档](https://ocelot.readthedocs.io/en/latest/features/configuration.html) 更好地了解配置. -#### Other +#### 其它 -See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend Admin Application Gateway" section which are very similar for this gateway. +请参阅"后端管理应用程序网关"部分中的"ABP配置端点"和"Swagger"主题,这些主题与此网关非常相似. -#### Dependencies +#### 依赖 -- **RabbitMQ** for messaging to other services. -- **Redis** for distributed/shared caching. -- **Elasticsearch** for storing logs. +- **RabbitMQ** 用于向其他服务发送消息. +- **Redis** 用于分布式/共享缓存. +- **Elasticsearch** 用于存储日志. -## Microservices +## 微服务 -Microservices are standalone HTTP APIs those implement the business of the system in a distributed manner. +微服务是独立的HTTP API,它们以分布式方式实现系统业务. -* They are used by applications and other microservices through the gateways and HTTP APIs. -* They can raise or register to events in the system. -* They can communicate to each other via asynchronous messaging. +* 它们由应用程序和其他微服务通过网关和HTTP API使用. +* 他们可以提升或注册系统中的事件. +* 它们可以通过异步消息传递相互通信. ### Identity Service (IdentityService.Host) -This service provides user and role management APIs. +此服务提供用户和角色管理API. -#### Database +#### 数据库 -Shares the same database (MsDemo_Identity) with the AuthServer application. +与AuthServer应用程序共享相同的数据库(MsDemo_Identity). -#### Identity Module +#### Identity模块 -This service actually just hosts the ABP Identity package/module. Does not include any API itself. In order to host it, adds the following dependencies: +该服务实际上只托管ABP身份包/模块. 不包含任何API本身. 为了托管它,添加以下依赖项: -* `AbpIdentityHttpApiModule` (*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* package) to provide Identity APIs. -* `AbpIdentityApplicationModule` (*[Volo.Abp.Identity.Application](https://www.nuget.org/packages/Volo.Abp.Identity.Application)* package) to host the implementation of the application and domain layers of the module. -* `AbpIdentityEntityFrameworkCoreModule` (*[Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* package) to use EF Core as database API. +* `AbpIdentityHttpApiModule` (*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* 包) 提供身份API. +* `AbpIdentityApplicationModule` (*[Volo.Abp.Identity.Application](https://www.nuget.org/packages/Volo.Abp.Identity.Application)* 包)承载模块的应用程序和域层的实现. +* `AbpIdentityEntityFrameworkCoreModule` (*[Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* 包) 使用EF Core作为数据库API. -See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. +请参阅[module architecture best practice guide](../Best-Practices/Module-Architecture)以更好地理解分层. -#### Authentication +#### 认证 -This microservice uses IdentityServer `Bearer` authentication and configured like that: +这个微服务使用IdentityServer`Bearer`身份验证,并配置如下: ```csharp context.Services.AddAuthentication("Bearer") @@ -854,7 +859,7 @@ context.Services.AddAuthentication("Bearer") }); ``` -`ApiName` is the API which is being protected, `IdentityService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: +`ApiName`是受保护的API,在这种情况下是`IdentityService`. 其余配置与声明映射(计划在下一个ABP版本中自动化)相关. 与`appsettings.json`中的身份验证相关的配置很简单: ```json "AuthServer": { @@ -865,21 +870,21 @@ context.Services.AddAuthentication("Bearer") #### Swagger -Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:63568/`, you are redirected to the swagger page to see and test the API. +Swagger UI已配置,是此服务的默认页面. 如果你导航到URL`http://localhost:63568/`, 你将被重定向到swagger页面以查看和测试API. -#### Dependencies +#### 依赖 -- **RabbitMQ** for messaging to other services. -- **Redis** for distributed/shared caching. -- **Elasticsearch** for storing logs. +- **RabbitMQ** 用于向其他服务发送消息. +- **Redis** 用于分布式/共享缓存. +- **Elasticsearch** 用于存储日志. -### Blogging Service (BloggingService.Host) +### 博客服务 (BloggingService.Host) -This service hosts the blogging API. +此服务托管博客API. -#### Database +#### 数据库 -It has a dedicated MongoDB database (MsDemo_Blogging) to store blog and posts. It also uses the MsDemo_Identity SQL database for audit logs, permissions and settings. So, there are two connection strings in the `appsettings.json` file: +它有一个专门的MongoDB数据库(MsDemo_Blogging)来存储博客和帖子. 它还使用MsDemo_Identity SQL数据库来审核日志,权限和设置. 因此,`appsettings.json`文件中有两个连接字符串: ````json "ConnectionStrings": { @@ -888,19 +893,19 @@ It has a dedicated MongoDB database (MsDemo_Blogging) to store blog and posts. I } ```` -#### Blogging Module +#### 博客模块 -This service actually just hosts the ABP Blogging package/module. Does not include any API itself. In order to host it, adds the following dependencies: +该服务实际上只托管ABP Blogging包/模块. 不包含任何API本身. 为了托管它,添加以下依赖项: -- `BloggingHttpApiModule` (*[Volo.Blogging.HttpApi](https://www.nuget.org/packages/Volo.Blogging.HttpApi)* package) to provide Blogging APIs. -- `BloggingApplicationModule` (*[Volo.Blogging.Application](https://www.nuget.org/packages/Volo.Blogging.Application)* package) to host the implementation of the application and domain layers of the module. -- `BloggingMongoDbModule` (*[Volo.Blogging.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* package) to use MongoDB as the database. +- `BloggingHttpApiModule` (*[Volo.Blogging.HttpApi](https://www.nuget.org/packages/Volo.Blogging.HttpApi)* 包) 提供Blogging API. +- `BloggingApplicationModule` (*[Volo.Blogging.Application](https://www.nuget.org/packages/Volo.Blogging.Application)* 包) 承载模块的应用程序和域层的实现. +- `BloggingMongoDbModule` (*[Volo.Blogging.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* 包) 使用MongoDB作为数据库. -See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. +请参阅[module architecture best practice guide](../Best-Practices/Module-Architecture)以更好地理解分层. -#### Authentication +#### 认证 -This microservice uses IdentityServer `Bearer` authentication and configured like that: +这个微服务使用IdentityServer `Bearer`身份验证,并配置如下: ```csharp context.Services.AddAuthentication("Bearer") @@ -920,7 +925,7 @@ context.Services.AddAuthentication("Bearer") }); ``` -`ApiName` is the API which is being protected, `BloggingService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: +`ApiName`是受保护的API,在这种情况下是`BloggingService`. 其余配置与声明映射(计划在下一个ABP版本中自动化)相关.与`appsettings.json`中的身份验证相关的配置很简单: ```json "AuthServer": { @@ -931,7 +936,7 @@ context.Services.AddAuthentication("Bearer") #### IdentityServer Client -This microservice also uses the Identity microservice API through the Internal Gateway, because it needs to query user details (username, email, phone, name and surname) in some cases. So, it is also a client for the IdentityServer and defines a section in the `appsettings.json` file for that: +此微服务还通过内部网关使用Identity微服务API, 因为在某些情况下它需要查询用户详细信息(username, email, phone, name and surname). 因此,它也是IdentityServer的客户端,并在`appsettings.json`文件中定义了一个部分: ````json "IdentityClients": { @@ -945,7 +950,7 @@ This microservice also uses the Identity microservice API through the Internal G } ```` -Since it uses the Internal Gateway, it should also configure the remote endpoint of the gateway: +由于它使用内部网关, 因此它还应配置网关的远程端点: ````json "RemoteServices": { @@ -956,31 +961,31 @@ Since it uses the Internal Gateway, it should also configure the remote endpoint } ```` -When you set `UseCurrentAccessToken` to `false`, ABP ignores the current `access_token` in the current `HttpContext` and authenticates to the AuthServer with the credentials defined above. +当你将`UseCurrentAccessToken`设置为`false`时,ABP会忽略当前`HttpContext`中的当前`access_token`,并使用上面定义的凭据对AuthServer进行身份验证. -Why not using the token of the current user in the current request? Because, the user may not have required permissions on the Identity module, so it can not just pass the current authentication token directly to the Identity service. In addition, some of the blog service APIs are anonymous (not requires authenticated user), so in some cases there is no "current user" in the HTTP request. For these reasons, Blogging service should be defined as a client for the Identity service with its own credentials and permissions. +为什么不在当前请求中使用当前用户的令牌? 因为,用户可能没有Identity模块所需的权限,因此它不能直接将当前身份验证令牌传递给Identity服务. 此外,某些博客服务API是匿名的(不需要经过身份验证的用户),因此在某些情况下,HTTP请求中没有"当前用户". 出于这些原因,应将Blogging服务定义为具有自己的凭据和权限的Identity服务的客户端. -If you check the `AbpPermissionGrants` table in the `MsDemo_Identity` database, you can see the related permission for the `blogging-service-client`. +如果检查`MsDemo_Identity`数据库中的`AbpPermissionGrants`表,则可以看到`blogging-service-client`的相关权限. ![microservice-sample-blogservice-permission-in-database](../images/microservice-sample-blogservice-permission-in-database.png) #### Swagger -Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:62157/`, you are redirected to the swagger page to see and test the API. +Swagger UI已配置,是此服务的默认页面. 如果你导航到URL`http://localhost:62157/`, 你将被重定向到swagger页面以查看和测试API. -#### Dependencies +#### 依赖 -- **RabbitMQ** for messaging to other services. -- **Redis** for distributed/shared caching. -- **Elasticsearch** for storing logs. +- **RabbitMQ** 用于向其他服务发送消息. +- **Redis** 用于分布式/共享缓存. +- **Elasticsearch** 用于存储日志. -### Product Service (ProductService.Host) +### 产品服务 (ProductService.Host) -This service hosts the Product Management API. +此服务托管产品管理API. -#### Database & EF Core Migrations +#### 数据库和EF核心迁移 -It has a separated SQL database, named **MsDemo_ProductManagement**, for the product management module. It uses EF Core as the database provider and has a DbContext named `ProductServiceMigrationDbContext`: +它有一个单独的SQL数据库,名为**MsDemo_ProductManagement**,用于产品管理模块. 它使用EF Core作为数据库提供程序,并具有名为`ProductServiceMigrationDbContext`的DbContext: ````csharp public class ProductServiceMigrationDbContext : AbpDbContext @@ -1001,11 +1006,11 @@ public class ProductServiceMigrationDbContext : AbpDbContext @@ -1120,9 +1126,9 @@ public class Product : AuditedAggregateRoot } ```` -All of its properties have private setters which prevents any direct change of the properties from out of the class. Product class ensures its own integrity and validity by its own constructors and methods. +它的所有属性都有私有的set方法,可以防止属性从类中直接更改. 产品类通过自己的构造函数和方法确保其自身的完整性和有效性. -It has two constructors: +它有两个构造函数: ````csharp private Product() @@ -1155,11 +1161,11 @@ internal Product( ```` -Default (**parameterless**) constructor is private and is not used in the application code. It is needed because most ORMs requires a parameterless constructor on deserializing entities while getting from the database. +默认(**无参数**)构造函数是私有的,不在应用程序代码中使用. 这是必需的,因为大多数ORM在从数据库获取时需要在反序列化实体时使用无参数构造函数. -Second constructor is **internal** that means it can only be used inside the domain layer. This enforces to use the `ProductManager` while creating a new `Product`. Because, `ProductManager` should implement a business rule on a new product creation. This constructor only requires the minimal required arguments to create a new product with some optional arguments. It checks some simple business rules to ensure that the entity is created as a valid product. +第二个构造函数是**internal**,这意味着它只能在域层内使用. 这强制在创建新的`Product`时使用`ProductManager`. 因为``ProductManager`应该在新产品创建上实现业务规则. 此构造函数仅需要最少的必需参数来创建具有一些可选参数的新产品. 它会检查一些简单的业务规则,以确保将实体创建为有效产品. -Rest of the class has methods to manipulate properties of the entity. Example: +该类的其余部分具有操纵实体属性的方法. 例: ````csharp public Product SetPrice(float price) @@ -1175,9 +1181,9 @@ public Product SetPrice(float price) ```` -`SetPrice` method is used to change the price of the product in a safe manner (by checking a validation rule). +`SetPrice`方法用于以安全的方式更改产品的价格(通过检查验证规则). -`SetStockCount` is another method that is used to change stock count of a product: +`SetStockCount`是另一种用于更改产品库存数量的方法: ````csharp public Product SetStockCount(int stockCount) @@ -1212,11 +1218,11 @@ private Product SetStockCountInternal(int stockCount, bool triggerEvent = true) ```` -This method also triggers a **distributed event** with the `ProductStockCountChangedEto` parameter (Eto is a conventional postfix stands for **E**vent **T**ransfer **O**bject, but not required) to notify listeners that stock count of a product has changed. Any subscriber can receive this event and perform an action based on that knowledge. +此方法还触发**分布式事件**,其中带有`ProductStockCountChangedEto`参数(Eto是传统的后缀代表**E**vent **T**ransfer **O**bject,但不是必需的)通知产品库存数量的听众已发生变化. 任何订户都可以接收此事件并根据该知识执行操作. -Events are distributed by RabbitMQ for this solution. But ABP is message broker independent by providing necessary abstractions (see the [Event Bus](../Event-Bus.md) document). +RabbitMQ为此解决方案分发事件. 但是ABP通过提供必要的抽象来独立于消息代理[Event Bus](../Event-Bus.md)文档). -As said before, this module forces to always use the `ProductManager` to create a new `Product`. `ProductManager` is a simple domain service defined as shown: +如前所述,该模块强制始终使用`ProductManager`来创建新的`Product`. `ProductManager`是一个简单的域服务,定义如下: ````csharp public class ProductManager : DomainService @@ -1255,13 +1261,13 @@ public class ProductManager : DomainService } ```` -* It checks if given code is used before. Throws `ProductCodeAlreadyExistsException` so. -* If uses the `GuidGenerator` (`IGuidGenerator`) service to create a new `Guid`. -* It inserts the entity to the repository. +* 它检查之前是否使用过给定的代码. 否则抛出`ProductCodeAlreadyExistsException`. +* 使用`GuidGenerator`(`IGuidGenerator`)服务来创建一个新的`Guid`. +* 它将实体插入存储库. -So, with this design, uniqueness of the product code is guaranteed. +因此,通过这种设计,产品代码的唯一性得到保证. -`ProductCodeAlreadyExistsException` is a domain/business exception defined as like below: +`ProductCodeAlreadyExistsException`是一个域/业务异常,定义如下: ````csharp public class ProductCodeAlreadyExistsException : BusinessException @@ -1274,18 +1280,18 @@ public class ProductCodeAlreadyExistsException : BusinessException } ```` -`PM:000001` is a code for the exception type that is sent to the clients, so they can understand the error type. Not implemented for this case, but it is also possible to localize business exceptions. See the [exception handling documentation](../Exception-Handling.md). +`PM:000001`是发送给客户端的异常类型的代码,因此他们可以理解错误类型. 在这种情况下没有实现,但也可以本地化业务异常. 请参阅[异常处理文档](../Exception-Handling.md). -#### Application Layer +#### 应用层 -Application layer of this module has two services: +该模块的应用层有两个服务: -* `ProductAppService` is mainly used by the Backend Admin Application to manage (create, update, delete...) products. It requires permission to perform any operation. -* `PublicProductAppService` is used by the Public Web Site to show list of products to the visitors. It does not require any permission since most of the visitors are not logged in to the application. +* `ProductAppService`主要由后端管理应用程序用于管理(创建,更新,删除.)产品. 它需要许可才能执行任何操作. +* 公共网站使用`PublicProductAppService`来向访问者显示产品列表. 它不需要任何权限,因为大多数访问者都没有登录到应用程序. -Notice that; instead of putting two application service into the same project, it might be a better principle to have separated application layers per application. But we unified them for simplicity in this solution. +请注意; 每个应用程序分离应用程序层可能是更好的原则, 而不是将两个应用程序服务放入同一个项目中. 但是我们在这个解决方案中简化了它们. -As an example, `ProductAppService` has the following method to update a product: +例如,`ProductAppService`具有以下更新产品的方法: ````csharp [Authorize(ProductManagementPermissions.Products.Update)] @@ -1301,29 +1307,29 @@ public async Task UpdateAsync(Guid id, UpdateProductDto input) } ```` -* It defines the required permission (*ProductManagementPermissions.Products.Update* is a constant with value `ProductManagement.Update`) to perform this operation. -* Gets the id of the product and a DTO contains the values to update. -* Gets the related product entity from the repository. -* Uses the related methods (like `SetName`) of the `Product` class to change properties, because they are with private setters and the only way to change a value is to use an entity method. -* Returns an updated `ProductDto` to the client (client may need it for some reason) by using the [ObjectMapper](../Object-To-Object-Mapping.md). +* 它定义了所需的权限(*ProductManagementPermissions.Products.Update*是一个值为`ProductManagement.Update`的常量)来执行此操作. +* 获取产品的ID,DTO包含要更新的值. +* 从存储库中获取相关的产品实体. +* 使用`Product`类的相关方法(如`SetName`)来更改属性,因为它们是私有set方法,更改值的唯一方法是使用实体方法. +* 通过使用[ObjectMapper](../Object-To-Object-Mapping.md)向客户端返回更新的`ProductDto`(客户端可能由于某种原因需要它). -The implementation may vary based on the requirements. This implementation follows the [best practices offered here](../Best-Practices/Application-Services.md). +实施可能会根据要求而有所不同. 此实现遵循此处提供的[最佳实践](../Best-Practices/Application-Services.md). -#### Other Layers +#### 其他层 -See other layers from the source code. +请参阅源代码中的其他层. -## Infrastructure +## 基础设施 -### Messaging and RabbitMQ +### 消息和RabbitMQ -Asynchronous Messaging is a key concept in distributed systems. It makes possible to communicate as a loosely coupled manner with fault tolerance. It does not require both sides to be online at the moment of messaging. So, it is a widely used communication pattern in microservice architecture. +异步消息传递是分布式系统中的关键概念. 它可以以松散耦合的方式与容错进行通信. 在发送消息时,它不要求双方都在线. 因此,它是微服务架构中广泛使用的通信模式. -#### Distributed Event Bus +#### 分布式事件总线 -Distributed Events (Event Bus) is a way of messaging where a service raise/trigger events while other services registers/listens to these events to be notified when an important event occurs. ABP makes distributed events easier to use by providing conventions, services and integrations. +分布式事件(事件总线)是一种消息传递方式,其中服务引发/触发事件,而其他服务注册/侦听这些事件,以便在发生重要事件时得到通知. ABP通过提供约定,服务和集成使分布式事件更易于使用. -You have seen that the `Product` class publishing an event using the following code line: +您已经看到`Product`类使用以下代码行发布事件: ````csharp AddDistributedEvent(new ProductStockCountChangedEto(Id, StockCount, stockCount)); @@ -1355,7 +1361,7 @@ public class ProductStockCountChangedEto : EtoBase } ```` -This object stores necessary information about the event. Another service can easily register to this event by implementing the `IDistributedEventHandler` interface with the generic `ProductStockCountChangedEto` parameter: +该对象存储有关该事件的必要信息. 通过使用通用的`ProductStockCountChangedEto`参数实现`IDistributedEventHandler`接口,另一个服务可以轻松注册到此事件: ````csharp public class MyHandler : IDistributedEventHandler @@ -1368,17 +1374,17 @@ public class MyHandler : IDistributedEventHandler } ```` -All the integration and communication are done by the ABP framework when you use the [Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ) package. If you need to publish events out of an entity, just inject the `IDistributedEventBus` and use the `PublishAsync` method. +当你使用[Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ)包时,所有集成和通信都由ABP框架完成.如果需要从实体发布事件,只需注入`IDistributedEventBus`并使用`PublishAsync`方法. -See the [Event Bus](../Event-Bus.md) documentation for more information about the distributed event system. +有关分布式事件系统的更多信息, 请参见[Event Bus](../Event-Bus.md)文档. -#### RabbitMQ Configuration +#### RabbitMQ配置 -In this solution, [RabbitMQ](https://www.rabbitmq.com/) is used for messaging & distributed events. +在此解决方案中, [RabbitMQ](https://www.rabbitmq.com/)用于消息传递和分布式事件. -[Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ) package is required to integrate to the RabbitMQ for distributed event system. Then you need to add dependency to the `AbpEventBusRabbitMqModule` for your module. For example, `ProductServiceHostModule` declares this dependency. +[Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ)包需要集成到RabbitMQ以用于分布式事件系统. 然后你需要为模块的`AbpEventBusRabbitMqModule`添加依赖项. 例如`ProductServiceHostModule`声明了这种依赖. -`AbpEventBusRabbitMqModule` gets configuration from the `appsettings.json` by default. For example, the Product Service has such a configuration: +默认情况下,`abpEventBusRabbitMqModule`从`appsettings.json`获取配置. 例如产品服务具有以下配置: ````json "RabbitMQ": { @@ -1394,19 +1400,19 @@ In this solution, [RabbitMQ](https://www.rabbitmq.com/) is used for messaging & } ```` -### Caching and Redis +### 缓存和Redis -A distributed system obviously needs to a distributed and shared cache, instead of isolated in-memory caches for each service. +分布式系统显然需要分布式和共享缓存,而不是每个服务的隔离内存缓存. -[Redis](https://redis.io/) is used as a distributed cache in this solution. The solution uses Microsoft's standard [Microsoft.Extensions.Caching.Redis](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Redis) package for integration. All applications and services uses Redis cache when you use and configure this package. See [Microsoft's documentation](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed) for more. +[Redis](https://redis.io/)在此解决方案中用作分布式缓存. 该解决方案使用Microsoft的标准[Microsoft.Extensions.Caching.Redis](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Redis) 包进行集成. 使用和配置此程序包时,所有应用程序和服务都使用Redis缓存. 有关详细信息请参阅[Microsoft的文档](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed). -The solution also uses the [Microsoft.AspNetCore.DataProtection.StackExchangeRedis](https://www.nuget.org/packages/Microsoft.AspNetCore.DataProtection.StackExchangeRedis) package to share data protection keys between applications and services over Redis cache. +该解决方案还使用[Microsoft.AspNetCore.DataProtection.StackExchangeRedis](https://www.nuget.org/packages/Microsoft.AspNetCore.DataProtection.StackExchangeRedis)包在Redis缓存上共享应用程序和服务之间的数据保护密钥. -### Logging, Serilog, Elasticsearch and Kibana +### Logging,Serilog,Elasticsearch和Kibana -This solution uses [Serilog](https://serilog.net/) as a logging library. It is a widely used library which has many data source integrations including [Elasticsearch](https://www.elastic.co/products/elasticsearch). +该解决方案使用[Serilog](https://serilog.net/)作为日志库. 它是一个广泛使用的库,有许多数据源集成,包括[Elasticsearch](https://www.elastic.co/products/elasticsearch). -Logging configurations are done in `Program.cs` files using a code block similar to the given below: +使用类似于下面给出的代码块在`Program.cs`文件中完成日志配置: ````csharp Log.Logger = new LoggerConfiguration() @@ -1425,9 +1431,9 @@ Log.Logger = new LoggerConfiguration() .CreateLogger(); ```` -This configures multiple log target: File and Elasticsearch. `Application` property is set to `ProductService` for this example. This is a way of distinguishing the logs of multiple services in a single database. You can then query logs by the `Application` name. +这会配置多个日志输出目标:File和Elasticsearch.对于此示例,`Application`属性设置为`ProductService`. 这是一种区分单个数据库中多个服务的日志的方法. 然后, 你可以通过`Application`名称查询日志. -Elasticsearch URL is read from the `appsettings.json` configuration file: +从`appsettings.json`配置文件中读取Elasticsearch URL: ````json "ElasticSearch": { @@ -1435,22 +1441,22 @@ Elasticsearch URL is read from the `appsettings.json` configuration file: } ```` -If you use Kibana, which is a Visualization tool that is well integrated to Elasticsearch, you can see some fancy UI about your logs: +如果你使用Kibana, 它是一个与Elasticsearch完美集成的可视化工具,可以看到有关你的日志的一些UI: ![microservice-sample-kibana-2](../images/microservice-sample-kibana-2.png) -*Figure - A dashboard that shows log and error counts by service/application.* +*Figure - 一个仪表板,显示服务/应用程序的日志和错误计数.* ![microservice-sample-kibana-1](../images/microservice-sample-kibana-1.png) -*Figure - A list of log entries* +*Figure - 日志条目列表* -Kibana URL is `http://localhost:5601/` by default. +Kibana URL默认为`http://localhost:5601/`. -### Audit Logging +### 审计日志 -ABP provides automatic audit logging which saves every request in detail (who is the current user, what is the browser/client, what actions performed, which entities changed, even which properties of entities has been updated). See the [audit logging document](../Audit-Logging.md) for details. +ABP提供自动审计日志记录,详细保存每个请求(当前用户,浏览器/客户端,执行了哪些操作,哪些实体更改,甚至实体的哪些属性已更新). 有关详细信息,请参阅[审计日志文档](../Audit-Logging.md). -All of the services and applications are configured to write audit logs. Audit logs are saved to the MsDemo_Identity SQL database. So, you can query all audit logs of all applications from a single point. +所有服务和应用程序都配置为编写审核日志. 审核日志将保存到MsDemo_Identity SQL数据库中. 因此,您可以从单个点查询所有应用程序的所有审核日志. -An Audit Log record has a `CorrelationId` property that can be used to track a request. When a service calls another service in a single web request, they both save audit logs with the same `CorrelationId`. See the `AbpAuditLogs` table in the database. \ No newline at end of file +审核日志记录具有`CorrelationId`属性,可用于跟踪请求. 当服务在单个Web请求中调用另一个服务时,它们都会使用相同的`CorrelationId`保存审核日志. 请参阅数据库中的`AbpAuditLogs`表. \ No newline at end of file From 8a28f5e3031dc3c96d5f99c2827323cef859b461 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 22 Mar 2019 15:59:00 +0300 Subject: [PATCH 11/37] created feature-management modal & added to tenant management --- .../Volo/Abp/FeatureManagement/FeatureDto.cs | 20 +++++ .../Abp/FeatureManagement/FeatureListDto.cs | 9 +++ .../FeatureManagement/IFeatureAppService.cs | 16 ++++ .../Abp/FeatureManagement/UpdateFeatureDto.cs | 13 ++++ .../FeatureManagement/UpdateFeaturesDto.cs | 9 +++ .../FeatureManagement/FeatureAppService.cs | 78 +++++++++++++++++++ .../FeatureManagementModal.cshtml | 60 ++++++++++++++ .../FeatureManagementModal.cshtml.cs | 75 ++++++++++++++++++ .../feature-management-modal.js | 17 ++++ .../Volo.Abp.FeatureManagement.Web.csproj | 14 ++-- ...antManagement.Application.Contracts.csproj | 3 +- ...antManagementApplicationContractsModule.cs | 2 + ...lo.Abp.TenantManagement.Application.csproj | 5 +- .../AbpTenantManagementApplicationModule.cs | 2 + .../AbpTenantManagementWebModule.cs | 2 + .../TenantManagement/Tenants/Index.cshtml | 5 +- .../Volo.Abp.TenantManagement.Web.csproj | 2 +- .../multi-tenancy/views/tenants/index.js | 13 ++++ 18 files changed, 332 insertions(+), 13 deletions(-) create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureListDto.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeatureDto.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeaturesDto.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/feature-management-modal.js diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs new file mode 100644 index 0000000000..75f5722ee8 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using Volo.Abp.Validation.StringValues; + +namespace Volo.Abp.FeatureManagement +{ + public class FeatureDto + { + public string Name { get; set; } + + public string Value { get; set; } + + public string Description { get; set; } + + public IStringValueType ValueType { get; set; } + + public int Depth { get; set; } + + public string ParentName { get; set; } + } +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureListDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureListDto.cs new file mode 100644 index 0000000000..ee7bad8d5c --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureListDto.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Volo.Abp.FeatureManagement +{ + public class FeatureListDto + { + public List Features { get; set; } + } +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs new file mode 100644 index 0000000000..a30b2397fa --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Volo.Abp.Application.Services; + +namespace Volo.Abp.FeatureManagement +{ + public interface IFeatureAppService : IApplicationService + { + Task GetAsync([NotNull] string providerName, [NotNull] string providerKey); + + Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdateFeaturesDto input); + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeatureDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeatureDto.cs new file mode 100644 index 0000000000..26b351ee9e --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeatureDto.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Volo.Abp.FeatureManagement +{ + public class UpdateFeatureDto + { + public string Name { get; set; } + + public string Value { get; set; } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeaturesDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeaturesDto.cs new file mode 100644 index 0000000000..3b8fbd2bd7 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/UpdateFeaturesDto.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Volo.Abp.FeatureManagement +{ + public class UpdateFeaturesDto + { + public List Features { get; set; } + } +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs new file mode 100644 index 0000000000..555ddbf495 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Options; +using Volo.Abp.Application.Services; +using Volo.Abp.Features; + +namespace Volo.Abp.FeatureManagement +{ + [Authorize] + public class FeatureAppService : ApplicationService, IFeatureAppService + { + protected FeatureManagementOptions Options { get; } + + private readonly IFeatureManager _featureManager; + private readonly IFeatureDefinitionManager _featureDefinitionManager; + private readonly IStringLocalizerFactory _stringLocalizerFactory; + + public FeatureAppService(IFeatureManager featureManager, + IFeatureDefinitionManager featureDefinitionManager, + IStringLocalizerFactory stringLocalizerFactory, + IOptions options) + { + _featureManager = featureManager; + _featureDefinitionManager = featureDefinitionManager; + _stringLocalizerFactory = stringLocalizerFactory; + Options = options.Value; + } + + public async Task GetAsync([NotNull] string providerName, [NotNull] string providerKey) + { + var featureDefinitions = _featureDefinitionManager.GetAll(); + var features = new List(); + + foreach (var featureDefinition in featureDefinitions) + { + features.Add(new FeatureDto + { + Name = featureDefinition.Name, + ValueType = featureDefinition.ValueType, + Description = featureDefinition.Description.Localize(_stringLocalizerFactory), + ParentName = featureDefinition.Parent?.Name, + Value = await _featureManager.GetOrNullAsync(featureDefinition.Name, providerName, providerKey) + }); + } + + SetFeatureDepth(features, providerName, providerKey); + + return new FeatureListDto { Features = features }; + } + + public async Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdateFeaturesDto input) + { + foreach (var feature in input.Features) + { + await _featureManager.SetAsync(feature.Name, feature.Value, providerName, providerKey); + } + } + + private void SetFeatureDepth(List features, string providerName, string providerKey, + FeatureDto parentFeature = null, int depth = 0) + { + foreach (var feature in features) + { + if ((parentFeature == null && feature.ParentName == null) || (parentFeature != null && parentFeature.Name == feature.ParentName)) + { + feature.Depth = depth; + SetFeatureDepth(features, providerName, providerKey, feature, depth + 1); + } + } + } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml new file mode 100644 index 0000000000..b52ea264b4 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -0,0 +1,60 @@ +@page +@using Microsoft.AspNetCore.Mvc.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal +@using Volo.Abp.FeatureManagement.Localization +@using Volo.Abp.Validation.StringValues +@using Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement +@model FeatureManagementModal +@inject IHtmlLocalizer L +@{ + Layout = null; +} +
      + + + + + + @for (var i = 0; i < Model.FeatureListDto.Features.Count; i++) + { + var feature = Model.FeatureListDto.Features[i]; +
      + + @feature.Name + + + @if (feature.ValueType is FreeTextStringValueType) + { + + + } + @if (feature.ValueType is SelectionStringValueType) + { + + + } + @if (feature.ValueType is ToggleStringValueType) + { + + + } +
      + } +
      + +
      +
      + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs new file mode 100644 index 0000000000..23e46de955 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs @@ -0,0 +1,75 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.Validation.StringValues; + +namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement +{ + public class FeatureManagementModal : AbpPageModel + { + [Required] + [HiddenInput] + [BindProperty(SupportsGet = true)] + public string ProviderName { get; set; } + + [Required] + [HiddenInput] + [BindProperty(SupportsGet = true)] + public string ProviderKey { get; set; } + + [BindProperty] + public List Features { get; set; } + + public FeatureListDto FeatureListDto { get; set; } + + private readonly IFeatureAppService _featureAppService; + + public FeatureManagementModal(IFeatureAppService featureAppService) + { + _featureAppService = featureAppService; + } + + public async Task OnGetAsync() + { + FeatureListDto = await _featureAppService.GetAsync(ProviderName, ProviderKey); + } + + public async Task OnPostAsync() + { + var features = new UpdateFeaturesDto + { + Features = Features.Select(f => new UpdateFeatureDto + { + Name = f.Name, + Value = f.Type == nameof(ToggleStringValueType) ? f.BoolValue.ToString() : f.Value + }).ToList() + }; + + await _featureAppService.UpdateAsync(ProviderName, ProviderKey, features); + + return NoContent(); + } + + + public class ProviderInfoViewModel + { + public string ProviderName { get; set; } + + public string ProviderKey { get; set; } + } + + public class FeatureViewModel + { + public string Name { get; set; } + + public string Value { get; set; } + + public bool BoolValue { get; set; } + + public string Type { get; set; } + } + } +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/feature-management-modal.js b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/feature-management-modal.js new file mode 100644 index 0000000000..74b66f467d --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/feature-management-modal.js @@ -0,0 +1,17 @@ +var abp = abp || {}; +(function ($) { + abp.modals = abp.modals || {}; + + abp.modals.FeatureManagement = function () { + + $('.FeatureValueCheckbox').change(function () { + if (this.checked) { + $(this).val("true"); + } + else { + $(this).val("false"); + } + }); + + }; +})(jQuery); \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj index 3175e1143a..ffe9acd932 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj @@ -11,19 +11,17 @@ - - + + + - - - - + + - - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj index 393c22258c..1371026493 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj @@ -1,4 +1,4 @@ - + @@ -15,6 +15,7 @@ + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs index 50c6aae024..d7f572aaf1 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Application; using Volo.Abp.Authorization.Permissions; +using Volo.Abp.FeatureManagement; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.TenantManagement.Localization; @@ -10,6 +11,7 @@ namespace Volo.Abp.TenantManagement { [DependsOn(typeof(AbpDddApplicationModule))] [DependsOn(typeof(AbpTenantManagementDomainSharedModule))] + [DependsOn(typeof(AbpFeatureManagementApplicationContractsModule))] public class AbpTenantManagementApplicationContractsModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj index e8e0d54a9e..32b8394e2e 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj @@ -1,4 +1,4 @@ - + @@ -16,8 +16,9 @@ - + + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs index ab00b0dc80..1dbba9efd0 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs @@ -1,11 +1,13 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AutoMapper; +using Volo.Abp.FeatureManagement; using Volo.Abp.Modularity; namespace Volo.Abp.TenantManagement { [DependsOn(typeof(AbpTenantManagementDomainModule))] [DependsOn(typeof(AbpTenantManagementApplicationContractsModule))] + [DependsOn(typeof(AbpFeatureManagementApplicationModule))] public class AbpTenantManagementApplicationModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs index 2267539b09..8ea03c99f3 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AutoMapper; +using Volo.Abp.FeatureManagement; using Volo.Abp.Localization; using Volo.Abp.Localization.Resources.AbpValidation; using Volo.Abp.Modularity; @@ -16,6 +17,7 @@ namespace Volo.Abp.TenantManagement.Web { [DependsOn(typeof(AbpTenantManagementHttpApiModule))] [DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule))] + [DependsOn(typeof(AbpFeatureManagementWebModule))] [DependsOn(typeof(AbpAutoMapperModule))] public class AbpTenantManagementWebModule : AbpModule { diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.cshtml b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.cshtml index a5a7bf4a90..95cd3d8331 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.cshtml +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.cshtml @@ -13,7 +13,10 @@ PageLayout.Content.MenuItemName = TenantManagementMenuNames.Tenants; } @section scripts { - + + + + } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj index 94071ed59e..c542768e8c 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj @@ -29,8 +29,8 @@ + - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/wwwroot/modules/multi-tenancy/views/tenants/index.js b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/wwwroot/modules/multi-tenancy/views/tenants/index.js index bfb44f0bcc..344cc1963d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/wwwroot/modules/multi-tenancy/views/tenants/index.js +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/wwwroot/modules/multi-tenancy/views/tenants/index.js @@ -5,6 +5,7 @@ var _editModal = new abp.ModalManager(abp.appPath + 'TenantManagement/Tenants/EditModal'); var _createModal = new abp.ModalManager(abp.appPath + 'TenantManagement/Tenants/CreateModal'); + var _featuresModal = new abp.ModalManager(abp.appPath + 'FeatureManagement/FeatureManagementModal'); $(function () { @@ -27,6 +28,18 @@ }); } }, + { + text: l('Features'), + visible: function () { + return true; //TODO: Check permission + }, + action: function (data) { + _featuresModal.open({ + providerName: 'Tenant', + providerKey: data.record.id + }); + } + }, { text: l('Delete'), visible: function () { return true; }, //TODO: Check permission From bdfcb6f6e8c5ab2a701f70b478f6da038502f4c3 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 22 Mar 2019 17:28:31 +0300 Subject: [PATCH 12/37] added AbpFeatureManagementDomainTenantManagementModule And policy --- .../Abp/FeatureManagement/FeatureAppService.cs | 15 +++++++++++++++ .../AbpFeatureManagementDomainModule.cs | 1 - .../FeatureManagementOptions.cs | 6 +++++- .../Volo.Abp.TenantManagement.sln | 13 ++++++++++--- ...reManagement.Domain.TenantManagement.csproj | 12 ++++++++++++ ...reManagementDomainTenantManagementModule.cs | 18 ++++++++++++++++++ .../TenantFeatureManagementProvider.cs | 2 +- ...ntManagementPermissionDefinitionProvider.cs | 11 ++++++----- .../Localization/ApplicationContracts/en.json | 3 ++- .../Localization/ApplicationContracts/tr.json | 3 ++- .../TenantManagementPermissions.cs | 1 + 11 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj create mode 100644 modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs rename modules/{feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement => tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement}/TenantFeatureManagementProvider.cs (94%) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs index 555ddbf495..b8b6c33d7c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs @@ -34,6 +34,8 @@ namespace Volo.Abp.FeatureManagement public async Task GetAsync([NotNull] string providerName, [NotNull] string providerKey) { + await CheckProviderPolicy(providerName); + var featureDefinitions = _featureDefinitionManager.GetAll(); var features = new List(); @@ -56,6 +58,8 @@ namespace Volo.Abp.FeatureManagement public async Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdateFeaturesDto input) { + await CheckProviderPolicy(providerName); + foreach (var feature in input.Features) { await _featureManager.SetAsync(feature.Name, feature.Value, providerName, providerKey); @@ -74,5 +78,16 @@ namespace Volo.Abp.FeatureManagement } } } + + protected virtual async Task CheckProviderPolicy(string providerName) + { + var policyName = Options.ProviderPolicies.GetOrDefault(providerName); + if (policyName.IsNullOrEmpty()) + { + throw new AbpException($"No policy defined to get/set permissions for the provider '{policyName}'. Use {nameof(FeatureManagementOptions)} to map the policy."); + } + + await AuthorizationService.CheckAsync(policyName); + } } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs index 515db2b03f..54f5364c18 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs @@ -21,7 +21,6 @@ namespace Volo.Abp.FeatureManagement { options.Providers.Add(); options.Providers.Add(); - options.Providers.Add(); }); Configure(options => diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementOptions.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementOptions.cs index 0599c3e4c5..b671c475ec 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementOptions.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementOptions.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Collections; +using System.Collections.Generic; +using Volo.Abp.Collections; namespace Volo.Abp.FeatureManagement { @@ -6,9 +7,12 @@ namespace Volo.Abp.FeatureManagement { public ITypeList Providers { get; } + public Dictionary ProviderPolicies { get; } + public FeatureManagementOptions() { Providers = new TypeList(); + ProviderPolicies = new Dictionary(); } } } \ No newline at end of file diff --git a/modules/tenant-management/Volo.Abp.TenantManagement.sln b/modules/tenant-management/Volo.Abp.TenantManagement.sln index 20fd21a531..9e1f76c980 100644 --- a/modules/tenant-management/Volo.Abp.TenantManagement.sln +++ b/modules/tenant-management/Volo.Abp.TenantManagement.sln @@ -25,14 +25,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.W EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.Application.Tests", "test\Volo.Abp.TenantManagement.Application.Tests\Volo.Abp.TenantManagement.Application.Tests.csproj", "{72445B2D-07FA-4A35-A3D6-FF4ACE299BF4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TenantManagement.EntityFrameworkCore.Tests", "test\Volo.Abp.TenantManagement.EntityFrameworkCore.Tests\Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj", "{A2BB8897-EBDB-46BB-B885-F8635B21F376}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.EntityFrameworkCore.Tests", "test\Volo.Abp.TenantManagement.EntityFrameworkCore.Tests\Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj", "{A2BB8897-EBDB-46BB-B885-F8635B21F376}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TenantManagement.MongoDB", "src\Volo.Abp.TenantManagement.MongoDB\Volo.Abp.TenantManagement.MongoDB.csproj", "{ED95242E-3C31-4A89-9C62-93B306EFEB15}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.MongoDB", "src\Volo.Abp.TenantManagement.MongoDB\Volo.Abp.TenantManagement.MongoDB.csproj", "{ED95242E-3C31-4A89-9C62-93B306EFEB15}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TenantManagement.MongoDB.Tests", "test\Volo.Abp.TenantManagement.MongoDB.Tests\Volo.Abp.TenantManagement.MongoDB.Tests.csproj", "{F75B4C54-A5F1-4101-99F5-A5B868A5146B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.MongoDB.Tests", "test\Volo.Abp.TenantManagement.MongoDB.Tests\Volo.Abp.TenantManagement.MongoDB.Tests.csproj", "{F75B4C54-A5F1-4101-99F5-A5B868A5146B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.TestBase", "test\Volo.Abp.TenantManagement.TestBase\Volo.Abp.TenantManagement.TestBase.csproj", "{C3BAD6E8-00CD-4283-9416-64287BB5B265}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.FeatureManagement.Domain.TenantManagement", "src\Volo.Abp.FeatureManagement.Domain.TenantManagement\Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj", "{7A5E7998-62CF-418B-A452-0FCB4CB853CC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -91,6 +93,10 @@ Global {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Debug|Any CPU.Build.0 = Debug|Any CPU {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Release|Any CPU.Build.0 = Release|Any CPU + {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -109,6 +115,7 @@ Global {ED95242E-3C31-4A89-9C62-93B306EFEB15} = {799CA525-4748-421A-9892-05C68BB2FA13} {F75B4C54-A5F1-4101-99F5-A5B868A5146B} = {C6941869-A9FC-4BEA-AD3F-C1E104826ECA} {C3BAD6E8-00CD-4283-9416-64287BB5B265} = {C6941869-A9FC-4BEA-AD3F-C1E104826ECA} + {7A5E7998-62CF-418B-A452-0FCB4CB853CC} = {799CA525-4748-421A-9892-05C68BB2FA13} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7C258726-2CE0-44D3-A2D7-71812E8F505C} diff --git a/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj new file mode 100644 index 0000000000..94c6905fec --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj @@ -0,0 +1,12 @@ + + + + netcoreapp2.2 + + + + + + + + diff --git a/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs new file mode 100644 index 0000000000..ac698c913c --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs @@ -0,0 +1,18 @@ +using Volo.Abp.Features; +using Volo.Abp.Modularity; + +namespace Volo.Abp.FeatureManagement.TenantManagement +{ + public class AbpFeatureManagementDomainTenantManagementModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Providers.Add(); + + options.ProviderPolicies[TenantFeatureValueProvider.ProviderName] = "AbpTenantManagement.Tenants.ManageFeatures"; + }); + } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagementProvider.cs b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/TenantFeatureManagementProvider.cs similarity index 94% rename from modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagementProvider.cs rename to modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/TenantFeatureManagementProvider.cs index b03fc43d8a..e625e47880 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagementProvider.cs +++ b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/TenantFeatureManagementProvider.cs @@ -11,7 +11,7 @@ namespace Volo.Abp.FeatureManagement protected ICurrentTenant CurrentTenant { get; } public TenantFeatureManagementProvider( - IFeatureManagementStore store, + IFeatureManagementStore store, ICurrentTenant currentTenant) : base(store) { diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs index 822de19ad8..32aae64598 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs @@ -8,12 +8,13 @@ namespace Volo.Abp.TenantManagement { public override void Define(IPermissionDefinitionContext context) { - var identityGroup = context.AddGroup(TenantManagementPermissions.GroupName, L("Permission:TenantManagement")); + var tenantManagementGroup = context.AddGroup(TenantManagementPermissions.GroupName, L("Permission:TenantManagement")); - var rolesPermission = identityGroup.AddPermission(TenantManagementPermissions.Tenants.Default, L("Permission:TenantManagement")); - rolesPermission.AddChild(TenantManagementPermissions.Tenants.Create, L("Permission:Create")); - rolesPermission.AddChild(TenantManagementPermissions.Tenants.Update, L("Permission:Edit")); - rolesPermission.AddChild(TenantManagementPermissions.Tenants.Delete, L("Permission:Delete")); + var tenantsPermission = tenantManagementGroup.AddPermission(TenantManagementPermissions.Tenants.Default, L("Permission:TenantManagement")); + tenantsPermission.AddChild(TenantManagementPermissions.Tenants.Create, L("Permission:Create")); + tenantsPermission.AddChild(TenantManagementPermissions.Tenants.Update, L("Permission:Edit")); + tenantsPermission.AddChild(TenantManagementPermissions.Tenants.Delete, L("Permission:Delete")); + tenantsPermission.AddChild(TenantManagementPermissions.Tenants.ManageFeatures, L("Permission:ManageFeatures")); } private static LocalizableString L(string name) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json index 92a555e5a7..c153af5e10 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json @@ -4,6 +4,7 @@ "Permission:TenantManagement": "Tenant management", "Permission:Create": "Create", "Permission:Edit": "Edit", - "Permission:Delete": "Delete" + "Permission:Delete": "Delete", + "Permission:ManageFeatures": "Manage features" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json index a192048e78..8ff9d2c2d5 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json @@ -4,6 +4,7 @@ "Permission:TenantManagement": "Müşteri yönetimi", "Permission:Create": "Oluşturma", "Permission:Edit": "Düzenleme", - "Permission:Delete": "Silme" + "Permission:Delete": "Silme", + "Permission:ManageFeatures": "Özellikleri yönet" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs index bc30e65e1f..622c52d338 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs @@ -10,6 +10,7 @@ public const string Create = Default + ".Create"; public const string Update = Default + ".Update"; public const string Delete = Default + ".Delete"; + public const string ManageFeatures = Default + ".ManageFeatures"; } } } \ No newline at end of file From 9848b71e1fcb064488bbcca8864697bf7fc4d8d9 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 22 Mar 2019 21:13:54 +0300 Subject: [PATCH 13/37] Mark StringValueTypeBase serializable --- .../Volo/Abp/Validation/StringValues/StringValueTypeBase.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/StringValueTypeBase.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/StringValueTypeBase.cs index c6fd80fc13..db7e2e5861 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/StringValueTypeBase.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/StringValueTypeBase.cs @@ -1,7 +1,9 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace Volo.Abp.Validation.StringValues { + [Serializable] public abstract class StringValueTypeBase : IStringValueType { public virtual string Name => ValueValidatorAttribute.GetName(GetType()); From c6f8c17ff805e0dbdc02fe2e1753f5b514f952c1 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 22 Mar 2019 21:23:30 +0300 Subject: [PATCH 14/37] Increment version to 0.15. --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 380276a7e1..0e6a922473 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 0.14.0 + 0.15.0 $(NoWarn);CS1591 https://abp.io/assets/abp_nupkg.png https://abp.io From c734d991f569f7b3ce8f15d5993302bd9ca5062c Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 22 Mar 2019 21:37:24 +0300 Subject: [PATCH 15/37] Add new packages --- nupkg/common.ps1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 8a166107e1..787b96e07c 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -8,6 +8,7 @@ $solutions = ( "modules/users", "modules/setting-management", "modules/permission-management", + "modules/feature-management", "modules/tenant-management", "modules/identity", "modules/identityserver", @@ -114,6 +115,17 @@ $projects = ( "modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client", "modules/permission-management/src/Volo.Abp.PermissionManagement.Web", + # modules/feature-management + "modules/feature-management/src/Volo.Abp.TenantManagement.Domain.Shared", + "modules/feature-management/src/Volo.Abp.TenantManagement.Domain", + "modules/feature-management/src/Volo.Abp.TenantManagement.Application.Contracts", + "modules/feature-management/src/Volo.Abp.TenantManagement.Application", + "modules/feature-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore", + "modules/feature-management/src/Volo.Abp.TenantManagement.MongoDB", + "modules/feature-management/src/Volo.Abp.TenantManagement.HttpApi", + "modules/feature-management/src/Volo.Abp.TenantManagement.HttpApi.Client", + "modules/feature-management/src/Volo.Abp.TenantManagement.Web", + # modules/tenant-management "modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared", "modules/tenant-management/src/Volo.Abp.TenantManagement.Domain", From 0ebb8c76d7d76740208e3e95aced706877abd91b Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 22 Mar 2019 21:38:20 +0300 Subject: [PATCH 16/37] Move TenantFeatureManagementProvider back to Volo.Abp.FeatureManagement package --- build-all.ps1 | 1 + .../AbpFeatureManagementDomainModule.cs | 4 ++++ .../TenantFeatureManagementProvider.cs | 0 .../Volo.Abp.TenantManagement.sln | 7 ------- ...reManagement.Domain.TenantManagement.csproj | 12 ------------ ...reManagementDomainTenantManagementModule.cs | 18 ------------------ 6 files changed, 5 insertions(+), 37 deletions(-) rename modules/{tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement => feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement}/TenantFeatureManagementProvider.cs (100%) delete mode 100644 modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj delete mode 100644 modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs diff --git a/build-all.ps1 b/build-all.ps1 index 5d800ebdf9..907f6816bf 100644 --- a/build-all.ps1 +++ b/build-all.ps1 @@ -9,6 +9,7 @@ $solutionPaths = ( "modules/users", "modules/permission-management", "modules/setting-management", + "modules/feature-management", "modules/identity", "modules/identityserver", "modules/tenant-management", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs index 54f5364c18..0958746237 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs @@ -21,6 +21,10 @@ namespace Volo.Abp.FeatureManagement { options.Providers.Add(); options.Providers.Add(); + + //TODO: Should be moved to the Tenant Management module + options.Providers.Add(); + options.ProviderPolicies[TenantFeatureValueProvider.ProviderName] = "AbpTenantManagement.Tenants.ManageFeatures"; }); Configure(options => diff --git a/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/TenantFeatureManagementProvider.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagementProvider.cs similarity index 100% rename from modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/TenantFeatureManagementProvider.cs rename to modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagementProvider.cs diff --git a/modules/tenant-management/Volo.Abp.TenantManagement.sln b/modules/tenant-management/Volo.Abp.TenantManagement.sln index 9e1f76c980..82e976220f 100644 --- a/modules/tenant-management/Volo.Abp.TenantManagement.sln +++ b/modules/tenant-management/Volo.Abp.TenantManagement.sln @@ -33,8 +33,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.M EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.TestBase", "test\Volo.Abp.TenantManagement.TestBase\Volo.Abp.TenantManagement.TestBase.csproj", "{C3BAD6E8-00CD-4283-9416-64287BB5B265}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.FeatureManagement.Domain.TenantManagement", "src\Volo.Abp.FeatureManagement.Domain.TenantManagement\Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj", "{7A5E7998-62CF-418B-A452-0FCB4CB853CC}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -93,10 +91,6 @@ Global {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Debug|Any CPU.Build.0 = Debug|Any CPU {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Release|Any CPU.Build.0 = Release|Any CPU - {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A5E7998-62CF-418B-A452-0FCB4CB853CC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -115,7 +109,6 @@ Global {ED95242E-3C31-4A89-9C62-93B306EFEB15} = {799CA525-4748-421A-9892-05C68BB2FA13} {F75B4C54-A5F1-4101-99F5-A5B868A5146B} = {C6941869-A9FC-4BEA-AD3F-C1E104826ECA} {C3BAD6E8-00CD-4283-9416-64287BB5B265} = {C6941869-A9FC-4BEA-AD3F-C1E104826ECA} - {7A5E7998-62CF-418B-A452-0FCB4CB853CC} = {799CA525-4748-421A-9892-05C68BB2FA13} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7C258726-2CE0-44D3-A2D7-71812E8F505C} diff --git a/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj deleted file mode 100644 index 94c6905fec..0000000000 --- a/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo.Abp.FeatureManagement.Domain.TenantManagement.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - netcoreapp2.2 - - - - - - - - diff --git a/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs b/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs deleted file mode 100644 index ac698c913c..0000000000 --- a/modules/tenant-management/src/Volo.Abp.FeatureManagement.Domain.TenantManagement/Volo/Abp/FeatureManagement/TenantManagement/AbpFeatureManagementDomainTenantManagementModule.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Volo.Abp.Features; -using Volo.Abp.Modularity; - -namespace Volo.Abp.FeatureManagement.TenantManagement -{ - public class AbpFeatureManagementDomainTenantManagementModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.Providers.Add(); - - options.ProviderPolicies[TenantFeatureValueProvider.ProviderName] = "AbpTenantManagement.Tenants.ManageFeatures"; - }); - } - } -} From cdeb68b4e984a69e15fce5fcea3652f58b687cb3 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 22 Mar 2019 21:40:39 +0300 Subject: [PATCH 17/37] Remove unnecessary dependencies --- .../Volo.Abp.TenantManagement.Application.Contracts.csproj | 2 -- .../AbpTenantManagementApplicationContractsModule.cs | 6 +----- .../Volo.Abp.TenantManagement.Application.csproj | 2 -- .../AbpTenantManagementApplicationModule.cs | 5 +---- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj index 1371026493..f99d3f8609 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj @@ -15,8 +15,6 @@ - - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs index d7f572aaf1..9ca2c82bdb 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs @@ -1,7 +1,4 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Application; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.FeatureManagement; +using Volo.Abp.Application; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.TenantManagement.Localization; @@ -11,7 +8,6 @@ namespace Volo.Abp.TenantManagement { [DependsOn(typeof(AbpDddApplicationModule))] [DependsOn(typeof(AbpTenantManagementDomainSharedModule))] - [DependsOn(typeof(AbpFeatureManagementApplicationContractsModule))] public class AbpTenantManagementApplicationContractsModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj index 32b8394e2e..bd5926a785 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj @@ -17,8 +17,6 @@ - - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs index 1dbba9efd0..8bed38c5ec 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationModule.cs @@ -1,13 +1,10 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.AutoMapper; -using Volo.Abp.FeatureManagement; +using Volo.Abp.AutoMapper; using Volo.Abp.Modularity; namespace Volo.Abp.TenantManagement { [DependsOn(typeof(AbpTenantManagementDomainModule))] [DependsOn(typeof(AbpTenantManagementApplicationContractsModule))] - [DependsOn(typeof(AbpFeatureManagementApplicationModule))] public class AbpTenantManagementApplicationModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) From 53567bef16bb24634aa0b5232ce12f9b5772c8c4 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 22 Mar 2019 21:43:58 +0300 Subject: [PATCH 18/37] Add FeatureManagement packages --- nupkg/common.ps1 | 18 +++++++++--------- nupkg/common.sh | 12 ++++++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 787b96e07c..d7ce2ce572 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -116,15 +116,15 @@ $projects = ( "modules/permission-management/src/Volo.Abp.PermissionManagement.Web", # modules/feature-management - "modules/feature-management/src/Volo.Abp.TenantManagement.Domain.Shared", - "modules/feature-management/src/Volo.Abp.TenantManagement.Domain", - "modules/feature-management/src/Volo.Abp.TenantManagement.Application.Contracts", - "modules/feature-management/src/Volo.Abp.TenantManagement.Application", - "modules/feature-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore", - "modules/feature-management/src/Volo.Abp.TenantManagement.MongoDB", - "modules/feature-management/src/Volo.Abp.TenantManagement.HttpApi", - "modules/feature-management/src/Volo.Abp.TenantManagement.HttpApi.Client", - "modules/feature-management/src/Volo.Abp.TenantManagement.Web", + "modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared", + "modules/feature-management/src/Volo.Abp.FeatureManagement.Domain", + "modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts", + "modules/feature-management/src/Volo.Abp.FeatureManagement.Application", + "modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore", + "modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB", + "modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi", + "modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client", + "modules/feature-management/src/Volo.Abp.FeatureManagement.Web", # modules/tenant-management "modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared", diff --git a/nupkg/common.sh b/nupkg/common.sh index 1a553f58de..61537b3ec3 100644 --- a/nupkg/common.sh +++ b/nupkg/common.sh @@ -10,6 +10,7 @@ solutions=( "modules/users" "modules/setting-management" "modules/permission-management" + "modules/feature-management" "modules/tenant-management" "modules/identity" "modules/identityserver" @@ -115,6 +116,17 @@ projects=( "modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client" "modules/permission-management/src/Volo.Abp.PermissionManagement.Web" + # modules/feature-management + "modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared" + "modules/feature-management/src/Volo.Abp.FeatureManagement.Domain" + "modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts" + "modules/feature-management/src/Volo.Abp.FeatureManagement.Application" + "modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore" + "modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB" + "modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi" + "modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client" + "modules/feature-management/src/Volo.Abp.FeatureManagement.Web" + # modules/tenant-management "modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared" "modules/tenant-management/src/Volo.Abp.TenantManagement.Domain" From 43456f2df7dfa68405b3a78c20a7885e1495900a Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Sun, 24 Mar 2019 13:02:36 +0300 Subject: [PATCH 19/37] Fix GitHub naming. --- .../Pages/Shared/Components/Header/Default.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abp_io/src/Volo.AbpWebSite.Web/Pages/Shared/Components/Header/Default.cshtml b/abp_io/src/Volo.AbpWebSite.Web/Pages/Shared/Components/Header/Default.cshtml index 8c25d6592b..f5adbc9a07 100644 --- a/abp_io/src/Volo.AbpWebSite.Web/Pages/Shared/Components/Header/Default.cshtml +++ b/abp_io/src/Volo.AbpWebSite.Web/Pages/Shared/Components/Header/Default.cshtml @@ -23,7 +23,7 @@ Blog

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