開源 Web 建置強大標準 - ASP.NET Core 全端開發立即上手
周家安 編著
- 出版商: 深智
- 出版日期: 2024-11-19
- 定價: $880
- 售價: 7.9 折 $695
- 語言: 繁體中文
- 頁數: 656
- ISBN: 6267569233
- ISBN-13: 9786267569238
-
相關分類:
.NET、ASP.NET
- 此書翻譯自: 深入淺出:ASP.NET Core
立即出貨 (庫存 > 10)
買這商品的人也買了...
-
$360$281 -
$320$272 -
$650$507 -
$500$390 -
$680$537 -
$480$379 -
$400$316 -
$600$468 -
$860$679 -
$790$624 -
$780$616 -
$680$530 -
$750$592 -
$594$564 -
$850$663 -
$880$695 -
$599$473 -
$680$530 -
$720$569 -
$800$632 -
$680$530 -
$600$468 -
$690$545 -
$980$774 -
$1,280$1,011
相關主題
商品描述
開源Web建置強大標準 - ASP.NET Core全端開發立即上手
.NET Core是由微軟開發的一個跨平台、開源的軟體框架。它是.NET Framework的新版本,提供了更好的效能、模組化和跨平台支援。與.NET Framework不同的是,.NET Core是從頭重新設計的,可以在Windows、macOS和Linux上運行。ASP.NET Core以服務容器為核心,可模組化擴充,並且搭配了常用的元件,它經過重新設計和最佳化,在效能和安全性上都有顯著提升。ASP.NET Core提供Razor Pages、MVC、Web API和Blazor等功能,可靈活組合應用於常規Web、微服務、行動後端和物聯網等場景。如果你已經熟悉.NET架構,再轉為開發Web程式,本書再適合不了。
本書適合有.NET或C#基礎的讀者,透過實例快速掌握ASP.NET Core關鍵技術。本書旨在提供一個全面的學習路徑,幫助讀者從初學者進階到能夠應對現代複雜軟體開發挑戰的專家。無論您是正在尋找開始使用.NET Core 技術堆疊的新手,還是希望深入了解其高級功能和最佳實踐的經驗開發者,本書都將為您提供所需的知識和技能。
作者簡介
周家安
微軟最有價值專家(MVP),擅長.NET及其相關開發技術,專注於探索簡單實用的程式設計學習方法。長期在博客園等技術社區分享程式設計經驗。出版《Go語言入門經典》《精通C#5.0》《C#碼農筆記:從第一行代碼到項目實戰》《Python實戰指南——手把手教你掌握300個精彩案例》等優秀原創科技圖書。
目錄大綱
第 1 章 初始化ASP.NET Core 應用程式
1.1 應用程式的啟動過程
1.2 WebApplicationBuilder類別
1.3 啟動應用程式
1.4 使用Host初始化應用程式
1.4.1 通用主機
1.4.2 範例:簡單的通用主機
1.4.3 Web主機
1.5 設定應用程式的URL
1.5.1 呼叫UseUrls()方法
1.5.2 使用WebApplication類別的Urls屬性
1.5.3 呼叫Run()方法時傳遞URL
1.5.4 透過ServerAddressesFeature物件設定URL
1.5.5 使用命令列參數
1.5.6 使用設定檔
1.5.7 使用環境變數
1.5.8 使用launchSettings.json檔案
1.5.9 Kestrel伺服器的偵聽位址
1.5.10 透過HTTP.sys設定URL
1.5.11 PreferHostingUrls() 方法的作用
1.6 應用程式生命週期事件
第 2 章 執行環境
2.1 定義執行環境
2.2 Is{EnvironmentName}擴充方法
2.3 多執行環境下的設定檔
2.4 用於環境篩選的Razor標記
2.5 執行環境與相依注入
第 3 章 相依注入
3.1 相依注入與服務容器
3.1.1 ServiceCollection類別
3.1.2 ServiceProvider類別
3.2 .NET專案中的相依注入
3.3 ASP.NET Core專案中的相依注入
3.4 建構存在相依關係的服務
3.5 服務的生存期
3.6 GetService()方法與GetRequiredService()方法的區別
3.7 注入多個服務實例
3.8 容易被忽略的問題
第 4 章 設定應用程式
4.1 設定的基本結構
4.2 在.NET應用程式中使用設定
4.3 在ASP.NET Core應用程式中使用設定
4.3.1 設定的資料來源
4.3.2 查看所有設定資訊
4.4 IConfigurationBuilder介面
4.5 ConfigurationManager類別
4.6 IConfigurationSource介面與IConfigurationProvider介面
4.6.1 自訂擴充點
4.6.2 範例:來自CSV檔案的設定
4.7 JSON設定
4.7.1 範例:存取JSON陣列物件
4.7.2 範例:自動重新載入設定
4.8 XML設定
4.9 環境變數
4.9.1 設定環境變數首碼
4.9.2 替換預設的ASPNETCORE_首碼
4.9.3 範例:替換環境變數首碼
4.9.4 分層設定結構
4.10 命令列參數
4.11 ini設定
4.12 設定與相依注入
4.12.1 範例:將IConfiguration注入MVC控制器
4.12.2 範例:透過設定選擇雜湊演算法
4.13 連結多棵設定樹
第 5 章 選項模式
5.1 選項模式概述
5.2 服務容器的擴充方法
5.3 各介面之間的關係
5.3.1 IConfigureOptions<TOptions>介面與IConfigureNamedOptions<TOptions>介面
5.3.2 IPostConfigureOptions<TOptions>介面
5.3.3 IValidateOptions<TOptions>介面
5.3.4 IOptionsFactory<TOptions>介面
5.3.5 完整的流程圖
5.4 選項類別的封裝介面
5.4.1 範例:在MVC 控制器中存取選項類別
5.4.2 範例:自動更新選項類別
5.5 附帶名稱的選項群組
5.6 後期設定
5.7 選項類別的驗證
5.7.1 內建的驗證方式
5.7.2 使用資料批註
5.8 處理帶有參數的建構函式
5.9 直接實現IOptions介面
第 6 章 HTTP管道
6.1 HTTP管道與中介軟體
6.2 中介軟體的實現方法
6.3 透過委託實現中介軟體
6.3.1 範例:Use()方法的簡單用法
6.3.2 HTTP管道的「短路」
6.3.3 Run()方法
6.4 透過類別實現中介軟體
6.4.1 帶有參數的中介軟體
6.4.2 中介軟體類別與相依注入
6.5 透過IMiddleware介面實現中介軟體
6.6 終結點
6.6.1 範例:常見的HTTP請求方式
6.6.2 範例:同時使用Razor Pages和MVC
6.6.3 為終結點分配名稱
6.6.4 中繼資料
6.7 有條件地執行中介軟體
6.7.1 範例:呼叫包含user_id欄位的中介軟體
6.7.2 範例:只允許以POST方式呼叫Web API
第 7 章 HTTP狀態儲存
7.1 HTTP上下文
7.1.1 範例:在中介軟體中設定回應表頭
7.1.2 範例:在Map*()方法中存取HTTP上下文
7.1.3 範例:使用Razor標記呈現HTTP請求表頭
7.1.4 範例:在MVC中存取HTTP上下文
7.2 HTTP訊息表頭
7.2.1 HeaderNames類別
7.2.2 訊息表頭的分類
7.2.3 分析複雜訊息表頭
7.3 查詢字串
7.3.1 讀取查詢參數
7.3.2 多值參數
7.4 表單資料
7.4.1 讀取簡單的表單資料
7.4.2 檔案上傳
7.5 Cookie
7.6 HttpContext類別的Items屬性
7.7 階段
7.7.1 ISession介面
7.7.2 設定階段Cookie的名稱
7.7.3 範例:將階段資料儲存到JSON檔案中
第 8 章 Razor頁面
8.1 Razor頁面的特點
8.2 Razor語法
8.2.1 兩種運算式
8.2.2 程式區塊
8.2.3 註釋
8.2.4 流程控制
8.3 開啟Razor頁面功能
8.4 Razor分頁檔
8.5 分頁檔的搜索路徑
8.5.1 設定RazorPagesOptions選項類別
8.5.2 便捷的擴充方法
8.6 頁面路由
8.6.1 透過@page指令設定路由規則
8.6.2 透過約定模型定義路由規則
8.7 頁面模型類別
8.7.1 頁面自身作為模型類別
8.7.2 從PageModel衍生類別
8.7.3 透過特性類別實現頁面模型類別
8.8 頁面處理常式
8.8.1 通用的處理常式
8.8.2 解決POST請求時出現的錯誤
8.8.3 使用多個處理常式
8.8.4 透過路由參數選擇處理常式
8.8.5 自訂的處理常式模型
第 9 章 MVC框架
9.1 MVC基本概念
9.2 啟用MVC功能
9.3 控制器
9.3.1 範例:從ControllerBase類別衍生
9.3.2 範例:從Controller類別衍生
9.3.3 範例:使用ControllerAttribute
9.3.4 範例:使用Controller尾碼
9.3.5 自訂控制器的名稱
9.3.6 範例:ControllerNameAttribute類別
9.3.7 自訂操作方法的名稱
9.3.8 範例:CustActionNameAttribute類別
9.3.9 範例:ActionNameAttribute類別
9.4 MVC路由規則
9.4.1 全域路由規則
9.4.2 範例:註冊兩筆全域路由規則
9.4.3 局部路由規則
9.4.4 IRouteTemplateProvider介面
9.4.5 透過實現約定介面定義路由規則
9.4.6 範例:CustPrefixRouteConvention類別
9.5 限制操作方法所支援的HTTP請求
9.5.1 範例:只支援HTTP-PUT請求的操作方法
9.5.2 內建特性類別
9.6 區域
9.7 視圖
9.7.1 視圖檔案的預設存放路徑
9.7.2 自訂視圖的路徑格式
9.7.3 版面配置視圖
9.7.4 範例:版面配置視圖的查詢順序
9.7.5 範例:設定Razor Pages版面配置視圖的查詢路徑
9.7.6 _ViewImports與_ViewStart檔案
9.7.7 範例:_ViewStart檔案的替換行為
9.8 IViewLocationExpander介面
9.8.1 範例:多版本視圖
9.8.2 範例:根據URL查詢參數擴充視圖路徑
9.8.3 LanguageViewLocationExpander類別
9.9 局部視圖
9.9.1 範例:成績單
9.9.2 範例:導覽列
9.10 視圖元件
9.10.1 範例:一個簡單的視圖元件
9.10.2 視圖檔案的查詢路徑
9.10.3 範例:帶有參數的視圖元件
9.10.4 透過標記幫助器呼叫視圖元件
9.10.5 範例:Greeting視圖元件
9.10.6 範例:在MVC控制器中呼叫視圖元件
9.10.7 兩個特性類別
9.11 辨識其他程式集中的控制器
9.11.1 範例:使用ApplicationPartAttribute類別
9.11.2 範例:使用AddApplicationPart()擴充方法
9.11.2 範例:使用ApplicationPartManager類別
第 10 章 模型綁定
10.1 概述
10.2 自動綁定
10.2.1 範例:計算機
10.2.2 範例:綁定陣列類型的資料
10.2.3 範例:綁定複雜類型
10.2.4 多個參數的模型綁定
10.2.5 範例:綁定3個參數
10.2.6 字典類型的模型綁定
10.2.7 範例:綁定字典資料
10.2.8 範例:綁定IFormCollection類型
10.2.9 範例:MD5計算機
10.2.10 綁定IFormFile和IFormFileCollection類型
10.2.11 範例:上傳一個文字檔
10.2.12 範例:上傳多個檔案
10.3 設定模型綁定的來源
10.3.1 範例:綁定HTTP訊息表頭
10.3.2 範例:從HTTP訊息文字提取資料
10.3.3 範例:與路由參數綁定
10.3.4 範例:FromServices特性的使用
10.3.5 範例:混合使用From*特性類別
10.3.6 範例:將From*特性類別應用於屬性成員
10.4 自訂IValueProvider介面
10.4.1 範例:由自訂字串提供的值
10.4.2 範例:CookieValueProvider
10.5 IModelBinder介面
10.5.1 內建綁定器
10.5.2 範例:AddressInfoModelBinder類別
10.6 BindRequiredAttribute類別與BindNeverAttribute類別
10.7 綁定到屬性成員
10.7.1 範例:控制器的屬性綁定
10.7.2 範例:PageModel中的屬性綁定
10.7.3 範例:CancellationToken類型的屬性綁定
第 11 章 Web API
11.1 Web API基礎
11.1.1 ControllerBase類別與Controller類別
11.1.2 ApiController特性
11.1.3 範例:一個簡單的Web API
11.1.4 範例:以POST方式提交資料
11.2 XML格式
11.2.1 範例:常規的XML序列化方案
11.2.2 範例:使用XmlDataContractSerializer方案
11.3 選擇回應格式
11.3.1 範例:透過Accept訊息表頭選擇回應格式
11.3.2 範例:使用格式篩檢程式
11.4 自訂格式
11.4.1 範例:CustDataInputFormatter類別
11.4.2 範例:BytesToHexOutputFormatter類別
11.5 極小API
11.5.1 範例:一些簡單的極小API例子
11.5.2 範例:在極小API上使用資料來源特性
11.5.3 上傳檔案.
11.5.4 範例:直接讀取檔案串流
11.5.5 範例:上傳多個檔案
11.5.6 IResult介面
11.5.7 範例:Results類別的使用
11.6 API瀏覽功能
11.6.1 IApiDescriptionGroupCollectionProvider介面
11.6.2 範例:列出已定義的Web API
11.6.3 API約定
11.6.4 Swagger框架
11.6.5 範例:使用Swagger生成API文件
第 12 章 篩檢程式
12.1 篩檢程式的執行過程
12.1.1 範例:觀察篩檢程式的執行順序
12.2.2 範例:同時實現多個介面
12.2 篩檢程式的作用域
12.1.1 範例:全域篩檢程式
12.2.2 範例:特性化的篩檢程式
12.3 在Razor Pages中使用篩檢程式
12.1.1 範例:在Razor標記頁和頁面模型類別上應用篩檢程式
12.2.2 範例:在Razor Pages中應用全域篩檢程式
12.2.3 頁面處理常式的篩檢程式
12.2.4 範例:實現IPageFilter介面
12.4 非同步篩檢程式介面
12.4.1 範例:實現非同步授權篩檢程式
12.4.2 範例:實現非同步資源篩檢程式
12.5 IAlwaysRunResultFilter介面
12.6 IFilterFactory介面
12.6.1 範例:存取服務容器中的篩檢程式
12.6.2 範例:使用TypeFilterAttribute類別建立篩檢程式實例
12.6.2 範例:使用ServiceFilterAttribute 類別存取服務容器中的篩檢程式
12.7 篩檢程式的執行順序
12.7.1 範例:篩檢程式的作用域與執行順序
12.7.2 範例:自訂篩檢程式的執行順序
12.8 抽象的篩檢程式特性類別
12.8.1 範例:重寫ActionFilterAttribute類別
12.8.2 範例:重寫ExceptionFilterAttribute類別
第 13 章 標記幫助器
13.1 標記幫助器簡介
13.1.1 範例:為<span>標記增加「加粗」功能
13.1.2 範例:<url>標記幫助器
13.1.3 範例:使用標記幫助器設定HTML元素的文字樣式
13.2 將標記幫助器註冊到服務容器
13.3 內建的標記幫助器
13.3.1 範例:快取當前時間
13.3.2 範例:用<button>元素提交表單
13.3.3 範例:asp-for屬性的使用
13.3.4 範例:呈現驗證資訊
13.4 標記幫助器元件
13.4.1 範例:在<body>元素內插入CSS樣式
13.4.2 範例:使用ITagHelperComponentManager 物件註冊標記幫助器元件
第 14 章 靜態檔案
14.1 靜態檔案簡介
14.2 使用靜態檔案
14.2.1 範例:存取影像檔
14.2.2 範例:修改WEBROOT路徑
14.2.3 範例:統計輸入的字元數量
14.2.4 範例:合併多個目錄
14.3 目錄瀏覽
14.3.1 範例:瀏覽外部目錄
14.3.2 範例:自訂檔案類型映射
14.4 檔案服務
第 15 章 路由約束
15.1 路由約束的作用
15.2 IRouteConstraint介面
15.3 內建的路由約束
15.3.1 範例:雙精度數值約束
15.3.2 範例:限制字串長度
15.3.3 範例:特定格式的訂單號
15.3.4 範例:限制整數值的範圍
15.4 自訂路由約束
第 16 章 SignalR
16.1 WebSocket
16.1.1 範例:用JavaScript實現使用者端
16.1.2 範例:用.NET 主控台實現WebSocket使用者端
16.1.3 子協定
16.2 SignalR基礎
16.2.1 SignalR中心
16.2.2 範例:簡易計算機
16.2.3 範例:使用.NET導向的SignalR函式庫
16.3 呼叫使用者端
16.3.1 範例:聊天室
16.3.2 將使用者端定義為介面
16.3.3 範例:即時更新進度指示器
16.3.4 範例:記錄連接狀態
第 17 章 Blazor
17.1 Blazor概述
17.2 伺服器託管
17.2.1 範例:使用Razor Pages承載Blazor應用
17.2.2 範例:在MVC視圖中承載Blazor應用
17.2.3 範例:初始化指令稿
17.2.4 範例:使用初始化指令稿
17.2.5 範例:手動增加modules.json檔案
17.3 WebAssembly託管
17.3.1 範例:手動建立Blazor WebAssembly專案
17.3.2 範例:用node.js開發Blazor WebAssembly伺服器
17.3.3 範例:初始化指令稿
17.3.4 DevServer
17.4 路由元件
17.4.1 範例:路由元件的簡單應用
17.4.2 範例:使用路由參數
17.4.3 範例:使用[Route]特性
17.5 版面配置元件
17.5.1 範例:導覽列
17.5.2 範例:將普通元件用於版面配置
17.6 元件參數
17.6.1 範例:巢狀結構元件的參數傳遞
17.6.2 範例:頂層元件的參數傳遞(Blazor Server)
17.6.3 範例:頂層元件的參數傳遞(Blazor WebAssembly)
17.7 串聯參數
17.7.1 範例:根據類型接收串聯參數
17.7.2 範例:根據命名接收串聯參數
17.8 事件
17.8.1 範例:計數器
17.8.2 範例:記錄滑鼠指標的位置
17.8.3 EventCallback結構
17.8.4 範例:進度指示器元件
17.9 CSS隔離
17.10 資料綁定
17.10.1 範例:綁定日期輸入元素
17.10.2 範例:使用oninput事件
17.10.3 元件之間的綁定
17.10.4 範例:Slider元件
17.11 用.NET程式撰寫元件
17.11.1 著色樹
17.11.2 範例:用.NET程式實現App和Index元件
17.11.3 範例:使用相依注入
17.12 .NET與JavaScript交互操作
17.12.1 範例:呼叫JavaScript中的alert()方法
17.12.2 範例:呼叫QRCode.js生成二維碼
17.12.3 範例:階乘計算機
17.12.4 範例:JavaScript呼叫.NET物件的實例方法
第 18 章 驗證與授權
18.1 驗證與授權的關係
18.2 與驗證有關的核心服務
18.3 驗證處理常式
18.3.1 範例:驗證HTTP訊息表頭
18.3.2 範例:多個驗證方案共用一個IAuthenticationHandler介面
18.4 IAuthenticationSignInHandler介面
18.5 驗證中介軟體
18.6 授權處理常式與必要條件
18.6.1 範例:允許指定的部門存取
18.6.2 PassThroughAuthorizationHandler 類別
18.7 授權策略
18.7.1 範例:按使用者星級授權
18.7.2 範例:整合內建的Cookie驗證
18.7.3 範例:在終結點上應用授權策略