天天看點

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

基于ASP.NET Core 3.1 WebApi搭建後端多層網站架構【1-項目結構分層建立】

2020/01/26, ASP.NET Core 3.1, VS2019

摘要:基于ASP.NET Core 3.1 WebApi搭建後端多層網站架構【1-項目結構分層建立】

文章目錄

此分支項目代碼

本章節介紹了本項目的分層結構,建立了各層級的類庫,修改網站項目的啟動配置

建立解決方案

  1. 建立空白解決方案

    MSDemo

  2. 建立以下解決方案檔案夾:
ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

一個解決方案檔案夾相當于一個層級,解決方案下是

src

tests

。而

src

下分了七個層級,并且每個層級向上依賴,不會出現

2.WebCore

中的内容依賴

5.Model

中的内容。

下面在每個層級中建立類庫或應用程式,簡單介紹每個層級的作用。

層級介紹

1.Common

中主要放置一些公共的基礎庫(例如雪花算法、擴充方法等)

2.WebCore

中是網站資料庫實體類、網站核心配置(例如跨域配置、多語言配置等)

3.DbAccess

中是資料庫實體類映射配置、封裝工作單元倉儲設計類庫

4.Component

中放置一些Web元件,例如Aop動态代理、Jwt授權驗證等

5.Model

中放置Automapper的映射配置、ViewModel、DTO等内容

6.Business

主要是業務内容

7.WebHost

就是WebApi所在層級

說明:

  1. 6、7之間也可以多加一層Middleware中間件層級(如有需要的話)
  2. WebHost不僅僅可以放WebApi,一樣可以放置WebMVC網站
  3. 主要思路是想遵循嚴格的下級依賴上級,分層層次清晰易于了解,各層級職責明确
  4. 為什麼有Component這一層?這一層裡的内容其實和中間件很類似,但是按我的設計是可替換的,例如Jwt元件,如果不用Jwt,可以不加上去。而中間件内的東西是與網站強相關的

src項目建立

在解決方案所在檔案夾下,建立

src

檔案夾,src下所有項目都放在這個路徑下。

類庫配置如下圖,後面幾個類庫除了名字不同,都是一樣的路徑:

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

1.Common

中建立.NET Core類庫,取名為MS.Common,一些公用的基礎方法就封裝在這裡面。

2.WebCore

中建立.NET Core類庫,取名為MS.Entities,裡面存放資料庫實體類

2.WebCore

中建立.NET Core類庫,取名為MS.WebCore,裡面存放網站核心的一些配置,依賴MS.Common項目

3.DbAccess

中建立.NET Core類庫,取名為MS.UnitOfWork,裡面是工作單元與倉儲設計

3.DbAccess

中建立.NET Core類庫,取名為MS.DbContexts,裡面存放實體類映射配置和資料庫上下文,依賴MS.Entities、MS.UnitOfWork項目

4.Component

中建立.NET Core類庫,取名為MS.Component.Aop,實作Aop動态代理,依賴MS.WebCore項目

4.Component

中建立.NET Core類庫,取名為MS.Component.Jwt,實作Jwt驗證授權,依賴MS.WebCore、MS.Entities兩個項目

5.Model

中建立.NET Core類庫,取名為MS.Models,實作存放AutoMapper映射配置、ViewModel和DTO,依賴MS.Component.Jwt、MS.DbContexts兩個項目

6.Business

中建立.NET Core類庫,取名為MS.Services,是主要的業務實作,依賴MS.Models項目

7.WebHost

中建立ASP.NET Core Web應用程式,取名為MS.WebApi,取消HTTPS配置,依賴MS.Services、MS.Component.Aop兩個項目

将MS.WebApi網站設為項目啟動項

建立完成後,解決方案如下圖:

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

十個項目都是.NET Core 3.1目标架構,并且十個項目都在src檔案夾中:

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

編輯網站啟動配置

打開

MS.WebApi

-

Properties

launchSettings.json

檔案,編輯網站啟動配置:

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

删除IIS Express節點配置,并将MS.WebApi節點中,launchBrowser值改為false,此時,網站項目将使用Kestrel核心啟動,不使用IIS Express,不啟動浏覽器,僅有個控制台程式:

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

打開Postman,

New Collection

-輸入名稱

MSDemo

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

MSDemo

Collection中Add Requst,名稱填寫weatherforecast,添加完成後,輸入URL:http://localhost:5000/weatherforecast後回車:

ASP.NET Core搭建多層網站架構【1-項目結構分層建立】

可以看到請求成功。

總結

使用Kestrel核心啟動Web伺服器,而不是使用IIS Express,關于這兩種托管模式,可以看老張的哲學出品的ASP.NET Core 學習視訊教程,P4-兩種托管模式(注意是第四P)

在使用Postman過程中,建立了Collection,再在Collection中Add Requst請求,為的是:

  1. 友善一個項目的請求都在一個集合中
  2. 後期會添加授權驗證,使用者登入後,會得到一個Token,之後的請求中,都要附帶上Token,使用Collection後,使用者登入完成,把Token加入到Collection,則Collection中每個請求都會自動附帶上該Token

繼續閱讀