1. 程式人生 > 其它 >Abp vNext 基礎篇丨介紹

Abp vNext 基礎篇丨介紹

緣起

在.Net行也目前工作5年,前年認識了老張的哲學,也跟著一起學習了非常多的知識,非常感謝老張鼓勵我來做ABP這個系列的教程,我也努努力帶著我那小小的海漂夢(上海漂流)來搞起。

ABP vNext 簡要介紹

ABP vNext 框架是一個基於ASP.NET核心的完整基礎設施,通過遵循軟體開發最佳實踐和最新技術來建立現代web應用程式和API,不同於老的ABP框架新的 ABP vNext 框架核心庫更加精簡,因為將原有許多的元件從其核心庫抽離成獨立的元件。這樣開發人員可以更加靈活的選擇自己需要的功能進行整合,使專案遠離臃腫的庫,比起原有的 ABP 框架 ABP vNext 完全基於 ASP.NET Core 丟掉了歷史包袱,設計更加合理,更加細粒度的模組化設計。

Abp vNext 官方文件提供了非常全面的功能介紹,官方提供了啟動模板,模板遵循了領域驅動設計的最佳實踐來進行專案分層,引入了常用的功能模組。

如果你有不錯的.Net基礎那麼Abp你用起來會的心用手,使用過程中遇到的問題幾乎可以在官方文件和Issues中找到並解決。

但如果你是一個 .Net 新手你不知道什麼是依賴注入、模組化、DDD 推薦先去 https://www.cnblogs.com/laozhang-is-phi/p/9495618.html#autoid-1-0-0學習一下。

後續文章中出現的ABP都是指ABP vNext。

開篇簡介

Bcvp.Blog.Core是基於老張的哲學Blog.Core專案採用ABP vNext框架和DDD思想進行重構的專案,教程面向.Net Core初中級開發人員,從基礎專案搭建開始一步步學習使用ABP vNext框架並在開發中融入DDD思想。

整篇文章目前會分為3個階段分別是。

  • 基礎篇(學習ABP vNext框架和DDD)。
  • 中級篇(學習模組化和部分原始碼)。
  • 高階篇(ABP vNext微服務)。

組織地址:
https://github.com/BaseCoreVueProject

作者部落格:
https://www.cnblogs.com/MrChuJiu/

框架功能

整體教程會設計的功能介紹如下,下圖為ABP官方商業版,我們只抽取部分功能進行實現。

前端框架目前採用Bcvp組織的:https://github.com/BaseCoreVueProject/angular-template 作為前端教程框架,暫時不推薦將該框架應用生產(不是技術問題),ABP官方的目前正在推行LeptonX應該會有新的進展

ABP 自帶功能

  • Saas管理
  • 組織管理
  • 角色管理
  • 審計日誌
  • 系統設定

業務功能

  • 部落格管理
  • 文章管理

前端站點

  • 釋出文章
  • 使用者登入/註冊
  • 文章評論

專案分層依賴關係

Domain.Shared 其他項⽬直接或間接引⽤,項⽬中定義的型別在所有項⽬中共享。

Domain 只引⽤ Domain.Shared ,⽐如:在 Domain.Shared 中定義的 IssuType 列舉型別需要 在 Domain 項⽬中 Issue 實體中⽤到。

Application.Contracts 依賴 Domain.Shared ,這樣我們可以在 DTOs 中使⽤這些共享型別。 ⽐如: CreateIssueDto 中可以直接使⽤ IssueType 列舉。

Application 依賴 Application.Contracts ,因為 Application 實現 Application.Contracts 中定義的服務接⼝和使⽤ DTO 物件。同時,引⽤ Domain 項⽬,在應 ⽤服務中使⽤倉儲接⼝或領域物件。

EntiryFrameworkCore 依賴 Domain ,對映 Domain 物件(實體和值型別)到資料庫表 (ORM)並實現在 Domain 中定義的倉儲接⼝。

HttpApi 依賴 Application.Contract ,在控制器在內部對 應⽤服務接⼝ 進⾏依賴注⼊。

HttpApi.Client 依賴 Application.Contract 消費應⽤服務 Web 依賴 HttpApi ,釋出⾥⾯定義的 HTTP APIs 。另外,通過這種⽅式,它間接地依賴於 Application.Contracts 項⽬,可以在⻚⾯/元件中使⽤應⽤服務

結語

本節只是作為一個開篇講解希望各位持續關注

聯絡作者:加群:867095512 @MrChuJiu