完全精通微軟 Web 架構:ASP.Net Core 3 最新強實戰
內容描述
本書特色
► 可在Windows、macOS、Linux平台上開發.NET Core應用,也可以透過Docker容器部署ASP.NET Core
► 植入架構、請求處理管線等建立ASP.NET Core應用的基本程式設計模式,依賴植入原理及架構的設計與程式設計方式完整介紹
► 抽象的檔案系統,包括物理檔案系統和程式集內嵌檔案系統
► 介紹支援多種資料來源的設定系統;採用Options模式來讀取設定選項
► 介紹5種常用的記錄診斷記錄檔的方式及多種輸出通道的記錄檔系統
► 承載系統以及從程式設計模型的角度來認識管線
► 提供一個極簡版的模擬架構來展示ASP.NET Core架構真實的管線
► 針對請求的處理則表現在有序排列的中介軟體上,包括處理檔案請求、路由、例外的中介軟體,也包含用來回應快取和階段的中介軟體
► 詳細說明認證、授權、跨域資源分享等安全相關的中介軟體
► 介紹當地語系化、健康檢查的中介軟體。除此之外,亦包含實現主機名稱過濾、HTTP重新定義、設定基礎路徑等功能的中介軟體
本書重點
ASP.NET Core是一個全新的Web開發平台,作為核心的Web開發平台,ASP.NET Core可利用其極具擴展能力的請求處理管線,來支撐目前常用的開發模型,如MVC、GRPC、SingalR和Orleans等。不論從事哪種類型的Web開發,甚至可以在ASP.NET Core平台上構建自己的Web程式設計模型。
本書主要內容
全書主要劃分為以下4部分:
► 跨平台的開發體驗和實現原理
01 透過Hello World程式,讓讀者體驗在Windows、macOS、Linux平台上開發.NET Core應用,以及透過Docker容器部署ASP.NET Core應用的樂趣
02 告訴讀者.NET Core的跨平台是如何實現的
► 基礎架構
03、04 對依賴植入原理及依賴植入架構的設計與程式設計方式進行介紹
05 對檔案系統的設計模型和兩種實現方式(物理檔案系統和程式集內嵌檔案系統)進行介紹。
06 介紹支援多種資料來源的設定系統項
07 說明強類型的設定選項程式設計方式
08 介紹5種常用記錄診斷記錄檔的方式
09 介紹.NET Core提供支援多種輸出通道的記錄檔系統
► 管線詳解
10 介紹.NET Core的服務承載系統。
11 從程式設計模型的角度來認識管線
12 提供一個極簡版的模擬架構展示ASP.NET Core架構的整體設計
13 以模擬架構為基礎,展現ASP.NET Core架構真實的管線
► 中介軟體
14、15;16、17、18、19、20、21
處理檔案請求、路由、例外的中介軟體,也包含用來回應快取和階段的中介軟體,還包含用來實現認證、授權、跨域資源分享等與安全相關的中介軟體
22介紹針對當地語系化的中介軟體
23 介紹健康檢查的中介軟體
24 介紹用來實現主機名稱過濾、HTTP重新定義、設定基礎路徑等功能的中介軟體
適合讀者群 沒有接觸過ASP.NET Core的開發人員、資深的.NET開發設計人員、所有.NET技術從業人員。
目錄大綱
目錄
前言
01全新的開發體驗
1.1 Windows 平台
1.2 macOS 使用者
1.3 Linux
1.4 Docker
02 跨平台的奧秘
2.1 歷史的枷鎖
2.2 重複使用之傷
2.3 全新的版面配置
03 依賴植入(上篇)
3.1 控制反轉
3.2 IoC 模式
3.3 依賴植入
3.4 一個簡易版的依賴植入容器
04 依賴植入(下篇)
4.1 利用容器提供服務
4.2 服務註冊
4.3 服務的消費
4.4 實現概覽
4.5 擴充
05 檔案系統
5.1 抽象的檔案系統
5.2 設計詳解
5.3 遠端檔案系統
06 設定選項(上篇)
6.1 讀取設定資訊
6.2 設定模型
6.3 設定綁定
6.4 設定的同步
6.5 多樣性的設定來源 3
07 設定選項(下篇)
7.1 Options 模式
7.2 Options 模型
7.3 依賴植入
08 診斷記錄檔(上篇)
8.1 各種診斷記錄檔形式
8.2 Debugger 偵錯記錄檔
8.3 TraceSource 追蹤記錄檔
8.4 EventSource 事件記錄檔
8.5 DiagnosticSource 診斷記錄檔
09 診斷記錄檔(下篇)
9.1 統一記錄檔程式設計模式
9.2 記錄檔模型詳解
9.3 依賴植入
9.4 記錄檔輸出通道
10 承載系統
10.1 服務承載
10.2 承載模型
10.3 實現原理
11 管線(上篇)
11.1 管線式的請求處理
11.2 依賴植入
11.3 設定
11.4 承載環境
11.5 初始化
12 管線(中篇)
12.1 中介軟體委派鏈
12.2 伺服器
12.3 承載服務
13 管線(下篇)
13.1 請求上下文
13.2 IServer + IHttpApplication
13.3 中介軟體委派鏈
13.4 應用的承載
14 靜態檔案
14.1 架設檔案伺服器
14.2 處理檔案請求
14.3 處理目錄請求
15 路由
15.1 路由對映
15.2 終節點的解析與執行
15.3 路由約束
16 例外處理
16.1 呈現錯誤訊息
16.2 開發者例外頁面
16.3 例外處理器
16.4 回應狀態碼頁面
17 快取
17.1 將資料快取起來
17.2 本機記憶體快取
17.3 分散式快取
17.4 回應快取
18 階段
18.1 利用階段保留「語境」
18.2 階段狀態的讀寫
18.3 SessionMiddleware 中介軟體
19 認證
19.1 認證、登入與登出
19.2 身份與使用者
19.3 認證模型
19.4 Cookie 認證方案
20 授權
20.1 以角色為基礎的許可權控制
20.2 以「要求」為基礎的授權
20.3 以「策略」為基礎的授權
21 跨域資源分享
21.1 處理跨域資源
21.2 CORS 標準
21.3 CORS 模型
22 當地語系化
22.1 提供當地語系化訊息文字
22.2 文字當地語系化
22.3 目前語言文化的設定
23 健康檢查
23.1 檢查應用的健康狀況
23.2 設計與實現
23.3 發佈健康報告
24 補遺
24.1 過濾主機名稱
24.2 HTTP 重新定義
24.3 基礎路徑
24.4 路由
A 實例示範
作者介紹
蔣金楠
知名IT博主(長踞博客園排名第一),擁有個人微信公眾號「大內老A」。連續12次被評為微軟MVP(最有價值專家),也是少數跨多領域的MVP(Solutions Architect、Connected System、Microsoft Integration和ASP.NET/IIS等),暢銷IT圖書作者。