【ABP框架系列學習】N層架構(3)

目錄git

0.引言github

1.DDD分層數據庫

2.ABP應用構架模型json

客戶端應用程序(Client Applications)緩存

表現層(Presentation Layer)架構

分佈式服務層(Distributed Service Layer)app

應用層(Application Layer)分佈式

領域層spa

基礎設施層命令行

3.使用ABP項目模版快速生成應用程序


0.引言

應用程序的分層是一種普遍接受的技術, 能夠下降複雜度和提升代碼的可重用性。爲了實現分層架構,ABP遵循領域驅動設計(DDD)原則。

1.DDD分層

領域驅動設計有四個基本的層:

  • 表現層(Presentaiton Layer):爲用戶提供接口。使用應用層實現與用戶交互。
  • 應用層(Application Layer):表現層和領域層的中間者。協調業務對象以執行特定的應用程序任務。
  • 領域層(Domain Layer):包含業務對象和規則,是整個應用程序的核心。
  • 基礎設施層:提供支持上層通用的技術能力,大部分是藉助於第三方庫

2.ABP應用構架模型

除了DDD,現代的應用程序架構還包括邏輯和物理層等。以下圖是ABP建議並實施的模型,它不只經過提供基類和服務來快速實現這個模型,並且還提供了啓動模板直接開始這個模型。

客戶端應用程序(Client Applications)

遠程客戶端經過HTTP APIs(API Controllers,OData Controllers,GraphQL終端)等將應用程序做爲服務。遠程客戶端能夠是SPA、移動APP、或第三方消費者等。該應用程序主要包括本地化和導航功能。

表現層(Presentation Layer)

ASP.NET [Core] MVC能夠認爲是表現層。它能夠是物理層(經過HTTP APIs使用應用程序)或是邏輯層(直接注入和使用應用服務)。不管是哪種狀況,通常包括本地化(Location)、導航(Navigation)、對象映射(Object Mapping)、緩存(Caching)、配置管理(Configuration Manager)、審計日誌(Audit Logging)等等。還包括受權(Authorization)、會話(Session)、功能(Features,對於多租戶應用程序)以及異常處理(Exception Handling)。

分佈式服務層(Distributed Service Layer)

該層主要經過遠程APIs(如REST、OData、GraphQL等)服務於應用服務/領域功能。該層只是將HTTP請求轉換爲領域交互,或可以使用應用服務來委託操做,而並不包含業務邏輯。一般包括受權(Authorization)、緩存(Caching)、審計日誌(Audit Logging)、對象映射(Object Mapping)、異常處理(Exception Handling)、會話(Session)等。

應用層(Application Layer)

應用層主要包括使用領域層和領域對象(領域服務、實體...)來執行應用程序功能請求的應用服務。應用層使用DTO(數據傳輸對象)從表現層或分佈式服務層獲取或返回數據。包括受權(Authorization)、緩存(Caching)、審計日誌(Audit Logging)、對象映射(Object Mapping)、會話(Session)等。

領域層

這是實現領域邏輯主要的層,包括執行業務/領域邏輯的實體(Entities)、值對象(Value Objects)、和領域服務(Domain Services)。它還包括規約(Specifications)和觸發領域事件(trigger Domain Events),並定義了用於從數據源(一般是DBMS)讀取和持久化實體的倉儲接口(Repository Interfaces)。

基礎設施層

基礎設施層用於輔助其它層:包括實現倉儲接口(Repository Interfaces,如EF Core)實際操做數據庫。還可能包括與供應商(vendor)的集成,以便發送電子郵件等。基礎設施層是最下、也是不嚴格的一層,其實是經過實現它們的抽象概念來支持其餘層。

3.使用ABP項目模版快速生成應用程序

1.打開網址【Startup Templates】

2.依次選擇ASP.NET Core 2.x  >>  .NET CORE(Cross Plateform)   >>   Multi Page Web Application,輸入項目名稱:XXX.FirstABP、驗證碼,點擊建立項目按鈕。

​3.跳轉自動下載源代碼。

4.解壓並用Visual Studio 2017打開,啓動程序後VS會自動還原項目所須要的包,wait for a minute......使用ABP項目模版生成的解決方案以下:

5.設置【XXX.FirstABP.Web.MVC】爲啓動項目,打開appsetting.json文件修改鏈接字符串,以下:

6.打開【程序包管理控制檯】,默認項目選擇【XXX.FirstABP.EntityFrameworkCore】,在命令行依次輸入:Add-Migration "FirstABP"、Update-Database,wait for a minute...

7.執行步驟6的操做後,默認生成了ABP的數據。

8.回到Visual Studio 2017,按F5運行程序...有驚喜喲,登陸界面出現了,輸入admin/123qwe,點擊登陸。

9.如圖,進入主界面。至此,利用ABP項目模板快速生成了應用程序,主要有租戶管理、用戶管理、角色管理等功能模塊。

相關文章
相關標籤/搜索