ASP.NET Core 3 全棧 Web 開發 : 使用 .NET Core 3.1 和 Angular 9 (第三版) ASP.NET Core 3 and Angular 9: Full stack web development with .NET Core 3.1 and Angular 9

Valerio De Sanctis 趙利通 崔戰友 譯

  • ASP.NET Core 3 全棧 Web 開發 : 使用 .NET Core 3.1 和 Angular 9 (第三版)-preview-1
  • ASP.NET Core 3 全棧 Web 開發 : 使用 .NET Core 3.1 和 Angular 9 (第三版)-preview-2
  • ASP.NET Core 3 全棧 Web 開發 : 使用 .NET Core 3.1 和 Angular 9 (第三版)-preview-3
ASP.NET Core 3 全棧 Web 開發 : 使用 .NET Core 3.1 和 Angular 9 (第三版)-preview-1

買這商品的人也買了...

商品描述

主要內容 
● 使用ASP.NET Core實現Web API接口,並通過Angular和RxJS Observable來使用接口。
● 使用Entity Framework Core的代碼優先方法和遷移支持來創建數據模型。 
● 使用本地實例或Azure中的雲數據存儲來建立和配置SQL數據庫服務器。 
● 使用Visual Studio 2019執行C#和JavaScript調試。 
● 使用xUnit、Jasmine和Karma執行TDD和BDD單元測試。 
● 使用ASP.NET Identity、IdentityServer4和Angular API實現身份驗證和授權。 
● 構建漸進式Web應用,並探索服務工作線程。

作者簡介

Valerio De Sanctis

是一名掌握豐富技能的IT專業人員,在使用ASP.NET、PHP和Java進行編程、Web開發和項目管理方面具有過15年的經驗。
他在多家金融和保險公司擔任過高級職務,近來在一家業界領先的售後服務和IT服務公司擔任首席技術官、首席安全官和首席運營官,
這家公司為多個的人壽和非人壽保險集團提供服務。
 
在職業生涯中,Valerio幫助許多私企實現和維護基於.NET的解決方案,
與許多IT行業的專家攜手工作,並領導過多個前端、後端和UX開發團隊。
他為多個的客戶和合作夥伴設計了許多企業級Web應用程序項目的架構,並監管這些項目的開發。
這些客戶包括London Stock Echange Group、Zurich Insurance Group、Allianz、Generali、
Harmonie Mutuelle、Honda Motor、FCA Group、Luottica、ANSA、Saipem、ENI、Enel、
Terna、Banzai Media、Virgilio.it、Repubblica.it和Corriere.it。
 
他是Stack Echange網絡上的活躍成員,在StackOverflow、ServerFault和SuperUser社區中提供關於.NET、HTML5和Web主題的建議和提示。
他的大部分項目和代碼示例在GitHub、BitBucket、NPM、CocoaPods、JQuery Plugin Registry和WordPress Plugin Repository中以開源許可提供。
他還是Microsoft開發技術MVP,這是一個年度頒發的獎項,
用來表彰全球範圍內積極與用戶和Microsoft分享高質量的實用專家技能的技術社區。
 
自2014年以來,他在www.ryadel.com上運營一個面向IT並關注Web的博客,提供業界新聞、評審、代碼示例和指導,
旨在幫助全球的開發人員和技術愛好者。
他撰寫了多本關於Web開發的圖書,許多都在Amazon上成為暢銷圖書,在全球範圍內銷售了數万本。

目錄大綱

目錄
第1章  準備工作  1
1.1  技術需求  1
1.2  兩個框架,一個目標  2
1.2.1  ASP.NET Core的變革  2
1.2.2  Angular有哪些新變化?  5
1.2.3  選擇.NET Core和Angular的理由  11
1.3  全棧方法  12
1.4  SPA、NWA和PWA  12
1.4.1  單頁面應用程序  13
1.4.2  原生Web應用程序  13
1.4.3  漸進式Web應用程序  13
1.4.4  產品負責人的期望  15
1.5  SPA項目示例  16
1.6  準備工作空間  16
1.6.1  免責聲明  17
1.6.2  創建項目  18
1.7  小結  22
1.8  推薦主題  22

第2章  探索項目  23
2.1  技術需求  23
2.2  解決方案概述  23
2.3  .NET Core後端  24
2.3.1  Razor頁面  24
2.3.2  控制器  25
2.3.3  配置文件  26
2.4  Angular前端  32
2.4.1  工作空間  32
2.4.2  /ClientApp/src/文件夾  38
2.4.3  測試應用  40
2.5  開始工作  44
2.5.1  靜態文件緩存  44
2.5.2  清理客戶端應用  48
2.6  小結  53
2.7  推薦主題  53

第3章  前端與後端的交互  55
3.1  技術需求  55
3.2  .NET Core健康檢查簡介  55
3.2.1  添加HealthCheck中間件  56
3.2.2  添加網際控制報文協議檢查  57
3.2.3  改進ICMPHealthCheck類  59
3.3  Angular中的健康檢查  64
3.3.1  創建Angular組件  64
3.3.2  將組件添加到Angular應用  73
3.4  小結  75
3.5  推薦主題  75

第4章  使用Entity Framework Core 創建數據模型  77
4.1  技術需求  77
4.2  WorldCities Web應用  78
4.3  數據源  80
4.4  數據模型  81
4.4.1  Entity Framework Core簡介  81
4.4.2  安裝Entity Framework Core  82
4.4.3  SQL Server數據提供者  83
4.4.4  數據建模方法  84
4.5  創建實體  88
4.5.1  定義實體  88
4.5.2  定義關系  92
4.6  獲取SQL Server  94
4.6.1  安裝SQL Server 2019  95
4.6.2  在Azure上創建數據庫  97
4.6.3  配置數據庫  102
4.7  使用代碼優先方法創建數據庫  104
4.7.1  設置DbContext  105
4.7.2  數據庫初始化策略  106
4.7.3  更新appsettings.json文件  106
4.7.4  創建數據庫  107
4.7.5  添加初始遷移  107
4.8  填充數據庫  111
4.9  實體控制器  117
4.9.1  CitiesController  117
4.9.2  CountriesController  120
4.10  小結  120
4.11  推薦主題  121

第5章  獲取和顯示數據  123
5.1  技術需求  123
5.2  獲取數據  123
5.2.1  請求和響應  123
5.2.2  一個長列表  125
5.3  使用Angular Material提供數據  129
5.3.1  MatTableModule  131
5.3.2  MatPaginatorModule  134
5.3.3  MatSortModule  144
5.3.4  添加過濾功能  156
5.4  更新國家/地區  165
5.4.1  .NET Core  165
5.4.2  Angular  168
5.5  小結  173
5.6  推薦主題  174

第6章  表單和數據驗證  175
6.1  技術需求  175
6.2  探索Angular表單  176
6.2.1  Angular中的表單  176
6.2.2  使用表單的理由  177
6.2.3  模板驅動的表單  178
6.2.4  模型驅動的/響應式表單  179
6.3  構建第一個響應式表單  181
6.3.1  ReactiveFormsModule  181
6.3.2  CityEditComponent  182
6.3.3  添加導航鏈接  187
6.4  添加一個新城市  190
6.4.1  擴展CityEditComponent  190
6.4.2  添加Create a new City按鈕  193
6.4.3  HTML select  195
6.4.4  Angular Material select(MatSelectModule)  199
6.5  理解數據驗證  201
6.5.1  模板驅動的驗證  202
6.5.2  模型驅動的驗證  203
6.5.3  服務器端驗證  207
6.6  FormBuilder簡介  213
6.6.1  創建CountryEditComponent  213
6.6.2  測試CountryEditComponent  223
6.7  小結  226
6.8  推薦主題  226

第7章  代碼調整和數據服務  227
7.1  技術需求  227
7.2  優化和調整  227
7.2.1  模板改進  228
7.2.2  類繼承  229
7.3  Bug修復和改進  232
7.3.1  驗證lat和lon  232
7.3.2  添加城市個數  235
7.3.3  DTO類——真的應該使用它們嗎?  240
7.3.4  添加國家/地區名稱  244
7.4  數據服務  247
7.4.1  對比XMLHttpRequest與fetch(和HttpClient)  248
7.4.2  構建數據服務  251
7.5  小結  267
7.6  推薦主題  267

第8章  後端和前端調試  269
8.1  技術需求  269
8.2  後端調試  269
8.2.1  Windows還是Linux?  270
8.2.2  基礎知識  270
8.2.3  條件斷點  270
8.2.4  Output窗口  273
8.2.5  調試EF Core  274
8.3  前端調試  280
8.3.1  Visual Studio中的JavaScript調試  280
8.3.2  瀏覽器開發者工具  282
8.3.3  調試Angular表單  284
8.3.4  客戶端調試  289
8.4  小結  290
8.5  推薦主題  290

第9章  ASP.NET Core和Angular單元測試  291
9.1  技術需求  291
9.2  .NET Core單元測試  292
9.2.1  創建WorldCities.Tests項目  292
9.2.2  第一個測試  294
9.2.3  測試驅動的開發  300
9.2.4  行為驅動的開發  301
9.3  Angular單元測試  302
9.3.1  一般概念  303
9.3.2  第一個Angular測試套件  304
9.4  小結  313
9.5  推薦主題  314

第10章  身份驗證和授權  315
10.1  技術需求  315
10.2  是否進行身份驗證和授權  316
10.2.1  身份驗證  316
10.2.2  授權  318
10.2.3  專有與第三方  318
10.3  使用.NET Core進行專有身份驗證和授權  319
10.3.1  ASP.NET Core Identity Model  320
10.3.2  設置ASP.NET Core Identity  321
10.4  更新數據庫  337
10.4.1  添加身份遷移  337
10.4.2  應用遷移  337
10.4.3  對數據執行seed操作  339
10.5  身份驗證方法  341
10.5.1  會話  341
10.5.2  令牌  342
10.5.3  簽名  343
10.5.4  雙因子  343
10.5.5  結論  343
10.6  在Angular中實現身份驗證  343
10.6.1  創建AuthSample項目  344
10.6.2  探索Angular授權API  346
10.7  在WorldCities應用中實現授權API  359
10.7.1  導入前端授權API  359
10.7.2  調整後端代碼  361
10.7.3  測試登錄和註冊  364
10.8  小結  365
10.9  推薦主題  365

第11章  漸進式Web應用  367
11.1  技術需求  367
11.2  PWA的特徵  367
11.2.1  安全源  368
11.2.2  離線加載和Web應用清單  369
11.3  實現PWA需求  370
11.3.1  手動安裝  370
11.3.2  自動安裝  377
11.4  處理離線狀態  379
11.4.1  選項1:窗口的isonline/isoffline事件  379
11.4.2  選項2:Navigator.onLine屬性  379
11.4.3  選項3:ng-connection-service npm包  380
11.4.4  跨請求資源共享  384
11.5  測試PWA能力  385
11.5.1  使用Visual Studio和IIS Express  385
11.5.2  其他測試方法  390
11.6  小結  391
11.7  推薦主題  392

第12章  Windows和Linux部署  393
12.1  技術需求  393
12.2  為生產環境做好準備  393
12.2.1  .NET Core部署提示  394
12.2.2  Angular部署提示  399
12.3  Windows部署  402
12.3.1  在MS Azure上創建一個Windows Server VM  402
12.3.2  配置VM  406
12.3.3  發布和部署HealthCheck應用  408
12.3.4  配置IIS  410
12.3.5  測試HealthCheck Web應用  414
12.4  Linux部署  415
12.4.1  在MS Azure中創建一個Linux CentOS VM  416
12.4.2  配置Linux VM  417
12.4.3  調整WorldCities應用  421
12.4.4  發布和部署WorldCities應用  423
12.4.5  配置Kestrel和Nginx  425
12.4.6  測試WorldCities應用  430
12.5  小結  432
12.6  推薦主題  433