ABP - 初識 ABP

来源:https://www.cnblogs.com/wewant/archive/2023/05/13/17125180.html
-Advertisement-
Play Games

ABP框架 ABP是用於創建現代化Web應用程式的完整體繫結構和強大的基礎架構,以模塊化的方式進行開發,所有模塊以nuget包的方式提供,開箱即用,遵循最佳實踐和約定,提供SOLID開發經驗。 | 縮寫 | 英文 | 中文 | |--|--|--| | SRP | The Single Respon ...


ABP框架

ABP是用於創建現代化Web應用程式的完整體繫結構和強大的基礎架構,以模塊化的方式進行開發,所有模塊以nuget包的方式提供,開箱即用,遵循最佳實踐和約定,提供SOLID開發經驗。

縮寫 英文 中文
SRP The Single Responsibility Principle 單一職責元素
OCP The Open Closed Principle 開放封閉原則
LSP The Liskov Substituution Principle 里氏替換原則
ISP The Interface Segregation Principle 介面替換原則
DIP The Dependency Inversion Principle 依賴倒置原則

目前版本

ASP.NET Boilerplate

ASP.NET Boilerplate(ABP)是一個開放源代碼且有據可查的應用框架。它不僅是一個框架,而且提供了一個基於領域驅動設計的強大的體繫結構模型,同時考慮了所有最佳實踐。

此版本基於.net framework平臺開放,支持Asp.Net MVC 5.x和EF6.x,也可以和Asp.Net Core和EF Core一起使用,但依賴性比較臃腫。

開源版:https://aspnetboilerplate.com
企業版: https://aspnetzero.com
源碼: https://github.com/aspnetboilerplate
中文文檔: https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese

ABP Framework

ABP Framework,也稱 ABP vNext,是一個開源應用程式框架,專註於基於Asp.Net Core的Web應用程式開放。它還支持開放其他類型的應用程式,如微服務。這個版本提供的模塊包更加輕量級。

新版abp官網: https://abp.io
源碼: https://github.com/abpframework/abp
中文文檔: https://docs.abp.io/zh-Hans/abp/latest
abp漢化: https://github.com/cnabp
nuget包地址: https://www.nuget.org/profiles/volosoft
官網nuget包: https://abp.io/package
企業版: https://commercial.abp.io

ABP 體繫結構圖

這也是領域驅動設計的基本分層結構。
image

ABP 框架初始化

ABP框架提供了命令行工具ABP CLI,作為一個項目初始化的腳手架,通過它可以快速的構建一個基於領域驅動設計的起始項目,方便我們進行Web應用的開發。

使用ABP CLI初始化ABP項目

  1. 安裝
    ABP CLI是一個.net工具,在.net core 2.1及以上的環境下,可以通過命令行工具進行安裝和更新。安裝命令如下:

    dotnet tool install -g Volo.Abp.Cli
    

    image

    安裝完成之後,在命令行中輸入abp,即可查看當前ABP CLI版本,出現上圖內容時,即按照成功。

  2. 更新
    ABP 框架更新比較頻繁,不使用VS中的程式包管理工具,通過ABP CLI也可以更新依賴的ABP框架nuget包,但是ABP CLI本身也需要更新,否則會有警告信息。更新命令如下:

    dotnet tool update -g Volo.Abp.Cli
    

    也可以通過下麵選項,在使用ABP CLI更新包的時候跳過版本檢查。

    --skip-cli-version-check
    
  3. 卸載
    作為一個.net 工具,ABP CLI自然可以卸載,卸載命令如下:

    dotnet tool uninstall -g Volo.Abp.Cli
    
  4. 生成解決方案

    通過 abp new 命令可以快速的初始化一個解決方案。new 命令可以追加一些參數,生成不同的解決方案。下麵羅列出一些生成不同解決方案的命令,其他的參數選項可參考 ABP CLI

    • 生成一個mvc框架的Web項目
      abp new <解決方案名稱>
      
    • 生成一個前後端分離項目,目前只支持angular
      abp new <解決方案名稱> -t app -u angular 
      
    • 生成一個WebApi項目,作為前後端分離的後端解決方案
      abp new <解決方案名稱> -t app -u none
      
    • 分離Identity Server,上面幾種方式創建的解決方案中集成了Identity Server,與服務端同一個埠
      abp new <解決方案名稱> -t app -u none --separate-identity-server
      
    • 指定資料庫提供程式,可以是關係型資料庫(EF),或者非關係型資料庫(mongodb)
      abp new <解決方案名稱> -t app -u none --database-provider ef
      
    • 生成一個微服務解決方案
      abp new <解決方案名稱> -t module --no-ui
      
    • 生成一個控制台程式
      abp new <解決方案名稱> -t console
      
  5. 添加包

    通過以下命令將ABP提供的模塊包添加到項目中,這種方式會自動在項目中的模塊類中添加對於的包依賴,即[DependsOn(...)]特性。

    abp add-package <包名>
    
  6. 更新包
    通過以下命令,可以一次性更新全部ABP的依賴包到最新版本,需要在.sln或者.csproj文件所在的文件夾中執行。

    abp update
    


ABP 系列總結:

目錄:ABP 系列總結


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 剪貼板是個啥就不用多介紹了,最直觀的功能是實現應用程式之間數據共用。就是咱們常說的“複製”、“粘貼”功能。 在 Qt 中,QClipboard 類提供了相關 API 讓應用程式具備讀/寫剪貼板的能力。數據通過 QMimeData 類包裝。該類使用 MIME 類型來標識數據。比如,要包裝的數據是純文本 ...
  • golang支持兩種隨機數生成方式: math/rand // 偽隨機 crypto/rand // 真隨機 math/rand的用法:rand.Intn(100)。這個起始位置是由一個seed決定的,預設是從1開始。為了儘量隨機性,那麼我們可以每次使用不同的seed來啟動程式,就可以保證每次啟動都 ...
  • 最近熟悉 go 項目時,發現項目中有用到 github.com/yuin/gopher-lua 這個包,之前並沒有接觸過,特意去看了官方文檔和找了些網上的資料,特此記錄下。 本次介紹計劃分為兩篇文章,這一次主要介紹 github.com/yuin/gopher-lua 這個包的介紹以及基礎使用,下一 ...
  • AutoWiredAnnotationBeanPostProcessor 執行依賴註入的時候(解析@Autowired)調用了postProcessProperties 方法 這個方法首先要找到哪些屬性,方法被標註了@Autowired註解,把這些數據添加到 InjectMetadata中,然後調用 ...
  • 運行命令 go run xx.go或者 go build xx.go + ./xx package main import ( "fmt" ) func main() { fmt.Println("hello world") } ​ 基礎語法 package main import ( "fmt" ...
  • 有時候需要造大量數據進行測試,或者是用於學習,當然了這個工具類的目的就是為了後面測試easyExcel與 easyPoi 兩者性能準備的 需要引入一個 hutool工具類 hutool 工具類在此工具類上的影響並不多,好像就一個隨機生成年齡的地方,才用到了,如果不想引入可以直接刪除即可 <depen ...
  • 本篇將講講登錄庫中的三種登錄模式的實現: 同一用戶只能登錄一次, 同一用戶多次登錄多token,同一用戶多次登錄共用一個token,源碼:weloe/token-go: a light login library (github.com) ...
  • 一 進程對象及其他方法 '''一臺電腦上面運行著很多進程,那麼電腦是如何區分並管理這些進程服務端的呢?電腦會給每一個運行的進程分配一個PID號如何查看 windows電腦 進入cmd輸入tasklist即可查看 tasklist|findstr PID查看具體的進程 linux電腦 進入終端之 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...