ABP 适用性改造 - 精简 ABP CLI 生成的项目结构

不管是公司或者个人都会有不同的开发习惯,通过建立项目模板,既可以使开发人员聚焦于业务功能的开发,也可以在一定程度上统一不同开发人员之间的开发风格。在使用 ABP 框架的过程中,对于 ABP 生成的默认项目模板,类库多,附加功能多,是目前在部门内部推行 ABP 过程中遇到的问题。因此,本篇文章将针对 ABP 默认生成的模板项目进行精简,构建出一个简化版的 ABP 项目模板

模板源码地址:https://github.com/danvic712/ingos-abp-api-template

Step by Step

在精简项目结构之前肯定需要一个由 ABP CLI 生成的默认项目模板供我们进行参考,创建 ABP 项目主要有如下的两种方式进行

第一种,通过使用 ABP CLI 这么一个 dotnet tool 来创建一个基础项目,只需要将 ABP CLI 全局安装到电脑上,就可以通过脚手架来生成所需项目

-- 全局安装 ABP CLI dotnet tool install -g Volo.Abp.Cli -- 全局更新 ABP CLI dotnet tool update -g Volo.Abp.Cli

当安装完成之后,输入 abp help 就可以查看该脚手架提供的功能,例如这里我们需要通过 abp new 命令来创建项目,同时基于不同的需求,在创建项目时附加不同的参数即可

ABP CLI

第二种,则是直接通过官网(https://abp.io/get-started)进行下载,本篇文章中所使用到的项目模板就是使用该方法,直接在官网上下载的模板基础上进行调整的

创建项目

在官网创建项目时需要输入项目的相关信息,因为这里需要改造的是 Web API 项目,所以 UI 框架选择了 Angular,同时,因为默认的 ABP 模板会把 IdentityServer 和 API 项目混在一起,所以这里我会把这两块的功能进行拆分,确定项目类型无误之后,点击现在创建按钮,等待浏览器提示有文件需要下载即可

2.1、运行模板项目

解压下载完成的安装包,如果你和我创建的项目选项相同的话,这里会包含两个文件夹,因为仅针对后端项目进行调整,这里只关注 aspnet-core 文件夹中的内容即可。在改造之前,我们先依据官方文档中的使用说明来进行操作,确保模板是可以正常运行起来之后再进行后续的调整。

模板文件夹结构

2.1.1、调整数据库连接字符串

在 ABP 生成的模板项目中,整个项目的配置文件 appsettings.json 文件存在于三个地方,.DbMigrator、.HttpApi.Host、.IdentityServer,先不去关注这三个项目的具体作用,首先将这三处配置文件中的数据库连接字符串修改为实际使用的配置信息

"ConnectionStrings": { "Default": "Server=localhost;Port=3306;Database=IngosAbpTemplate;Uid=root;Pwd=myPassword;" }, 2.1.2、执行数据库迁移

在调整完数据库连接配置之后,就可以执行数据库的迁移操作,从而实现初始化项目模板中内置的一些数据表结构 or 初始化数据

这里,将 .DbMigrator 设置为启动项目,直接运行,等待程序的运行完成即可。此时,打开你所使用的 DBMS 工具,可以看到模板项目中定义的表已经迁移到了我们指定的数据库中

执行数据库迁移

可以看到,整个模板项目中包含了很多的东西,绝大多数的功能都不会是我们平常在开发业务功能时经常能够使用到的

2.1.3、运行程序

当数据库迁移成功之后就可以正式运行了,在这个模板程序中存在着两个 Web 应用,.HttpApi.Host、.IdentityServer,分别对应于 API 接口的宿主以及 IdentityServer 的宿主,因为后续会移除掉 IdentityServer 相关的功能,所以这里就只运行 .HttpApi.Host 这一个站点了

将 .HttpApi.Host 设置为启动程序,这里并不会进行调试,所以直接通过 Ctrl + F5 运行,项目会自动打开 swagger 页面

Swagger

2.2、精简项目功能

当程序可以运行起来之后,就可以针对模板项目进行精简及改造,这里主要包含两块的内容,精简模板的功能以及简化项目的结构

2.2.1、精简模板功能

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspysp.html