1. 程式人生 > >壹佰文章最全總結| 《關於ASP.NETCore的分享之路》

壹佰文章最全總結| 《關於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。