壹佰文章最全總結| 《關於ASP.NETCore的分享之路》
學習路線圖
(關於學習ASP.NET Core需要了解和掌握的知識點圖)
一言不合就來圖,各位部落格園小夥伴大家好,感覺好久沒有寫文章了,自從春節開始,中間經歷種種,慢慢的就開始微信公眾號發文了,原因有很多,不做說明,不好的地方就是不知道目錄連結,所以還是發到部落格園吧。
請注意:我不是做框架的,BCVP只是作為案例來配合文章視訊,掌握了技術才是關鍵。
為什麼要突然寫這篇了呢,是因為這一年我又寫了一些文章和幾個視訊,但是因為比較雜亂無章,很多人都找不到自己想要看的資料,一直向我反饋很多次了,時不時的在QQ群裡問相關的知識點,或者一直在百度,畢竟我已經總結過了,要是百度未免有些浪費時間,所以就打算總結出來,這樣方便大家查詢,也方便我分享指導,更是自我的一個總結吧。你可能會問,那你之前為啥不總結,因為我現在基本已經該講的都講完了,畢竟已經快到K8s,所以總體的總結一下,情有可原吧。
上邊這個路線圖呢,我個人認為沒必要都學會,一半足矣,當然會的越多肯定越好,只不過精力不足的情況下,還是要打基礎,然後看服務,最後寫業務,這是我的總結的。好啦,下邊就開始總結吧,文章採用list列表的形式,會對每篇文章/視訊簡要描述,這樣你一看就大概知道這是講啥的了。
這是我這兩年講解的知識點大綱導圖:
(線上思維導圖工具:mindmeister,內容持續更新中...)
線上專案案例展示,是下邊知識講解的程式碼展示:
(線上專案案例)
ASP.NET CORE學習指南
PS:
1、下文說的知識點基本都是netcore3.1版本的,特別標註為(視訊)的,是視訊教程,其他的皆是文章教程
2、點選每一個小標題即可到達目的連結。
3、官網永遠是最好的老師: https://docs.microsoft.com/zh-cn/dotnet/core
4、一共73篇ASP.NetCore基礎知識+19篇Ids4內容+23篇DDD = 115(篇/個 視訊和文章)
《基礎知識掌握部分》
-
A.1、後端WebApi專案初探搭建
本文主要是講解了我們如何建立一個ASP.NETCore專案,並對其中的初始的幾個重要檔案和Class類檔案做了簡單的講解和梳理,看完之後,可以動手建立一個初始化專案。 -
A.2、ASP.NET Core框架基礎(視訊)
本視訊從為什麼學習ASP.NETCore入手,講解了其發展歷史、相應的執行過程、以及如何命令列建立專案。 -
A.3、執行原理解析(視訊)
本視訊簡單分析了ASP.NETCore的執行原理、重要檔案的分析、如何下載檢視原始碼、Host專案啟動過程分析。 -
A.4、程序內和程序外討論(視訊)
視訊重點分析了,NetCore和.NetFwk之間的區別和聯絡,是如何執行起來的,程序內和程序外的含義。 -
A.5、NetCore編譯和執行時過程(視訊)
通過直播的形式,分析了ASP.NETCore是如何編譯的,也說明了執行時執行的過程是怎樣的,有助於理解專案啟動。 -
B.1、Swagger介面文件的使用
文章講解了如何在ASP.NETCore Webapi專案中,引入介面文件swagger,並自定義index.html首頁。 -
B.2、Swagger程式碼拷貝(視訊)
視訊版講解如何從blog.core專案中,把Swagger元件部分的程式碼拷貝出來。
-
B.3、Swagger如何配合使用API多版本
自寫方案,比較簡單,比較low,可以借鑑和參考,如何配置swagger,使用api版本控制
-
C.1、JWT認證授權過程
文章分析了JWT令牌的由來和組成部分,自定義認證中介軟體和官方認證中介軟體(推薦使用)來講解如何認證token有效性,如何在Swagger中開啟小鎖,以及其他比如Claim宣告等小知識點。 -
C.2、JWT原理詳解(視訊版,NetCore2.2版本)
視訊講解API保護的幾種方案、JWT的核心知識、如何使用JWT,令牌是如何存到HTTPContext中,如何解析Claim、使用的好處等 -
C.3、簡單角色授權(視訊)
通過直播的形式,手寫程式碼,如何基於角色的簡單授權,生成令牌(3+2),認證過程演示等。 -
C.4、授權和上下文的關係(視訊)
通過直播,講解授權是如何讓JWT令牌這個字串,變成系統的HttpContext記憶體中的。 -
C.5、許可權認證流程解析,7個表,實現資料庫複雜策略鑑權
本文講解最簡單的一種授權認證方案,將介面、選單、角色、使用者四個模板給結合在一起,實現基於資料庫接寶的複雜策略授權。 -
C.6、JWT滑動重新整理
通過一個很簡單的小技巧,將JWT失效後,如何做到前端無感重新整理的案例,有一定的參考意義。 -
C.7、基於資料庫的複雜策略授權(視訊)
通過直播的形式,分析了BlogCore專案中,是如何實現JWT 基於資料庫 複雜的認證策略授權的。 -
C.8、如何從HttpContext中獲取使用者資訊(視訊)
上邊我們說了token是如何轉成HttpContext記憶體中的,那這篇講的是,如何從記憶體中,把使用者資訊取出來,實現閉環。 -
D.1、什麼是倉儲模式
說白了,很像之前的三層架構的資料訪問層,只不過是想把這個倉儲的概念說出來,讓大家先了解,為DDD打基礎。 -
D.2、泛型基類倉儲的使用
用了泛型基類,可以省去每個倉儲和服務檔案,都寫CURD等基礎操作了。 -
D.3、用泛型倉儲做服務注入
通過泛型倉儲的形式,可以省去多餘不必需要的空倉儲子檔案,同時也去掉倉儲介面層,如果倉儲層。 -
E.1、依賴注入與IOC
大篇幅講解依賴注入的由來、好處、使用方法、三種宣告週期註冊方式、容器化管理含義、Autofac元件使用、批量服務註冊,無介面註冊等。 -
E.2、原生依賴注入一對多
簡單的實現一個介面,多個實現的注入方案。 -
E.3、依賴注入原理解析(視訊)
視訊的形式,深入分析控制反轉的由來、為什麼使用、注入的步驟、三種註冊方法、三種注入方法、Autofac元件使用、檢視是否注入成功等; -
E.4、三個生命週期註冊糾結說明(視訊)
是針對上一個視訊的補充說明。 -
E.5、Autofac元件使用(視訊)
講解如何從blogcore專案中,把依賴注入Autofac元件的程式碼給copy出來,自己使用。 -
E.6、依賴注入直播(視訊)
通過直播的形式,手敲程式碼,也是使用Autofac元件來實現。 -
F.1、AOP切面程式設計初探
通過兩個案例:AOP快取和AOP日誌,來配合講解切面程式設計的原理。 -
F.2、AOP結合Redis實現切面快取
切面程式設計的第三個案例:Redis快取。 -
F.3、AOP切面程式設計原理分析(視訊)
視訊的形式,分析什麼是AOP、面向過程/面向物件/面向切面/面向服務之間的發展歷程和關係、切面程式設計的優勢、使用場景等。 -
F.4、AOP原理—動態代理(視訊)
以直播的形式,分享AOP的核心思想:動態代理是如何將目標類做代理服務的。 -
G.1、DTOs資料傳輸物件
第一次將檢視模型、物件傳輸引出討論,並介紹如何將物件進行合理化對映,以及最後的Automapper的使用。 -
G.2、Dto與多模型(視訊)
通過視訊的講解,進一步討論為什麼專案中需要用到多個模型,已經模型之間的傳輸和體現形式。 -
G.3、Automapper物件對映(視訊)
將Blog.Core中對應的Automapper元件的使用的內容抽離出來,更好的方便對元件的學習。 -
H.1、基於Log4net的全域性異常日誌
文章主要包含兩個部分,第一個是全域性異常處理,第二個就是整合日誌,這裡使用的是Log4net,目前這個日誌方案和我blogcore的不一樣,我還在修改中,備註。 -
H.2、Log4Net日誌處理(視訊)
視訊是將Blog.Core中對應的Log4net元件的部分內容給抽離出來,可以針對性學習,這裡的程式碼是最終正式且正確的。 -
H.3、日誌_Serilog(視訊)
通過直播的形式,一步步給大家講解如何在Asp.NetCore中使用Serilog元件。 -
I.1、配置IConfiguration(視訊)
視訊講解如何在Blog.Core中來使用配置,並對Appconfig.cs類抽離出來,有一定的參考價值。 -
I.2、變數與配置(視訊)
也是一期視訊,分析了下平時開發的時候是如何使用配置的,主要列舉了常見的幾種方案。 -
J.1、跨域與代理,3.0正式版
本文主要是下邊兩篇文章的總結篇,而且是基於netcore3.0的,可以只看本文即可,當然可以看下邊兩篇,講解了四種平時開發中必須用到的方案和技術,JSONP、CORS、devProxy、Nginx。 -
J.2、三種跨域比較
比較原始的3種開發方案,主要是在.Net Fwk中使用的,分別是JsonP,請求頭,CORS。 -
J.3、另外兩種方案實現跨域
在上邊的基礎上,講解了vue專案中用到的本地devProxy代理模式,和部署到線上後的nginx反向代理,來實現跨域。 -
J.4、跨域原理詳解(視訊)
視訊不僅講解了下跨域的原理,還列舉了常見開發的六種跨域方案,比較詳細,值得觀看。 -
J.5、CORS跨域與釣魚(視訊)
將Blog.Core專案中關於CORS跨域的那部分程式碼給抽離出來,更方便在新的專案中使用。 -
K.1、Ip限流(視訊)
也是把Blog.Core中的程式碼抽離講解,起到一定的限流的作用,有一定的借鑑,使用元件AspNetCoreRateLimit -
L.1、基於AOP實現介面效能分析
將AOP、SqlSugar的Sql輸出、Miniprefiler三個元件相結合,實現AOP切面的介面效能分析,並在swagger中輸出sql日誌等多個日誌。 -
L.2、效能監控分析MiniProfiler(視訊)
通過視訊的方式,將Blog.Core中,關於效能監控的部分抽離出來,也同時講解了如何自定義Swagger首頁問題。
-
《部署與元件學習部分》
-
M.1、最全的部署方案和錯誤分析
本文比較全面的講解了,如何在windows、CentOs、Ubuntu等系統上部署前後端分離專案,也講解了如何使用IIS和Nginx等代理伺服器,最後也列舉了前後端部署的時候比較常見的錯誤案例和解決辦法,從404到503。 -
M.2、線上專案全部遷移到Linux
作為開源的六個線上專案,個人表示還是有點兒借鑑意義的,目前都已經遷移到了Linux伺服器,文章列舉了方案和方法,也有對問題的解決方案。 -
M.3、在Windows上部署Aspnetcore(視訊)
以視訊的形式,講解了ASP.NETCore專案在win系統上的多種部署方案,獨立部署,框架依賴部署等等,如何選擇合理的伺服器,如何安裝指定的依賴環境,以及可能在部署中遇到了常見問題,比如缺少檔案,環境錯誤,跨域問題等。 -
M.4、在Linux上部署Aspnetcore(視訊)
和上邊的講解內容一樣,只不過是在CentOS系統上講解。 -
M.5、在Azure上部署Aspnetcore(視訊)
內容同上,通過三個小視訊,講解第一次如何註冊和使用Azure,以及如何部署。 -
M.6、BlogCore在IIS中的三種部署方案(視訊)
和上邊的內容不太一樣,本視訊主要用BCVP的三端專案作為案例,講解前後端是如何在IIS中部署的,比如新建虛擬目錄還是靜態檔案等等。 -
M.7、Nginx+Git的形式部署BlogCore(視訊)
前邊幾種都是在本地publish釋出好後,上傳到伺服器再部署,本視訊是通過git的形式,將原始碼clone到伺服器,實現手動版的快速部署。 -
M.8、BlogCore前後端部署Linux(視訊)
用BCVP前後端專案,部署在Linux,可能和上邊的視訊有重複。 -
N.1、Redis的非同步開發
使用的元件是微軟官方推薦的StackExchange.Redis,然後用非同步方式可以解決一些問題。 -
N.2、StackEx.Redis的安裝與使用(視訊)
通過視訊的形式,基於BlogCore來講解和分析如何使用Redis。 -
N.3、基於Redis的訊息佇列概要
很簡單的實現MQ,支援一個釋出多種訂閱。 -
O.1、整合任務排程Quart.Net
參考作者@Kawhi,來設計的一個基於Quart.Net的任務排程中心。 -
O.2、任務排程的使用(視訊)
主要講解BlogCore中是如何使用的,並把該部分程式碼給抽離出來,方便獨立學習。 -
P.1、基於SignalR實時通訊實現日誌推送
本文基於NetCore專案,結合SignalR,將後端專案五種日誌實時推送到Vue的Admin專案,比如異常日誌,操作訪問日誌,sql日誌等等。 -
P.2、SignalR通訊初體驗(視訊)
採用視訊的形式,從新寫Demo程式碼,用js來講解。 -
P.3、SignalR指定使用者組發訊息(視訊)
上邊的是對全部人發訊息,本視訊是針對指定的使用者群體,使用者組Group發訊息。 -
P.4、SignalR通過JWT實現使用者間通訊(視訊)
本視訊繼續深入,通過令牌的方式,識別指定的某個使用者,並實現相互之間的通訊。 -
Q.1、xUnit測試——單元測試(視訊)
借鑑eShopOnContainer架構,用計算器的小方法入手,講解TDD是如何實現快速敏捷開發的,對理解單元測試有一定的幫助。 -
Q.2、xUnit測試——功能整合測試(視訊)
在上邊單元測試的基礎上,進一步說明功能測試,如何實現專案某個功能模組是否成功。 -
《容器化與跨平臺部分》
-
R.1、使用Docker部署Asp.NetCore應用
文章用BlogCore作為真是案例,在CentOS系統上安裝Docker,並部署相應的應用,注意在安裝的過程中,儘量先安裝Docker,再安裝SDK,如果先安裝SDK,可能會出現倉儲的異常更新問題,解決方案是,刪除了,再安裝,然後再新增倉儲原始檔。 -
R.2、在Docker中配置ASP.NETCore的HTTPS模式
內容很簡單,就是對Docker中的Aspnetcore應用,配置Https的安全模式,需要證書。 -
R.3、Dcoker容器化操作(視訊)
通過視訊的形式,講解如何在Linux系統上,安裝Docker,並部署專案。 -
R.4、Docker埠對映解析(視訊)
講解我們在使用Docker的時候,如何在ASP.NETCore專案中,配置埠,併合理的Expose埠,才能實現監聽和代理。 -
R.5、Docker部署Vue應用(視訊)
除了可以構建後端應用,同樣可以將前端專案,比如vue,來構建映象,並生成執行容器。 -
R.6、Docker -v掛載配置檔案到宿主機(視訊)
掛載是Docker應用中,很重要的一個技術,也是必須要學會的技能,合理使用掛載,對於容器的安全性,健壯性都很有幫助。 -
S.1、CICD,使用Docker安裝Jenkins
之前都是習慣了全家桶似的安裝Jenkins,當然如果公司想要更強大的功能可以一點點安裝,如果專案比較中等,用docker安裝就行了。 -
S.2、使用Jenkins釋出和代理ASP.NETCore專案
上文已經安裝好後,可以部署core專案了,只不過會有問題,比如不能在Jenkins容器內使用dotnet命令,所以需要一個新的jenkin映象,我已經封裝好了,可以直接使用。 -
S.3、Jenkins的安裝與使用(視訊)
通過視訊的形式,給大家展示了使用一個空的全新的CentOS系統,一一說明如何安裝docker,如何安裝Jenkins,並如何配置core專案,並代理和反向代理等。 -
T.1、IdentityServer4系列教程(10篇文章)
因為Ids4的變動比較少,所以還是延續之前的目錄即可,還是比較工整的,一共文章十篇,這裡就不過多的介紹了,從基礎知識,到表結構遷移,資料持久化,三端聯調,統一角色管理,安全加鎖等等多個方面講解了如何使用IdentityServer4專案。 -
T.2、Ids4學習視訊教程(9節視訊)
通過視訊的形式,更加深入的講解了我們開發ids4認證平臺的時候,需要掌握的核心知識點。 -
U.1、DDD視訊與文章(23個)
13篇文章+10個視訊,因為已經不是ASP.NETCore的基礎教程了,所以暫不描述。
一共73篇ASP.NetCore基礎知識+19篇Ids4內容+23篇DDD = 115(篇/個 視訊和文章)
未完待續。。。
Come On。