[ASP.NET Core]實戰ASP.net Core 3 BlogAPIDemo 分層

ASP.net Core 系列

這篇系列開始用一個小型blog api Demo來實戰一輪,先來講解整個專案架構
此案例是可以使用,依據個人喜好改寫,DB部分是SQL SERVER

如果覺得太吃重,可以先看這一篇
建議先看這一篇https://www.dotblogs.com.tw/bda605/2019/07/17/121029

以下會用到的技術是

  • ASP.NET Core
  • Entity Framework Core
  • Entity Framework - Code First
  • Repository pattern
  • Automapper

註記:為何要採用Automapper?

通常實務上會很常遇到一個狀況是如果要處理兩個Class的轉換處理
都必須要寫一個轉換方式,一旦屬性一多將近上百個是一個挺累人的
一件事情,這時候Automapper就相當好用了,可以透過該元件轉換成
另一個型態的object

EX:專門透過dto元件轉換成Category(Entitie)物件,進行塞入DB裡面

var categori = _mapper.Map<Category>(categoryDto);


BlogAPIDemo.Domain:專門放置Entities和DTO物件,以及Context(針對EntityFramework Core)使用


BlogAPIDemo.Service:放置Service ,Repository Pattern




ASP.NET CORE DI 有分三種生命週期:

  • Transient
    每次要求,建立一個新的。
  • Scoped
    同一個Scope內只初始一個實體 (每一個request級別只建立一個例項,同一個http request會在一個 scope內)。
  • Singleton
    整個週期,就建立一個新的,相當於靜態類。

註記:
何謂IOC:是一種設計思想,不是技術,一般都是透過new來實體創造一個物件,但是
使用IOC就會由內部轉換成外部,這方式叫做控制反轉。

何謂DI:將物件透過注入方式進行建造,透過容器方式,將依賴關係注入組件。

IOC與DI關係?
IOC是一個設計思想,而DI是這種設計思想的實現,這兩者關係關鍵在於
誰依賴誰,為什麼要依賴,誰注入誰,注入什麼


若要從無到有的練習...


首先先定義相關資料夾與專案

接者開始實作JWT機制(如何實作JWT? 請參考:https://dotblogs.com.tw/bda605/2020/03/09/173850)

開始撰寫Doamin相關物件,定義Context,開始定義Entity Framework相關物件在撰寫相關Interface,

第一個Repository查詢,進行相關Service撰寫,在後續開始撰寫Controller加上認證機制。

專案如下:https://github.com/bda605/BlogAPIDemo

這個專案必須搭配SQL SERVER可配置,可使用,依據個人需求相關可供參考使用...

老E隨手寫