使用ONE.Abp快速開發微服務,再也不用加班了

2023-05-18 18:00:34

專案背景

公司採用專案制工作方式,因此在不同專案上可能存在多個團隊開發獨立的程式碼庫,但通用的基礎設施卻是相同的,這可能導致每個專案都需要編寫相同的程式碼,並重復造輪子。更嚴重的是,每個專案都有自己的使用者體系,導致使用者在使用不同的服務時需要重新登入,這不僅會破壞使用者的體驗,也不利於專案的維護和資料的積累。同時前端也會基於不同專案開發不同的網站,為了解決這些問題, ONEAbp專案由此誕生。

 

專案介紹

ONE.Abp是一款基於 Abp Vnext 框架開發的全流程解決方案,旨在幫助開發者快速構建微服務應用。它提供了基礎模組和構建工具,讓開發者可以專注於業務邏輯的實現,而無需花費大量時間和精力在框架的選擇、設定和整合上。

 

快速開始

首先,如果你沒有安裝ONEABP CLI,請先安裝它:

dotnet tool install -g ONE.Abp.Cli

在一個空資料夾使用 abp new 命令建立新解決方案:

base模板

oneabp new Acme.BookStore -t base -d ef -dbms postgresql

micro模板

oneabp new Acme.BookStore -t micro -d ef -dbms postgresql

ONEABP.CLI在ABP.CLI基礎上增加了兩個模板

  • base模板: 解決方案包含閘道器,認證服務和基礎服務專案
  • micro模板:解決方案包含微服務專案

oneabp new 命令使用

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=myServerName\myInstanceName;Database=myDatabase;User Id=myUsername;Password=myPassword"

 

利用base模板建立的專案生成的目錄結構如下

+---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版本建立專案目錄結構如下:

+---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

 

最後

更多內容請檢視線上檔案

專案地址:sososu/ONEAbp (github.com)

ABPVNEXT框架 QQ交流群:655362692