注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計C/C++及其相關(guān)C#入門經(jīng)典:更新至C# 9和.NET 5

C#入門經(jīng)典:更新至C# 9和.NET 5

C#入門經(jīng)典:更新至C# 9和.NET 5

定 價:¥139.00

作 者: [英]馬克·J.普賴斯(Mark J.Price) 著;葉偉民 譯
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302583882 出版時間: 2021-07-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 600 字數(shù):  

內(nèi)容簡介

  主要特色● 使用面向?qū)ο缶幊虡?gòu)建自己的類型● 使用LINQ查詢和操作數(shù)據(jù)● 使用ASP.NET Core 5構(gòu)建網(wǎng)站和服務(wù)● 使用機器學(xué)習(xí)創(chuàng)建智能應(yīng)用● 使用Entity Framework Core和關(guān)系數(shù)據(jù)庫● 使用UWP和XAML開發(fā)Windows應(yīng)用● 使用Blazor框架構(gòu)建豐富的Web應(yīng)用體驗● 使用Xamarin.Forms為iOS和Android開發(fā)移動應(yīng)用

作者簡介

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

圖書目錄

第1章  C#與.NET入門 1
1.1  設(shè)置開發(fā)環(huán)境 1
1.1.1  使用Visual Studio Code進行
跨平臺開發(fā) 1
1.1.2  使用GitHub Codespaces在云中
進行開發(fā) 2
1.1.3  使用Visual Studio 2019進行
Windows應(yīng)用程序開發(fā) 3
1.1.4  使用Visual Studio for Mac 進行
移動應(yīng)用程序開發(fā) 3
1.1.5  各章的推薦工具 3
1.1.6  跨平臺部署 3
1.1.7  理解Visual Studio Code 版本 4
1.1.8  下載并安裝 Visual Studio Code 5
1.1.9  安裝其他擴展 5
1.2  理解.NET 6
1.2.1  理解.NET Framework 6
1.2.2  理解Mono 和Xamarin 項目 6
1.2.3  理解.NET Core 7
1.2.4  了解.NET 5的未來版本 7
1.2.5  了解.NET支持 8
1.2.6  .NET Core與.NET 5的區(qū)別 10
1.2.7  了解.NET Standard 10
1.2.8  本書使用的.NET平臺和工具 11
1.2.9  理解中間語言 12
1.2.10  比較.NET技術(shù) 12
1.3  使用Visual Studio Code構(gòu)建
控制臺應(yīng)用程序 12
1.3.1  使用Visual Studio Code編寫代碼 12
1.3.2  使用dotnet CLI編譯和運行代碼 14
1.3.3  編寫程序 14
1.4  從GitHub存儲庫下載解決
方案代碼 15
1.4.1  使用Git和Visual Studio Code 15
1.4.2  備份圖書解決方案代碼存儲庫 15
1.5  尋求幫助 16
1.5.1  閱讀微軟文檔 16
1.5.2  獲取關(guān)于dotnet工具的幫助 16
1.5.3  獲取類型及其成員的定義 17
1.5.4  在Stack Overflow上尋找答案 18
1.5.5  使用谷歌搜索答案 19
1.5.6  訂閱官方的.NET博客 19
1.6  實踐和探索 19
1.6.1  練習(xí)1.1:測試你掌握的知識 19
1.6.2  練習(xí)1.2:在任何地方練習(xí)C# 20
1.6.3  練習(xí)1.3:探索主題 20
1.7  本章小結(jié) 20
第2章  C#編程基礎(chǔ) 21
2.1  介紹C# 21
2.1.1  理解語言版本和特性 21
2.1.2  發(fā)現(xiàn)C#編譯器版本 24
2.1.3  啟用特定的語言版本編譯器 25
2.2  了解C#基本知識 26
2.2.1  了解C#語法 27
2.2.2  了解C#詞匯表 28
2.3  使用變量 32
2.3.1  命名和賦值 32
2.3.2  存儲文本 33
2.3.3  存儲數(shù)字 34
2.3.4  存儲布爾值 38
2.3.5  使用Visual Studio Code工作區(qū) 38
2.3.6  存儲任何類型的對象 38
2.3.7  動態(tài)存儲類型 39
2.3.8  聲明局部變量 40
2.3.9  獲取類型的默認值 41
2.3.10  存儲多個值 41
2.4  處理空值 42
2.4.1  使值類型可空 42
2.4.2  啟用可空引用類型和不可空
引用類型 44
2.4.3  聲明不可為空的變量和參數(shù) 44
2.4.4  檢查null 45
2.5  深入研究控制臺應(yīng)用程序 46
2.5.1  向用戶顯示輸出 46
2.5.2  理解格式字符串 47
2.5.3  從用戶那里獲取文本輸入 48
2.5.4  導(dǎo)入名稱空間 48
2.5.5  簡化控制臺的使用 49
2.5.6  獲取用戶的重要輸入 49
2.5.7  獲取參數(shù) 50
2.5.8  使用參數(shù)設(shè)置選項 51
2.5.9  處理不支持API的平臺 52
2.6  實踐和探索 52
2.6.1  練習(xí)2.1:測試你掌握的知識 53
2.6.2  練習(xí)2.2:練習(xí)數(shù)字的大小和范圍 53
2.6.3  練習(xí)2.3:探索主題 53
2.7  本章小結(jié) 54
第3章  控制程序流程和轉(zhuǎn)換類型 55
3.1  操作變量 55
3.1.1  一元運算符 55
3.1.2  二元算術(shù)運算符 56
3.1.3  賦值運算符 57
3.1.4  邏輯運算符 57
3.1.5  條件邏輯運算符 58
3.1.6  按位和二元移位運算符 59
3.1.7  其他運算符 60
3.2  理解選擇語句 61
3.2.1  使用if語句進行分支 61
3.2.2  if語句為什么應(yīng)總是使用花括號 62
3.2.3  模式匹配與if語句 62
3.2.4  使用switch語句進行分支 63
3.2.5  模式匹配與switch語句 64
3.2.6  使用switch表達式簡化switch
語句 65
3.3  理解迭代語句 66
3.3.1  while循環(huán)語句 66
3.3.2  do循環(huán)語句 66
3.3.3  for循環(huán)語句 67
3.3.4  foreach循環(huán)語句 67
3.4  類型轉(zhuǎn)換 68
3.4.1  隱式和顯式地轉(zhuǎn)換數(shù)值 68
3.4.2  使用System.Convert類型進行
轉(zhuǎn)換 70
3.4.3  圓整數(shù)字 70
3.4.4  從任何類型轉(zhuǎn)換為字符串 71
3.4.5  從二進制對象轉(zhuǎn)換為字符串 72
3.4.6  將字符串轉(zhuǎn)換為數(shù)值或日期和
時間 73
3.4.7  在轉(zhuǎn)換類型時處理異常 74
3.4.8  檢查溢出 76
3.5  實踐和探索 78
3.5.1  練習(xí)3.1:測試你掌握的知識 79
3.5.2  練習(xí)3.2:探索循環(huán)和溢出 79
3.5.3  練習(xí)3.3:實踐循環(huán)和運算符 79
3.5.4  練習(xí)3.4:實踐異常處理 80
3.5.5  練習(xí)3.5:測試你對運算符的認識
程度 80
3.5.6  練習(xí)3.6:探索主題 80
3.6  本章小結(jié) 81
第4章  編寫、調(diào)試和測試函數(shù) 82
4.1  編寫函數(shù) 82
4.1.1  編寫乘法表函數(shù) 82
4.1.2  編寫帶返回值的函數(shù) 84
4.1.3  編寫數(shù)學(xué)函數(shù) 86
4.1.4  使用XML注釋解釋函數(shù) 89
4.1.5  在函數(shù)實現(xiàn)中使用lambda 90
4.2  在開發(fā)過程中進行調(diào)試 92
4.2.1  創(chuàng)建帶有故意錯誤的代碼 92
4.2.2  設(shè)置斷點 93
4.2.3  使用調(diào)試工具欄進行導(dǎo)航 94
4.2.4  調(diào)試窗格 94
4.2.5  單步執(zhí)行代碼 95
4.2.6  自定義斷點 96
4.3  在開發(fā)和運行時進行日志記錄 97
4.3.1  使用Debug和Trace類型進行
插裝 97
4.3.2  寫入默認的跟蹤偵聽器 98
4.3.3  配置跟蹤偵聽器 98
4.3.4  切換跟蹤級別 99
4.4  單元測試函數(shù) 102
4.4.1  創(chuàng)建需要測試的類庫 102
4.4.2  編寫單元測試 103
4.4.3  運行單元測試 104
4.5  實踐和探索 105
4.5.1  練習(xí)4.1:測試你掌握的知識 105
4.5.2  練習(xí)4.2:使用調(diào)試和單元測試
練習(xí)函數(shù)的編寫 105
4.5.3  練習(xí)4.3:探索主題 106
4.6  本章小結(jié) 106
第5章  使用面向?qū)ο缶幊碳夹g(shù)構(gòu)建
自己的類型 107
5.1  面向?qū)ο缶幊?107
5.2  構(gòu)建類庫 108
5.2.1  創(chuàng)建類庫 108
5.2.2  實例化類 110
5.2.3  管理多個文件 111
5.2.4  對象 111
5.3  在字段中存儲數(shù)據(jù) 112
5.3.1  定義字段 112
5.3.2  理解訪問修飾符 112
5.3.3  設(shè)置和輸出字段值 113
5.3.4  使用enum類型存儲值 114
5.3.5  使用enum類型存儲多個值 115
5.3.6  使用集合存儲多個值 116
5.3.7  使字段成為靜態(tài)字段 117
5.3.8  使字段成為常量 118
5.3.9  使字段只讀 118
5.3.10  使用構(gòu)造函數(shù)初始化字段 119
5.3.11  使用默認字面量設(shè)置字段 120
5.4  寫入和調(diào)用方法 121
5.4.1  從方法返回值 121
5.4.2  使用元組組合多個返回值 122
5.4.3  定義參數(shù)并將參數(shù)傳遞給方法 124
5.4.4  重載方法 124
5.4.5  傳遞可選參數(shù)和命名參數(shù) 125
5.4.6  控制參數(shù)的傳遞方式 126
5.4.7  使用partial關(guān)鍵字分割類 128
5.5  使用屬性和索引器控制訪問 128
5.5.1  定義只讀屬性 128
5.5.2  定義可設(shè)置的屬性 129
5.5.3  定義索引器 130
5.6  模式匹配和對象 131
5.6.1  創(chuàng)建和引用.NET 5類庫 131
5.6.2  定義飛機乘客 132
5.6.3  C# 9.0對模式匹配做了增強 133
5.7  使用記錄 134
5.7.1  init-only屬性 134
5.7.2  理解記錄 135
5.7.3  簡化數(shù)據(jù)成員 135
5.7.4  位置記錄 136
5.8  實踐和探索 136
5.8.1  練習(xí)5.1:測試你掌握的知識 137
5.8.2  練習(xí)5.2:探索主題 137
5.9  本章小結(jié) 137
第6章  實現(xiàn)接口和繼承類 138
6.1  建立類庫和控制臺應(yīng)用程序 138
6.2  簡化方法 140
6.2.1  使用方法實現(xiàn)功能 140
6.2.2  使用運算符實現(xiàn)功能 141
6.2.3  使用局部函數(shù)實現(xiàn)功能 142
6.3  觸發(fā)和處理事件 143
6.3.1  使用委托調(diào)用方法 143
6.3.2  定義和處理委托 144
6.3.3  定義和處理事件 145
6.4  實現(xiàn)接口 146
6.4.1  公共接口 146
6.4.2  排序時比較對象 146
6.4.3  使用單獨的類比較對象 148
6.4.4  使用默認實現(xiàn)定義接口 149
6.5  使類型可以安全地與泛型
一起重用 151
6.5.1  使用泛型類型 152
6.5.2  使用泛型方法 153
6.6  使用引用類型和值類型管理內(nèi)存 154
6.6.1  處理struct類型 154
6.6.2  釋放非托管資源 155
6.6.3  確保調(diào)用Dispose方法 157
6.7  從類繼承 158
6.7.1  擴展類 158
6.7.2  隱藏成員 158
6.7.3  覆蓋成員 159
6.7.4  防止繼承和覆蓋 160
6.7.5  理解多態(tài) 161
6.8  在繼承層次結(jié)構(gòu)中進行
類型轉(zhuǎn)換 162
6.8.1  隱式類型轉(zhuǎn)換 162
6.8.2  顯式類型轉(zhuǎn)換 162
6.8.3  避免類型轉(zhuǎn)換異常 163
6.9  繼承和擴展.NET類型 164
6.9.1  繼承異常 164
6.9.2  無法繼承時擴展類型 165
6.10  實踐和探索 167
6.10.1  練習(xí)6.1:測試你掌握的知識 167
6.10.2  練習(xí)6.2:練習(xí)創(chuàng)建繼承層次
結(jié)構(gòu) 167
6.10.3  練習(xí)6.3:探索主題 167
6.11  本章小結(jié) 168
第7章  理解和打包.NET類型 169
7.1  .NET 5簡介 169
7.1.1  .NET Core 1.0 170
7.1.2  .NET Core 1.1 170
7.1.3  .NET Core 2.0 170
7.1.4  .NET Core 2.1 170
7.1.5  .NET Core 2.2 171
7.1.6  .NET Core 3.0 171
7.1.7  .NET 5 171
7.1.8  從.NET Core 2.0到.NET 5不斷
提高性能 172
7.2  了解.NET組件 172
7.2.1  程序集、包和名稱空間 173
7.2.2  導(dǎo)入名稱空間以使用類型 175
7.2.3  將C#關(guān)鍵字與.NET類型相關(guān)聯(lián) 175
7.2.4  使用.NET Standard類庫在舊平臺
之間共享代碼 177
7.3  發(fā)布用于部署的應(yīng)用程序 178
7.3.1  創(chuàng)建要發(fā)布的控制臺應(yīng)用程序 178
7.3.2  dotnet命令 179
7.3.3  發(fā)布自包含的應(yīng)用程序 180
7.3.4  發(fā)布單文件應(yīng)用 181
7.3.5  使用app trimming系統(tǒng)減小應(yīng)用
程序的大小 182
7.4  反編譯程序集 182
7.5  為NuGet分發(fā)打包自己的庫 185
7.5.1  引用NuGet包 185
7.5.2  為NuGet打包庫 186
7.5.3  測試包 188
7.6  從.NET Framework移植到.NET 5 189
7.6.1  能移植嗎 189
7.6.2  應(yīng)該移植嗎 190
7.6.3  .NET Framework和.NET 5之間的
區(qū)別 190
7.6.4  .NET可移植性分析器 190
7.6.5  使用非.NET Standard類庫 190
7.7  實踐和探索 192
7.7.1  練習(xí)7.1:測試你掌握的知識 192
7.7.2  練習(xí)7.2:探索主題 192
7.8  本章小結(jié) 193
第8章  使用常見的.NET類型 194
8.1  處理數(shù)字 194
8.1.1  處理大的整數(shù) 195
8.1.2  處理復(fù)數(shù) 195
8.2  處理文本 196
8.2.1  獲取字符串的長度 196
8.2.2  獲取字符串中的字符 196
8.2.3  拆分字符串 196
8.2.4  獲取字符串的一部分 197
8.2.5  檢查字符串的內(nèi)容 197
8.2.6  連接、格式化和其他的字符串
成員方法 198
8.2.7  高效地構(gòu)建字符串 199
8.3  模式匹配與正則表達式 199
8.3.1  檢查作為文本輸入的數(shù)字 199
8.3.2  正則表達式的語法 200
8.3.3  正則表達式的例子 201
8.3.4  分割使用逗號分隔的復(fù)雜字符串 201
8.3.5  改進正則表達式的性能 202
8.4  在集合中存儲多個對象 203
8.4.1  所有集合的公共特性 203
8.4.2  理解集合的選擇 204
8.4.3  使用列表 206
8.4.4  使用字典 207
8.4.5  集合的排序 207
8.4.6  使用專門的集合 208
8.4.7  使用不可變集合 208
8.5  使用Span、索引和范圍 209
8.5.1  高效地使用內(nèi)存 209
8.5.2  用索引類型標(biāo)識位置 209
8.5.3  使用Range值類型標(biāo)識范圍 209
8.5.4  使用索引和范圍 210
8.6  使用網(wǎng)絡(luò)資源 211
8.6.1  使用URI、DNS和IP地址 211
8.6.2  ping服務(wù)器 212
8.7  處理類型和屬性 213
8.7.1  程序集的版本控制 213
8.7.2  閱讀程序集元數(shù)據(jù) 214
8.7.3  創(chuàng)建自定義特性 215
8.7.4  更多地使用反射 217
8.8  處理圖像 218
8.9  國際化代碼 219
8.10  實踐和探索 221
8.10.1  練習(xí)8.1:測試你掌握的知識 221
8.10.2  練習(xí)8.2:練習(xí)正則表達式 222
8.10.3  練習(xí)8.3:練習(xí)編寫擴展方法 222
8.10.4  練習(xí)8.4:探索主題 222
8.11  本章小結(jié) 223
第9章  處理文件、流和序列化 224
9.1  管理文件系統(tǒng) 224
9.1.1  處理跨平臺環(huán)境和文件系統(tǒng) 224
9.1.2  管理驅(qū)動器 225
9.1.3  管理目錄 226
9.1.4  管理文件 228
9.1.5  管理路徑 229
9.1.6  獲取文件信息 230
9.1.7  控制如何處理文件 231
9.2  用流來讀寫 231
9.2.1  寫入文本流 233
9.2.2  寫入XML流 234
9.2.3  文件資源的釋放 235
9.2.4  壓縮流 237
9.2.5  使用Brotli算法進行壓縮 238
9.2.6  使用管道的高性能流 240
9.2.7  異步流 240
9.3  編碼和解碼文本 240
9.3.1  將字符串編碼為字節(jié)數(shù)組 241
9.3.2  對文件中的文本進行編碼和解碼 243
9.4  序列化對象圖 243
9.4.1  序列化為XML 243
9.4.2  生成緊湊的XML 245
9.4.3  反序列化XML文件 246
9.4.4  用JSON序列化格式 246
9.4.5  高性能的JSON處理 248
9.5  實踐和探索 249
9.5.1  練習(xí)9.1:測試你掌握的知識 249
9.5.2  練習(xí)9.2:練習(xí)序列化為XML 249
9.5.3  練習(xí)9.3:探索主題 250
9.6  本章小結(jié) 250
第10章  保護數(shù)據(jù)和應(yīng)用程序 251
10.1  理解數(shù)據(jù)保護術(shù)語 251
10.1.1  密鑰和密鑰的大小 252
10.1.2  IV和塊大小 252
10.1.3  salt 252
10.1.4  生成密鑰和IV 253
10.2  加密和解密數(shù)據(jù) 253
10.3  哈希數(shù)據(jù) 257
10.4  簽名數(shù)據(jù) 260
10.5  生成隨機數(shù) 263
10.5.1  為游戲生成隨機數(shù) 263
10.5.2  為密碼生成隨機數(shù) 264
10.6  密碼學(xué)有什么新內(nèi)容 264
10.7  用戶的身份驗證和授權(quán) 265
10.7.1  實現(xiàn)身份驗證和授權(quán) 267
10.7.2  保護應(yīng)用程序功能 269
10.8  實踐和探索 270
10.8.1  練習(xí)10.1:測試你掌握的知識 270
10.8.2  練習(xí)10.2:練習(xí)使用加密和
哈希方法保護數(shù)據(jù) 270
10.8.3  練習(xí)10.3:練習(xí)使用解密
保護數(shù)據(jù) 270
10.8.4  練習(xí)10.4:探索主題 270
10.9  本章小結(jié) 271
第11章  使用Entity Framework Core
處理數(shù)據(jù)庫 272
11.1  理解現(xiàn)代數(shù)據(jù)庫 272
11.1.1  理解舊的實體框架 272
11.1.2  理解Entity Framework Core 273
11.1.3  使用示例關(guān)系數(shù)據(jù)庫 273
11.1.4  為SQLite創(chuàng)建Northwind示例
數(shù)據(jù)庫 275
11.1.5  使用SQLiteStudio管理Northwind
示例數(shù)據(jù)庫 275
11.2  設(shè)置EF Core 276
11.2.1  選擇EF Core數(shù)據(jù)提供程序 276
11.2.2  安裝dotnet-ef工具 277
11.2.3  連接到數(shù)據(jù)庫 277
11.3  定義EF Core模型 278
11.3.1  EF Core約定 278
11.3.2  EF Core注解特性 278
11.3.3  EF Core Fluent API 279
11.3.4  理解數(shù)據(jù)播種 280
11.3.5  構(gòu)建EF Core模型 280
11.4  查詢EF Core模型 287
11.4.1  過濾和排序產(chǎn)品 289
11.4.2  記錄EF Core 291
11.4.3  使用查詢標(biāo)記進行日志記錄 294
11.4.4  模式匹配與Like 294
11.4.5  定義全局過濾器 295
11.5  使用EF Core加載模式 296
11.5.1  立即加載實體 296
11.5.2  啟用延遲加載 296
11.5.3  顯式加載實體 297
11.6  使用EF Core操作數(shù)據(jù) 299
11.6.1  插入實體 299
11.6.2  更新實體 300
11.6.3  刪除實體 301
11.6.4  池化數(shù)據(jù)庫環(huán)境 302
11.6.5  事務(wù) 302
11.6.6  定義顯式事務(wù) 303
11.7  實踐和探索 303
11.7.1  練習(xí)11.1:測試你掌握的知識 303
11.7.2  練習(xí)11.2:練習(xí)使用不同的
序列化格式導(dǎo)出數(shù)據(jù) 304
11.7.3  練習(xí)11.3:研究EF Core文檔 304
11.8  本章小結(jié) 304
第12章  使用LINQ查詢和操作數(shù)據(jù) 305
12.1  編寫LINQ查詢 305
12.1.1  使用Enumerable類擴展序列 305
12.1.2  使用Where擴展方法過濾實體 306
12.1.3  實體的排序 309
12.1.4  根據(jù)類型進行過濾 310
12.2  使用LINQ處理集合 312
12.3  使用LINQ與EF Core 313
12.3.1  序列的篩選和排序 315
12.3.2  將序列投影到新的類型中 316
12.3.3  連接和分組序列 317
12.3.4  聚合序列 320
12.4  使用語法糖美化LINQ語法 320
12.5  使用帶有并行LINQ的多個
線程 322
12.6  創(chuàng)建自己的LINQ擴展方法 324
12.7  使用LINQ to XML 327
12.7.1  使用LINQ to XML生成XML 327
12.7.2  使用LINQ to XML讀取XML 327
12.8  實踐和探索 328
12.8.1  練習(xí)12.1:測試你掌握的知識 328
12.8.2  練習(xí)12.2:練習(xí)使用LINQ
進行查詢 329
12.8.3  練習(xí)12.3:探索主題 329
12.9  本章小結(jié) 329
第13章  使用多任務(wù)提高性能和
可伸縮性 330
13.1  理解進程、線程和任務(wù) 330
13.2  監(jiān)控性能和資源使用情況 331
13.2.1  評估類型的效率 331
13.2.2  監(jiān)控性能和內(nèi)存使用情況 332
13.2.3  實現(xiàn)Recorder類 332
13.3  異步運行任務(wù) 335
13.3.1  同步執(zhí)行多個操作 336
13.3.2  使用任務(wù)異步執(zhí)行多個操作 337
13.3.3  等待任務(wù) 338
13.3.4  繼續(xù)執(zhí)行另一項任務(wù) 339
13.3.5  嵌套任務(wù)和子任務(wù) 340
13.4  同步訪問共享資源 341
13.4.1  從多個線程訪問資源 341
13.4.2  對資源應(yīng)用互斥鎖 342
13.4.3  理解lock語句并避免死鎖 343
13.4.4  事件的同步 344
13.4.5  使CPU操作原子化 345
13.4.6  應(yīng)用其他類型的同步 345
13.5  理解async和await 346
13.5.1  提高控制臺應(yīng)用程序的響應(yīng)
能力 346
13.5.2  改進GUI應(yīng)用程序的響應(yīng)能力 347
13.5.3  改進Web應(yīng)用程序和Web服務(wù)
的可伸縮性 347
13.5.4  支持多任務(wù)處理的常見類型 347
13.5.5  在catch塊中使用await
關(guān)鍵字 348
13.5.6  使用async流 348
13.6  實踐和探索 349
13.6.1  練習(xí)13.1:測試你掌握的知識 349
13.6.2  練習(xí)13.2:探索主題 349
13.7  本章小結(jié) 349
第14章  C#和.NET的實際應(yīng)用 350
14.1  理解C#和.NET的應(yīng)用模型 350
14.1.1  使用ASP.NET Core構(gòu)建網(wǎng)站 350
14.1.2  使用Web內(nèi)容管理系統(tǒng)
構(gòu)建網(wǎng)站 351
14.1.3  理解Web應(yīng)用程序 351
14.1.4  構(gòu)建和使用Web服務(wù) 352
14.1.5  構(gòu)建智能應(yīng)用 352
14.2  ASP.NET Core的新特性 352
14.2.1  ASP.NET Core 1.0 352
14.2.2  ASP.NET Core 1.1 352
14.2.3  ASP.NET Core 2.0 353
14.2.4  ASP.NET Core 2.1 353
14.2.5  ASP.NET Core 2.2 353
14.2.6  ASP.NET Core 3.0 354
14.2.7  ASP.NET Core 3.1 354
14.2.8  Blazor WebAssembly 3.2 354
14.2.9  ASP.NET Core 5.0 354
14.3  理解SignalR 355
14.4  理解Blazor 356
14.4.1  JavaScript存在的問題 356
14.4.2  Silverlight 356
14.4.3  WebAssembly 356
14.4.4  服務(wù)器端或客戶端Blazor 357
14.5  構(gòu)建Windows桌面應(yīng)用程序和
跨平臺的移動應(yīng)用程序 357
14.5.1  構(gòu)建跨平臺的移動應(yīng)用程序 357
14.5.2  使用舊技術(shù)構(gòu)建Windows桌面
應(yīng)用程序 358
14.6  為Northwind示例數(shù)據(jù)庫構(gòu)建
實體數(shù)據(jù)模型 358
14.6.1  為Northwind實體模型創(chuàng)建
類庫 358
14.6.2  為Northwind數(shù)據(jù)庫上下文創(chuàng)建
類庫 361
14.7  本章小結(jié) 363
第15章  使用ASP.NET Core Razor Pages
構(gòu)建網(wǎng)站 365
15.1  了解Web開發(fā) 365
15.1.1  HTTP 365
15.1.2  客戶端Web開發(fā) 367
15.2  了解ASP.NET Core 368
15.2.1  傳統(tǒng)的ASP.NET與現(xiàn)代的
ASP.NET Core 369
15.2.2  創(chuàng)建ASP.NET Core項目 369
15.2.3  測試和保護網(wǎng)站 371
15.2.4  控制托管環(huán)境 373
15.2.5  啟用靜態(tài)文件和默認文件 374
15.3  了解Razor Pages 376
15.3.1  啟用Razor Pages 376
15.3.2  定義Razor頁面 376
15.3.3  通過Razor頁面使用共享布局 377
15.3.4  使用后臺代碼文件與Razor
頁面 379
15.4  使用Entity Framework Core與
ASP.NET Core 381
15.4.1  將Entity Framework Core配置為
服務(wù) 381
15.4.2  使用Razor頁面操作數(shù)據(jù) 383
15.5  使用Razor類庫 384
15.5.1  創(chuàng)建Razor類庫 384
15.5.2  禁用壓縮文件夾功能 385
15.5.3  在Razor類庫中顯示員工 386
15.5.4  實現(xiàn)分部視圖以顯示單個員工 387
15.5.5  使用和測試Razor類庫 388
15.5.6  配置服務(wù)和HTTP請求管道 389
15.5.7  注冊服務(wù) 390
15.5.8  配置HTTP請求管道 391
15.5.9  創(chuàng)建一個簡單的ASP.NET Core
網(wǎng)站項目 394
15.6  實踐和探索 395
15.6.1  練習(xí)15.1:測試你掌握的知識 395
15.6.2  練習(xí)15.2:練習(xí)建立數(shù)據(jù)驅(qū)動的
網(wǎng)頁 395
15.6.3  練習(xí)15.3:練習(xí)為控制臺應(yīng)用
程序構(gòu)建Web頁面 395
15.6.4  練習(xí)15.4:探索主題 395
15.7  本章小結(jié) 396
第16章  使用MVC模式構(gòu)建網(wǎng)站 397
16.1  設(shè)置ASP.NET Core MVC網(wǎng)站 397
16.1.1  創(chuàng)建和探索ASP.NET Core MVC
網(wǎng)站 397
16.1.2  審查ASP.NET Core MVC網(wǎng)站 399
16.1.3  回顧ASP.NET Core Identity
數(shù)據(jù)庫 401
16.2  探索ASP.NET Core MVC網(wǎng)站 401
16.2.1  了解ASP.NET Core MVC的
啟動 401
16.2.2  理解MVC使用的默認路由 403
16.2.3  理解控制器和操作 403
16.2.4  理解視圖搜索路徑約定 405
16.2.5  單元測試MVC 405
16.2.6  過濾器 405
16.2.7  實體和視圖模型 407
16.2.8  視圖 408
16.3  自定義ASP.NET Core MVC
網(wǎng)站 410
16.3.1  自定義樣式 411
16.3.2  設(shè)置類別圖像 411
16.3.3  Razor語法 411
16.3.4  定義類型化視圖 412
16.3.5  測試自定義首頁 414
16.3.6  使用路由值傳遞參數(shù) 415
16.3.7  模型綁定程序 417
16.3.8  驗證模型 419
16.3.9  視圖輔助方法 422
16.3.10  查詢數(shù)據(jù)庫和使用顯示模板 422
16.3.11  使用異步任務(wù)提高可伸縮性 424
16.4  使用其他項目模板 425
16.5  實踐與探索 427
16.5.1  練習(xí)16.1:測試你掌握的知識 427
16.5.2  練習(xí)16.2:通過實現(xiàn)類別詳細
信息頁面來練習(xí)實現(xiàn)MVC 427
16.5.3  練習(xí)16.3:理解和實現(xiàn)異步操作
方法以提高可伸縮性 427
16.5.4  練習(xí)16.4:探索主題 427
16.6  本章小結(jié) 428
第17章  使用內(nèi)容管理系統(tǒng)構(gòu)建網(wǎng)站 429
17.1  了解CMS的優(yōu)點 429
17.1.1  了解CMS的基本特性 429
17.1.2  了解企業(yè)級CMS的特性 430
17.1.3  了解CMS平臺 430
17.2  了解Piranha CMS 430
17.2.1  開源庫和許可 431
17.2.2  創(chuàng)建Piranha CMS網(wǎng)站 431
17.2.3  探索Piranha CMS網(wǎng)站 432
17.2.4  編輯站點和頁面內(nèi)容 433
17.2.5  創(chuàng)建一個新的頁面 436
17.2.6  創(chuàng)建一個新的子頁面 437
17.2.7  回顧博客歸檔 438
17.2.8  文章和頁面評論 439
17.2.9  探索身份驗證和授權(quán) 440
17.2.10  探索配置 441
17.2.11  測試新內(nèi)容 442
17.2.12  了解路由 442
17.2.13  了解媒體 444
17.2.14  理解應(yīng)用程序服務(wù) 444
17.2.15  理解內(nèi)容類型 445
17.2.16  理解標(biāo)準(zhǔn)塊 449
17.2.17  檢查組件類型和標(biāo)準(zhǔn)塊 450
17.3  定義組件、內(nèi)容類型和模板 451
17.3.1  創(chuàng)建自定義區(qū)域 452
17.3.2  創(chuàng)建實體數(shù)據(jù)模型 453
17.3.3  創(chuàng)建自定義頁面類型 454
17.3.4  創(chuàng)建自定義視圖模型 454
17.3.5  為內(nèi)容類型自定義內(nèi)容模板 455
17.3.6  通過配置啟動和導(dǎo)入數(shù)據(jù)庫 458
17.3.7  學(xué)習(xí)如何使用項目模板
創(chuàng)建內(nèi)容 460
17.4  測試Northwind CMS網(wǎng)站 461
17.4.1  上傳圖像并創(chuàng)建類別根目錄 461
17.4.2  導(dǎo)入類別和產(chǎn)品內(nèi)容 462
17.4.3  管理類別內(nèi)容 463
17.4.4  Piranha如何存儲內(nèi)容 464
17.5  實踐和探索 465
17.5.1  練習(xí)17.1:測試你掌握的知識 465
17.5.2  練習(xí)17.2:練習(xí)定義塊類型,
用以呈現(xiàn)YouTube視頻 465
17.5.3  練習(xí)17.3:探索主題 466
17.6  本章小結(jié) 466
第18章  構(gòu)建和消費Web服務(wù) 467
18.1  使用ASP.NET Core Web API
構(gòu)建Web服務(wù) 467
18.1.1  理解Web服務(wù)縮寫詞 467
18.1.2  創(chuàng)建ASP.NET Core Web API
項目 468
18.1.3  檢查Web服務(wù)的功能 470
18.1.4  為Northwind示例數(shù)據(jù)庫創(chuàng)建
Web服務(wù) 471
18.1.5  為實體創(chuàng)建數(shù)據(jù)存儲庫 473
18.1.6  實現(xiàn)Web API控制器 476
18.1.7  配置客戶存儲庫和Web API
控制器 477
18.1.8  指定問題的細節(jié) 480
18.1.9  控制XML序列化 481
18.2  解釋和測試Web服務(wù) 481
18.2.1  使用瀏覽器測試GET請求 481
18.2.2  使用REST Client擴展測試
HTTP請求 482
18.2.3  啟用Swagger 485
18.2.4  使用Swagger UI測試請求 486
18.3  使用HTTP客戶端消費服務(wù) 490
18.3.1  了解HttpClient類 490
18.3.2  使用HttpClientFactory配置
HTTP客戶端 490
18.3.3  在控制器中以JSON的形式
獲取客戶 491
18.3.4  支持跨源資源共享 493
18.4  實現(xiàn)高級功能 494
18.4.1  實現(xiàn)健康檢查API 495
18.4.2  實現(xiàn)Open API分析器和約定 495
18.4.3  實現(xiàn)臨時故障處理 496
18.4.4  理解端點路由 496
18.4.5  配置端點路由 496
18.4.6  添加HTTP安全標(biāo)頭 498
18.4.7  保護Web服務(wù) 499
18.5  了解其他通信技術(shù) 499
18.5.1  了解WCF 499
18.5.2  了解gRPC 500
18.6  實踐和探索 500
18.6.1  練習(xí)18.1:測試你掌握的知識 500
18.6.2  練習(xí)18.2:練習(xí)使用HttpClient
創(chuàng)建和刪除客戶 500
18.6.3  練習(xí)18.3:探索主題 500
18.7  本章小結(jié) 501
第19章  使用機器學(xué)習(xí)構(gòu)建智能
應(yīng)用程序 502
19.1  了解機器學(xué)習(xí) 502
19.1.1  了解機器學(xué)習(xí)的生命周期 502
19.1.2  了解用于訓(xùn)練和測試的數(shù)據(jù)集 503
19.1.3  了解機器學(xué)習(xí)任務(wù) 503
19.1.4  了解Microsoft Azure Machine 
Learning 504
19.2  理解ML.NET 504
19.2.1  了解Infer.NET 505
19.2.2  了解ML.NET學(xué)習(xí)管道 505
19.2.3  了解模型訓(xùn)練的概念 506
19.2.4  了解缺失值和鍵類型 506
19.2.5  了解特性和標(biāo)簽 506
19.3  進行產(chǎn)品推薦 507
19.3.1  問題分析 507
19.3.2  數(shù)據(jù)的收集和處理 507
19.3.3  創(chuàng)建NorthwindML網(wǎng)站項目 508
19.3.4  測試產(chǎn)品推薦網(wǎng)站 519
19.4  實踐和探索 521
19.4.1  練習(xí)19.1:測試你掌握的知識 521
19.4.2  練習(xí)19.2:使用樣本進行練習(xí) 521
19.4.3  練習(xí)19.3:探索主題 521
19.5  本章小結(jié) 522
第20章  使用Blazor構(gòu)建Web用戶
界面 523
20.1  理解Blazor 523
20.1.1  理解Blazor托管模型 523
20.1.2  理解Blazor組件 524
20.1.3  比較Blazor和Razor 524
20.1.4  比較Blazor項目模板 524
20.2  使用Blazor服務(wù)器構(gòu)建組件 532
20.2.1  定義和測試簡單的組件 532
20.2.2  將實體放入組件 533
20.2.3  為Blazor組件抽象服務(wù) 535
20.2.4  使用Blazor表單 537
20.3  使用Blazor WebAssembly
構(gòu)建組件 542
20.3.1  為Blazor WebAssembly配置
服務(wù)器 543
20.3.2  為Blazor WebAssembly配置
客戶端 545
20.3.3  Web應(yīng)用程序的漸進式支持 548
20.4  實踐和探索 550
20.4.1  練習(xí)20.1:測試你掌握的知識 550
20.4.2  練習(xí)20.2:練習(xí)創(chuàng)建組件 550
20.4.3  練習(xí)20.3:探索主題 550
20.5  本章小結(jié) 551
第21章  構(gòu)建跨平臺的移動應(yīng)用程序 552
21.1  了解XAML 552
21.1.1  使用XAML簡化代碼 553
21.1.2  選擇常見的控件 553
21.1.3  理解標(biāo)記擴展 554
21.2  了解Xamarin和Xamarin. Forms 554
21.2.1  Xamarin.Forms擴展了Xamarin 554
21.2.2  移動先行,云先行 554
21.2.3  不同移動平臺的市場份額 555
21.2.4  了解一些額外功能 555
21.2.5  了解Xamarin.Forms用戶界面
組件 556
21.3  使用Xamarin.Forms構(gòu)建移動
應(yīng)用程序 557
21.3.1  添加Android SDK 558
21.3.2  創(chuàng)建Xamarin.Forms解決方案 558
21.3.3  創(chuàng)建具有雙向數(shù)據(jù)綁定的
實體模型 559
21.3.4  為撥打電話號碼創(chuàng)建組件 562
21.3.5  為客戶列表和客戶詳細信息創(chuàng)建
視圖 565
21.3.6  測試移動應(yīng)用程序 569
21.4  在移動應(yīng)用程序中消費Web
服務(wù) 571
21.4.1  配置Web服務(wù)以允許不安全
的請求 572
21.4.2  配置iOS應(yīng)用程序以允許不安全
的連接 572
21.4.3  配置Android應(yīng)用程序,允許
進行不安全連接 573
21.4.4  添加用于消費Web服務(wù)的
NuGet包 573
21.4.5  從Web服務(wù)中獲取客戶 574
21.5  實踐和探索 575
21.5.1  練習(xí)21.1:測試你掌握的知識 575
21.5.2  練習(xí)21.2:探索主題 576
21.6  本章小結(jié) 576
附錄部分(請掃描封底二維碼獲取)
附錄A  練習(xí)題答案
附錄B  構(gòu)建Windows桌面應(yīng)用程序

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號