1. 程式人生 > >.NET Core 學習資料精選:入門

.NET Core 學習資料精選:入門

 

    開源跨平臺的.NET Core,還沒上車的趕緊的,來不及解釋了……

    本系列文章,主要分享一些.NET Core比較優秀的社群資料和微軟官方資料。我進行了知識點歸類,讓大家可以更清晰的學習.NET Core。

  首先感謝資料原作者的貢獻。

    第一篇:.NET Core 學習資料精選:入門

      介紹.NET歷史、開源之路、基礎、路由、依賴注入、HttpContext、cookie|session、HttpClient、gRPC、單元測試、釋出部署等等。

    第二篇:.NET Core 學習資料精選:進階&高階

      

這是第一篇,知識點如圖: 

           

 

.NET 簡介

#、.NET 開源之路

.NetFrameWork發展史

C# 語言版本發展史

2014.11月 .NET Core 專案啟動,2016.06月 .NET Core 1.0 釋出

微軟 .NET Core3.0 規劃藍圖

.NET Core 3.0 下一個版本命名為:.NET 5

 

#、.NET Core提供的特性

1.開源、免費

2.輕量級、跨平臺

3.元件化、模組化、IOC+Nuget、中介軟體

4.高效能

5.統一了MVC和WebAPI程式設計模型

a)  比如:ASP.NET Core 中MVC 和Web API 直接或間接繼承同一個基類 ControllerBase,提供可使用的API也一致化

b)  比如:舊ASP.NET時代,寫全域性filter需要針對MVC 和Web API 分別編寫程式碼,但在ASP.NET Core,直接使用一套中介軟體程式碼即可

6.可測試性

7.微服務、容器化支援

8.標準化 .NET API 規範- .NET STANDARD

 

#、遷移到.NET Core

目前市面上還存在很多傳統 .NET 舊專案,我們需要根據公司情況決定是否升級到.NET Core。

如果需要進行舊專案升級的,可以參考文章:《.NET專案遷移到.NET Core操作指南》

 

VS和.NET Core安裝

VS2019安裝教學

VS2019正式版註冊碼祕鑰

安裝 .NET CoreRuntime 和.NET Core SDK

【微軟官方文件】ASP.NET Core *.* 個版本新特性

指定要使用的 .NET Core 版本

如何刪除 .NET Core 過時的執行時和 SDK

[坑]安裝 .Net Core 2.2 SDK後,VS2017依然不能設定core2.2為目標框架

 

基礎

ASP.NET Core開發者路線指南

微軟官方 asp.net core 教程文件

.NET Core 命令列介面 (CLI) 工具

.NET Core 執行程式注意事項(dotnet dll 與 dotnet run)

ASP.NET Core API 一覽表

查詢 NET API 及類庫在各版本中實現情況

ASP.NET Core 專案目錄結構介紹

ASP.NET Core 程式自定義IP和埠的幾種方式

ASP.NET Core 中的Startup類

ASP.NET Core 中使用多個環境(開發、預釋出、生產)- 預設為 Production

ASP.NET Core 動作結果(ActionResult)

ASP.NET Core 中控制器操作的多路徑返回型別(IActionResult)

.NET Core 3.0 新的System.Text.JsonAPI

 

配置

ASP.NET Core 中的配置(json、xml、命令列、環境變數、記憶體變數等)

ASP.NET Core 中的選項模式

.Net Core 自定義配置源從遠端API讀取配置(ConfigurationProvider)

邁向現代化的 .Net 配置指北(配置到類自動對映)

 

路由、模型繫結

ASP.NET Core WebAPI中,Controller標註 [ApiController] 特性,其路由只能使用[route]特性方式

ASP.NET Core MVC 構建可讀性更高的ASP.NET Core 路由

ASP.NET Core 中的模型繫結

ASP.NET Core 中的自定義模型繫結(IModelBinder)

ASP.NET Core 中的 URL 重寫中介軟體

 

依賴注入(IOC、DI)

什麼是控制反轉,和依賴注入:

控制反轉的意思就是:平常我們需要一個類物件的時候需要new出來,而現在我們把new一個類物件的工作交給了IOC容器,當我們需要一個類物件的時候直接向IOC容器要,就可以了,這個就是控制反轉。(控制權交個了IOC容器)

依賴注入的意思就是:當我需要一個類物件,IOC容器給我們這個類物件的過程其實就是依賴注入,依賴注入有建構函式注入和屬性注入。

 

[官方]在 ASP.NET Core 依賴注入

全面理解 ASP.NET Core 依賴注入

官方推薦通過建構函式。這也是所謂的顯式依賴。Asp.Net Core 的標準依賴注入容器不支援屬性注入。(可以使用autofac或者其他來實現屬性注入)

ASP.NET Core 中依賴注入的N種玩法

ASP.NET Core 自定義特性實現屬性注入

ASP.NET Core 原生DI實現批量註冊

可以參考 OSharp 框架,設計三個全域性注入介面,來實現自動化注入:ISingletonDependency 和 ITransientDependency 、 IScopedDependency ( 單例、瞬時、範圍)。

ASP.NET Core 中如何注入同一個介面的多個實現

案例1:使用nlog時,想根據需要使用不同的配置檔案Nlog.config 寫日誌時,就可以使用文章中介紹的 Factory 命名注入方案來實現

案例2:使用分散式快取 IDistributedCache 時,想根據需要在一個專案中同時使用redis和sqlserver

ASP.NET Core 中多個介面對應同一個實現的正確姿勢

ASP.NET Core 依賴注入擴充套件庫 Scrutor

[OSharp]使用 IServiceProvider.GetService<T>() 實現按需注入,優化效能

 

#、ASP.NET Core 集合 Autofac 的使用

AutoFac三種注入方式:按型別、按名稱、按鍵

Asp.Net Core 2.0 之旅---AutoFacIOC容器的使用教程

Asp.Net Core 2.0 之旅---AutoFac倉儲泛型的依賴注入(泛型注入)

Asp.Net Core 2.0 之旅---資料訪問倉儲模式的事務管理(uow+rp)

 

ASP.NET Core 中使用Autofac實現屬性注入的程式碼片段

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    // 第一步:替換系統預設Controller建立器(否則Controller下面無法使用屬性注入)
    // 在 services.AddMvc() 之前
    services.Replace(ServiceDescriptor.Transient<IControllerActivator, ServiceBasedControllerActivator>());
    services.AddMvc();

    var builder = new ContainerBuilder();

    // 第二步:找到所有Controller的型別
    // 通過Autofac對Controller型別進行屬性註冊 PropertiesAutowired()
    var assembly = this.GetType().GetTypeInfo().Assembly;
    var manager = new ApplicationPartManager();
    manager.ApplicationParts.Add(new AssemblyPart(assembly));
    manager.FeatureProviders.Add(new ControllerFeatureProvider());
    var feature = new ControllerFeature();
    manager.PopulateFeature(feature);
    builder.RegisterTypes(feature.Controllers.Select(ti => ti.AsType()).ToArray()).PropertiesAutowired();
    // 第三步:配置 ContainerBuilder,返回 IServiceProvider 
    builder.Populate(services);
    return new AutofacServiceProvider(builder.Build());
}

 

ASP.NET Core WebAPI

建立ASP.NET Core Web API (ControllerBase、引數繫結源)

ASP.Net Core WebAPI 幾種版本控制對比

使用 Web API 約定

使用 Web API 分析器告警缺失的約定

 

ASP.NET Core:MVC 與 Razor Pages

ASP.NET Core MVC 靜態檔案目錄配置與訪問授權

新的 Razor 機制

ASP.NET Core Razor SDK

ASP.NET Core 的 Razor 語法參考

ASP.NET Core 中的 Razor 頁面介紹(OnGet、OnPost、單頁多Handler方式)

ASP.NET Core 中 Razor 頁面的IPageFilter

ASP.NET Core 中 Razor 頁面的路由和應用約定

ASP.NET Core Razor 配置:預編譯,動態編譯,混合編譯

ASP.NET Core SignalR 入門

WebForm & MVC & Razor Pages

[譯]ASP.NET:WebForms vs MVC

ASP.NET Core Razor頁面 vs MVC

[譯]ASP.Net Core 2.0中的Razor Page不是WebForm

ASP.NET Core Razor頁面簡化了 ASP.NET MVC 應用程式

 

HttpContext

ASP.NET Core 中訪問 HttpContext 的方法

ASP.NET Core 中通過IHttpContextAccessor實現公用靜態HttpContext

 

狀態管理

常見方式:Cookie、Session、TempData、查詢字串、HttpContext.Items、快取、依賴關係注入

ASP.NET Core 中的會話和應用狀態

#、session

ASP.NET Core 在通用資料保護條例規則下使用 session

ASP.NET Core 使用Redis儲存Session

#、cookie

ASP.NET Core SameSite 設定引起 Cookie 在 QQ 瀏覽器中不起作用

[github]ASP.NET Core CookieManager

 

通訊

對比 gRPC 服務和 HTTP API 服務

#、HttpClient

ASP.NET Core HttpClient的演進和避坑

ASP.NET Core HttpClient的各種用法、生命週期管理

DotNetCore 使用Http請求及基於 Polly 的處理故障

DotNetCore 中 HttpClientFactory 類原始碼分析

#、gRPC

ASP.NET Core 3.0 上的gRPC服務模板初體驗(多圖)

ASP.NET Core gRPC的配置

 

釋出部署

ASP.NET Core 使用 IIS 進行託管部署

ASP.NET Core 部署到 Linux 進行託管

ASP.NET Core 使用Supervisor進行託管部署

ASP.NET Core 使用Docker進行容器化託管

配置 ASP.NET Core 以使用代理伺服器和負載均衡器

使用 Nginx 在 Linux 上託管 ASP.NET Core

使用 Apache 在 Linux 上託管 ASP.NET Core

 

單元測試

.NET Core 和 .NET Standard 單元測試最佳做法

使用 dotnet test 和 xUnit 在 .NET Core 中進行 C# 單元測試

使用 dotnet test 和 NUnit 在 .NET Core 中進行 C# 單元測試

使用 dotnet test 和 MSTest 在 .NET Core 中進行 C# 單元測試

使用 dotnet test --filter 進行選擇性單元測試

 

==============================================================================

over,謝謝查閱,覺得文章對你有收穫,請多幫推薦。歡迎向我提供更好的資料資訊。