ASP.NET Core 應用開發入門教程
內容描述
本書假設讀者已經熟悉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.Build()82
4.2.5WebHost.Initialize()85
4.2.6WebHost.Run()87
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
作者介紹
活躍的博客作者,有豐富的.NET平台開發經驗,
2年.NET Core開發經驗,多年從事第三方物流供應鏈系統開發,
對.NET Framework、C#、ASP.NET、SQLServer有著深入的研究。