diff --git a/docs/zh-Hans/Authorization.md b/docs/zh-Hans/Authorization.md index 99139be3ac..2c269ab5fa 100644 --- a/docs/zh-Hans/Authorization.md +++ b/docs/zh-Hans/Authorization.md @@ -285,7 +285,7 @@ public async Task CreateAsync(CreateAuthorDto input) abp.auth.isGranted('MyPermissionName'); ```` -参阅 [abp.auth](AspNetCore/JavaScript-API/Auth.md) API 文档了解详情. +参阅 [abp.auth](UI/AspNetCore/JavaScript-API/Index.md) API 文档了解详情. ## 权限管理 diff --git a/docs/zh-Hans/CLI.md b/docs/zh-Hans/CLI.md index e733b6e2e5..4af252e89f 100644 --- a/docs/zh-Hans/CLI.md +++ b/docs/zh-Hans/CLI.md @@ -90,9 +90,10 @@ abp new Acme.BookStore * **`console`**: [Console template](Startup-Templates/Console.md). * `--output-folder` 或者 `-o`: 指定输出文件夹,默认是当前目录. * `--version` 或者 `-v`: 指定ABP和模板的版本.它可以是 [release tag](https://github.com/abpframework/abp/releases) 或者 [branch name](https://github.com/abpframework/abp/branches). 如果没有指定,则使用最新版本.大多数情况下,你会希望使用最新的版本. -* `--template-source` 或者 `-ts`: 指定自定义模板源用于生成项目,可以使用本地源和网络源(例如 `D\localTemplate` 或 `https://.zip`). +* `--preview`: 使用最新的预发行版本 (仅在未指定 `--version` 且最新稳定版本之后至少有一个预发行版时). +* `--template-source` 或者 `-ts`: 指定自定义模板源用于生成项目,可以使用本地源和网络源(例如 `D:\local-templat` 或 `https://.../my-template-file.zip`). * `--create-solution-folder` 或者 `-csf`: 指定项目是在输出文件夹中的新文件夹中还是直接在输出文件夹中. -* `--connection-string` 或者 `-cs`: 重写所有 `appsettings.json` 文件的默认连接字符串. 默认连接字符串是 `Server=localhost;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true`. 如果你不想使用默认,你可以设置自己的连接字符串. 默认的数据库提供程序是 `SQL Server`, 所以你只能输入SQL Server连接字符串! +* `--connection-string` 或者 `-cs`: 重写所有 `appsettings.json` 文件的默认连接字符串. 默认连接字符串是 `Server=localhost;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true`. 默认的数据库提供程序是 `SQL Server`. 如果你使用EF Core但需要更改DBMS,可以按[这里所述](Entity-Framework-Core-Other-DBMS.md)进行更改(创建解决方案之后). * `--local-framework-ref --abp-path`: 使用对项目的本地引用,而不是替换为NuGet包引用. ### add-package @@ -173,15 +174,15 @@ abp update [options] ### 切换到每晚构建(预览)包 -想要切换到ABP框架的最新预览版可以使用此命令. +想要切换到ABP框架的最新**每晚构建**预览版可以使用此命令. 用法: ````bash -abp switch-to-preview [options] +abp switch-to-nightly [options] ```` -你也可以使用切换回稳定版本: +你也可以使用切换回最新稳定版本: ````bash abp switch-to-stable [options] diff --git a/docs/zh-Hans/Getting-Started-React-Native.md b/docs/zh-Hans/Getting-Started-React-Native.md new file mode 100644 index 0000000000..54d093cb7c --- /dev/null +++ b/docs/zh-Hans/Getting-Started-React-Native.md @@ -0,0 +1,70 @@ +# React Native入门 + +ABP平台提供了[React Native](https://reactnative.dev/)模板用于开发移动应用程序. + +当你按照[入门文档](Getting-Started.md)中所述**创建新应用程序**时,解决方案默认将React Native应用程序包含在 `react-native` 文件夹中. + +## 配置你的本地IP地址 + +运行在Android模拟器或真机上的React Native应用程序无法连接到 `localhost` 上的后.要修复此问题,需要在本地IP上运行后端. + +{{ if Tiered == "No"}} +![React Native host project local IP entry](images/rn-host-local-ip.png) + +* 打开 `.HttpApi.Host` 文件夹下的 `appsettings.json` 文件. 将 `SelfUrl` 和 `Authority` 属性的 `localhost` 替换为你本地的IP地址. +* 打开 `.HttpApi.Host/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. + +{{ else if Tiered == "Yes" }} + +![React Native tiered project local IP entry](images/rn-tiered-local-ip.png) + +* 打开 `.IdentityServer` 文件夹下的 `appsettings.json` 文件. 将 `SelfUrl` 属性的 `localhost` 替换为你本地的IP地址. +* 打开 `.IdentityServer/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. +* 打开 `.HttpApi.Host` 文件夹下的 `appsettings.json` 文件. 将 `Authority` 属性的 `localhost` 替换为你本地的IP地址. +* 打开 `.HttpApi.Host/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. + +{{ end }} + +按照**运行HTTP API Host (服务端口)**那样运行后端. + +> React Native应用程序不信任自动生成的.NET HTTPS证书,你可以在开发期间使用HTTP. + +在 `react-native` 文件夹打开命令行终端,输入 `yarn` 命令(我们推荐使用[yarn](https://yarnpkg.com/)包管理, `npm install` 在大多数情况下也可以工作). + +```bash +yarn +``` + +* 打开 `react-nativer` 文件夹下的 `Environment.js` 文件. 将 `apiUrl` 和 `issuer` 属性的 `localhost` 替换为你本地的IP地址: + +![react native environment local IP](images/rn-environment-local-ip.png) + +{{ if Tiered == "Yes" }} + +> 确保 `issuer` 与正在运行的 `.IdentityServer` 项目匹配, `apiUrl` 与正在运行的 `.HttpApi.Host` 项目匹配. + +{{else}} + +> 确保 `issuer` 和 `apiUrl` 与正在运行的 `.HttpApi.Host` 项目匹配 + +{{ end }} + +等到所有node模块加载成功, 执行 `yarn start` (或 `npm start`) 命令: + +```bash +yarn start +``` + +等待Expo CLI启动后Expo CLI在 `http://localhost:19002/` 地址要开管理页面. + +![expo-interface](images/rn-expo-interface.png) + +在上面的管理界面中,可以通过使用[Expo Client](https://expo.io/tools#client)扫描二维码,使用Android模拟器,iOS模拟器或真机来启动应用程序. + +> 请参阅expo.io上的[Android Studio模拟器](https://docs.expo.io/workflow/android-simulator/)和[iOS模拟器文档](https://docs.expo.io/workflow/ios-simulator/). + +![React Native login screen on iPhone 11](images/rn-login-iphone.png) + +输入用户名 **admin**,密码 **1q2w3E*** 登录到应用程序. + +应用程序已经启动并执行,你可以基于该启动模板开发应用程序. \ No newline at end of file diff --git a/docs/zh-Hans/Getting-Started.md b/docs/zh-Hans/Getting-Started.md index adf9517eec..fe1a9ec6f9 100644 --- a/docs/zh-Hans/Getting-Started.md +++ b/docs/zh-Hans/Getting-Started.md @@ -19,24 +19,27 @@ 你需要安装以下工具: -* [Visual Studio 2019 (v16.4+)](https://visualstudio.microsoft.com/vs/) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). -* [.NET Core 3.0+](https://www.microsoft.com/net/download/dotnet-core/) +* [Visual Studio 2019 (v16.4+)](https://visualstudio.microsoft.com/vs/) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/).[1](#f-editor) +* [.NET Core 3.1+](https://www.microsoft.com/net/download/dotnet-core/) -* [Node v12+](https://nodejs.org) +* [Node v12 或 v14](https://nodejs.org/en/) * [Yarn v1.19+](https://classic.yarnpkg.com/) +* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) 或 npm v6+ (与Node一起安装) {{ if Tiered == "Yes" }} -* [Redis](https://redis.io/): 应用程序将Redis用作[分布式缓存](../Caching.md). 因此你需要安装并运行Redis. +* [Redis](https://redis.io/): 入门解决方案将Redis用作[分布式缓存](Caching.md). 因此你需要安装并运行Redis. {{ end }} -> 你可以也使用其他支持.NET Core 和 ASP.NET Core的编辑器. +1 _只要支持.NET Core和ASP.NET Core,就可以使用其他编辑器代替Visual Studio._ [↩](#a-editor) + +2 _Yarn v2 的工作方式不同,不受支持._ [↩](#a-yarn) ### 安装ABP CLI -[ABP CLI](./CLI.md)是一个命令行页面,用于为基于ABP的应用程序验证和自动化一些任务. +[ABP CLI](./CLI.md)是一个命令行页面,用于自动执行一些基于ABP的应用程序的常见任务. -> ABP CLI是[ABP框架](https://abp.io/)一个免费开源的工具. +> ABP CLI是ABP框架一个免费开源的工具. 你需要使用以下命令安排ABP CLI: @@ -59,10 +62,10 @@ dotnet tool update -g Volo.Abp.Cli 使用ABP CLI的 `new` 命令创建新项目: ````shell -abp new Acme.BookStore -t app{{if UI == "NG"}} -u angular {{end}}{{if DB == "Mongo"}} -d mongodb{{end}}{{if Tiered == "Yes" && UI != "NG"}} --tiered {{else if Tiered == "Yes" && UI == "NG"}}--separate-identity-server{{end}} +abp new Acme.BookStore{{if UI == "NG"}} -u angular {{end}}{{if DB == "Mongo"}} -d mongodb{{end}}{{if Tiered == "Yes" && UI != "NG"}} --tiered {{else if Tiered == "Yes" && UI == "NG"}}--separate-identity-server{{end}} ```` -* `-t` 参数指定 [启动模板](Startup-Templates/Application.md) 名称. `app` 是一个启动模板名称,包含了预安装并且配置好的[ABP模块](Modules/Index.md). +* 此命令还会在解决方案文件夹内创建一个React Native移动应用程序. 如果你不想要它,可以安全地删除它,或者在 `abp new` 命令中指定 `-m none` 选项,以使其完全不包含在解决方案中. {{ if UI == "NG" }} @@ -70,7 +73,7 @@ abp new Acme.BookStore -t app{{if UI == "NG"}} -u angular {{end}}{{if DB == "Mon {{ if Tiered == "Yes" }} -* `--separate-identity-server` 参数用于将Identity服务器应用程序与API主机应用程序分隔开. 如果未指定,你将只有一个端点. +* `--separate-identity-server` 参数用于将Identity服务器应用程序与API主机应用程序分隔开. 如果未指定,则服务器上将只有一个端点. {{ end }} @@ -90,6 +93,12 @@ abp new Acme.BookStore -t app{{if UI == "NG"}} -u angular {{end}}{{if DB == "Mon > 你可以使用不同级别的命令空间; 例如. BookStore, Acme.BookStore or Acme.Retail.BookStore. +#### ABP CLI 命令 & 选项 + +[ABP CLI文档](./CLI.md)涵盖了ABP CLI的所有可用命令和选项. 本文档使用[应用程序启动模板](Startup-Templates/Application.md)创建新的Web应用程序. 有关其他模板,请参见[ABP启动模板](Startup-Templates/Index.md)文档. + +> 或者,您可以从[ABP Framework网站](https://abp.io/get-started)中选择"直接下载"选项卡创建新的解决方案. + ## 解决方案结构 {{ if UI == "MVC" }} @@ -146,7 +155,7 @@ abp new Acme.BookStore -t app{{if UI == "NG"}} -u angular {{end}}{{if DB == "Mon ## 创建数据库 -### 数据库连接字符串 +### 连接字符串 检查 {{if UI == "MVC"}}{{if Tiered == "Yes"}}`.IdentityServer` 和 `.HttpApi.Host` 项目{{else}}`.Web` 项目{{end}}{{else if UI == "NG" }}`.HttpApi.Host` 项目{{end}}下 `appsettings.json` 文件中的 **链接字符串**: @@ -214,7 +223,9 @@ Ef Core具有`Update-Database`命令, 可根据需要创建数据库并应用挂 这将基于配置的连接字符串创建新数据库. -> 使用`.Migrator`工具是建议的方法, 因为它还能初始化初始数据能够正确运行Web应用程序. +> **使用`.DbMigrator`工具是建议的方法**, 因为它能初始化初始数据能够正确运行Web应用程序. +> +> 如果你只是使用 `Update-Database` 命令,你会得到一个空数据库,所以你无法登录到应用程序因为数据库中没有初始管理用户. 不需要种子数据库时,可以在开发期间使用 `Update-Database` 命令. 但是使用 `.DbMigrator` 应用程序会更简单,你始终可以使用它来迁移模式并为数据库添加种子. {{ else if DB == "Mongo" }} @@ -240,7 +251,7 @@ Ef Core具有`Update-Database`命令, 可根据需要创建数据库并应用挂 ![db-migrator-output](images/db-migrator-output.png) -> 数据库创建后会初始化种子数据, 其中包含用于登录的 `admin` 用户. 所以你至少使用 `.DbMigrator` 一次. +> 数据库创建后会初始化[种子数据](Data-Seeding.md), 其中包含用于登录的 `admin` 用户. 所以你至少使用 `.DbMigrator` 一次. {{ end }} @@ -336,83 +347,18 @@ yarn start {{ end }} -输入用户名 **admin**,密码 **1q2w3E*** 登录到应用程序. - -![bookstore-home](images/bookstore-home.png) - -应用程序已经启动并执行,你可以基于该启动模板开发应用程序. +输入用户名 **admin**,密码 **1q2w3E*** 登录到应用程序,应用程序已经启动并执行,你可以基于此启动模板开始开发应用程序. #### 移动开发 -ABP平台提供了[React Native](https://reactnative.dev/)模板用于开发移动应用程序. - -> 该解决方案默认 `react-native` 包含了React Native应用程序,如果你不计划使用React Native开发移动应用程序,你可以忽略并删除 `react-native` 文件夹. - -运行在Android模拟器或真机上的React Native应用程序无法连接到 `localhost` 上的后.要修复此问题,需要在本地IP上运行后端. - -{{ if Tiered == "No"}} -![React Native host project local IP entry](images/rn-host-local-ip.png) - -* 打开 `.HttpApi.Host` 文件夹下的 `appsettings.json` 文件. 将 `SelfUrl` 和 `Authority` 属性的 `localhost` 替换为你本地的IP地址. -* 打开 `.HttpApi.Host/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. - -{{ else if Tiered == "Yes" }} - -![React Native tiered project local IP entry](images/rn-tiered-local-ip.png) - -* 打开 `.IdentityServer` 文件夹下的 `appsettings.json` 文件. 将 `SelfUrl` 属性的 `localhost` 替换为你本地的IP地址. -* 打开 `.IdentityServer/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. -* 打开 `.HttpApi.Host` 文件夹下的 `appsettings.json` 文件. 将 `Authority` 属性的 `localhost` 替换为你本地的IP地址. -* 打开 `.HttpApi.Host/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. - -{{ end }} - -按照**运行HTTP API Host (服务端口)**那样运行后端. - -> React Native应用程序不信任自动生成的.NET HTTPS证书,你可以在开发期间使用HTTP. - -在 `react-native` 文件夹打开命令行终端,输入 `yarn` 命令(我们推荐使用[yarn](https://yarnpkg.com/)包管理, `npm install` 在大多数情况下也可以工作). - -```bash -yarn -``` - -* 打开 `react-nativer` 文件夹下的 `Environment.js` 文件. 将 `apiUrl` 和 `issuer` 属性的 `localhost` 替换为你本地的IP地址: - -![react native environment local IP](images/rn-environment-local-ip.png) - -{{ if Tiered == "Yes" }} - -> 确保 `issuer` 与正在运行的 `.IdentityServer` 项目匹配, `apiUrl` 与正在运行的 `.HttpApi.Host` 项目匹配. - -{{else}} - -> 确保 `issuer` 和 `apiUrl` 与正在运行的 `.HttpApi.Host` 项目匹配 - -{{ end }} - -等到所有node模块加载成功, 执行 `yarn start` (或 `npm start`) 命令: - -```bash -yarn start -``` - -等待Expo CLI启动后Expo CLI在 `http://localhost:19002/` 地址要开管理页面. - -![expo-interface](images/rn-expo-interface.png) - -在上面的管理界面中,可以通过使用[Expo Client](https://expo.io/tools#client)扫描二维码,使用Android模拟器,iOS模拟器或真机来启动应用程序. - -> 请参阅expo.io上的[Android Studio模拟器](https://docs.expo.io/workflow/android-simulator/)和[iOS模拟器文档](https://docs.expo.io/workflow/ios-simulator/). - -![React Native login screen on iPhone 11](images/rn-login-iphone.png) +当你创建一个新的应用程序时.该解决方案默认包含 `react-native`文件夹. 这是一个基础的[React Native](https://reactnative.dev/)启动模板,用于开发与基于ABP的后端集成的移动应用程序. -输入用户名 **admin**,密码 **1q2w3E*** 登录到应用程序. +如果你不计划使用React Native开发移动应用程序,你可以忽略并删除 `react-native` 文件夹. -应用程序已经启动并执行,你可以基于该启动模板开发应用程序. +> 你可以在ABP CLI中指定 `-m none` 选项,以使 `react-native` 目录完全不包含在解决方案中 -> [应用程序启动模板](Startup-Templates/Application.md) 包含租户管理和Identity模块. +请参阅"[React Native入门](Getting-Started-React-Native.md)"文档了解如何配置和运行React Native应用程序. ## 下一步是什么? -[应用程序开发教程](Tutorials/Part-1.md) +[Web应用程序开发教程](Tutorials/Part-1.md) diff --git a/docs/zh-Hans/Index.md b/docs/zh-Hans/Index.md index 3dd728c846..d409f1e8ab 100644 --- a/docs/zh-Hans/Index.md +++ b/docs/zh-Hans/Index.md @@ -4,23 +4,17 @@ ABP是一个**开源应用程序框架**,专注于基于ASP.NET Core的Web应用程序开发,但也支持开发其他类型的应用程序. -浏览左侧导航菜单以深入了解文档. +浏览导航菜单以深入了解文档. ## 入门 -使用ABP开发新项目的最简单方法是使用启动模板: +使用ABP开发新Web应用程序的最简单方法是使用[入门](Getting-Started.md)教程: -* [ASP.NET Core MVC (Razor Pages) UI 启动模板](Getting-Started.md?UI=MVC&DB=EF&Tiered=No) -* [Angular UI 启动模板](Getting-Started.md?UI=NG&DB=EF&Tiered=No) - -如果你想从头开始(使用空项目),请手动安装ABP框架并使用以下教程: - -* [控制台应用程序](Getting-Started-Console-Application.md) -* [ASP.NET Core Web 应用程序](Getting-Started-AspNetCore-Application.md) +然后你可以继续进行[Web应用程序开发教程](Tutorials/Part-1.md). ## 源码 -ABP托管在GitHub上, 参见[源代码](https://github.com/abpframework/abp). +ABP托管在GitHub上, 参见[源代码](https://github.com/abpframework). ## 贡献代码 diff --git a/docs/zh-Hans/Modules/Identity.md b/docs/zh-Hans/Modules/Identity.md index ea50006de9..f396de00c1 100644 --- a/docs/zh-Hans/Modules/Identity.md +++ b/docs/zh-Hans/Modules/Identity.md @@ -1,3 +1,5 @@ # 身份管理模块 +身份模块基于Microsoft Identity 库用于管理[组织单元](Organization-Units.md), 角色, 用户和他们的权限. + 参阅 [源码](https://github.com/abpframework/abp/tree/dev/modules/identity). 文档很快会被完善. \ No newline at end of file diff --git a/docs/zh-Hans/Modules/Index.md b/docs/zh-Hans/Modules/Index.md index a24a95c121..dab2f838df 100644 --- a/docs/zh-Hans/Modules/Index.md +++ b/docs/zh-Hans/Modules/Index.md @@ -17,7 +17,7 @@ ABP是一个 **模块化的应用程序框架** 由十多个 **nuget packages** * **Blogging**: 用于创建精美的博客. ABP的[博客](https://blog.abp.io/) 就使用了此模块. * [**Docs**](Docs.md): 用于创建技术文档页面. ABP的[文档](https://abp.io/documents/) 就使用了此模块. * **Feature Management**: 用于保存和管理功能. -* **Identity**: 基于Microsoft Identity管理角色,用户和他们的权限. +* [**Identity**](Identity.md): 基于Microsoft Identity管理组织单元,角色,用户和他们的权限. * **Identity Server**: 集成了IdentityServer4. * **Permission Management**: 用于保存权限. * **Setting Management**: 用于保存设置. diff --git a/docs/zh-Hans/Modules/Organization-Units.md b/docs/zh-Hans/Modules/Organization-Units.md new file mode 100644 index 0000000000..8047b6a48d --- /dev/null +++ b/docs/zh-Hans/Modules/Organization-Units.md @@ -0,0 +1,47 @@ +# 组织单元管理 + +组织单元(OU)是"身份模块"的一部分,用于**对用户和实体进行分层分组**. + +### OrganizationUnit 实体 + +OU由 **OrganizationUnit** 实体表示. 实体有以下基本属性: + +- **TenantId**: OU租户的ID,为null代表是宿主OU. +- **ParentId**: OU的父亲Id,为null为根OU. +- **Code**: 租户唯一的分层字符串代码. +- **DisplayName**: OU的显示名称. + +OrganizationUnit实体的主键(Id)是 **Guid** 类型,派生自[**FullAuditedAggregateRoot**](../Entities.md)类. + +#### Organization 树 + +因为OU可以有父亲,租户所有的OU是一个**树**结构. 树有一些规则: + +- 可以有多个根(`ParentId` 为 `null`). +- OU的第一级子级数有限制(面说明的固定OU代码单位长度). + +#### OU Code + +OU代码由OrganizationUnit Manager自动生成和维护. 看起来像这样的字符串: + +"**00001.00042.00005**" + +此代码可用于轻松查询数据库中OU的所有子级(递归). 代码有一些规则: + +- 必须[租户](../Multi-Tenancy.md)**唯一**的. +- 同一OU的所有子代均以**父OU的代码开头**. +- 它是**固定长度**的,并且基于树中OU的级别,如示例中所示. +- 虽然OU代码是唯一的,但是如果移动OU,它是**可更改的**. +- 你必须通过Id而不是代码引用OU. + +### OrganizationUnit Manager + +可以注入 **OrganizationUnitManager** 管理OU. 常见的用例有: + +- 创建,更改或删除OU. +- 在OU树中移动OU. +- 获取有关OU树及其项的信息 + +#### 多租户 + +`OrganizationUnitManager` 设置为一次性为 **单个租户** 工作,默认是 **当前租户**. \ No newline at end of file diff --git a/docs/zh-Hans/Nightly-Builds.md b/docs/zh-Hans/Nightly-Builds.md index 84ea243b05..020d69e02e 100644 --- a/docs/zh-Hans/Nightly-Builds.md +++ b/docs/zh-Hans/Nightly-Builds.md @@ -29,13 +29,13 @@ 预览NPM包的最新版本可以通过在应用程序的根文件夹命令运行命令安装: ```bash -abp switch-to-preview +abp switch-to-preview --npm ``` 如果你正在使用ABP框架预览包,你可以使用此命令切换回稳定版本: ```bash -abp switch-to-stable +abp switch-to-stable --npm ``` 参阅 [ABP CLI 文档](./CLI.md) 了解更多信息. \ No newline at end of file diff --git a/docs/zh-Hans/Options.md b/docs/zh-Hans/Options.md index c88ff0adda..5bb4b29a8b 100644 --- a/docs/zh-Hans/Options.md +++ b/docs/zh-Hans/Options.md @@ -82,7 +82,7 @@ public class MyService : ITransientDependency 对于此类情况,ABP为 `IServiceCollection` 引入了 `PreConfigure` 和 `ExecutePreConfiguredActions` 扩展方法. 该模式的工作原理如下所述. -1. 你的模块中定义计划选项类. 例: +在你的模块中定义预先选项类. 例: ````csharp public class MyPreOptions diff --git a/docs/zh-Hans/Repositories.md b/docs/zh-Hans/Repositories.md index 18bfa5f77d..ee48186985 100644 --- a/docs/zh-Hans/Repositories.md +++ b/docs/zh-Hans/Repositories.md @@ -193,8 +193,6 @@ var people = ((IMongoQueryable)_personRepository ### 选项-3: IAsyncQueryableExecuter -> 注意,此功能在ABP框架3.0以之后的版本可用,虽然它也可以用于较早的版本,但它提供的方法非常有限. - `IAsyncQueryableExecuter` 是一个用于异步执行 `IQueryable` 对象的服务,**不依赖于实际的数据库提供程序**. **示例: 注入并使用 `IAsyncQueryableExecuter.ToListAsync()` 方法** diff --git a/docs/zh-Hans/Road-Map.md b/docs/zh-Hans/Road-Map.md index f18441cb41..d8a277ac0e 100644 --- a/docs/zh-Hans/Road-Map.md +++ b/docs/zh-Hans/Road-Map.md @@ -9,7 +9,6 @@ 除了中期目录,还有一些[积压](https://github.com/abpframework/abp/milestone/2)的功能, 这里积压中重要功能的列表: -* [#4098](https://github.com/abpframework/abp/issues/4098) / Blob存储Azure提供者. * [#2882](https://github.com/abpframework/abp/issues/2882) / 提供 **gRPC集成** 基础设施 (虽然[已经可以](https://github.com/abpframework/abp-samples/tree/master/GrpcDemo)为你的应用程序创建和使用gRPC端点,但我们计划为所有[标准应用程序模块](https://docs.abp.io/en/abp/latest/Modules/Index)创建端点) * [#236](https://github.com/abpframework/abp/issues/236) 基于权限系统的资源 * [#1754](https://github.com/abpframework/abp/issues/1754) / 多语言实体 diff --git a/docs/zh-Hans/Samples/Index.md b/docs/zh-Hans/Samples/Index.md index c54b2e8ba6..94e5392b51 100644 --- a/docs/zh-Hans/Samples/Index.md +++ b/docs/zh-Hans/Samples/Index.md @@ -7,7 +7,7 @@ 演示如何基于微服务体系结构构建系统的完整解决方案. * [示例的文档](Microservice-Demo.md) -* [源码](https://github.com/abpframework/abp/tree/dev/samples/MicroserviceDemo) +* [源码](https://github.com/abpframework/abp-samples/tree/master/MicroserviceDemo) * [微服务架构文档](../Microservice-Architecture.md) ### Book Store @@ -48,6 +48,8 @@ * **文本模板 Demo**: 文本模板系统的不同用例. * [源码](https://github.com/abpframework/abp-samples/tree/master/TextTemplateDemo) * [文本模板文档](../Text-Templating.md) +* **存储过程 Demo**: 演示如何以最佳实践使用存储过程,数据库视图和函数. + * [源码](https://github.com/abpframework/abp-samples/tree/master/StoredProcedureDemo) * **自定义认证**: 如何为ASP.NET Core MVC / Razor Pages应用程序自定义身份验证的解决方案. * [源码](https://github.com/abpframework/abp-samples/tree/master/Authentication-Customization) * 相关 "[How To](../How-To/Index.md)" 文档: diff --git a/docs/zh-Hans/Samples/Microservice-Demo.md b/docs/zh-Hans/Samples/Microservice-Demo.md index b0134eddde..59977908a1 100644 --- a/docs/zh-Hans/Samples/Microservice-Demo.md +++ b/docs/zh-Hans/Samples/Microservice-Demo.md @@ -28,7 +28,7 @@ ABP框架的主要目标之一就是提供[便捷的基础设施来创建微服 ### 源码 -你可以从[GitHub仓库](https://github.com/abpframework/abp/tree/master/samples/MicroserviceDemo)获取源码. +你可以从[GitHub仓库](https://github.com/abpframework/abp-samples/tree/master/MicroserviceDemo)获取源码. ## 运行解决方案 @@ -43,6 +43,12 @@ ABP框架的主要目标之一就是提供[便捷的基础设施来创建微服 * [ElasticSearch](https://www.elastic.co/downloads/elasticsearch) 6.6+ * [Kibana](https://www.elastic.co/downloads/kibana) 6.6+ (可选,建议显示日志) +### 运行基础设施 + +- 默认情况下运行Docker-compose可以轻松运行预先要求. 如果你没有安装,在windows环境下你可以在[这里](https://docs.docker.com/docker-for-windows/install/)下载并使用[Docker for Windows](https://docs.docker.com/docker-for-windows/). +* 在 `MicroserviceDemo` 目录下运行命令 `docker-compose -f docker-compose.infrastructure.yml -f docker-compose.infrastructure.override.yml up -d` 或使用powershell运行 `MicroserviceDemo/_run` 文件夹下的 `__Run_Infrastructure.ps1` 脚本. +* 如果你不想使用docker运行预先要求的服务在你的本地环境,你需要更改微服务示例解决方案项目中的 `appsettings.json` 文件. + ### 打开并构建Visual Studio解决方案 * 在Visual Studio 2017 (15.9.0+)中打开`samples\MicroserviceDemo\MicroserviceDemo.sln`. diff --git a/docs/zh-Hans/SignalR-Integration.md b/docs/zh-Hans/SignalR-Integration.md index 5e17b1c75c..bdf4a7a786 100644 --- a/docs/zh-Hans/SignalR-Integration.md +++ b/docs/zh-Hans/SignalR-Integration.md @@ -115,7 +115,7 @@ public class MessagingHub : Hub } ```` -`MessasingHub` 集线器的路由为 `/signalr-hubs/messasing`: +`MessagingHub` 集线器的路由为 `/signalr-hubs/messaging`: * 添加了标准 `/signalr-hubs/` 前缀. * 使用**驼峰命名**集线器名称,不包含 `Hub` 后缀. @@ -123,7 +123,7 @@ public class MessagingHub : Hub 如果你想指定路由,你可以使用 `HubRoute` attribute: ````csharp -[HubRoute("/my-messasing-hub")] +[HubRoute("/my-messaging-hub")] public class MessagingHub : Hub { //... diff --git a/docs/zh-Hans/Text-Templating.md b/docs/zh-Hans/Text-Templating.md index 0785dbba29..be9cbb3a79 100644 --- a/docs/zh-Hans/Text-Templating.md +++ b/docs/zh-Hans/Text-Templating.md @@ -4,7 +4,7 @@ ABP框架提供了一个简单有效的文本模板系统,文本模板用于动态渲染基于模板和模型(数据对象)内容: -***TEMPLATE + MODEL ==render==> RENDERED CONTENT*** +Template + Model =renderer=> Rendered Content 它非常类似于 ASP.NET Core Razor View (或 Page): diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index cae14bdae2..683bf750c0 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -446,6 +446,15 @@ } ] }, + { + "text": "React Native", + "items": [ + { + "text": "入门", + "path": "Getting-Started-React-Native.md" + } + ] + }, { "text": "通用", "items": [ @@ -624,6 +633,10 @@ { "text": "API文档", "path": "{ApiDocumentationUrl}" + }, + { + "text": "官方包", + "path": "https://abp.io/packages" } ] }