这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

14 KiB

abp-next-admin 项目概述

**本文档中引用的文件** - [README.md](file://README.md) - [RELEASE.md](file://RELEASE.md) - [Program.cs](file://aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Program.cs) - [appsettings.json](file://aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/appsettings.json) - [package.json](file://apps/vben5/apps/web-antd/package.json) - [vite.config.ts](file://apps/vue/vite.config.ts) - [Startup.cs](file://aspnet-core/tests/LINGYUN.Abp.AspNetCore.Tests/LINGYUN/Abp/AspNetCore/Startup.cs) - [BackendAdminHttpApiHostModule.Configure.cs](file://aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs)

目录

  1. 项目简介
  2. 项目定位与目标
  3. 核心技术架构
  4. 双架构支持
  5. 核心功能模块
  6. 技术栈概览
  7. 项目发展历程
  8. 部署方案
  9. 项目优势
  10. 总结

项目简介

abp-next-admin 是一个基于 ABP 框架的企业级全栈后台管理系统解决方案,它巧妙地结合了 ASP.NET Core 微服务架构与 Vue.js 前端框架,为现代企业应用开发提供了完整的开箱即用解决方案。

该项目不仅仅是一个简单的后台管理系统,而是一个经过精心设计的企业级应用平台,旨在帮助开发团队快速构建高质量、可扩展、可维护的现代化企业应用。

项目定位与目标

核心定位

abp-next-admin 定位于企业级全栈应用解决方案提供商,致力于为企业用户提供:

  • 完整的企业级后台管理功能
  • 现代化的微服务架构支持
  • 开箱即用的开发体验
  • 高度可定制化的业务扩展能力

设计目标

  1. 企业级标准:遵循企业级应用开发的最佳实践
  2. 技术先进性:采用最新的技术栈和架构模式
  3. 开发效率:提供高效的开发工具和流程
  4. 可扩展性:支持从小型项目到大型企业的各种规模需求
  5. 维护友好:确保代码质量和长期可维护性

核心技术架构

整体架构设计

graph TB
subgraph "前端层"
Vue[Vue.js 3.x]
AntD[Ant Design Vue]
Vben[vue-vben-admin]
Vite[Vite 构建工具]
end
subgraph "后端层"
ASP[ASP.NET Core]
ABP[ABP Framework]
Micro[微服务架构]
Gateway[API 网关]
end
subgraph "数据层"
SQL[SQL Server/MySQL/PostgreSQL]
Redis[Redis 缓存]
Elastic[Elasticsearch]
Rabbit[RabbitMQ]
end
subgraph "基础设施"
Docker[Docker 容器化]
K8s[Kubernetes 部署]
CI[CI/CD 流水线]
end
Vue --> ASP
AntD --> Vite
Vben --> Vue
ABP --> ASP
Micro --> Gateway
Gateway --> ASP
ASP --> SQL
ASP --> Redis
ASP --> Elastic
ASP --> Rabbit
Docker --> K8s
K8s --> CI

图表来源

  • Program.cs
  • vite.config.ts

后端架构特点

  1. 模块化设计:基于 ABP 框架的模块化架构
  2. 微服务支持:原生支持微服务部署模式
  3. 多数据库支持:兼容 SQL Server、MySQL、PostgreSQL
  4. 分布式缓存:集成 Redis 分布式缓存
  5. 消息队列:支持 RabbitMQ 分布式事件通信

章节来源

  • Program.cs
  • BackendAdminHttpApiHostModule.Configure.cs

双架构支持

单体服务架构

单体服务架构适合中小型项目或初期开发阶段,具有以下特点:

  • 部署简单:单一应用程序包,易于部署和维护
  • 开发效率高:无需处理微服务间的复杂交互
  • 运维成本低:减少基础设施复杂度
  • 适合场景:初创项目、小型企业、原型验证

微服务架构

微服务架构适合大型企业项目,提供更高的可扩展性和灵活性:

  • 服务独立:每个服务独立开发、部署和扩展
  • 技术多样性:不同服务可以采用不同的技术栈
  • 高可用性:单个服务故障不影响整体系统
  • 适合场景:大型企业、高并发场景、复杂业务逻辑
flowchart TD
Start([项目启动]) --> Decision{选择架构类型}
Decision --> |小型项目| Monolithic[单体服务部署]
Decision --> |大型项目| Microservice[微服务部署]
Monolithic --> Deploy1[单一应用包]
Monolithic --> Scale1[水平扩展]
Monolithic --> Monitor1[集中监控]
Microservice --> Deploy2[多个独立服务]
Microservice --> Scale2[按需扩展]
Microservice --> Monitor2[分布式监控]
Deploy1 --> End([项目完成])
Scale1 --> End
Deploy2 --> End
Scale2 --> End
Monitor2 --> End
Monitor1 --> End

核心功能模块

后端核心模块

基于 ABP 框架的丰富模块生态,abp-next-admin 提供了以下核心功能模块:

  1. 身份认证与授权

    • OAuth2/OpenID Connect 支持
    • JWT Token 认证
    • 基于角色的访问控制
    • 组织机构权限管理
  2. 多租户支持

    • 租户隔离机制
    • 租户域名解析
    • 租户数据隔离
  3. 审计与日志

    • 实体变更跟踪
    • 操作审计日志
    • 系统异常监控
  4. 任务管理

    • 分布式任务调度
    • 后台作业处理
    • 任务状态监控
  5. 通知与消息

    • 实时消息推送
    • 邮件通知
    • 短信通知
    • 微信公众号集成

前端核心功能

基于 vue-vben-admin 框架,提供现代化的前端体验:

  1. 响应式设计

    • 自适应多设备屏幕
    • 移动端友好界面
    • 暗黑主题支持
  2. 权限管理

    • 菜单权限控制
    • 按钮级权限
    • 动态路由生成
  3. 国际化支持

    • 多语言切换
    • 动态语言加载
    • 本地化资源管理
  4. 数据可视化

    • 图表组件库
    • 数据看板
    • 实时数据展示

章节来源

  • appsettings.json

技术栈概览

前端技术栈

graph LR
subgraph "核心框架"
Vue[Vue.js 3.x]
TS[TypeScript]
Vite[Vite 5.x]
end
subgraph "UI 组件库"
AntD[Ant Design Vue]
Element[Element Plus]
Naive[Naive UI]
end
subgraph "状态管理"
Pinia[Pinia]
Vuex[VueX]
end
subgraph "开发工具"
ESLint[ESLint]
Prettier[Prettier]
Jest[Jest]
end
Vue --> AntD
Vue --> Element
Vue --> Naive
Vue --> Pinia
Vue --> TS
Vite --> ESLint
Vite --> Prettier

图表来源

  • package.json
  • vite.config.ts

后端技术栈

graph LR
subgraph "核心框架"
ASP[ASP.NET Core 8.0]
ABP[ABP Framework 8.0]
EF[Entity Framework Core]
end
subgraph "数据库"
SQL[SQL Server]
MySQL[MySQL]
PostgreSQL[PostgreSQL]
Redis[Redis]
end
subgraph "消息中间件"
Rabbit[RabbitMQ]
CAP[DotNetCore/CAP]
end
subgraph "部署工具"
Docker[Docker]
Tye[Tye]
YARP[YARP]
end
ASP --> EF
ASP --> ABP
EF --> SQL
EF --> MySQL
EF --> PostgreSQL
ASP --> Redis
ASP --> Rabbit
Rabbit --> CAP
ASP --> Docker
ASP --> Tye
Tye --> YARP

图表来源

  • Program.cs

章节来源

  • package.json
  • vite.config.ts

项目发展历程

版本演进历程

根据 RELEASE.md 文件记录,项目经历了以下重要版本迭代:

2021年12月重大更新

  • 升级 ABP Framework 5.0.0 RC-2
  • 模块化重构:移除 vueJs 模块,整合 vue-vben-admin
  • 功能增强:工作流增加 Elasticsearch 持久层扩展
  • Bug 修复:修复 SignalR 序列化协议不一致问题

2021年12月里程碑版本

  • 架构升级:从 RC-1 升级到 RC-2
  • 模块精简:移除 Identity 模块 API ChangePassword
  • 技术更新:移除分布式锁模块,使用 Volo.Abp.DistributedLocking
  • 性能优化:加入 Fody 统一配置 ConfigureAwait

2021年3月功能增强

  • 本地化管理:增加动态本地化组件支持
  • 配置管理:增加 dotnet-compose 配置文件
  • 用户体验:vueJs 增加本地化管理组件视图
  • 稳定性提升:修复 HttpProxy 模块参数传递问题

发展趋势

  1. 技术栈现代化:持续跟进最新技术发展
  2. 模块化程度加深:逐步拆分和优化模块结构
  3. 企业级功能完善:不断增加企业级应用场景支持
  4. 开发体验优化:不断提升开发者的使用体验

章节来源

  • RELEASE.md

部署方案

单体服务部署

单体服务部署是最简单直接的部署方式,适合以下场景:

部署步骤

  1. 环境准备

    # 安装 .NET SDK
    # 安装 Node.js 和 npm/yarn
    
    # 安装 ABP CLI 工具
    dotnet tool install --global LINGYUN.Abp.Cli
    
  2. 项目初始化

    # 创建项目
    labp create MyCompanyName.MyProjectName \
      -pk MyPackageName \
      -o "D:\Project" \
      --dbms sqlserver \
      --cs "Server=127.0.0.1;Database=MyProject;User Id=sa;Password=123456" \
      --no-random-port
    
  3. 数据库迁移

    cd D:\Project\host\MyPackageName.MyCompanyName.MyProjectName.HttpApi.Host
    dotnet ef database update
    
  4. 启动服务

    dotnet run
    

微服务部署

微服务部署提供了更高的可扩展性和灵活性:

部署架构

graph TB
subgraph "客户端层"
Browser[Web 浏览器]
Mobile[移动端应用]
end
subgraph "网关层"
Internal[内部网关]
Web[Web 网关]
end
subgraph "服务层"
Auth[认证服务]
Admin[管理服务]
Platform[平台服务]
Message[消息服务]
Task[任务服务]
end
subgraph "数据层"
AuthDB[(认证数据库)]
AdminDB[(管理数据库)]
PlatformDB[(平台数据库)]
Redis[(Redis 缓存)]
end
Browser --> Web
Mobile --> Web
Web --> Internal
Internal --> Auth
Internal --> Admin
Internal --> Platform
Internal --> Message
Internal --> Task
Auth --> AuthDB
Admin --> AdminDB
Platform --> PlatformDB
Auth --> Redis
Admin --> Redis
Platform --> Redis

部署流程

  1. 基础环境配置

    # 修改 hosts 文件
    echo "127.0.0.1 host.docker.internal" >> /etc/hosts
    
    # 安装 Docker 和 Docker Compose
    
  2. 启动依赖服务

    # 启动 RabbitMQ
    docker run -d --name rabbitmq \
      -p 5672:5672 -p 15672:15672 \
      rabbitmq:3-management
    
    # 启动 Redis
    docker run -d --name redis \
      -p 6379:6379 redis
    
  3. 启动各个微服务

    # 启动认证服务
    cd aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host
    dotnet run
    
    # 启动管理服务
    cd aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host
    dotnet run
    
    # 启动平台服务
    cd aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host
    dotnet run
    
  4. 启动前端应用

    cd apps/vue
    yarn install
    yarn dev
    

容器化部署

对于生产环境,建议使用 Docker 容器化部署:

部署步骤

  1. 构建后端服务

    # 构建 ASP.NET Core 服务
    ./build/build-aspnetcore-release.ps1
    
  2. 构建前端应用

    # 构建 Vue 前端
    ./build/build-vue-apps.ps1
    
  3. 启动容器编排

    sudo docker-compose down
    sudo docker-compose -f docker-compose.yml -f docker-compose.override.yml up --build -d
    

章节来源

  • README.md

项目优势

技术优势

  1. 架构先进性

    • 基于 ABP Framework 8.0 最新技术栈
    • 支持单体和微服务两种架构模式
    • 完整的企业级应用架构设计
  2. 开发效率

    • 开箱即用的功能模块
    • 完善的代码生成工具
    • 丰富的示例和文档
  3. 可扩展性

    • 模块化设计,易于扩展
    • 插件化架构支持
    • 多种数据库和缓存支持
  4. 维护友好

    • 清晰的代码结构
    • 完善的错误处理机制
    • 详细的日志记录

商业价值

  1. 降低开发成本

    • 减少重复造轮子的工作
    • 提供成熟的企业级功能
    • 缩短项目开发周期
  2. 提高产品质量

    • 遵循最佳实践
    • 内置安全机制
    • 完善的测试覆盖
  3. 支持业务发展

    • 从小项目到大企业的平滑过渡
    • 支持业务快速增长
    • 适应技术演进需求

社区支持

  1. 活跃的开源社区

    • 定期更新和维护
    • 及时的技术支持
    • 丰富的学习资源
  2. 完善的文档体系

    • 中英文双语文档
    • 详细的 API 文档
    • 实用的教程和示例
  3. 广泛的适用性

    • 适用于各种规模的企业
    • 支持多种业务场景
    • 良好的国际化支持

总结

abp-next-admin 作为一个基于 ABP 框架的企业级全栈后台管理系统解决方案,成功地将 ASP.NET Core 的强大功能与 Vue.js 的现代化前端体验相结合。它不仅提供了完整的企业级后台管理功能,更重要的是为企业应用开发提供了一套完整的架构解决方案。

核心价值体现

  1. 技术前瞻性:采用最新的技术栈和架构模式,确保项目的长期价值
  2. 实用性导向:提供开箱即用的功能模块,大大缩短开发周期
  3. 灵活性设计:支持单体和微服务两种架构,适应不同规模的项目需求
  4. 企业级标准:遵循企业级应用开发的最佳实践,确保系统的稳定性和可维护性

适用场景

  • 初创企业:快速搭建基础管理系统
  • 中小企业:满足日常运营管理需求
  • 大型企业:支持复杂的业务场景和高并发需求
  • 技术团队:提供标准化的开发框架和最佳实践

发展前景

随着企业数字化转型的深入,对高效、可靠、可扩展的后台管理系统的需求将持续增长。abp-next-admin 作为这一领域的优秀解决方案,将继续在技术创新、功能完善、社区建设等方面不断进步,为更多企业提供优质的企业级应用开发服务。

无论是初学者还是经验丰富的开发者,abp-next-admin 都能提供有价值的参考和实用的解决方案,是现代企业应用开发的理想选择。