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可配置,可使用,依據個人需求相關可供參考使用...
元哥的筆記