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`。下一节将展示如何运行此解决方案。