ABP框架入门
技术分享
3年前 (2022-04-25)
0
999+
本文适合初级开发人员,不适合老手在上面浪费时间,希望能帮新人起到一个引导的作用。
技术准备
在开始使用 ABP 框架之前,您需要在计算机上安装一些工具。
IDE/编辑器
本书假设您使用的是Visual Studio 2022 (支持 .NET 6.0 的 v10.0)或更高版本。如果你还没安装,社区版 是在https://visualstudio.microsoft.com上免费提供。当然,你也可以使用你喜欢的集成开发环境 (IDE )或编辑器,只要它支持使用 C# 进行 .NET 程序开发。
.NET 6 SDK
如果你已经安装Visual Studio,你也会同时安装.NET 软件开发工具包 (SDK)。否则,请从https://dotnet.microsoft.com/download安装 .NET 6.0 或更高版本。
数据库准备
ABP 框架可以与任何数据源对接。目前已预先集成:Entity Framework Core (EF Core ) 和MongoDB 。对于 EF Core,支持所有数据库管理系统(DBMS ),例如如 SQL Server 、MySQL 、PostgreSQL 、Oracle 等。
在本章中,我将使用SQL Server 作为 DBMS。启动解决方案使用LocalDB (一个简单的 SQL Server 实例,适用于安装了 Visual Studio 的开发人员)。但是,您可以想使用完整版的 SQL Server。如果你想使用完整版的SQL Server,您可以从https://www.microsoft.com/sql-server/sql-server-downloads下载SQL Server Developer Edition 。
安装 ABP CLI
大部分主流的框架都会提供了 CLI,ABP 框架也不例外。ABP CLI 是一个命令行工具,它可以为 ABP 应用程序执行一些常见任务。比如,创建以 ABP 框架为基础的新解决方案。
通过终端,输入以下命令安装它:
dotnet tool install -g Volo.Abp.Cli
如果您已经安装了它,您可以使用以下命令将其更新到最新版本:
dotnet tool update -g Volo.Abp.Cli
创建新解决方案
ABP 框架提供一个预构建的应用程序启动模板。有两种方法可以使用此模板创建新解决方案(Solution)。
官网配置和下载
您可以直接从https://abp.io/get-started创建和下载解决方案。在这个页面上,如图,您可以轻松选择用户界面 (UI ) 框架、数据库提供程序和其他可用选项:值得一提的是此页面上的选项,不同的配置会影响到不同的架构、结构和工具。
值得一提的是此页面上的选项,不同的配置会影响到不同的架构、结构和工具。
模块 模板的详情将在[第 15 章 ] 使用模块化中介绍。在这里,我选择了应用程序 模板,因为我想创建一个新的 Web 应用程序,我们将在下一章中使用它。
截止目前,有四个UI 框架选项可用,如下所示:
目前,有两个可用的数据库提供程序选项,如下所示:
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
。下一节将展示如何运行此解决方案。
运行解决方案
我们使用 Visual Studio 或代码编辑器打开解决方案ProductManagement.sln
、创建数据库并运行 Web 应用程序。您将看到如下图所示的解决方案结构:
该解决方案是包含多个项目的分层结构。测试文件夹包含测试这些对应层的项目。这些项目中有一些是类库,有一些是可执行应用程序:
在创建数据库之前,您可能需要检查并更改数据库连接字符串。
连接字符串
连接字符串在ProductManagement.Web
和ProductManagement.DbMigrator
项目的appsettings.json
文件中定义,包括服务器、数据库名称和凭据。如以下代码片段所示:
"ConnectionStrings": {
"Default": "Server=(LocalDb)\MSSQLLocalDB;Database=ProductManagement;Trusted_Connection=True"
}
默认连接字符串使用LocalDb
,一个轻量级、与 SQL Server 兼容的数据库。它安装在 Visual Studio 中。如果要连接到另一个 SQL Server 实例,需要更改连接字符串。
创建数据库
该解决方案使用 EF Core 的 Code First 进行数据库迁移。因此,我们可以使用标准Add-Migration
和Update-Database
命令来管理数据库更改。
ProductManagement.DbMigrator
是一个控制台应用程序,可简化在开发和生产环境中创建和迁移数据库。它还提供数据初始化,比如创建默认登录使用到的admin
用户和角色。
右键单击该ProductManagement.DbMigrator
项目并选择设置为启动项目 命令。然后,使用Ctrl +F5 运行项目,无需调试即可运行。
关于初始迁移
如果您使用的是 Visual Studio 以外的 IDE(例如 JetBrains Rider),则首次运行可能会遇到问题。在这种情况下,可以在项目ProductManagement.DbMigrator
目录中打开一个命令行终端并执行dotnet run
命令。下次,您就可以像往常一样在 IDE 中运行它。
数据库已经准备好了,我们可以运行应用程序来查看界面 UI了。
运行 Web 应用程序
设置ProductManagement.Web
为启动项目,并使用Ctrl +F5 运行它(无需调试即可启动)。
除非调试它们,否则强烈建议在不调试的情况下运行应用程序,因为这样会快得多。
接着会打开一个登录页面,如以下屏幕截图所示:默认用户名是admin
,默认密码是1q2w3E*
。可以在登录之后进行更改。
默认用户名是admin
,默认密码是1q2w3E*
。可以在登录之后进行更改。