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