ABP 框架提供一个预构建的应用程序启动模板。有两种方法可以使用此模板创建新解决方案(Solution)。
## 官网配置和下载
您可以直接从[https://abp.io/get-started](https://abp.io/get-started)创建和下载解决方案。在这个页面上,如图,您可以轻松选择**用户界面**(**UI**) 框架、数据库提供程序和其他可用选项:
![](https://img.kancloud.cn/4b/ad/4bad5450bec1538c9ba1d1ab8d1fa7a9_802x659.png)
值得一提的是此页面上的选项,不同的配置会影响到不同的架构、结构和工具。
* **Project name**是 Visual Studio 解决方案(`.sln`文件)的名称,也是项目的根命名空间。
* 对于**Project type**,有两个选项,如下所示:
* **Module**模板用于创建可重用的应用模块。
* **Application**模板用于构建 Web 应用程序。
**模块**模板的详情将在\[*第 15 章*\] 使用模块化中介绍。在这里,我选择了**应用程序**模板,因为我想创建一个新的 Web 应用程序,我们将在下一章中使用它。
截止目前,有四个**UI 框架选项可用,如下所示:**
* MVC/Razor Page
* Angular
* Blazor WebAssembly
* Blazor Server
您可以选择最适合您的应用要求。我们将在本书的*第 4 部分*,用户界面和 API 开发中介绍**MVC/Razor 页面**和**Blazor**选项。您可以在 ABP 的官方文档中了解有关 Angular UI 的更多信息。在这里,我选择**MVC/Razor Page**选项作为示例。
目前,有两个可用的数据库提供程序选项,如下所示:
* Entity Framework Core
* MongoDB
如果选择**Entity Framework Core**选项,则可以使用 EF Core 支持的任何 DBMS。我在这里选择了带有**SQLServer**选项的 EF Core。
ABP 还提供基于**React Native**的移动模板,一个由Facebook 提供的流行**单页应用程序**(**SPA**) 框架。这本书暂不涉及移动开发,所以我将其保留为**None**。
最后,如果您想将您的 UI 与**HTTP API**做物理分离,可以选中**分层选项**。在这种情况下,UI 将没有直接的数据库连接,它通过 HTTP API 执行调用。你可以将 UI 和 HTTP API 分开部署。这里我们使用单体架构而不是分布式系统,虽然ABP 也支持这种分布式场景。
当您选择完这些选项后,ABP 会创建一个完全可用的生产级别的解决方案,您可以在此基础上开始构建您的应用程序。如果您稍后想要更改选项(例如,如果您想要使用 MongoDB 而不是 EF Core),您应该重新创建您的解决方案或手动配置相关 NuGet 包,目前没有自动更改这些选项的方法。
除了从网站下载您的解决方案,对于喜欢命令行工具的用户来说,还有另一种方法。
## 使用 ABP CLI
您可以使用ABP CLI 中的`new`命令创建新的解决方案。打开命令行终端并在空目录中键入以下命令:
```
abp new ProductManagement
```
`ProductManagement`是解决方案名称。此命令默认使用带有 EF Core 的 SQL Server LocalDB 和 MVC/Razor 页面 UI 创建 Web 应用。如果我想指定选项,我可以重写相同的命令,如下所示:
```
abp new ProductManagement -t app -u mvc -d ef -dbms SqlServer --mobile none
```
如果要指定数据库连接字符串,也可以传递`--connection-string`参数,如下例所示:
```
abp new ProductManagement -t app -u mvc -d ef -dbms SqlServer --mobile none --connection-string "Server=(LocalDb)\\MSSQLLocalDB;Database=ProductManagement;Trusted_Connection=True"
```
我们现在拥有一个架构完善、可用于生产的解决方案`ProductManagement`。下一节将展示如何运行此解决方案。
- 前言
- 第一部分
- 第1章 现代软件开发和 ABP 框架
- 企业级 Web 开发的挑战
- ABP框架的能力清单
- 第2章 ABP框架入门
- 安装 ABP CLI
- 创建新解决方案
- 运行解决方案
- 探索预构建模块
- 第3章 逐步开发开发ABP应用
- 创建解决方案
- 定义领域对象
- EFCore和数据库映射
- 定义应用服务
- 测试产品
- 产品列表
- 创建产品
- 编辑产品
- 删除产品
- 第4章 探索 EventHub解决方案
- 应用介绍
- 架构探索
- 方案运行
- 第二部分
- 第5章 探索ABP基础架构
- 了解模块化
- 使用依赖注入系统
- 配置应用程序
- 实现选项模式
- 日志系统
- 第6章 数据访问基础架构
- 定义实体
- 定义仓储库
- EF Core集成
- 了解 UoW
- 第7章 探索横切关注点
- 认证授权
- 用户验证
- 异常处理
- 第8章 体验 ABP 的功能和服务
- 获取当前用户
- 使用数据过滤
- 控制审计日志
- 缓存数据
- 本地化用户界面
- 第三部分
- 第9章 理解领域驱动设计
- 介绍 DDD
- 构建基于 DDD 的 解决方案
- 处理多个应用程序
- 了解执行流程
- DDD的通用原则
- 第10章 领域层 Domain
- 领域事件案例分析
- 聚合和实体的设计原则和实践
- 实现领域服务
- 落地存储库
- 构建规约(Specification)
- 领域事件
- 第11章 应用层 Application
- 落地应用服务
- 设计 DTO
- 理解各层的职责
- 第四部分
- 第12章 MVC/Razor 页面
- 主题系统
- 绑定和压缩
- 导航菜单
- Bootstrap标签助手
- 创建表单并验证
- 使用模态窗口
- 使用JS API
- 调用HTTP API
- 第13章 Blazor WebAssembly UI
- 什么是Blazor
- ABP Blazor UI
- 验证用户身份
- 理解主题系统
- 使用菜单
- 使用基本服务
- 使用UI服务
- 消费HTTP API
- 使用全局脚本和样式
- 第14章 HTTP API 和实时服务
- 构建HTTP API
- 使用HTTP API
- 使用SignalR
- 第五部分
- 第15章 落地模块化
- 理解模块化
- 构建支付模块
- 安装模块
- 第16章 实现多租户
- 理解多租户
- 多租户基础设施
- 使用功能系统
- 何时使用多租户
- 第17章 构建自动化测试
- 了解ABP测试基础设施
- 构建单元测试
- 构建集成测试