ASP.NET Core套用開發入門教程
基本介紹
- 中文名:ASP.NET Core套用開發入門教程
- 作者:周志剛
- 出版時間:2019年12月1日
- 出版社:北京航空航天大學出版社
- ISBN:9787512429871
- 開本:16 開
- 裝幀:膠版紙
內容簡介,目錄,
內容簡介
本書假設讀者已經熟悉C#和.NET的開發,並且對關係型資料庫有所了解,但不要求對C#有太深入的了解。初學C#的讀者可能會發現有些代碼難以閱讀,因為本書不會詳細講解C#的內容。
ASP.NET Core是一個開源趨炒蘭跨平台框架,用於構建Web套用、IoT套用和移動後端套用。ASP.NET Core應用程式可以運行於 .NET Core和完整的 .NET Framework之上。全書共分9章,深入淺出地介紹了ASP.NET Core的基礎知識和前端UI選擇方面的知識,主要包括.NET Core的基礎知識及其安裝、dotnet命令、Visual Studio開發工頸戲達踏具的安裝和使用、ASP.NET Core的原理及其組件介紹、Entity Framework Core框架、ASP.NET Core MVC框架和依賴注入等。
本書面向從未使用過ASP.NET Core和EF Core的初、中級用戶,以及想了解ASP.NET Core和EF Core的讀者,也可作為各初、高等院校師生的教學和自學叢書,以及社會相關領域培訓囑射套愉班的教材。
目錄
第1章.NET Core1
1.1.NET Core介紹1
1.1.1什麼是.NET1
1.1.2什麼是.NET Framework1
1.1.3什麼是.NET Core2
1.2.NET Core跨平台2
1.2.1.NET Standard3
1.2.2.NET Core的特點4
1.3.NET Core SDK下載安裝7
第2章dotnet命令12
2.1dotnet命令結構12
2.1.1dotnet命令結構介紹13
2.1.2dotnet命令示例14
2.2dotnet new16
2.2.1介紹16
2.2.2示例20
2.3dotnet restore22
2.4dotnet sln24
2.4.1介紹頁局24
2.4.2示例25
2.5dotnet build27
2.5.1介紹27
2.5.2示例28
2.6dotnet pack28
2.6.1介紹28
2.6.2示例29
2.7dotnet run30
2.7.1介紹30
2.7.2示例32
2.8dotnet publish32
2.8.1介紹32
2.8.2示例34
2.9dotnet add package35
2.9.1介紹35
2.9.2示例35
2.10dotnet add reference37
2.10.1介紹37
2.10.2示例37
2.11dotnet命令綜合示例38
第3章Visual Studio 2017與NuGet44
3.1安裝 Visual Studio 201744
3.1.1檢查計算機安裝環境44
3.1.2下載 Visual Studio 201744
3.1.3運行Visual Studio 2017安裝程式45
3.1.4選擇工作負載46
3.1.5逐個選擇組件(可選)47
3.1.6安裝語言包(可選)47
3.1.7更改安裝位置(可選)48
3.1.8起始頁介紹48
3.2使用Visual Studio創建程式49
3.3Visual Studio功能簡介采匙乘53
3.3.1選單53
3.3.2解決方案資源管理器53
3.3.3快速啟動56
3.3.4編輯器58
3.3.5運行和調試應用程式61
3.3.6調試代碼62
3.3.7使用重構和 IntelliSense66
3.4NuGet簡介68
3.4.1包、創建者、主機和使用者之間的關係68
3.4.2包的兼容性69
3.4.3NuGet工具70
3.4.4管理依賴項70
3.4.5跟蹤引用和還原包71
3.5在Visual Studio中安裝和使用包72
3.5.1程式包管理器UI72
3.5.2程式包管理器控制台74
3.5.3在套用中使用舟驗狼Newtonsoft.Json API75
第4章ASP.NET Core簡介77
4.1為何使用 ASP.NET Core77
4.2ASP.NET Core啟動的秘密78
4.2.1ASP.NET Core啟動流槳達影程78
4.2.2宿主構造器:WebHostBuilder79
4.2.3UseStartup〈Startup〉80
4.2.4WebHostBuilder.Build82
4.2.5WebHost.Initialize85
4.2.6WebHost.Run87
4.2.7構建請求處理管道87
4.2.8啟動WebHost90
4.2.9啟動Server92
4.2.10啟動IHostedService93
4.3ASP.NET Core中間件94
4.3.1什麼是中間件94
4.3.2中間件的運行方式94
4.3.3中間件排序96
4.3.4Use、Run和Map方法98
4.3.5內置中間件103
4.4ASP.NET Core中的靜態檔案104
4.4.1如何將靜態檔案注入到項目中105
4.4.2自定義靜態資料夾107
4.4.3添加默認檔案支持109
4.4.4設定HTTP回響標頭110
4.4.5啟用目錄瀏覽112
4.5ASP.NET Core中的配置113
4.5.1配置相關的包114
4.5.2檔案配置115
4.5.3XML配置120
4.5.4按環境配置121
4.5.5在Razor頁面中訪問配置122
4.5.6其他配置方式122
4.6ASP.NET Core中的日誌記錄123
4.6.1日誌模型三要素124
4.6.2日誌記錄級別125
4.6.3將日誌寫入不同的目的地126
4.6.4添加篩選功能130
4.6.5根據等級過濾日誌訊息131
4.6.6設定檔案配置133
4.6.7作用域135
4.6.8日誌記錄建議137
4.7在ASP.NET Core中使用多個環境137
4.7.1環境137
4.7.2在運行時確定環境137
4.7.3開發環境139
4.7.4生產環境141
4.7.5基於環境的Startup類和方法142
4.8Session詳解142
4.8.1什麼是Session142
4.8.2理解Session機制143
4.8.3ASP.NET Core中的Session144
4.8.4ASP.NET Core中如何使用Session145
4.9ASP.NET Core中的快取149
4.9.1快取的基礎知識149
4.9.2將數據快取在記憶體中149
4.9.3基於SQL Server的分散式快取158
第5章Entity Framework Core167
5.1先決條件167
5.2Visual Studio開發167
5.2.1使用 NuGet的包管理器用戶界面167
5.2.2使用 NuGet的包管理器控制台168
5.3創建資料庫168
5.4EF Core的兩種編程方式170
5.5EF Core 2.0 Database First的基本使用170
5.6Entity Framework Core的實體特性177
5.6.1數據注釋特性——Key178
5.6.2數據注釋特性——Timestamp182
5.6.3數據注釋特性——ConcurrencyCheck183
5.6.4數據注釋特性——Required184
5.6.5數據注釋特性——MaxLength186
5.6.6數據注釋特性——MinLength187
5.6.7數據注釋特性——Table188
5.6.8數據注釋特性——Column191
5.6.9數據注釋特性——ForeignKey193
5.6.10數據注釋特性——NotMapped196
5.7EF Core 2.0 Code First199
5.8EF Core 2.0 Code First 創建資料庫199
5.8.1創建實體199
5.8.2創建資料庫203
5.8.3資料庫修改204
5.8.4還原遷移206
5.8.5刪除遷移207
5.8.6生成SQL腳本208
5.8.7創建存儲過程209
5.8.8給資料庫添加初始數據209
5.9用EF Core 2.0 Code First查詢數據214
5.9.1查詢的工作原理215
5.9.2執行查詢215
5.9.3基本查詢216
5.9.4異步查詢217
5.9.5載入所有數據218
5.9.6載入單個實體218
5.9.7條件查詢219
5.9.8使用SQL語句查詢220
5.9.9基本SQL查詢221
5.9.10傳遞參數221
5.9.11使用SQL查詢,用LINQ編寫條件排序222
5.9.12跟蹤與非跟蹤查詢223
5.10EF Core 2.0 Code First保存數據224
5.10.1添加數據225
5.10.2修改數據228
5.10.3刪除數據230
5.10.4單個 SaveChanges中的多個操作232
5.10.5異步保存235
5.10.6使用事務235
5.10.7默認事務235
5.10.8顯式事務235
5.11EF Core 2.0 Code First處理並發衝突239
5.11.1並發衝突239
5.11.2樂觀並發239
5.11.3檢測並發衝突241
5.11.4解決並發衝突243
5.11.5使用時間戳和行級版本號246
第6章ASP.NET Core MVC253
6.1ASP.NET Core MVC概述253
6.1.1什麼是 MVC模式253
6.1.2什麼是ASP.NET Core MVC254
6.2ASP.NET Core中的路由259
6.2.1路由259
6.2.2路由基礎知識259
6.2.3路由模板263
6.2.4路由約束263
6.2.5正則表達式265
6.3ASP.NET Core中的模型綁定266
6.3.1模型綁定簡介266
6.3.2模型綁定的工作原理266
6.3.3數組綁定269
6.3.4返回帶格式的數據270
6.4ASP.NET Core MVC 中的模型驗證271
6.4.1模型驗證簡介271
6.4.2驗證特性272
6.4.3自定義驗證273
6.4.4客戶端驗證275
6.4.5遠程驗證277
6.5ASP.NET Core MVC 中的視圖279
6.5.1Razor視圖引擎279
6.5.2使用視圖的好處280
6.5.3創建視圖281
6.5.4控制器如何指定視圖281
6.5.5向視圖傳遞數據283
6.6ASP.NET Core 中的布局288
6.6.1什麼是布局288
6.6.2指定布局290
6.6.3導入共享指令291
6.6.4在呈現每個視圖之前運行代碼292
6.7ASP.NET Core 中的標記助手293
6.7.1什麼是標記助手293
6.7.2標記助手的功能294
6.7.3管理標記助手的作用域296
6.7.4標記助手的智慧型提示支持297
6.8ASP.NET Core 中的分部視圖299
6.8.1什麼是分部視圖299
6.8.2何時使用分部視圖300
6.8.3聲明分部視圖300
6.8.4分部視圖訪問示例300
6.9ASP.NET Core 中的視圖組件304
6.9.1什麼是視圖組件304
6.9.2如何創建視圖組件類304
6.9.3創建一個簡單的視圖組件305
6.9.4調用視圖組件作為標記助手308
6.9.5在控制器方法中直接調用視圖組件309
6.9.6指定視圖名稱310
6.10在ASP.NET Core MVC 中使用控制器處理請求312
6.10.1什麼是控制器312
6.10.2定義操作313
6.10.3控制器回響返回的方法313
6.11ASP.NET Core 中的過濾器314
6.11.1過濾器314
6.11.2過濾器的工作原理314
6.11.3授權過濾器315
6.11.4資源過濾器315
6.11.5操作過濾器317
6.11.6異常過濾器319
6.11.7結果過濾器321
6.11.8內置過濾器特性322
6.11.9取消和設定短路323
6.11.10依賴關係注入324
6.11.11過濾器示例325
6.12ASP.NET Core 中的區域331
第7章依賴注入337
7.1什麼是依賴注入337
7.1.1什麼是依賴337
7.1.2什麼是注入338
7.1.3為什麼要反轉338
7.1.4何為容器340
7.2.NET Core DI341
7.2.1構造函式注入行為341
7.2.2實例的註冊341
7.2.3實例的生命周期342
7.3DI在ASP.NET Core中的套用349
7.3.1在Startup類中初始化351
7.3.2在控制類中使用352
7.3.3通過 HttpContext來獲取實例353
7.4在 ASP.NET Core 中將依賴項注入到視圖中354
7.4.1簡單示例354
7.4.2填充查找數據356
7.5如何替換其他的IoC容器358
7.5.1Autofac的基本使用359
7.5.2用Autofac代替原來的IoC364
7.5.3一個接口對應多個實現的情況369
第8章Razor視圖373
8.1什麼是Razor373
8.2Razor保留關鍵字374
8.2.1Razor關鍵字374
8.2.2C# Razor關鍵字374
8.3使用Razor語法編寫表達式375
8.3.1隱式 Razor表達式375
8.3.2顯式 Razor表達式377
8.3.3表達式的編碼378
8.4Razor代碼塊379
8.5Razor邏輯條件控制382
8.5.1if和switch條件語句382
8.5.2循環語句383
8.5.3複合語句@using385
8.5.4異常處理語句@try、catch、finally386
8.5.5加鎖語句@lock386
8.5.6注釋387
8.6指令387
8.7ASP.NET Core中的 Razor頁面介紹389
8.7.1啟用Razor頁面389
8.7.2Razor頁面介紹390
8.7.3編寫基本窗體391
8.7.4頁面的URL生成405
8.7.5針對一個頁面的多個處理程式406
第9章Web UI框架的選擇412
9.1以JQuery為核心的前端框架413
9.1.1EasyUI413
9.1.2DWZ JUI414
9.1.3LigerUI415
9.2以Bootstrap為核心的前端框架416
9.2.1HUI416
9.2.2H+ UI416
9.2.3Ace Admin417
9.2.4Metronic418
9.2.5AdminLTE419
9.2.6INSPINIA420
9.3以ExtJS為核心的前端框架421
參考文獻423
2.10.1介紹37
2.10.2示例37
2.11dotnet命令綜合示例38
第3章Visual Studio 2017與NuGet44
3.1安裝 Visual Studio 201744
3.1.1檢查計算機安裝環境44
3.1.2下載 Visual Studio 201744
3.1.3運行Visual Studio 2017安裝程式45
3.1.4選擇工作負載46
3.1.5逐個選擇組件(可選)47
3.1.6安裝語言包(可選)47
3.1.7更改安裝位置(可選)48
3.1.8起始頁介紹48
3.2使用Visual Studio創建程式49
3.3Visual Studio功能簡介53
3.3.1選單53
3.3.2解決方案資源管理器53
3.3.3快速啟動56
3.3.4編輯器58
3.3.5運行和調試應用程式61
3.3.6調試代碼62
3.3.7使用重構和 IntelliSense66
3.4NuGet簡介68
3.4.1包、創建者、主機和使用者之間的關係68
3.4.2包的兼容性69
3.4.3NuGet工具70
3.4.4管理依賴項70
3.4.5跟蹤引用和還原包71
3.5在Visual Studio中安裝和使用包72
3.5.1程式包管理器UI72
3.5.2程式包管理器控制台74
3.5.3在套用中使用Newtonsoft.Json API75
第4章ASP.NET Core簡介77
4.1為何使用 ASP.NET Core77
4.2ASP.NET Core啟動的秘密78
4.2.1ASP.NET Core啟動流程78
4.2.2宿主構造器:WebHostBuilder79
4.2.3UseStartup〈Startup〉80
4.2.4WebHostBuilder.Build82
4.2.5WebHost.Initialize85
4.2.6WebHost.Run87
4.2.7構建請求處理管道87
4.2.8啟動WebHost90
4.2.9啟動Server92
4.2.10啟動IHostedService93
4.3ASP.NET Core中間件94
4.3.1什麼是中間件94
4.3.2中間件的運行方式94
4.3.3中間件排序96
4.3.4Use、Run和Map方法98
4.3.5內置中間件103
4.4ASP.NET Core中的靜態檔案104
4.4.1如何將靜態檔案注入到項目中105
4.4.2自定義靜態資料夾107
4.4.3添加默認檔案支持109
4.4.4設定HTTP回響標頭110
4.4.5啟用目錄瀏覽112
4.5ASP.NET Core中的配置113
4.5.1配置相關的包114
4.5.2檔案配置115
4.5.3XML配置120
4.5.4按環境配置121
4.5.5在Razor頁面中訪問配置122
4.5.6其他配置方式122
4.6ASP.NET Core中的日誌記錄123
4.6.1日誌模型三要素124
4.6.2日誌記錄級別125
4.6.3將日誌寫入不同的目的地126
4.6.4添加篩選功能130
4.6.5根據等級過濾日誌訊息131
4.6.6設定檔案配置133
4.6.7作用域135
4.6.8日誌記錄建議137
4.7在ASP.NET Core中使用多個環境137
4.7.1環境137
4.7.2在運行時確定環境137
4.7.3開發環境139
4.7.4生產環境141
4.7.5基於環境的Startup類和方法142
4.8Session詳解142
4.8.1什麼是Session142
4.8.2理解Session機制143
4.8.3ASP.NET Core中的Session144
4.8.4ASP.NET Core中如何使用Session145
4.9ASP.NET Core中的快取149
4.9.1快取的基礎知識149
4.9.2將數據快取在記憶體中149
4.9.3基於SQL Server的分散式快取158
第5章Entity Framework Core167
5.1先決條件167
5.2Visual Studio開發167
5.2.1使用 NuGet的包管理器用戶界面167
5.2.2使用 NuGet的包管理器控制台168
5.3創建資料庫168
5.4EF Core的兩種編程方式170
5.5EF Core 2.0 Database First的基本使用170
5.6Entity Framework Core的實體特性177
5.6.1數據注釋特性——Key178
5.6.2數據注釋特性——Timestamp182
5.6.3數據注釋特性——ConcurrencyCheck183
5.6.4數據注釋特性——Required184
5.6.5數據注釋特性——MaxLength186
5.6.6數據注釋特性——MinLength187
5.6.7數據注釋特性——Table188
5.6.8數據注釋特性——Column191
5.6.9數據注釋特性——ForeignKey193
5.6.10數據注釋特性——NotMapped196
5.7EF Core 2.0 Code First199
5.8EF Core 2.0 Code First 創建資料庫199
5.8.1創建實體199
5.8.2創建資料庫203
5.8.3資料庫修改204
5.8.4還原遷移206
5.8.5刪除遷移207
5.8.6生成SQL腳本208
5.8.7創建存儲過程209
5.8.8給資料庫添加初始數據209
5.9用EF Core 2.0 Code First查詢數據214
5.9.1查詢的工作原理215
5.9.2執行查詢215
5.9.3基本查詢216
5.9.4異步查詢217
5.9.5載入所有數據218
5.9.6載入單個實體218
5.9.7條件查詢219
5.9.8使用SQL語句查詢220
5.9.9基本SQL查詢221
5.9.10傳遞參數221
5.9.11使用SQL查詢,用LINQ編寫條件排序222
5.9.12跟蹤與非跟蹤查詢223
5.10EF Core 2.0 Code First保存數據224
5.10.1添加數據225
5.10.2修改數據228
5.10.3刪除數據230
5.10.4單個 SaveChanges中的多個操作232
5.10.5異步保存235
5.10.6使用事務235
5.10.7默認事務235
5.10.8顯式事務235
5.11EF Core 2.0 Code First處理並發衝突239
5.11.1並發衝突239
5.11.2樂觀並發239
5.11.3檢測並發衝突241
5.11.4解決並發衝突243
5.11.5使用時間戳和行級版本號246
第6章ASP.NET Core MVC253
6.1ASP.NET Core MVC概述253
6.1.1什麼是 MVC模式253
6.1.2什麼是ASP.NET Core MVC254
6.2ASP.NET Core中的路由259
6.2.1路由259
6.2.2路由基礎知識259
6.2.3路由模板263
6.2.4路由約束263
6.2.5正則表達式265
6.3ASP.NET Core中的模型綁定266
6.3.1模型綁定簡介266
6.3.2模型綁定的工作原理266
6.3.3數組綁定269
6.3.4返回帶格式的數據270
6.4ASP.NET Core MVC 中的模型驗證271
6.4.1模型驗證簡介271
6.4.2驗證特性272
6.4.3自定義驗證273
6.4.4客戶端驗證275
6.4.5遠程驗證277
6.5ASP.NET Core MVC 中的視圖279
6.5.1Razor視圖引擎279
6.5.2使用視圖的好處280
6.5.3創建視圖281
6.5.4控制器如何指定視圖281
6.5.5向視圖傳遞數據283
6.6ASP.NET Core 中的布局288
6.6.1什麼是布局288
6.6.2指定布局290
6.6.3導入共享指令291
6.6.4在呈現每個視圖之前運行代碼292
6.7ASP.NET Core 中的標記助手293
6.7.1什麼是標記助手293
6.7.2標記助手的功能294
6.7.3管理標記助手的作用域296
6.7.4標記助手的智慧型提示支持297
6.8ASP.NET Core 中的分部視圖299
6.8.1什麼是分部視圖299
6.8.2何時使用分部視圖300
6.8.3聲明分部視圖300
6.8.4分部視圖訪問示例300
6.9ASP.NET Core 中的視圖組件304
6.9.1什麼是視圖組件304
6.9.2如何創建視圖組件類304
6.9.3創建一個簡單的視圖組件305
6.9.4調用視圖組件作為標記助手308
6.9.5在控制器方法中直接調用視圖組件309
6.9.6指定視圖名稱310
6.10在ASP.NET Core MVC 中使用控制器處理請求312
6.10.1什麼是控制器312
6.10.2定義操作313
6.10.3控制器回響返回的方法313
6.11ASP.NET Core 中的過濾器314
6.11.1過濾器314
6.11.2過濾器的工作原理314
6.11.3授權過濾器315
6.11.4資源過濾器315
6.11.5操作過濾器317
6.11.6異常過濾器319
6.11.7結果過濾器321
6.11.8內置過濾器特性322
6.11.9取消和設定短路323
6.11.10依賴關係注入324
6.11.11過濾器示例325
6.12ASP.NET Core 中的區域331
第7章依賴注入337
7.1什麼是依賴注入337
7.1.1什麼是依賴337
7.1.2什麼是注入338
7.1.3為什麼要反轉338
7.1.4何為容器340
7.2.NET Core DI341
7.2.1構造函式注入行為341
7.2.2實例的註冊341
7.2.3實例的生命周期342
7.3DI在ASP.NET Core中的套用349
7.3.1在Startup類中初始化351
7.3.2在控制類中使用352
7.3.3通過 HttpContext來獲取實例353
7.4在 ASP.NET Core 中將依賴項注入到視圖中354
7.4.1簡單示例354
7.4.2填充查找數據356
7.5如何替換其他的IoC容器358
7.5.1Autofac的基本使用359
7.5.2用Autofac代替原來的IoC364
7.5.3一個接口對應多個實現的情況369
第8章Razor視圖373
8.1什麼是Razor373
8.2Razor保留關鍵字374
8.2.1Razor關鍵字374
8.2.2C# Razor關鍵字374
8.3使用Razor語法編寫表達式375
8.3.1隱式 Razor表達式375
8.3.2顯式 Razor表達式377
8.3.3表達式的編碼378
8.4Razor代碼塊379
8.5Razor邏輯條件控制382
8.5.1if和switch條件語句382
8.5.2循環語句383
8.5.3複合語句@using385
8.5.4異常處理語句@try、catch、finally386
8.5.5加鎖語句@lock386
8.5.6注釋387
8.6指令387
8.7ASP.NET Core中的 Razor頁面介紹389
8.7.1啟用Razor頁面389
8.7.2Razor頁面介紹390
8.7.3編寫基本窗體391
8.7.4頁面的URL生成405
8.7.5針對一個頁面的多個處理程式406
第9章Web UI框架的選擇412
9.1以JQuery為核心的前端框架413
9.1.1EasyUI413
9.1.2DWZ JUI414
9.1.3LigerUI415
9.2以Bootstrap為核心的前端框架416
9.2.1HUI416
9.2.2H+ UI416
9.2.3Ace Admin417
9.2.4Metronic418
9.2.5AdminLTE419
9.2.6INSPINIA420
9.3以ExtJS為核心的前端框架421
參考文獻423