通過深入理解和掌握NET Core MVC2.x從中學習到實用的技術和解決方案,提升自己在NET Core MVC2.x開發中的技能 ...
二、Logging
1.診斷中間件
- 命名空間:Microsoft.AspNetCore.Diagnostics
- 報告信息並處理異常
2.診斷中間件
- UseDeveloperExceptionPage:開發時使用的異常頁面,異常信息
- UseStatusCodePages:返回狀態碼:400-600
- UserExceptionHandler:指定異常處理器
- UseWelcome:當網站還在建設中
3.ASP.NET Core里的Log系統
- EventSource
- ILogger
- DiagnosticSource
4.ILogger
- 基於Providers
- 內置
- 可擴展使用其他的,或自己構件
5.內置的Log Providers
- Console:控制台
- Debug:VSDebug視窗
- EventSource
- EventLog:寫到Windows事件中
- TraceSource:只能應用於完整的.NET Frameword
- Azure App Service
6.Log等級(低級——>高級)
- Trace
- Debug
- Information
- Warning
- Error
- Cirtical
7.添加日誌信息
第一個參數是EventID,寫一個常量就行;
第二個參數是要記錄的日誌信息;如果有2個參數就繼續往後寫就行了;
不建議這麼寫,寫在一起就提出不來了;
8.第三方 Log Provider
- Serilog
- Nlog
- Elmah
9.怎麼在ASP.NET Core中使用Serilog?
- 在NuGet中安裝【Servilog.AspNetCore】
//如果需要輸出到控制台
//輸出到文件
- 在【Program.cs】文件中Main方法中進行配置。
- 在【Program.cs】文件中CreateWebHostBuilder方法中進行使用。
三、Filter
1.Filter
- 用於MVC
- 可以在MVC的請求管道里添加邏輯
- 之前、之後
- Cross-cutting concerns:灌穿特性
- 避免代碼重覆
- 常用場景
- 授權
- 需要Https
2.MVC管道
3.Filter種類
- AuthorizationFilter:鑒權授權
- ResourceFilter:資源過濾器
- ActionFilter:行為方法過濾器
- ExceptionFilter:異常過濾器
- ResultFilter:結果過濾器
4.實現Filter
- IFilterMetadata
- IAtuorizationFilter,IAsyncAuthorizationFilter
- IResourceFilter
- IActionFilter
- IExceptionFilter
- IRestleFilter
5.應用Filter
- Action
- Controller
- 全局
四、緩存
1.緩存的優點?
- 提高網站的訪問速度
- 適用於不易改變的數據
2.緩存的缺點?
- 仔細規劃
- 奇怪的副作用
3.緩存的地點?
- 伺服器
- 緩存伺服器
- 客戶端
4.In-Memory緩存
- 記憶體緩存
- IMemoryCache
- 適用於Sticky Seesion(使用單機服務)
- 適用於任何類型的對象
5.MemoryCacheEntryOptions
- Absolute expiration time:絕對過期時間
- Sliding expiration time:可調的過期時間
- 緩存優先順序
- PostEvictionDelegate
6.怎麼使用緩存?
- 現在【Sartup.cs】的【ConfigureServices】方法中註冊緩存:
- 定義一個常量,用來做Key
- 構造函數依賴註入緩存
- 使用緩存
7.Cache Tag Helper
@await Component.IncokeAsync("xxx") - 伺服器端
- 使用IMemoryCache
- Sticky Session
8.Cache Tag Helper屬性
- Enabled:是否啟用
- expires-on:絕對的過期時間
- expires-after:時間長度
- expires-sliding:可調的過期時間
- vary-by-header:請求
- vary-by-query
- vary-by-cookie
- vary-by-user
- vary-by
- priority:優先順序設置
9.分散式緩存_1
10.分散式緩存_2
- 無需Sticky Seesion
- 可擴展
- 伺服器重啟不會緩存
- 性能更好
11.分散式緩存的介面名、方法?
- IDistributedCache
- Get,GetAsync
- Set,SetAsync
- Refresh,RefreshAsync
- Remove,RemoveAsync
12.分散式緩存有哪幾種?
- 分散式Memory Cache:只適合開發時應用
- 分散式 Sql Server Cache
- 分散式 Redis Cache:實際中使用這個最多
13.怎麼使用Readis分散式緩存?
- 安裝Redis(使用Docker安裝)
連接、運行Redis
- 在VS項目中安裝Redis
- 在【Startup.cs】的【ConfigureService】方法中進行註入。
- 在Controller中構造函數依賴註入
- 使用分散式緩存
14.Response緩存(響應緩存、客戶端緩存)
- 基於Header
- 客戶端緩存
- 使用ResponseCache這個Attribute
15.Reponse緩存參數?
- Location:設置緩存在哪
- Duration:設置緩存時間的長短
- NoStore:不應該設為緩存
- VaryByHeader:設置通過檢查哪個Header的值決定緩存
16.如何使用Reponse緩存?
- 在【Startup.cs】註冊Reponse緩存
- 在控制器中寫代碼;
也可以使用之前註冊的
17.壓縮
- 壓縮傳輸的數據:1k以上的數據,如CSS、JS等可以進行壓縮;
如何使用呢?
(1)在【Program.cs】中【ConfigureServices】方法中註冊服務
(2)在【Program.cs】中【Configure】使用服務
沒介紹完,看文檔...
五、VSTS(後改名:Azure DevOps)
1.Azure DevOps
- Saas
- 完整的DevOps的解決方案
- 與技術無關
- 基於Azure
- 集成開發團隊的環境
2.Azure DevOps組件
- 源碼控制
- 計劃
- CI
- 發佈管理
- 測試
- ...
3.CI-Continuouts Integeration(持續集成)
4.Azure Devops -CI
- Build連接到測試,工作項...
- 宿主代理
- 針對報告
- 支持多種語言憑他
上一章節:https://www.cnblogs.com/kimiliucn/p/17611047.html
原文鏈接:https://www.cnblogs.com/kimiliucn/p/17616708.html
版權聲明:本文為原創文章,版權歸 [西瓜程式猿] 所有,轉載請註明出處,有任何疑問請私信咨詢。
原文鏈接:https://www.cnblogs.com/kimiliucn/p/17616708.html