中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >
C# 10 和 .NET 6入門與跨平臺開發(第6版)

包郵 C# 10 和 .NET 6入門與跨平臺開發(第6版)

出版社:清華大學出版社出版時間:2022-09-01
開本: 其他 頁數: 732
中 圖 價:¥105.8(6.3折) 定價  ¥168.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

C# 10 和 .NET 6入門與跨平臺開發(第6版) 版權信息

C# 10 和 .NET 6入門與跨平臺開發(第6版) 本書特色

● 使用Blazor、Razor Pages、MVC模式以及ASP.NET Core的其他功能來構建富有魅力的網站。 ● 采用面向對象的編程方式自定義類型。 ● 編寫、測試和調試函數。 ● 使用LINQ來查詢和操縱數據。 ● 使用Entity Framework Core、Microsoft SQL Server和SQLite來集成與更新數據庫。 ● 使用gRPC和GraphQL等*新技術來構建和使用功能強大的服務。 ● 用.NET MAUI和XAML構建跨平臺應用程序。

C# 10 和 .NET 6入門與跨平臺開發(第6版) 內容簡介

這個新版本對上一版做了全面修訂,涵蓋 C# 10和.NET 6的所有新功能。     本書討論面向對象編程、編寫函數、測試函數、調試函數、實現接口以及繼承類等主題;介紹.NET API,這些API可執行多種任務,如管理和查詢數據,監視和改進性能,以及使用文件系統、異步流、序列化和加密。你可用ASP.NET Core來構建和部署本書列舉的跨平臺示例應用程序,如網站和服務。     在學習C#語言和許多.NET庫的過程中,為確保不會因不必要的應用代碼而分心,第1~12章構建的是控制臺應用程序;打下堅實基礎后,第13~17章再使用ASP.NET Core、MVC模式以及Blazor構建實際的應用程序和服務。      第18章講述如何使用Web API、OData、gRPC、GraphQL、SignalR和Azure Functions等技術構建服務;第19章討論如何使用.NET MAUI構建跨平臺應用程序。

C# 10 和 .NET 6入門與跨平臺開發(第6版) 目錄

第1章 C#與.NET入門 1 1.1 設置開發環境 2 1.1.1 選擇適合學習的工具和應用程序類型 2 1.1.2 跨平臺部署 4 1.1.3 下載并安裝Visual Studio 2022 for Windows 5 1.1.4 下載并安裝 Visual Studio Code 6 1.2 理解.NET 8 1.2.1 理解.NET Framework 8 1.2.2 理解Mono、Xamarin和Unity項目 8 1.2.3 理解.NET Core 8 1.2.4 了解.NET的未來版本 9 1.2.5 了解.NET支持 10 1.2.6 現代.NET的區別 11 1.2.7 現代.NET的主題 12 1.2.8 了解.NET Standard 12 1.2.9 本書使用的.NET平臺和工具 13 1.2.10 理解中間語言 13 1.2.11 比較.NET技術 14 1.3 使用Visual Studio 2022構建控制臺應用程序 14 1.3.1 使用Visual Studio 2022管理多個項目 14 1.3.2 使用Visual Studio 2022編寫代碼 14 1.3.3 使用Visual Studio編譯和運行代碼 15 1.3.4 編寫頂級程序 16 1.3.5 使用Visual Studio 2022添加第二個項目 17 1.4 使用Visual Studio Code構建控制臺應用程序 19 1.4.1 使用Visual Studio Code管理多個項目 19 1.4.2 使用Visual Studio Code編寫代碼 19 1.4.3 使用dotnet命令行編譯和運行代碼 21 1.4.4 使用Visual Studio Code添加第二個項目 22 1.4.5 使用Visual Studio Code管理多個文件 23 1.5 使用.NET Interactive Notebooks探索代碼 23 1.5.1 創建一個Notebook 23 1.5.2 在Notebook上編寫和運行代碼 24 1.5.3 保存Notebook 25 1.5.4 給Notebook添加Markdown和特殊命令 25 1.5.5 在多個單元中執行代碼 26 1.5.6 為本書中的代碼使用.NET Interactive Notebooks 27 1.6 檢查項目的文件夾和文件 27 1.6.1 了解常見的文件夾和文件 28 1.6.2 理解GitHub中的解決方案代碼 28 1.7 充分利用本書的GitHub存儲庫 28 1.7.1 對本書提出問題 29 1.7.2 反饋 29 1.7.3 從GitHub存儲庫下載解決方案代碼 29 1.7.4 使用Git、Visual Studio Code和命令行 30 1.8 尋求幫助 30 1.8.1 閱讀微軟文檔 30 1.8.2 獲取關于dotnet工具的幫助 30 1.8.3 獲取類型及其成員的定義 31 1.8.4 在Stack Overflow上尋找答案 33 1.8.5 使用谷歌搜索答案 33 1.8.6 訂閱官方的.NET博客 33 1.8.7 觀看Scott Hanselman的視頻 34 1.9 實踐和探索 34 1.9.1 練習1.1:測試你掌握的知識 34 1.9.2 練習1.2:在任何地方練習C# 34 1.9.3 練習1.3:探索主題 34 1.10 本章小結 35 第2章 C#編程基礎 36 2.1 介紹C# 36 2.1.1 理解語言版本和特性 36 2.1.2 了解C#標準 39 2.1.3 發現C#編譯器版本 40 2.2 理解C#語法和詞匯 41 2.2.1 顯示編譯器版本 42 2.2.2 了解C#語法 43 2.2.3 語句 43 2.2.4 注釋 43 2.2.5 塊 44 2.2.6 語句和塊的示例 44 2.2.7 了解C#詞匯表 44 2.2.8 將編程語言與人類語言進行比較 44 2.2.9 改變C#語法的配色方案 45 2.2.10 如何編寫正確的代碼 45 2.2.11 導入名稱空間 46 2.2.12 動詞表示方法 48 2.2.13 名詞表示類型、變量、字段和屬性 49 2.2.14 揭示C#詞匯表的范圍 49 2.3 使用變量 51 2.3.1 命名和賦值 51 2.3.2 字面值 52 2.3.3 存儲文本 52 2.3.4 存儲數字 53 2.3.5 存儲實數 54 2.3.6 存儲布爾值 57 2.3.7 存儲任何類型的對象 57 2.3.8 動態存儲類型 58 2.3.9 聲明局部變量 59 2.3.10 獲取和設置類型的默認值 61 2.3.11 在數組中存儲多個值 61 2.4 深入研究控制臺應用程序 62 2.4.1 向用戶顯示輸出 63 2.4.2 從用戶那里獲取文本輸入 65 2.4.3 簡化控制臺的使用 66 2.4.4 獲取用戶的重要輸入 66 2.4.5 向控制臺應用程序傳遞參數 67 2.4.6 使用參數設置選項 68 2.4.7 處理不支持API的平臺 70 2.5 實踐和探索 71 2.5.1 練習2.1:測試你掌握的知識 71 2.5.2 練習2.2:測試對數字類型的了解 72 2.5.3 練習2.3:練習數字的大小和范圍 72 2.5.4 練習2.4:探索主題 72 2.6 本章小結 73 第3章 控制程序流程、轉換類型和處理異常 74 3.1 操作變量 74 3.1.1 一元算術運算符 75 3.1.2 二元算術運算符 76 3.1.3 賦值運算符 77 3.1.4 邏輯運算符 77 3.1.5 條件邏輯運算符 78 3.1.6 按位和二元移位運算符 79 3.1.7 其他運算符 80 3.2 理解選擇語句 81 3.2.1 使用if語句進行分支 81 3.2.2 模式匹配與if語句 82 3.2.3 使用switch語句進行分支 83 3.2.4 模式匹配與switch語句 84 3.2.5 使用switch表達式簡化switch語句 86 3.3 理解迭代語句 86 3.3.1 while循環語句 86 3.3.2 do循環語句 87 3.3.3 for循環語句 87 3.3.4 foreach循環語句 88 3.4 類型轉換 88 3.4.1 隱式和顯式地轉換數值 89 3.4.2 使用System.Convert類型進行轉換 90 3.4.3 圓整數字 90 3.4.4 控制圓整規則 91 3.4.5 從任何類型轉換為字符串 92 3.4.6 從二進制對象轉換為字符串 92 3.4.7 將字符串轉換為數值或日期和時間 93 3.5 處理異常 94 3.6 檢查溢出 98 3.6.1 使用checked語句拋出溢出異常 98 3.6.2 使用unchecked語句禁用編譯時檢查溢出 99 3.7 實踐和探索 100 3.7.1 練習3.1:測試你掌握的知識 100 3.7.2 練習3.2:探索循環和溢出 100 3.7.3 練習3.3:實踐循環和運算符 101 3.7.4 練習3.4:實踐異常處理 101 3.7.5 練習3.5:測試你對運算符的認識程度 101 3.7.6 練習3.6:探索主題 102 3.8 本章小結 102 第4章 編寫、調試和測試函數 103 4.1 編寫函數 103 4.1.1 乘法表示例 103 4.1.2 編寫帶返回值的函數 105 4.1.3 將數字從序數轉換為基數 106 4.1.4 用遞歸計算階乘 108 4.1.5 使用XML注釋解釋函數 110 4.1.6 在函數實現中使用lambda 111 4.2 在開發過程中進行調試 113 4.2.1 創建帶有故意錯誤的代碼 113 4.2.2 設置斷點并開始調試 114 4.2.3 使用調試工具欄進行導航 116 4.2.4 調試窗格 117 4.2.5 單步執行代碼 117 4.2.6 自定義斷點 119 4.3 在開發和運行時進行日志記錄 120 4.3.1 理解日志記錄選項 120 4.3.2 使用Debug和Trace類型 120 4.3.3 配置跟蹤偵聽器 122 4.3.4 切換跟蹤級別 123 4.4 單元測試 127 4.4.1 理解測試類型 127 4.4.2 創建需要測試的類庫 128 4.4.3 編寫單元測試 129 4.5 在函數中拋出和捕獲異常 131 4.5.1 理解使用錯誤和執行錯誤 131 4.5.2 在函數中通常拋出異常 131 4.5.3 理解調用堆棧 132 4.5.4 在哪里捕獲異常 134 4.5.5 重新拋出異常 134 4.5.6 實現tester-doer模式 136 4.6 實踐和探索 136 4.6.1 練習4.1:測試你掌握的知識 137 4.6.2 練習4.2:使用調試和單元測試練習函數的編寫 137 4.6.3 練習4.3:探索主題 137 4.7 本章小結 138 第5章 使用面向對象編程技術構建自己的類型 139 5.1 面向對象編程 139 5.2 構建類庫 140 5.2.1 創建類庫 140 5.2.2 在名稱空間中定義類 141 5.2.3 成員 142 5.2.4 實例化類 142 5.2.5 導入名稱空間以使用類型 143 5.2.6 對象 144 5.3 在字段中存儲數據 145 5.3.1 定義字段 145 5.3.2 理解訪問修飾符 145 5.3.3 設置和輸出字段值 146 5.3.4 使用enum類型存儲值 146 5.3.5 使用enum類型存儲多個值 147 5.4 使用集合存儲多個值 149 5.4.1 理解泛型集合 149 5.4.2 使字段成為靜態字段 150 5.4.3 使字段成為常量 151 5.4.4 使字段只讀 151 5.4.5 使用構造函數初始化字段 152 5.5 寫入和調用方法 153 5.5.1 從方法返回值 153 5.5.2 使用元組組合多個返回值 154 5.5.3 定義參數并將參數傳遞給方法 157 5.5.4 重載方法 157 5.5.5 傳遞可選參數和命名參數 158 5.5.6 控制參數的傳遞方式 159 5.5.7 理解ref返回 160 5.5.8 使用partial關鍵字分割類 160 5.6 使用屬性和索引器控制訪問 161 5.6.1 定義只讀屬性 161 5.6.2 定義可設置的屬性 162 5.6.3 要求在實例化期間設置屬性 163 5.6.4 定義索引器 164 5.7 模式匹配和對象 165 5.7.1 創建和引用.NET 6類庫 165 5.7.2 定義飛機乘客 165 5.7.3 C# 9.0對模式匹配做了增強 167 5.8 使用記錄 167 5.8.1 init-only屬性 167 5.8.2 理解記錄 168 5.8.3 記錄中的位置數據成員 169 5.9 實踐和探索 170 5.9.1 練習5.1:測試你掌握的知識 170 5.9.2 練習5.2:探索主題 170 5.10 本章小結 170 第6章 實現接口和繼承類 171 6.1 建立類庫和控制臺應用程序 171 6.2 方法的更多信息 172 6.2.1 使用方法實現功能 173 6.2.2 使用運算符實現功能 174 6.2.3 使用局部函數實現功能 175 6.3 觸發和處理事件 176 6.3.1 使用委托調用方法 176 6.3.2 定義和處理委托 177 6.3.3 定義和處理事件 178 6.4 使用泛型安全地重用類型 179 6.4.1 使用非泛型類型 179 6.4.2 使用泛型類型 180 6.5 實現接口 181 6.5.1 公共接口 181 6.5.2 排序時比較對象 181 6.5.3 使用單獨的類比較對象 183 6.5.4 隱式和顯式接口實現 184 6.5.5 使用默認實現定義接口 185 6.6 使用引用類型和值類型管理內存 186 6.6.1 定義引用類型和值類型 186 6.6.2 如何在內存中存儲引用和值類型 187 6.6.3 類型的相等性 188 6.6.4 定義struct類型 189 6.6.5 使用record struct類型 190 6.6.6 釋放非托管資源 190 6.6.7 確保調用Dispose方法 192 6.7 使用空值 192 6.7.1 使值類型可為空 192 6.7.2 理解可空引用類型 193 6.7.3 啟用可空引用類型和不可空引用類型 193 6.7.4 聲明非空變量和參數 194 6.7.5 檢查 195 6.8 從類繼承 196 6.8.1 擴展類以添加功能 197 6.8.2 隱藏成員 197 6.8.3 覆蓋成員 198 6.8.4 從抽象類繼承 199 6.8.5 防止繼承和覆蓋 200 6.8.6 理解多態 200 6.9 在繼承層次結構中進行類型轉換 202 6.9.1 隱式類型轉換 202 6.9.2 顯式類型轉換 202 6.9.3 避免類型轉換異常 202 6.10 繼承和擴展.NET類型 204 6.10.1 繼承異常 204 6.10.2 無法繼承時擴展類型 205 6.11 使用分析器編寫更好的代碼 207 6.12 實踐和探索 211 6.12.1 練習6.1:測試你掌握的知識 211 6.12.2 練習6.2:練習創建繼承層次結構 212 6.12.3 練習6.3:探索主題 212 6.13 本章小結 212 第7章 理解和打包.NET類型 213 7.1 .NET 6簡介 213 7.1.1 .NET Core 1.0 214 7.1.2 .NET Core 1.1 214 7.1.3 .NET Core 2.0 214 7.1.4 .NET Core 2.1 214 7.1.5 .NET Core 2.2 215 7.1.6 .NET Core 3.0 215 7.1.7 .NET Core 3.1 215 7.1.8 .NET 5.0 215 7.1.9 .NET 6.0 216 7.1.10 從.NET Core 2.0到.NET 5不斷提高性能 216 7.1.11 檢查.NET SDK以進行更新 216 7.2 了解.NET組件 216 7.2.1 程序集、包和名稱空間 217 7.2.2 微軟.NET SDK平臺 217 7.2.3 理解程序集中的名稱空間和類型 218 7.2.4 NuGet包 218 7.2.5 框架 219 7.2.6 導入名稱空間以使用類型 219 7.2.7 將C#關鍵字與.NET類型相關聯 220 7.2.8 使用.NET Standard在舊平臺之間共享代碼 222 7.2.9 理解不同SDK中類庫的默認值 222 7.2.10 創建.NET Standard 2.0類庫 223 7.2.11 控制.NET SDK 223 7.3 發布用于部署的代碼 224 7.3.1 創建要發布的控制臺應用程序 225 7.3.2 dotnet命令 226 7.3.3 獲取關于.NET及其環境的信息 227 7.3.4 管理項目 227 7.3.5 發布自包含的應用程序 228 7.3.6 發布單文件應用 229 7.3.7 使用app trimming系統減小應用程序的大小 230 7.4 反編譯程序集 231 7.4.1 使用Visual Studio 2022的ILSpy擴展進行反編譯 231 7.4.2 使用Visual Studio Code的ILSpy擴展進行反編譯 232 7.4.3 不能在技術上阻止反編譯 235 7.5 為NuGet分發打包自己的庫 236 7.5.1 引用NuGet包 236 7.5.2 為NuGet打包庫 237 7.5.3 使用工具探索NuGet包 240 7.5.4 測試類庫包 241 7.6 從.NET Framework移植到.NET 241 7.6.1 能移植嗎? 242 7.6.2 應該移植嗎? 242 7.6.3 .NET Framework和現代.NET之間的區別 243 7.6.4 .NET可移植性分析器 243 7.6.5 .NET升級助手 243 7.6.6 使用非.NET Standard類庫 243 7.7 使用預覽特性 245 7.7.1 需要預覽特性 245 7.7.2 啟用預覽特性 245 7.7.3 通用數學 246 7.8 實踐和探索 246 7.8.1 練習7.1:測試你掌握的知識 247 7.8.2 練習7.2:探索主題 247 7.8.3 練習7.3:探索PowerShell 247 7.9 本章小結 247 第8章 使用常見的.NET類型 248 8.1 處理數字 248 8.1.1 處理大的整數 249 8.1.2 處理復數 249 8.1.3 理解四元數 250 8.2 處理文本 250 8.2.1 獲取字符串的長度 250 8.2.2 獲取字符串中的字符 251 8.2.3 拆分字符串 251 8.2.4 獲取字符串的一部分 252 8.2.5 檢查字符串的內容 252 8.2.6 連接、格式化和其他的字符串成員方法 253 8.2.7 高效地構建字符串 254 8.3 處理日期和時間 254 8.3.1 指定日期和時間值 254 8.3.2 日期和時間的全球化 256 8.3.3 只使用日期或時間 257 8.4 模式匹配與正則表達式 258 8.4.1 檢查作為文本輸入的數字 258 8.4.2 改進正則表達式的性能 259 8.4.3 正則表達式的語法 260 8.4.4 正則表達式的例子 260 8.4.5 分割使用逗號分隔的復雜字符串 261 8.5 在集合中存儲多個對象 262 8.5.1 所有集合的公共特性 262 8.5.2 通過確保集合的容量來提高性能 264 8.5.3 理解集合的選擇 264 8.5.4 使用列表 267 8.5.5 使用字典 268 8.5.6 處理隊列 270 8.5.7 集合的排序 272 8.5.8 使用專門的集合 272 8.5.9 使用不可變集合 272 8.5.10 集合的*佳實踐 273 8.6 使用Span、索引和范圍 274 8.6.1 通過Span高效地使用內存 274 8.6.2 用索引類型標識位置 274 8.6.3 使用Range值類型標識范圍 274 8.6.4 使用索引、范圍和Span 275 8.7 使用網絡資源 275 8.7.1 使用URI、DNS和IP地址 276 8.7.2 ping服務器 277 8.8 處理反射和屬性 278 8.8.1 程序集的版本控制 279 8.8.2 閱讀程序集元數據 279 8.8.3 創建自定義特性 281 8.8.4 更多地使用反射 283 8.9 處理圖像 283 8.10 國際化代碼 285 8.11 實踐和探索 287 8.11.1 練習8.1:測試你掌握的知識 287 8.11.2 練習8.2:練習正則表達式 287 8.11.3 練習8.3:練習編寫擴展方法 288 8.11.4 練習8.4:探索主題 288 8.12 本章小結 288 第9章 處理文件、流和序列化 289 9.1 管理文件系統 289 9.1.1 處理跨平臺環境和文件系統 289 9.1.2 管理驅動器 291 9.1.3 管理目錄 292 9.1.4 管理文件 293 9.1.5 管理路徑 294 9.1.6 獲取文件信息 294 9.1.7 控制如何處理文件 295 9.2 用流來讀寫 296 9.2.1 理解抽象和具體的流 296 9.2.2 寫入文本流 297 9.2.3 寫入XML流 299 9.2.4 文件資源的釋放 300 9.2.5 壓縮流 302 9.2.6 使用Brotli算法進行壓縮 304 9.3 編碼和解碼文本 306 9.3.1 將字符串編碼為字節數組 306 9.3.2 對文件中的文本進行編碼和解碼 308 9.4 序列化對象圖 309 9.4.1 序列化為XML 309 9.4.2 生成緊湊的XML 311 9.4.3 反序列化XML文件 312 9.4.4 用JSON序列化 313 9.4.5 高性能的JSON處理 314 9.5 控制JSON的處理 315 9.5.1 用于處理HTTP響應的新的JSON擴展方法 317 9.5.2 從Newtonsoft遷移到新的JSON 317 9.6 實踐和探索 318 9.6.1 練習9.1:測試你掌握的知識 318 9.6.2 練習9.2:練習序列化為XML 318 9.6.3 練習9.3:探索主題 319 9.7 本章小結 319 第10章 使用Entity Framework Core處理數據庫 320 10.1 理解現代數據庫 320 10.1.1 理解舊的實體框架 320 10.1.2 理解Entity Framework Core 321 10.1.3 使用EF Core創建控制臺應用程序 321 10.1.4 使用示例關系數據庫 322 10.1.5 使用Microsoft SQL Server for Windows 322 10.1.6 為SQL Server創建Northwind示例數據庫 323 10.1.7 使用Server Explorer管理Northwind示例數據庫 324 10.1.8 使用SQLite 325 10.1.9 為SQLite創建Northwind示例數據庫 326 10.1.10 使用SQLiteStudio管理Northwind示例數據庫 326 10.2 設置EF Core 327 10.2.1 選擇EF Core數據提供程序 327 10.2.2 連接到數據庫 328 10.2.3 定義Northwind數據庫上下文類 329 10.3 定義EF Core模型 330 10.3.1 使用EF Core約定定義模型 331 10.3.2 使用EF Core注解特性定義模型 331 10.3.3 使用EF Core Fluent API定義模型 332 10.3.4 為Northwind表構建EF Core模型 333 10.3.5 向Northwind數據庫上下文類添加表 335 11.3.6 安裝dotnet-ef工具 336 10.3.7 使用現有數據庫搭建模型 336 10.3.8 配置約定前模型 340 10.4 查詢EF Core模型 340 10.4.1 過濾結果中返回的實體 342 10.4.2 過濾和排序產品 343 10.4.3 獲取生成的SQL 344 10.4.4 使用自定義日志提供程序記錄EF Core 345 10.4.5 模式匹配與Like 349 10.4.6 定義全局過濾器 350 10.5 使用EF Core加載模式 350 10.5.1 立即加載實體 350 10.5.2 啟用延遲加載 351 10.5.3 顯式加載實體 352 10.6 使用EF Core操作數據 354 10.6.1 插入實體 354 10.6.2 更新實體 355 10.6.3 刪除實體 356 10.6.4 池化數據庫環境 357 10.7 事務 357 10.7.1 使用隔離級別控制事務 358 10.7.2 定義顯式事務 358 10.8 Code First EF Core模型 359 10.9 實踐和探索 364 10.9.1 練習10.1:測試你掌握的知識 364 10.9.2 練習10.2:練習使用不同的序列化格式導出數據 365 10.9.3 練習10.3:研究EF Core文檔 365 10.9.4 練習10.4:探索NoSQL數據庫 365 10.10 本章小結 365 第11章 使用LINQ查詢和操作數據 366 11.1 編寫LINQ表達式 366 11.1.1 LINQ的組成 366 11.1.2 使用Enumerable類構建LINQ表達式 367 11.1.3 使用Where擴展方法過濾實體 369 11.1.4 以命名方法為目標 371 11.1.5 通過刪除委托的顯式實例化來簡化代碼 371 11.1.6 以lambda表達式為目標 371 11.1.7 實體的排序 372 11.1.8 使用var或指定類型來聲明查詢 373 11.1.9 根據類型進行過濾 373 11.1.10 使用LINQ處理集合 374 11.2 使用LINQ與EF Core 376 11.2.1 構建EF Core模型 376 11.2.2 序列的篩選和排序 379 11.2.3 將序列投影到新的類型中 380 11.2.4 連接和分組序列 381 11.2.5 聚合序列 384 11.3 使用語法糖美化LINQ語法 385 11.4 使用帶有并行LINQ的多個線程 386 11.5 創建自己的LINQ擴展方法 388 11.6 使用LINQ to XML 391 11.6.1 使用LINQ to XML生成XML 391 11.6.2 使用LINQ to XML讀取XML 392 11.7 實踐和探索 393 11.7.1 練習11.1:測試你掌握的知識 393 11.7.2 練習11.2:練習使用LINQ進行查詢 393 11.7.3 練習11.3:探索主題 394 11.8 本章小結 394 第12章 使用多任務提高性能和可伸縮性 395 12.1 理解進程、線程和任務 395 12.2 監控性能和資源使用情況 396 12.2.1 評估類型的效率 396 12.2.2 監控性能和內存使用情況 396 12.2.3 測量處理字符串的效率 399 12.2.4 使用Benchmark.NET監控性能和內存 400 12.3 異步運行任務 403 12.3.1 同步執行多個操作 403 12.3.2 使用任務異步執行多個操作 405 12.3.3 等待任務 406 12.3.4 繼續執行另一項任務 407 12.3.5 嵌套任務和子任務 408 12.3.6 將任務包裝在其他對象周圍 409 12.4 同步訪問共享資源 410 12.4.1 從多個線程訪問資源 410 12.4.2 對conch應用互斥鎖 412 12.4.3 事件的同步 414 12.4.4 使CPU操作原子化 415 12.4.5 應用其他類型的同步 415 12.5 理解async和await 416 12.5.1 提高控制臺應用程序的響應能力 416 12.5.2 改進GUI應用程序的響應能力 417 12.5.3 改進Web應用程序和Web服務的可伸縮性 420 12.5.4 支持多任務處理的常見類型 420 12.5.5 在catch塊中使用await關鍵字 420 12.5.6 使用async流 420 12.6 實踐和探索 421 12.6.1 練習12.1:測試你掌握的知識 422 12.6.2 練習12.2:探索主題 422 12.7 本章小結 422 第13章 C#和.NET的實際應用 423 13.1 理解C#和.NET的應用模型 423 13.1.1 使用ASP.NET Core構建網站 423 13.1.2 構建Web和其他服務 425 13.1.3 構建移動和桌面應用 425 13.1.4 .NET MAUI的替代品 426 13.2 ASP.NET Core的新特性 426 13.2.1 ASP.NET Core 1.0 427 13.2.2 ASP.NET Core 1.1 427 13.2.3 ASP.NET Core 2.0 427 13.2.4 ASP.NET Core 2.1 427 13.2.5 ASP.NET Core 2.2 428 13.2.6 ASP.NET Core 3.0 428 13.2.7 ASP.NET Core 3.1 428 13.2.8 Blazor WebAssembly 3.2 428 13.2.9 ASP.NET Core 5.0 428 13.2.10 ASP.NET Core 6.0 429 13.3 構建Windows專用的桌面應用程序 429 13.3.1 理解舊的Windows應用程序平臺 429 13.3.2 理解現代.NET對舊Windows平臺的支持 430 13.4 結構化項目 430 13.5 使用其他項目模板 431 13.6 為Northwind數據庫建立實體數據模型 433 13.6.1 使用SQLite創建實體模型類庫 433 13.6.2 使用SQL Server創建實體模型類庫 440 13.7 實踐和探索 442 13.7.1 練習13.1:測試你掌握的知識 442 13.7.2 練習13.2:探索主題 442 13.8 本章小結 442 第14章 使用ASP.NET Core Razor Pages構建網站 444 14.1 了解Web開發 444 14.1.1 HTTP 444 14.1.2 使用Google Chrome瀏覽器發出HTTP請求 446 14.1.3 客戶端Web開發技術 448 14.2 了解ASP.NET Core 448 14.2.1 傳統的ASP.NET與現代的ASP.NET Core 449 14.2.2 創建ASP.NET Core項目 449 14.2.3 測試和保護網站 451 14.2.4 控制托管環境 454 14.2.5 分離服務和管道的配置 456 14.2.6 使網站能夠提供靜態內容 457 14.3 了解ASP.NET Core Razor Pages 459 14.3.1 啟用Razor Pages 459 14.3.2 給Razor Pages添加代碼 460 14.3.3 通過Razor Pages使用共享布局 461 14.3.4 使用后臺代碼文件與Razor Pages 463 14.4 使用Entity Framework Core與ASP.NET Core 465 14.4.1 將Entity Framework Core配置為服務 465 14.4.2 使用Razor Pages操作數據 467 14.4.3 將依賴服務注入Razor Pages中 468 14.5 使用Razor類庫 469 14.5.1 創建Razor類庫 469 14.5.2 禁用Visual Studio Code的Compact Folders功能 469 14.5.3 使用EF Core實現員工特性 470 14.5.4 實現分部視圖以顯示單個員工 472 14.5.5 使用和測試Razor類庫 473 14.6 配置服務和HTTP請求管道 473 14.6.1 端點路由 474 14.6.2 檢查項目中的端點路由配置 474 14.6.3 總結關鍵的中間件擴展方法 477 14.6.4 可視化HTTP管道 478 14.6.5 實現匿名內聯委托作為中間件 478 14.7 實踐和探索 479 14.7.1 練習14.1:測試你掌握的知識 479 14.7.2 練習14.2:練習建立數據驅動的網頁 480 14.7.3 練習14.3:練習為控制臺應用程序構建Web頁面 480 14.7.4 練習14.4:探索主題 480 14.8 本章小結 480 第15章 使用MVC模式構建網站 481 15.1 設置ASP.NET Core MVC網站 481 15.1.1 創建ASP.NET Core MVC網站 481 15.1.2 為SQL Server LocalDB創建認證數據庫 482 15.1.3 探索默認的ASP.NET Core MVC網站 483 15.1.4 審查MVC網站項目結構 484 15.1.5 回顧ASP.NET Core Identity數據庫 486 15.2 探索ASP.NET Core MVC網站 487 15.2.1 了解ASP.NET Core MVC的啟動 487 15.2.2 理解MVC使用的默認路由 489 15.2.3 理解控制器和操作 489 15.2.4 理解視圖搜索路徑約定 492 15.2.5 了解記錄 493 15.2.6 過濾器 493 15.2.7 實體和視圖模型 498 15.2.8 視圖 500 15.3 自定義ASP.NET Core MVC網站 502 15.3.1 自定義樣式 503 15.3.2 設置類別圖像 503 15.3.3 Razor語法 503 15.3.4 定義類型化視圖 504 15.3.5 測試自定義首頁 506 15.3.6 使用路由值傳遞參數 507 15.3.7 模型綁定程序 509 15.3.8 驗證模型 512 15.3.9 視圖輔助方法 514 15.4 查詢數據庫和使用顯示模板 516 15.5 使用異步任務提高可伸縮性 518 15.6 實踐與探索 519 15.6.1 練習15.1:測試你掌握的知識 519 15.6.2 練習15.2:通過實現類別詳細信息頁面來練習實現MVC 520 15.6.3 練習15.3:理解和實現異步操作方法以提高可伸縮性 520 15.6.4 練習15.4:單元測試MVC控制器 520 15.6.5 練習15.5:探索主題 520 15.7 本章小結 520 第16章 構建和消費Web服務 521 16.1 使用ASP.NET Core Web API構建Web服務 521 16.1.1 理解Web服務縮寫詞 521 16.1.2 理解Web API的HTTP請求和響應 522 16.1.3 創建ASP.NET Core Web API項目 524 16.1.4 檢查Web服務的功能 526 16.1.5 為Northwind示例數據庫創建Web服務 527 16.1.6 為實體創建數據存儲庫 529 16.1.7 實現Web API控制器 531 16.1.8 配置客戶存儲庫和Web API控制器 533 16.1.9 指定問題的細節 536 16.1.10 控制XML序列化 537 16.2 解釋和測試Web服務 537 16.2.1 使用瀏覽器測試GET請求 538 16.2.2 使用REST Client擴展測試HTTP請求 539 16.2.3 啟用Swagger 541 16.2.4 使用Swagger UI測試請求 542 16.2.5 啟用HTTP logging 546 16.3 使用HTTP客戶端消費Web服務 547 16.3.1 了解HttpClient類 547 16.3.2 使用HttpClientFactory配置HTTP客戶端 548 16.3.3 在控制器中以JSON的形式獲取客戶 548 16.3.4 支持跨源資源共享 550 16.4 為Web服務實現高級功能 552 16.4.1 實現健康檢查API 552 16.4.2 實現Open API分析器和約定 552 16.4.3 實現臨時故障處理 553 16.4.4 添加HTTP安全標頭 553 16.5 使用*少的API構建Web服務 554 16.5.1 使用*少的API構建天氣服務 555 16.5.2 測試*小天氣服務 556 16.5.3 向Northwind網站主頁添加天氣預報 556 16.6 實踐和探索 559 16.6.1 練習16.1:測試你掌握的知識 559 16.6.2 練習16.2:練習使用HttpClient創建和刪除客戶 559 16.6.3 練習16.3:探索主題 559 16.7 本章小結 559 第17章 使用Blazor構建用戶界面 560 17.1 理解Blazor 560 17.1.1 JavaScript 560 17.1.2 Silverlight——使用插件的C#和.NET 561 17.1.3 WebAssembly——Blazor的目標 561 17.1.4 理解Blazor托管模型 561 17.1.5 理解Blazor組件 562 17.1.6 比較Blazor和Razor 562 17.2 比較Blazor項目模板 563 17.2.1 Blazor服務器項目模板 563 17.2.2 理解到頁面組件的Blazor路由 568 17.2.3 運行Blazor服務器項目模板 570 17.2.4 查看Blazor WebAssembly項目模板 571 17.3 使用Blazor服務器構建組件 575 17.3.1 定義和測試簡單的組件 575 17.3.2 轉換成可路由的頁面組件 576 17.3.3 將實體放入組件 576 17.4 為Blazor組件抽象服務 579 17.4.1 使用EditForm組件定義表單 581 17.4.2 構建和使用客戶表單組件 581 17.4.3 測試客戶表單組件 584 17.5 使用Blazor WebAssembly構建組件 585 17.5.1 為Blazor WebAssembly配置服務器 586 17.5.2 為Blazor WebAssembly配置客戶端 588 17.5.3 測試Blazor WebAssembly組件和服務 590 17.6 改進Blazor WebAssembly應用程序 591 17.6.1 啟用Blazor WebAssembly AOT 591 17.6.2 Web App的漸進式支持 593 17.6.3 了解Blazor WebAssembly的瀏覽器兼容性分析程序 594 17.6.4 在類庫中共享Blazor組件 595 17.6.5 使用JavaScript交互操作 596 17.6.6 Blazor組件庫 598 17.7 實踐和探索 598 17.7.1 練習17.1:測試你掌握的知識 599 17.7.2 練習17.2:練習創建組件 599 17.7.3 練習17.3:通過創建國家導航項進行練習 599 17.7.4 練習17.4:探索主題 599 17.8 本章小結 600 第18章 構建和消費專業服務 601 第19章 使用.NET MAUI構建移動和桌面應用程序 660 第20章 保護數據和應用程序 685 —以下部分通過二維碼掃描獲取— 附錄A 練習題答案 709 后記 726
展開全部

C# 10 和 .NET 6入門與跨平臺開發(第6版) 作者簡介

Mark J. Price擁有Microsoft Specialist: Programming in C#、MCSD和MCT等微軟編程專家和培訓專家認證,擁有20多年的編程和培訓經驗。自1993年以來,Mark已經通過了80多項微軟編程認證,并且擅長幫助他的學生通過這些認證。他的學生中既有經驗豐富的編程專家,也有初學編程的中學生。2001年至2003年,Mark在微軟美國總部工作,編寫官方教學課件。當C#還處于早期的版本時,他的團隊就編寫了第一個C#培訓課程。在微軟工作期間,Mark負責培訓MCT(微軟認證講師),幫助他們以最快的速度掌握C#和.NET的新知識。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 | 智能终端_RTU_dcm_北斗星空自动化科技| 心得体会网_心得体会格式范文模板 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 政府回应:200块在义乌小巷能买到爱情吗?——揭秘打工族省钱约会的生存智慧 | 深圳市万色印象美业有限公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 高温链条油|高温润滑脂|轴承润滑脂|机器人保养用油|干膜润滑剂-东莞卓越化学 | 心得体会网_心得体会格式范文模板| 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 线粒体膜电位荧光探针-细胞膜-标记二抗-上海复申生物科技有限公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 陕西鹏展科技有限公司| 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 小型气象站_车载气象站_便携气象站-山东风途物联网 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 |