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

来源:https://www.cnblogs.com/heyuquan/archive/2019/07/16/dotnet-basic-learning-resource.html
-Advertisement-
Play Games

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


 

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

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

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

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

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

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

      

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

            clip_image002[8]

 

.NET 簡介

#.NET 開源之路

clip_image004[8]

.NetFrameWork發展史

C# 語言版本發展史

2014.11月 .NET Core 項目啟動,2016.06月 .NET Core 1.0 發佈

微軟 .NET Core3.0 規劃藍圖

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

clip_image006[8]

 

#.NET Core提供的特性

1.開源、免費

2.輕量級、跨平臺

3.組件化、模塊化、IOC+Nuget、中間件

4.高性能

5.統一了MVCWebAPI編程模型

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 Core Runtime 和.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 重寫中間件

 

依賴註入(IOCDI

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

控制反轉的意思就是:平常我們需要一個類對象的時候需要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 時,想根據需要在一個項目中同時使用redissqlserver

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 CoreMVC Razor Pages

ASP.NET Core SignalR 入門

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 配置:預編譯,動態編譯,混合編譯

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

 

狀態管理

常見方式:CookieSessionTempData、查詢字元串、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 服務

<
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 獲取網路文件,通過流保存文件。 //網路路徑文件 string pathUrl = "http://localhost:805/js/site.zip"; System.Net.HttpWebRequest request = null; System.Net.HttpWebResponse res ...
  • 項目中有些時候需要用到正則表達式,但是自己對正則表達式不熟悉,每次學習完,過一段時間(長時間)不用,就又忘了,每次需要用到的時候都需要百度下,比較麻煩,這裡把C#中經常用到的正則表達式做下總結。 正則表達式常用的環境 爬蟲、網站數據驗證、日誌分析、字元串替換、獲取子字元串、文本處理、字元串處理等 正 ...
  • 學習筆記,第一次記錄避免忘記 首先介紹一下本地環境是windows2008 R2-64位。 1. 到nginx官網上下載最新穩定版的安裝包,http://nginx.org/en/download.html; 2.下載後解壓到對應文件夾 3.使用cmd命令進入文件目錄,輸入nginx.exe或者st ...
  • 在這一篇文章中我們創建一個菜單,並通過這個菜單調用我們之前寫的增刪除改查的功能。 ...
  • SQLite簡易版ORM 首先打開項目,使用nuget搜索sqlite-net,如下圖: 下載完成後,我們會多出兩個文件,SQLite.cs和SQLiteAsync.cs。 我們新建一個文件夾SQLiteResources,把這倆文件放進去。 然後我們創建兩個表實體,如下: 接下來我們創建一個SQL ...
  • 小白開學Asp.Net Core 《八》 — — .Net Core 數據保護組件 1、背景 我在搞(https://github.com/AjuPrince/Aju.Carefree)這個開源項目的時候,想做一些防止惡意攻擊的小功能(如果 我通過頁面 /Dome/GetData?id=123,那是 ...
  • 最近剛好在學習NetCore框架所以就在網上搜索了一下相關的開源框架項目,正好在Github上找到了一個不錯的開源框架所以推薦給大家看看哈哈哈。 1:項目相關技術 運行NetCore SDK版本為2.2+ 資料庫:Mysql 5.7+ 使用SqlSugar ORM 2:項目源代碼地址: github ...
  • 一.概述 本篇詳細瞭解一下asp.net core filters,filter叫"篩選器"也叫"過濾器",是請求處理管道中的特定階段之前或之後運行代碼。filter用於處理橫切關註點。 橫切關註點的示例包括:錯誤處理、緩存、配置、授權和日誌記錄。 filter可以避免重覆代碼,通過Attribut ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...