使用ONE.Abp快速开发微服务,再也不用加班了

2023-08-30 09:46:10 浏览数 (1)

背景

公司采用项目制工作方式,因此在不同项目上可能存在多个团队开发独立的代码库,但通用的基础设施却是相同的,这可能导致每个项目都需要编写相同的代码,并重复造轮子。

更严重的是,每个项目都有自己的用户体系,导致用户在使用不同的服务时需要重新登录,这不仅会破坏用户的体验,也不利于项目的维护和数据的积累。

同时前端也会基于不同项目开发不同的网站,为了解决这些问题, ONEAbp项目由此诞生。

介绍

ONE.Abp是一款基于 Abp Vnext 框架开发的全流程解决方案,旨在帮助开发者快速构建微服务应用。它提供了基础模块和构建工具,让开发者可以专注于业务逻辑的实现,而无需花费大量时间和精力在框架的选择、配置和集成上。

开始

首先,如果你没有安装ONEABP CLI,请先安装它

代码语言:javascript复制
dotnet tool install -g ONE.Abp.Cli

在一个空文件夹使用 abp new 命令创建新解决方案:

base模板

代码语言:javascript复制
oneabp new Acme.BookStore -t base -d ef -dbms postgresql
micro模板
代码语言:javascript复制
oneabp new Acme.BookStore -t micro -d ef -dbms postgresql

ONEABP.CLI在ABP.CLI基础上增加了两个模板

base模板: 解决方案包含网关,认证服务和基础服务项目

micro模板:解决方案包含微服务项目

oneabp new 命令使用

代码语言:javascript复制
Usage:
  oneabp new <project-name> [options]
Options:

-t|--template <template-name>               (default: base)
-d|--database-provider <database-provider>  (if supported by the template)
-o|--output-folder <output-folder>          (default: current folder)
-v|--version <version>                      (default: latest version)
-cs|--connection-string <connection-string> (your database connection string)
--dbms <database-management-system>         (your database management system)

Examples:

oneabp new Acme.BookStore -t base -d ef -dbms postgresql
oneabp new Acme.BookStore -t micro -d ef -dbms postgresql
oneabp new Acme.BookStore -t micro --connection-string "Server=myServerNamemyInstanceName;Database=myDatabase;User Id=myUsername;Password=myPassword"

利用base模板创建的项目生成的目录结构如下

代码语言:javascript复制
 ---aspnet-core
|    ---gateways 
|   |   ---Acme.BookStore.Gateway            //网关
|    ---src
|   |    ---Acme.BookStore.Application
|   |    ---Acme.BookStore.AuthServer         //认证服务
|   |    ---Acme.BookStore.DbMigrator         //迁移项目
|   |    ---Acme.BookStore.Domain
|   |    ---Acme.BookStore.Domain.Shared
|   |    ---Acme.BookStore.EntityFrameworkCore
|   |    ---Acme.BookStore.HttpApi
|   |    ---Acme.BookStore.HttpApi.Client
|   |   ---Acme.BookStore.HttpApi.Host       //基础服务
|   ---test
|        ---Acme.BookStore.Application.Tests
|        ---Acme.BookStore.Domain.Tests
|        ---Acme.BookStore.EntityFrameworkCore.Tests
|        ---Acme.BookStore.HttpApi.Client.ConsoleTestApp
|       ---Acme.BookStore.TestBase
---vue
     ---public
     ---src
    |    ---api
    |    ---assets
    |    ---components
    |    ---directive
    |    ---layout
    |    ---libs
    |    ---plugins
    |    ---router
    |    ---store
    |   |   ---modules
    |    ---utils
    |   ---views
    |        ---error
    |        ---file             //文件管理
    |        ---login
    |        ---redirect
    |        ---sass            
    |       |    ---sale          //销售版本管理
    |       |   ---tenant        //租户管理
    |       ---system
    |            ---application   //应用管理
    |            ---dept          //部门管理
    |            ---dict          //字典管理
    |            ---menu          //菜单管理     
    |            ---permis
    |           |   ---components
    |            ---role          //角色管理
    |            ---setting       //设置管理   
    |           |   ---components 
    |           ---user          //用户管理
    |               ---profile
    ---vite

使用

后端

1、更换连接字符串

用Base模板创建后,进入后端项目修改连接字符串,base项目使用了两个数据库,一个是当前基础服务的数据库,另外一个是共享库,用于存储权限,设置,字典和数据权限等数据。

2、迁移项目 运行xxxx.DbMigrator

3、运行网关,认证服务,基础服务。

前端

1、安装依赖 命令:yarn install

2、运行服务 命令:yarn dev

Base模板创建项目已经包含了基础的服务模块,如租户管理,用户管理,角色管理,字典管理等...现在你可以专注于开发你的业务微服务了。

利用micro版本创建项目目录结构如下:

代码语言:javascript复制
 ---aspnet-core
|    ---src
|   |    ---Acme.BookStore.Application
|   |    ---Acme.BookStore.DbMigrator         //迁移项目
|   |    ---Acme.BookStore.Domain
|   |    ---Acme.BookStore.Domain.Shared
|   |    ---Acme.BookStore.EntityFrameworkCore
|   |    ---Acme.BookStore.HttpApi
|   |    ---Acme.BookStore.HttpApi.Client
|   |   ---Acme.BookStore.HttpApi.Host       //基础服务
|   ---test
|        ---Acme.BookStore.Application.Tests
|        ---Acme.BookStore.Domain.Tests
|        ---Acme.BookStore.EntityFrameworkCore.Tests
|        ---Acme.BookStore.HttpApi.Client.ConsoleTestApp
|       ---Acme.BookStore.TestBase

总结

在线文档:https://sososu.github.io/ONE.Abp.Doc

项目地址:https://github.com/sososu/ONEAbp

预览地址:http://116.205.230.54

0 人点赞