简介
一个基于 ABP 的微服架构,开箱即用。
运行条件
运行环境
运行前先安装:
-
数据库:默认使用的数据库是MySQL,如要切换数据库,参见 Switch to Another DBMS for Entity Framework Core。
-
Redis
-
RabbitMQ (非必须,如果使用了依赖RabbitMQ的模块)
依赖类库 artizan-abp
解决方案 artizan-abp-microservice 引用了 artizan-abp 类库。
引用依赖类库 artizan-abp的方式有:
- 通过项目源码引用
- 通过 Nuget (官方或私有)引用
解决方案 artizan-abp-microservice 与依赖类库 artizan-abp 源码的目录层级关系如下所示:
artizan-abp
├── framework # 框架
├── modules # 主目录
│ ├── account # account 模块
│ ├── identity # identity 模块
│ ├── ... # 其它 module
│
├── build # 所有项目编译、发布脚本
│ │ ├── common.ps1 # 配置脚本,主要配置将要编译、发布的项目目录
│ │ ├── build-all.ps1 # 项目编译脚本
│ │ └── build-all-release.ps1 # 项目发布脚本
│ │
├── nupkg # nuget 相关文件
│ │ ├── common.ps1 # 配置脚本,主要配置将要打包的项目(根)目录
│ │ ├── pack.ps1 # 脚本:批量打包
│ │ └── push_packages.ps1 # 脚本:批量上传包
│ └── ...
│
artizan-abp-microservice
│ ├── v7.x
│ │ ├── apps # 应用程序
│ │ ├── gateways # 网关
│ │ ├── services # 微服务
│ │ ├── tye.yaml # tye 配置,用于 tye run
│ │ ├── ...
│ │ └── MsOnAbp.sln # 解决方案
引用 artizan-abp 源码
如果解决方案 artizan-abp-microservice 直接引用类库 artizan-abp 源码,得先编译 artizan-abp 源码,
在类库 artizan-abp的目录: artizan-abp\build
中打开 PowerShell,执行如下命令,对 artizan-abp 所有项目进行编译:
artizan-abp\build> .\build-all.ps1
可选参数:-f, (即:full, 编译全部的意思) ,添加该参数后,在编译时将包含一些非必须项目。
更多说明,参见该目录下的 README.md 文件
编译成功后,解决方案 artizan-abp-microservice 有可能还是无法识别类库 artizan-abp 中的项目,出现这种情况,解决办法如下:
在 MsOnAbp.sln 解决方案所在目录中打开 PowerShell,然后执行如下命令:
> dotnet restore
命令执行完成后,如果还是有些项目无法识别,请到具体出现问题的项目的根目录中执行: dotnet restore
命令。
引用 artizan-abp 的Nuget包
可以将类库 artizan-abp 中的项目发布到官方或者私有的 Nuget源,然后再通过 Nuget引用。
如何发布 artizan-abp 的 Nuget包 ,请参见类库 artizan-abp 的如下文档:
artizan-abp\nupkg\README.md
如何运行?
后台项目
后台项目包括:
-
认证授权服务: auth-server
-
内部网关:web-gateway
-
外部网关: web-public-gateway
-
微服务: administration-service、identity-service 等
要运行所有后台项目,有如下几种方式:
- Visual Studio
- Tye
Visual Studio
使用 Visual Studio 运行 MsOnAbp的方法如下:
使用 Visual Studio 打开 MsOnAbp.sln 解决方案 ,鼠标右键单击 MsOnAbp.sln解决方案,选择【属性】菜单项,在弹出的属性页弹框中,选择【多个启动项目(M)】,然后选择要启动的项目,注意调整项目启动的顺序,如下图所示:
设置完成后,点击【确定】按钮。
然后在工具栏中,点击【启动】按钮,即可同时启动多个项目。
Tye
使用 Tye 运行 MsOnAbp 的方法如下:
打开 PowerShell, 切换到解决方案 MsOnAbp.sln 所在目录,然后执行如下命令:
> tye run
注意:
1.你需要在你的电脑中安装 Type ,可以通过如下执行命令安装 Tye:
dotnet tool install -g Microsoft.Tye
2.Tye 的配置文件名为:tye.yaml, 位于解决方案 MsOnAbp 所在目录,如果有新的项目要加入启动列表,记得在该文件中添加相关配置。
上述命令执行完成后,查看输出结果:
[00:30:17 INF] Executing application from F:\05-workspace\dev\01-lab\abp-framework\artizan-abp-microservice\v7.x\tye.yaml
[00:30:17 INF] Dashboard running on http://127.0.0.1:8000
[00:30:17 INF] Build Watcher: Watching for builds...
[00:30:17 INF] Building projects
...
从上述输出结果可以看到,Tye 的仪表盘地址:http://localhost:8000
,使用浏览器访问该地址,你会看到所有的项目都已经运行,如下图所示:
应用程序
backend-admin
这是后台管理应用程序,基于 vue的纯前端项目,其技术栈主要有:
- Vue3
- TypeScript
- Tailwind css
- Vite
那如何运行项目呢?
在项目根目录(即:package.json 文件所在目录)中打开 Powershell ,然后执行如下命令:
# 安装依赖
> yarn
# 运行开发环境
> yarn dev
# 生产环境项目打包
> yarn build
注意:
1.也可以使用 npm、pnpm 等;
2.如果无法运行,具体参看该项目的相关文档(如:README.md 等)。
其它
clean.bat
双击 clean.bat,可以自动清除所有项目的如下文件夹:
- bin
- obj
- node_modules
开发进度
后台框架
完成进度如下:
- [✔] 微服务:AdministrationService
- [✔] 微服务:IdentityService
- [✔] 内部网关
- [✔] 外部网关
- [✔] 认证服务:AuthServer (基于OpenIddict)
artizan-vue-admin
开发进度
完成进度如下:
-
[✔] 用户名/邮箱登录
-
[✔] Vue 的状态管理:基于pinia 的 abpStore
-
[✔] 本地存储:基于localStorage 的 abpStorage
-
[✔] 本地化:hook:useLocalization
-
[✔] 权限:hook:useAuthorization
-
[✔] 路由:登录身份认证守卫、权限守卫
-
[✔] 菜单:根据权限生成菜单
-
[✘] 角色管理:
- [✘ ] CURD
- [✘] 权限
-
[✘] 用户管理:
- [✘] CURD
- [✘] 权限
- [✘] 密码重置
- [✘] 锁定/解锁
-
[✘] 个人设置:
- [✘] 个人信息
- [✘] 修改密码
-
[✘] 设置管理:
- [✘] 账号设置
- [✘] 邮箱设置
-
[✘] 账号管理:
- [✘] 用户名/邮箱注册
- [✘] 邮箱确认
- [✘] 手机注册
- [✘] 手机确认
- [✘] 忘记密码
-
[✘] 第三方登录:
- [✘] 微信公众号
- [✘] 微信小程序
- [✘] QQ登录
持续开发中....