.NET Core 学习资料精选:入门
??? 開(kāi)源跨平臺(tái)的.NET Core,還沒(méi)上車(chē)的趕緊的,來(lái)不及解釋了……
??? 本系列文章,主要分享一些.NET Core比較優(yōu)秀的社區(qū)資料和微軟官方資料。我進(jìn)行了知識(shí)點(diǎn)歸類(lèi),讓大家可以更清晰的學(xué)習(xí).NET Core。
? 首先感謝資料原作者的貢獻(xiàn)。
??? 第一篇:.NET Core 學(xué)習(xí)資料精選:入門(mén)
介紹.NET歷史、開(kāi)源之路、基礎(chǔ)、路由、依賴(lài)注入、HttpContext、cookie|session、HttpClient、gRPC、單元測(cè)試、發(fā)布部署等等。
??? 第二篇:.NET Core 學(xué)習(xí)資料精選:進(jìn)階&高級(jí)
?
這是第一篇,知識(shí)點(diǎn)如圖:?
? ? ? ? ? ?
?
.NET 簡(jiǎn)介
#、.NET 開(kāi)源之路
.NetFrameWork發(fā)展史
C# 語(yǔ)言版本發(fā)展史
2014.11月 .NET Core 項(xiàng)目啟動(dòng),2016.06月 .NET Core 1.0 發(fā)布
微軟 .NET Core3.0 規(guī)劃藍(lán)圖
.NET Core 3.0 下一個(gè)版本命名為:.NET 5
?
#、.NET Core提供的特性
1.開(kāi)源、免費(fèi)
2.輕量級(jí)、跨平臺(tái)
3.組件化、模塊化、IOC+Nuget、中間件
4.高性能
5.統(tǒng)一了MVC和WebAPI編程模型
a)? 比如:ASP.NET Core 中MVC 和Web API 直接或間接繼承同一個(gè)基類(lèi) ControllerBase,提供可使用的API也一致化
b)? 比如:舊ASP.NET時(shí)代,寫(xiě)全局filter需要針對(duì)MVC 和Web API 分別編寫(xiě)代碼,但在ASP.NET Core,直接使用一套中間件代碼即可
6.可測(cè)試性
7.微服務(wù)、容器化支持
8.標(biāo)準(zhǔn)化 .NET API 規(guī)范- .NET STANDARD
?
#、遷移到.NET Core
目前市面上還存在很多傳統(tǒng) .NET 舊項(xiàng)目,我們需要根據(jù)公司情況決定是否升級(jí)到.NET Core。
如果需要進(jìn)行舊項(xiàng)目升級(jí)的,可以參考文章:《.NET項(xiàng)目遷移到.NET Core操作指南》
?
VS和.NET Core安裝
VS2019安裝教學(xué)
VS2019正式版注冊(cè)碼秘鑰
安裝 .NET Core Runtime 和.NET Core SDK
【微軟官方文檔】ASP.NET Core *.* 個(gè)版本新特性
指定要使用的 .NET Core 版本
如何刪除 .NET Core 過(guò)時(shí)的運(yùn)行時(shí)和 SDK
[坑]安裝 .Net Core 2.2 SDK后,VS2017依然不能設(shè)置core2.2為目標(biāo)框架
?
基礎(chǔ)
ASP.NET Core開(kāi)發(fā)者路線(xiàn)指南
微軟官方 asp.net core 教程文檔
.NET Core 命令行接口 (CLI) 工具
.NET Core 運(yùn)行程序注意事項(xiàng)(dotnet dll 與 dotnet run)
ASP.NET Core API 一覽表
查詢(xún) NET API 及類(lèi)庫(kù)在各版本中實(shí)現(xiàn)情況
ASP.NET Core 項(xiàng)目目錄結(jié)構(gòu)介紹
ASP.NET Core 程序自定義IP和端口的幾種方式
ASP.NET Core 中的Startup類(lèi)
ASP.NET Core 中使用多個(gè)環(huán)境(開(kāi)發(fā)、預(yù)發(fā)布、生產(chǎn))- 默認(rèn)為 Production
ASP.NET Core 動(dòng)作結(jié)果(ActionResult)
ASP.NET Core 中控制器操作的多路徑返回類(lèi)型(IActionResult)
.NET Core 3.0 新的 System.Text.Json API
?
配置
ASP.NET Core 中的配置(json、xml、命令行、環(huán)境變量、內(nèi)存變量等)
ASP.NET Core 中的選項(xiàng)模式
.Net Core 自定義配置源從遠(yuǎn)程API讀取配置(ConfigurationProvider)
邁向現(xiàn)代化的 .Net 配置指北(配置到類(lèi)自動(dòng)映射)
?
路由、模型綁定
ASP.NET Core WebAPI中,Controller標(biāo)注 [ApiController] 特性,其路由只能使用[route]特性方式
ASP.NET Core MVC 構(gòu)建可讀性更高的ASP.NET Core 路由
ASP.NET Core 中的模型綁定
ASP.NET Core 中的自定義模型綁定(IModelBinder)
ASP.NET Core 中的 URL 重寫(xiě)中間件
?
依賴(lài)注入(IOC、DI)
什么是控制反轉(zhuǎn),和依賴(lài)注入:
控制反轉(zhuǎn)的意思就是:平常我們需要一個(gè)類(lèi)對(duì)象的時(shí)候需要new出來(lái),而現(xiàn)在我們把new一個(gè)類(lèi)對(duì)象的工作交給了IOC容器,當(dāng)我們需要一個(gè)類(lèi)對(duì)象的時(shí)候直接向IOC容器要,就可以了,這個(gè)就是控制反轉(zhuǎn)。(控制權(quán)交個(gè)了IOC容器)
依賴(lài)注入的意思就是:當(dāng)我需要一個(gè)類(lèi)對(duì)象,IOC容器給我們這個(gè)類(lèi)對(duì)象的過(guò)程其實(shí)就是依賴(lài)注入,依賴(lài)注入有構(gòu)造函數(shù)注入和屬性注入。?
[官方]ASP.NET Core 依賴(lài)注入
全面理解 ASP.NET Core 依賴(lài)注入
官方推薦通過(guò)構(gòu)造函數(shù)。這也是所謂的顯式依賴(lài)。Asp.Net Core 的標(biāo)準(zhǔn)依賴(lài)注入容器不支持屬性注入。(可以使用autofac或者其他來(lái)實(shí)現(xiàn)屬性注入)
ASP.NET Core 中依賴(lài)注入的N種玩法
ASP.NET Core 自定義特性實(shí)現(xiàn)屬性注入
ASP.NET Core 原生DI實(shí)現(xiàn)批量注冊(cè)
可以參考 OSharp 框架,設(shè)計(jì)三個(gè)全局注入接口,來(lái)實(shí)現(xiàn)自動(dòng)化注入:ISingletonDependency 和 ITransientDependency 、 IScopedDependency ( 單例、瞬時(shí)、范圍)。
ASP.NET Core 中如何注入同一個(gè)接口的多個(gè)實(shí)現(xiàn)
案例1:使用nlog時(shí),想根據(jù)需要使用不同的配置文件Nlog.config 寫(xiě)日志時(shí),就可以使用文章中介紹的 Factory 命名注入方案來(lái)實(shí)現(xiàn)
案例2:使用分布式緩存 IDistributedCache 時(shí),想根據(jù)需要在一個(gè)項(xiàng)目中同時(shí)使用redis和sqlserver
ASP.NET Core 中多個(gè)接口對(duì)應(yīng)同一個(gè)實(shí)現(xiàn)的正確姿勢(shì)
ASP.NET Core 依賴(lài)注入擴(kuò)展庫(kù) Scrutor
[OSharp]使用 IServiceProvider.GetService<T>() 實(shí)現(xiàn)按需注入,優(yōu)化性能
?
#、ASP.NET Core 集合 Autofac 的使用
AutoFac三種注入方式:按類(lèi)型、按名稱(chēng)、按鍵
Asp.Net Core 2.0 之旅---AutoFacIOC容器的使用教程
Asp.Net Core 2.0 之旅---AutoFac倉(cāng)儲(chǔ)泛型的依賴(lài)注入(泛型注入)
Asp.Net Core 2.0 之旅---數(shù)據(jù)訪(fǎng)問(wèn)倉(cāng)儲(chǔ)模式的事務(wù)管理(uow+rp)
?
ASP.NET Core 中使用Autofac實(shí)現(xiàn)屬性注入的代碼片段
ASP.NET Core WebAPI
創(chuàng)建ASP.NET Core Web API (ControllerBase、參數(shù)綁定源)
ASP.Net Core WebAPI 幾種版本控制對(duì)比
使用 Web API 約定
使用 Web API 分析器告警缺失的約定
?
ASP.NET Core:MVC 與 Razor Pages
ASP.NET Core SignalR 入門(mén)
ASP.NET Core MVC 靜態(tài)文件目錄配置與訪(fǎng)問(wèn)授權(quán)
新的 Razor 機(jī)制
ASP.NET Core Razor SDK
ASP.NET Core 的 Razor 語(yǔ)法參考
ASP.NET Core 中的 Razor 頁(yè)面介紹(OnGet、OnPost、單頁(yè)多Handler方式)
ASP.NET Core 中 Razor 頁(yè)面的IPageFilter
ASP.NET Core 中 Razor 頁(yè)面的路由和應(yīng)用約定
ASP.NET Core Razor 配置:預(yù)編譯,動(dòng)態(tài)編譯,混合編譯
WebForm & MVC & Razor Pages
[譯]ASP.NET:WebForms vs MVC
ASP.NET Core Razor頁(yè)面 vs MVC
[譯]ASP.Net Core 2.0中的Razor Page不是WebForm
ASP.NET Core Razor頁(yè)面簡(jiǎn)化了 ASP.NET MVC 應(yīng)用程序
?
HttpContext
ASP.NET Core 中訪(fǎng)問(wèn) HttpContext 的方法
ASP.NET Core 中通過(guò)IHttpContextAccessor實(shí)現(xiàn)公用靜態(tài)HttpContext
?
狀態(tài)管理
常見(jiàn)方式:Cookie、Session、TempData、查詢(xún)字符串、HttpContext.Items、緩存、依賴(lài)關(guān)系注入
ASP.NET Core 中的會(huì)話(huà)和應(yīng)用狀態(tài)
#、session
ASP.NET Core 在通用數(shù)據(jù)保護(hù)條例規(guī)則下使用 session
ASP.NET Core 使用Redis存儲(chǔ)Session
#、cookie
ASP.NET Core SameSite 設(shè)置引起 Cookie 在 QQ 瀏覽器中不起作用
[github]ASP.NET Core CookieManager
?
通信
對(duì)比 gRPC 服務(wù)和 HTTP API 服務(wù)
#、HttpClient
ASP.NET Core HttpClient的演進(jìn)和避坑
ASP.NET Core HttpClient的各種用法、生命周期管理
DotNetCore 使用Http請(qǐng)求及基于 Polly 的處理故障
DotNetCore 中 HttpClientFactory 類(lèi)源碼分析
#、gRPC
ASP.NET Core 3.0 上的gRPC服務(wù)模板初體驗(yàn)(多圖)
ASP.NET Core gRPC的配置
?
發(fā)布部署
ASP.NET Core 使用 IIS 進(jìn)行托管部署
ASP.NET Core 部署到 Linux 進(jìn)行托管
ASP.NET Core 使用Supervisor進(jìn)行托管部署
ASP.NET Core 使用Docker進(jìn)行容器化托管
配置 ASP.NET Core 以使用代理服務(wù)器和負(fù)載均衡器
??使用 Nginx 在 Linux 上托管 ASP.NET Core
??使用 Apache 在 Linux 上托管 ASP.NET Core
?
單元測(cè)試
.NET Core 和 .NET Standard 單元測(cè)試最佳做法
使用 dotnet test 和 xUnit 在 .NET Core 中進(jìn)行 C# 單元測(cè)試
使用 dotnet test 和 NUnit 在 .NET Core 中進(jìn)行 C# 單元測(cè)試
使用 dotnet test 和 MSTest 在 .NET Core 中進(jìn)行 C# 單元測(cè)試
使用 dotnet test --filter 進(jìn)行選擇性單元測(cè)試
?
==============================================================================
總結(jié)
以上是生活随笔為你收集整理的.NET Core 学习资料精选:入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OpenCV学习笔记(1)——显示图片
- 下一篇: 信号驱动IO异步IO的对比理解刨析, e