1. <dd id="erndk"></dd>
                1. .NET Core 學習資料精選:進階

                  滴答的雨 2019/9/4 11:42:02

                  介紹 .NET工程化、AOP、異常處理、緩存、日志、響應優化、上傳下載、健康檢查、后臺任務、認證和授權、安全性、EF Core 等等

                   

                  .NET 3.0 2019.09月就要正式發布了,對于前一篇博文《.NET Core 學習資料精選:入門》大家學的可還開心?這是本系列的第二篇文章:進階篇,喜歡的園友速度學起來啊。

                  對于還在使用傳統.NET Framework 框架的園友,可以通過《.NET項目遷移到.NET Core操作指南》把需要新生力量的舊項目速度遷移到.NET Core

                   

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

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

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

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

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

                      介紹.NET工程化、AOP、異常處理、緩存、日志、響應優化、上傳下載、健康檢查、后臺任務、認證和授權、安全性(Https、CORS、CSRF)、EF Core 等等

                  第三篇:.NET Core 學習資料精選:高級&微服務架構

                      介紹性能、原理、微服務架構、DDD等知識

                   

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

                    image

                   

                   

                  .NET 工程化

                  #、StyleCop編碼規范

                  StyleCop規則匯總

                  在VS2017中使用StyleCop

                  netcore將StyleCop.Analyzers自定義規則應用到整個解決方案

                   

                  #、Nuget

                  安裝NuGet 客戶端工具

                  NuGet.Server

                  發布包

                  承載自己的NuGet 源

                  Nuget管理工具BaGet使用教程

                  Nuget管理工具FuGet使用教程

                   

                  #、Swagger Api文檔

                  Swagger 規范 (swagger.json)

                  Swagger+AutoRest 生成web api客戶端(.Net)

                  Swashbuckle方式

                  Asp.Net Core 使用Swagger生成API文檔并添加API分組

                  Asp.Net Core 使用Swagger生成API文檔并添加文檔描述、響應類型描述

                  NSwag方式

                  Asp.Net Core 使用NSwag生成Swagger Api文檔

                   

                  AOP面向切面編程

                  AOPAspect-Oriented Programming)是一種將函數的輔助性功能與業務邏輯相分離的編程范式(programming paradigm),其目的是將橫切關注點(cross-cutting concerns)分離出來,使得程序具有更高的模塊化特性。

                  AOP體現原則:單一職責原則 和 開放封閉原則

                  ASP.NET Core中可使用三種方式實現AOP:中間件Middleware、過濾器Filter、代碼織入(靜態織入和動態代理)

                   

                  #、中間件Middleware

                  中間件就是嵌入到應用管道中用于處理請求和響應的一段代碼,ASP.NET Core 中使用了大量的中間件。eg:全局異常、路由、響應緩存、響應壓縮、身份認證、CORS、日志記錄等等

                        image

                        ASP.NET Core Middleware 的實現(Conventional Middleware 和IMiddleware)

                        ASP.NET Core Middleware 的實現(Run,Map,Use,內置中間件)

                        【機翻】 【人工翻譯】

                   

                  #、過濾器Filter

                        image

                        ASP.NET Core 被低估的過濾器

                        ASP.NET Core MVC Filter的定義、注冊和各種Filter執行順序

                   

                  #、代碼織入

                  l  編譯時靜態織入

                  框架:PostSharp、Fody

                  特點:[編譯型]性能高,缺點是缺乏靈活性

                  實現思想:給語言的編譯器做擴展,使得在編譯程序的時候編譯器將相應的Aspect代碼織入到業務代碼的指定連接點,輸出整合的結果。

                  l  運行時動態織入(動態代理)

                  框架:Castle DynamicProxy,

                  特點:[運行時動態代理]靈活性高,性能相對“靜態織入”低

                  實現方式:將擴展添加到運行虛擬機而不是編譯器。Aspect和業務代碼分別獨立編譯,而在運行時由虛擬機在必要時進行織入。

                   

                  .Net AOP代碼織入介紹

                  .Net AOP代碼織入實現類型及原理(靜態、動態、優缺點)

                  .Net AOP代碼織入之《攔截方法》(包含案例:數據事物、多線程)

                  .Net AOP代碼織入之《單元測試切面》

                  .Net AOP代碼織入之《案例:構建一個汽車租賃應用》

                  演示了清晰的業務代碼,因為非功能性需求(eglogging,防御性編程,事務,重試,和異常處理等)導致代碼變得冗長、難懂、不易維護。通過使用AOP來讓業務代碼重新清晰化

                  .NET Core 原生DI+AOP實現注解式編程

                  .NET Core 泛型倉儲和聲明式事物實現最優雅的crud操作

                   

                  異常處理

                  Restful API 中的錯誤處理設計

                  ASP.NET Core 應用的錯誤處理[1]:三種呈現錯誤頁面的方式

                  使用UseStatusCodePages 根據Status選擇處理方式(跳轉頁面)

                  ASP.NET Core 自定義ErrorHandlingMiddleware 全局異常捕獲

                   

                  緩存

                  .NET Core 緩存使用、配置、依賴策略

                  .NET Core MemoryCache 緩存過期策略(絕對、滑動、依賴、過期回調)

                  ASP.NET Core 使用分布式緩存(redis、sqlserver)

                  windows redis安裝和設置密碼

                  ASP.NET Core 使用RedLock.net 實現分布式鎖

                   

                  日志

                  玩轉ASP.NET Core 中的日志組件

                  [github]ASP.NET Core Microsoft.Extensions.Logging 默認log組件

                  ASP.NET Core 中使用Nlog 記錄日志

                  在ASP.NET Core 中使用Serilog 進行日志記錄

                  ASP.NET Core 中使用log4net 記錄日志

                  .NET Core中使用Exceptionless分布式日志收集框架

                   

                  響應優化

                  在ASP.NET Core 中的響應壓縮

                  ASP.NET Core 中使用ResponseCache 響應緩存

                   

                  上傳下載

                  ASP.NET Core 中的文件上傳(IFormFile)、流式處理上傳大文件

                  ASP.NET Core 下載斷點續傳

                   

                  健康檢查

                  ASP.NET Core 中的運行狀況檢查(IHealthCheck)

                  [github]ASP.NET Core HealthChecks(健康檢查,異常webhooks通知)

                  使用案例:

                  使用ASP.NET Core實現Docker的HealthCheck指令

                  Kubernetes liveness and readiness probes using HealthChecks

                   

                  其他特性

                  #、對象池ObjectPool

                  .NET Core 中Object Pool的簡單使用

                   

                  #、WebHooks

                  ASP.NET Webhook 概述

                  WebHooks with ASP.NET Core – DropBox and GitHub

                   

                  后臺任務

                  基礎知識

                  服務宿主是IIS,需要注意IIS的回收策略對后臺任務的影響

                  Cron表達式

                  cron表達式在線生成

                  ASP.NET Core 中使用托管服務實現后臺任務(后臺任務、作用域任務、隊列任務)

                  .NET Core 3.0 創建Windows服務項目(BackgroundService)

                  使用Topshelf 創建Windows 服務

                  #、Hangfire(5024 stars)

                        特點:不需要Windows服務或單獨的進程

                  ASP.NET Core 中使用Hangfire任務管理(含Dashboard)

                  Hangfire 授權、自定義路由、只讀Dashboard、多數據庫源、設置主應用

                  Hangfire 隊列任務、計劃任務、周期性任務

                  ASP.NET Core 中使用Hangfire.Redis.StackExchange存儲

                  ASP.NET Core 中Hangfire.Cronos 結合BackgroundService 實現任務調度

                  使用Hangfire.HttpJob實現調度與業務分離

                  使用ASP.NET Core和Hangfire實現HTTP異步化方案

                  #、Quartz.NET(3404 stars)

                  Quartz.Net幾種部署模式(IIS、Exe、服務部署【借助TopSelf、服務類】)

                  ASP.NET Core2.2+Quartz.Net 實現web定時任務

                  Quartz.NET 配置文件詳解(quartz.config 和quartz_jobs.xml)

                  ----quartz.config可以合并到App.configWeb.config

                  quartz.net 3.x版本如何通過xml文件進行Job配置

                  CrystalQuartz

                  配置Quartz.NET Cluster以及遠程管理(CrystalQuartz)

                  Quartz.NET 可視化Job管理(CrystalQuartz)

                  CrystalQuartz 在線 Demo

                   

                  認證和授權

                  #、ASP.NET Core Identity身份認證

                  命名空間:Microsoft.AspNetCore.Identity

                  ASP.NET Core Identity框架簡介

                  創建完整的ASP.NET Core Identity基架(多圖)

                  ASP.NET Core Identity配置(聲明類型、鎖定策略、密碼策略、登錄策略等等)

                  ASP.NET Core 中注冊確認電子郵件和重置密碼

                  ASP.NET Core Identity身份驗證支持OAuth2第三方驗證提供程序

                  ASP.NET Core Identity中自定義模型

                  ASP.NET Core Idendity自定義存儲提供程序(Azure表存儲、Dapper)

                  #、基于Cookie身份認證

                  命名空間:Microsoft.AspNetCore.Authentication.Cookies

                  ASP.NET Core中使用Cookie身份驗證

                  ASP.NET Core Cookie身份驗證支持OAuth2第三方驗證提供程序

                  #、授權

                  命名空間:Microsoft.AspNetCore.Authorization

                  ASP.NET Core 簡單授權

                  ASP.NET Core 基于角色的授權

                  ASP.NET Core 基于聲明的授權

                  ASP.NET Core 基于策略的授權

                  ASP.NET Core 自定義授權提供程序

                  ASP.NET Core web api基于JWT自定義策略授權

                  #、IdentityServer4 認證授權

                  [阮一峰]理解OAuth 2.0

                  [曉晨Master]IdentityServer4 中文文檔與實戰

                  [免費視頻]IdentityServer教程視頻

                   

                  安全性

                  檢查HTTP Header 是否安全

                  .NET項目安全設置向導

                  ASP.NET Core 在強制實施 HTTPS

                  #、CORS

                  跨域資源共享CORS 詳解

                  ASP.NET Core 中啟用跨域請求 (CORS)

                  #、CSRF

                  SameSite Cookie,防止CSRF 攻擊

                  ASP.NET Core 防止跨站點請求偽造(XSRF/CSRF) 攻擊

                  ASP.NET Core WebAPI 中防御跨站請求偽造攻擊(CSRF)

                  ASP.NET Core 啟用客戶端IP 安全列表

                   

                  EF Core

                  EF Core 微軟官網教程(非常全)

                  Linq入門詳解(Linq to Objects)

                  3分鐘了解數據庫事務(ACID、事務隔離級別)

                  EF Core DbFirst:從數據庫生成實體類(反向工程)

                  EF Core CodeFirst:從實體創建新數據庫

                  EF Core CodeFirst:實體修改后遷移數據庫架構

                  EF Core 啟用SQL日志記錄

                  模型配置

                  EF Core 實體類型、查詢類型、數據注解、Fluent API

                  EF Core 自動生成值配置

                  EF Core 實體間關系

                  EF Core 生成跟蹤列(eg:CreatedAt,CreatedBy等列)

                  并發

                  EF Core 并發檢查

                  EF Core 并發沖突處理

                  數據查詢

                  EF Core 關聯數據加載策略(預先記載、顯示加載、延遲加載)

                  EF Core 跟蹤與非跟蹤查詢

                  EF Core 全局查詢篩選器(軟刪除、多租戶等)

                  EF Core 使用like 函數實現模糊查詢

                  批量數據操作

                  [收費]使用Entity Framework Extensions 實現批量增、刪、改

                  [免費]Entity Framework Extensions 提供功能縮減版:EntityFramework-Plus

                  EF Core 執行SQL語句和存儲過程

                   

                   

                   

                        看完”入門”和”進階”兩篇文章,對.NET Core的常用特性基本是掌握了的。接下來的”高級”篇,會介紹性能、原理、微服務架構、DDD等知識,不過這篇文章會過幾個月整理出,中間打算研究一些開源框架,并分享給大家。

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

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

                   

                  隨時隨地學軟件編程-關注百度小程序和微信小程序
                  關于找一找教程網

                  本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。
                  本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。
                  [.NET Core 學習資料精選:進階]http://www.yachtsalesaustralia.com/tech/detail-90261.html

                  贊(0)
                  關注微信小程序
                  程序員編程王-隨時隨地學編程

                  掃描二維碼或查找【程序員編程王】

                  可以隨時隨地學編程啦!

                  技術文章導航 更多>
                  国产在线拍揄自揄视频菠萝

                        1. <dd id="erndk"></dd>