注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).Net實(shí)踐

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).Net實(shí)踐

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).Net實(shí)踐

定 價(jià):¥138.00

作 者: 甄鐳
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302649359 出版時(shí)間: 2024-01-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).Net實(shí)踐》介紹領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的基本概念和在.Net環(huán)境下使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)開發(fā)應(yīng)用軟件的基本方法。全書分為3個(gè)部分:第1部分(第1~6章)介紹領(lǐng)域模型和如何創(chuàng)建與驗(yàn)證領(lǐng)域模型;第2部分(第7~16章)介紹與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)相關(guān)的.Net技術(shù);第3部分(第17~26章)介紹如何以領(lǐng)域模型為核心構(gòu)造各種類型的應(yīng)用系統(tǒng),并講解項(xiàng)目的升級和演化方法。為了幫助讀者更好地理解和應(yīng)用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),本書選取詩詞游戲項(xiàng)目作為示例,貫穿全書的3個(gè)部分,引導(dǎo)讀者從零開始構(gòu)建該項(xiàng)目,最終完成一個(gè)前后端分離的單頁面應(yīng)用和基于微服務(wù)架構(gòu)的應(yīng)用。 《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).Net實(shí)踐》圍繞示例項(xiàng)目開發(fā),介紹使用行為驅(qū)動(dòng)開發(fā)輔助領(lǐng)域模型驗(yàn)證、在開發(fā)中進(jìn)行持續(xù)集成、源代碼管理和程序包發(fā)布等技術(shù),還介紹使用成熟的DDD技術(shù)框架進(jìn)行項(xiàng)目開發(fā)的優(yōu)缺點(diǎn),以及系統(tǒng)提升與持續(xù)改進(jìn)過程中需要注意的問題。 《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).Net實(shí)踐》面向?qū)︻I(lǐng)域驅(qū)動(dòng)設(shè)計(jì)感興趣的開發(fā)人員,包括剛?cè)胄械某绦騿T,只要讀者對.Net環(huán)境和C#語言有一定的了解就可以閱讀本書。此外,本書也適合作為高等院校和培訓(xùn)機(jī)構(gòu)相關(guān)專業(yè)的教學(xué)參考書。

作者簡介

  甄鐳,1992年同濟(jì)大學(xué)畢業(yè)獲學(xué)士學(xué)位,1995年北京科技大學(xué)畢業(yè)獲碩士學(xué)位。1996年開始從事企業(yè)信息系統(tǒng)開發(fā)和建設(shè)工作,涉及石化、政務(wù)、汽車制造、機(jī)械制造、電力、房地產(chǎn)等諸多領(lǐng)域。參與過的重大項(xiàng)目包括“金陵石化公司煉油廠NR-CIMS應(yīng)用示范工程”(863科技攻關(guān)計(jì)劃項(xiàng)目)、“全國人大辦公資源信息系統(tǒng)”等。著有《信息系統(tǒng)升級與整合》、《.Net與設(shè)計(jì)模式》

圖書目錄

第1部分  創(chuàng)建領(lǐng)域模型
第1章  領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的概念 2
1.1  軟件的復(fù)雜性 2
1.2  領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)簡介 3
1.2.1  限界上下文 3
1.2.2  戰(zhàn)略設(shè)計(jì) 4
1.2.3  領(lǐng)域模型 5
1.2.4  通用語言 5
1.3  領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)使用中的難點(diǎn) 5
1.3.1  對軟件復(fù)雜性理解的偏差 6
1.3.2  術(shù)語的理解 6
1.3.3  技術(shù)框架問題 7
1.3.4  英語障礙 8
1.4  學(xué)習(xí)和使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的一些體會(huì) 9
1.4.1  理解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的精髓 9
1.4.2  使用“戰(zhàn)略設(shè)計(jì)”規(guī)劃項(xiàng)目 9
1.4.3  在開發(fā)過程中使用“戰(zhàn)術(shù)設(shè)計(jì)” 10
1.4.4  在學(xué)習(xí)中盡量嘗試各種技術(shù),在實(shí)踐中保持簡潔 11
1.4.5  實(shí)事求是,避免將理論當(dāng)作教條 11
1.5  本書概況 11
1.5.1  本書的目標(biāo)和結(jié)構(gòu) 11
1.5.2  為什么選擇.Net 12
1.5.3  本書選擇的示例 12
1.5.4  本書使用的開發(fā)環(huán)境 12
1.5.5  本書中的數(shù)據(jù)和代碼 13
1.6  本章小結(jié) 13
第2章  從零開始構(gòu)建詩詞游戲 14
2.1  需求概述 14
2.2  領(lǐng)域、子域與限界上下文 15
2.3  限界上下文的初步確定 16
2.3.1  用戶認(rèn)證上下文 18
2.3.2  詩詞游戲上下文 19
2.3.3  詩詞服務(wù)上下文 19
2.3.4  游戲管理上下文 19
2.4  限界上下文映射 19
2.4.1  各行其道 20
2.4.2  已發(fā)布語言 20
2.4.3  開放主機(jī)服務(wù) 20
2.4.4  客戶-供應(yīng)商 21
2.4.5  跟隨者 21
2.4.6  防腐層 21
2.4.7  合作方式 21
2.4.8  共享內(nèi)核 22
2.5  詩詞游戲上下文的通用語言 22
2.6  創(chuàng)建第一個(gè)版本 23
2.7  本章小結(jié) 27
第3章  理解領(lǐng)域模型 28
3.1  領(lǐng)域模型概述 28
3.2  實(shí)體 28
3.2.1  實(shí)體的基本概念 29
3.2.2  從業(yè)務(wù)概念中發(fā)現(xiàn)實(shí)體 31
3.2.3  實(shí)體中數(shù)據(jù)的封裝 33
3.2.4  實(shí)體中的方法 35
3.2.5  為什么要避免“貧血”模型 37
3.3  值對象 38
3.3.1  值對象的概念 38
3.3.2  值對象的實(shí)現(xiàn) 39
3.3.3  在模型中使用值對象的好處 41
3.4  聚合和聚合根 42
3.5  存儲(chǔ)庫 43
3.5.1  存儲(chǔ)庫的概念 43
3.5.2  存儲(chǔ)庫接口示例 44
3.5.3  是否可以使用EF Core等技術(shù)代替存儲(chǔ)庫 46
3.5.4  構(gòu)建測試用的存儲(chǔ)庫實(shí)現(xiàn) 46
3.6  領(lǐng)域事件 48
3.6.1  為什么需要領(lǐng)域事件 48
3.6.2  領(lǐng)域事件的概念 49
3.6.3  在項(xiàng)目中增加領(lǐng)域事件 49
3.7  重構(gòu)項(xiàng)目框架 57
3.8  完善詩詞服務(wù) 58
3.9  本章小結(jié) 62
第4章  領(lǐng)域服務(wù)與應(yīng)用服務(wù) 63
4.1  第一個(gè)領(lǐng)域服務(wù) 63
4.2  對游戲進(jìn)行優(yōu)化 65
4.2.1  問題分析 65
4.2.2  設(shè)計(jì)模式的使用 66
4.2.3  解決方案 67
4.3  領(lǐng)域服務(wù)的引入 69
4.4  應(yīng)用服務(wù) 72
4.4.1  創(chuàng)建游戲 73
4.4.2  游戲過程 77
4.5  領(lǐng)域服務(wù)與應(yīng)用服務(wù)的區(qū)別 83
4.6  避免濫用領(lǐng)域服務(wù) 84
4.7  本章小結(jié) 84
第5章  領(lǐng)域模型的驗(yàn)證與演化 85
5.1  領(lǐng)域模型構(gòu)建過程回顧 85
5.2  領(lǐng)域模型設(shè)計(jì)需要注意的幾個(gè)問題 86
5.2.1  學(xué)習(xí)領(lǐng)域知識(shí),充分溝通 86
5.2.2  分析模式與設(shè)計(jì)模式的使用 86
5.2.3  遵守軟件設(shè)計(jì)的一般規(guī)律 86
5.2.4  避免過度抽象 87
5.3  使用測試框架創(chuàng)建驗(yàn)證領(lǐng)域模型的測試用例 87
5.3.1  創(chuàng)建測試項(xiàng)目 87
5.3.2  模擬對象的使用 91
5.3.3  對異常的測試 92
5.4  使用行為驅(qū)動(dòng)設(shè)計(jì)工具SpecFlow驗(yàn)證領(lǐng)域模型 93
5.4.1  行為驅(qū)動(dòng)設(shè)計(jì)與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 94
5.4.2  使用SpecFlow驗(yàn)證領(lǐng)域模型 94
5.5  創(chuàng)建控制臺(tái)應(yīng)用驗(yàn)證領(lǐng)域模型 98
5.6  領(lǐng)域模型發(fā)布 98
5.7  領(lǐng)域模型的演化與持續(xù)集成 102
5.8  本章小結(jié) 103
第6章  創(chuàng)建基于控制臺(tái)的人機(jī)游戲 104
6.1  已完成工作回顧 104
6.2  人機(jī)游戲說明 105
6.3  系統(tǒng)結(jié)構(gòu) 105
6.4  創(chuàng)建應(yīng)用層 106
6.5  模擬機(jī)器人作答 110
6.6  編寫客戶端 114
6.7  需要解決的問題 118
6.7.1  對象創(chuàng)建方式過于復(fù)雜 118
6.7.2  簡單工廠不能滿足擴(kuò)展需求 119
6.7.3  應(yīng)用層沒有隔離領(lǐng)域?qū)?119
6.7.4  其他需要解決的問題 120
6.8  本章小結(jié) 121
第2部分  DDD .Net工具箱
第7章  DDD .Net相關(guān)技術(shù)概述 124
7.1  .Net簡介 124
7.1.1  .Net的發(fā)展簡史 124
7.1.2  .Net的版本 125
7.1.3  .Net的跨平臺(tái)支持 125
7.2  .Net功能 125
7.2.1  異步編程模式 125
7.2.2  特性 126
7.2.3  反射 128
7.2.4  委托 129
7.2.5  事件 131
7.2.6  泛型 132
7.2.7  LINQ 133
7.3  與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)相關(guān)的技術(shù)框架 134
7.3.1  依賴注入框架 134
7.3.2  ORM框架 134
7.3.3  對象映射框架 135
7.3.4  實(shí)時(shí)通信框架 135
7.3.5  進(jìn)程內(nèi)消息框架 135
7.4  本章小結(jié) 136
第8章  依賴倒置原則、控制反轉(zhuǎn)與DDD架構(gòu) 137
8.1  依賴倒置原則 137
8.1.1  概述 137
8.1.2  在設(shè)計(jì)中引入依賴倒置原則 138
8.1.3  設(shè)計(jì)期依賴與運(yùn)行期依賴 140
8.1.4  依賴倒置實(shí)例 143
8.2  控制反轉(zhuǎn) 144
8.2.1  問題的提出 144
8.2.2  理解控制反轉(zhuǎn) 146
8.2.3  IoC容器 146
8.3  架構(gòu)結(jié)構(gòu)的轉(zhuǎn)變 146
8.4  本章小結(jié) 148
第9章  工廠與依賴注入容器 149
9.1  工廠 149
9.1.1  工廠的概念 149
9.1.2  工廠設(shè)計(jì)模式 150
9.2  依賴注入容器 151
9.2.1  問題的提出 152
9.2.2  理解依賴注入 152
9.3  .Net內(nèi)置的依賴注入容器 153
9.3.1  基本使用方法 153
9.3.2  服務(wù)對象的生命周期 153
9.3.3  服務(wù)的注冊方法 154
9.3.4  多個(gè)構(gòu)造函數(shù)的情況 156
9.4  依賴注入容器的使用 156
9.4.1  在控制臺(tái)應(yīng)用中使用依賴注入 156
9.4.2  改造簡單工廠 157
9.4.3  可插拔組件架構(gòu)實(shí)現(xiàn) 159
9.5  使用第三方DI容器滿足高級需求 159
9.5.1  基本使用方法 160
9.5.2  屬性注入 161
9.5.3  使用基于名稱的注入改造工廠 161
9.5.4  程序集注冊 163
9.6  本章小結(jié) 163
第10章  基于關(guān)系數(shù)據(jù)庫的存儲(chǔ)庫實(shí)現(xiàn) 164
10.1  EF Core的基本功能 164
10.2  使用EF Core實(shí)現(xiàn)存儲(chǔ)庫 167
10.2.1  創(chuàng)建PlayerRepository 167
10.2.2  創(chuàng)建GameRepository 170
10.3  EF Core的深入應(yīng)用 173
10.3.1  多數(shù)據(jù)庫類型支持 173
10.3.2  生產(chǎn)環(huán)境的數(shù)據(jù)庫部署 178
10.3.3  數(shù)據(jù)庫生成標(biāo)識(shí) 182
10.3.4  Data Annotations vs Flunt API 183
10.4  在控制臺(tái)應(yīng)用中使用新的存儲(chǔ)庫 184
10.5  使用其他數(shù)據(jù)庫訪問框架實(shí)現(xiàn)存儲(chǔ)庫 185
10.5.1  存儲(chǔ)庫的持久層框架需要滿足的條件 185
10.5.2  Dapper 186
10.5.3  FreeSql 187
10.6  本章小結(jié) 187
第11章  存儲(chǔ)庫與NoSQL數(shù)據(jù)庫 188
11.1  NoSQL數(shù)據(jù)庫概述 188
11.1.1  鍵值對存儲(chǔ)數(shù)據(jù)庫 188
11.1.2  列存儲(chǔ)數(shù)據(jù)庫 188
11.1.3  文檔型數(shù)據(jù)庫 189
11.1.4  Graph數(shù)據(jù)庫 189
11.1.5  實(shí)時(shí)數(shù)據(jù)庫 189
11.2  文檔數(shù)據(jù)庫MongoDB概述 189
11.2.1  MongoDB介紹 189
11.2.2  MongoDB的安裝 190
11.2.3  MongoDB的管理 190
11.2.4  MongoDB的基本概念 191
11.2.5  MongoDB的基本數(shù)據(jù)類型 191
11.3  創(chuàng)建面向MongoDB的存儲(chǔ)庫 192
11.3.1  使用MongoDB.Driver操作MongoDB 192
11.3.2  創(chuàng)建存儲(chǔ)庫 194
11.3.3  使用依賴注入傳入MongoDB數(shù)據(jù)庫訪問對象 200
11.3.4  注意事項(xiàng) 201
11.4  聚合根在MongoDB中存儲(chǔ)與在關(guān)系數(shù)據(jù)庫中存儲(chǔ)的比較 202
11.5  本章小結(jié) 202
第12章  認(rèn)證 203
12.1  基本概念 203
12.2  Asp.Net Core Identity 204
12.2.1  簡介 205
12.2.2  創(chuàng)建使用Identity的Web應(yīng)用 205
12.2.3  集成Identity與詩詞游戲 207
12.2.4  Identity的配置 210
12.2.5  個(gè)性化Identity頁面 212
12.2.6  Identity的使用場景 214
12.3  基于OpenId Connect的認(rèn)證服務(wù) 214
12.3.1  OAuth 2.0、OpenId和OpenId Connect介紹 214
12.3.2  使用Identity Server 4創(chuàng)建用戶管理和認(rèn)證功能 215
12.3.3  使用Identity Server 4保護(hù)Web 應(yīng)用 217
12.3.4  集成Identity Server 4與詩詞游戲 222
12.4  在實(shí)際項(xiàng)目中使用認(rèn)證服務(wù) 222
12.4.1  單點(diǎn)登錄 222
12.4.2  前后端分離的應(yīng)用 223
12.4.3  分布式應(yīng)用 224
12.5  本章小結(jié) 225
第13章  領(lǐng)域事件實(shí)現(xiàn) 226
13.1  領(lǐng)域事件的工作過程 226
13.2  觀察者模式、中介者模式與訂閱/發(fā)布模式 229
13.2.1  觀察者模式 230
13.2.2  中介者模式 231
13.2.3  訂閱/發(fā)布模式 232
13.3  使用MediatR實(shí)現(xiàn)領(lǐng)域事件發(fā)布 233
13.3.1  引入MediatR 233
13.3.2  將領(lǐng)域事件封裝為MediatR消息 233
13.3.3  事件總線實(shí)現(xiàn) 234
13.3.4  事件的接收和處理實(shí)現(xiàn) 237
13.3.5  事件發(fā)布 239
13.4  外部事件發(fā)布與消息中間件 240
13.5  本章小結(jié) 246
第14章  應(yīng)用層開發(fā) 247
14.1  應(yīng)用層概述 247
14.1.1  應(yīng)用服務(wù) 247
14.1.2  數(shù)據(jù)傳輸對象 247
14.1.3  工作單元 248
14.2  應(yīng)用層創(chuàng)建示例 249
14.2.1  控制臺(tái)應(yīng)用與Web應(yīng)用的不同 249
14.2.2  創(chuàng)建新的應(yīng)用層接口 252
14.2.3  應(yīng)用層實(shí)現(xiàn) 255
14.3  創(chuàng)建應(yīng)用層的Web API 257
14.4  引入工作單元 263
14.4.1  工作單元的定義 263
14.4.2  工作單元的實(shí)現(xiàn) 263
14.4.3  工作單元的使用 272
14.5  本章小結(jié) 272
第15章  使用Web API和gRPC實(shí)現(xiàn)限界上下文集成 273
15.1  直接訪問詩詞服務(wù)數(shù)據(jù)庫 273
15.2  使用Web API實(shí)現(xiàn)上下文集成 277
15.2.1  編寫詩詞服務(wù)的Web API 277
15.2.2  編寫訪問Web API的PoemService接口 280
15.2.3  測試Web API和客戶端 281
15.2.4  是否使用RESTful形式的Web API 283
15.3  使用gRPC實(shí)現(xiàn)限界上下文集成 284
15.3.1  RPC與gRPC 284
15.3.2  gRPC對.Net的支持 284
15.3.3  編寫gRPC PoemService服務(wù) 287
15.3.4  編寫gRPC PoemService客戶端 292
15.3.5  編寫驗(yàn)證控制臺(tái)程序 294
15.3.6  編寫gRPC應(yīng)用的其他注意事項(xiàng) 296
15.3.7  gRPC重試策略的配置 297
15.4  本章小結(jié) 298
第16章  使用消息實(shí)現(xiàn)限界上下文集成 299
16.1  限界上下文集成方案 299
16.1.1  消息中間件的使用 299
16.1.2  創(chuàng)建對外發(fā)布消息的接口 300
16.1.3  創(chuàng)建消息接收接口 302
16.1.4  消息接收程序 302
16.2  使用RabbitMQ實(shí)現(xiàn)限界上下文集成 304
16.2.1  編寫消息接收端 304
16.2.2  消息發(fā)布 307
16.2.3  在控制臺(tái)項(xiàng)目中使用配置文件 309
16.2.4  編寫接收端插件 310
16.2.5  RabbitMQ消息類型簡介 312
16.3  使用Kafka實(shí)現(xiàn)限界上下文集成 314
16.3.1  Kafka消息發(fā)送端的編寫 314
16.3.2  Kafka消息接收端的編寫 315
16.4  本章小結(jié) 318
第3部分  構(gòu)建以領(lǐng)域模型為核心的應(yīng)用
第17章  “戰(zhàn)略設(shè)計(jì)”與架構(gòu)選擇 320
17.1  從業(yè)務(wù)出發(fā)規(guī)劃項(xiàng)目架構(gòu) 320
17.1.1  問題的提出 320
17.1.2  戰(zhàn)略設(shè)計(jì)的作用 321
17.1.3  限界上下文之間的架構(gòu) 322
17.2  示例項(xiàng)目的“戰(zhàn)略設(shè)計(jì)” 323
17.2.1  限界上下文的劃分 323
17.2.2  詩詞游戲上下文 323
17.2.3  用戶認(rèn)證上下文 324
17.2.4  詩詞服務(wù)上下文 324
17.2.5  游戲管理上下文 324
17.3  與DDD相關(guān)的架構(gòu)類型 324
17.3.1  分層架構(gòu) 324
17.3.2  六邊形架構(gòu) 324
17.3.3  洋蔥圈架構(gòu) 325
17.3.4  整潔架構(gòu) 326
17.4  使用架構(gòu)描述、設(shè)計(jì)應(yīng)用系統(tǒng) 327
17.4.1  總體架構(gòu) 327
17.4.2  存儲(chǔ)庫 330
17.4.3  領(lǐng)域服務(wù)的擴(kuò)展 331
17.4.4  領(lǐng)域事件發(fā)布 332
17.4.5  與其他限界上下文的集成 333
17.4.6  使用消息實(shí)現(xiàn)與其他限界上下文的集成 335
17.5  架構(gòu)模型的總結(jié) 336
17.6  本章小結(jié) 337
第18章  構(gòu)建Web單體應(yīng)用 338
18.1  單體應(yīng)用概述 338
18.2  需求細(xì)化 338
18.3  系統(tǒng)架構(gòu) 340
18.4  應(yīng)用層 341
18.5  使用SignalR創(chuàng)建實(shí)時(shí)服務(wù) 344
18.5.1  SignalR介紹 344
18.5.2  創(chuàng)建SignalR服務(wù)端 345
18.5.3  創(chuàng)建SignalR的JavaScript客戶端 347
18.5.4  創(chuàng)建Razor頁面 350
18.6  裝配依賴注入服務(wù) 353
18.7  運(yùn)行效果和待解決的問題 354
18.8  本章小結(jié) 357
第19章  構(gòu)建游戲服務(wù) 358
19.1  需求分析 358
19.2  項(xiàng)目搭建 360
19.3  編寫服務(wù)層 360
19.4  SignalR Hub的實(shí)現(xiàn) 365
19.5  定時(shí)器的引入 371
19.6  安全認(rèn)證 374
19.7  使用依賴注入服務(wù)進(jìn)行裝配 377
19.8  本章小結(jié) 378
第20章  單頁面客戶端 379
20.1  需求概述 379
20.2  技術(shù)方案 380
20.2.1  單頁面客戶端在架構(gòu)中的位置 380
20.2.2  關(guān)鍵技術(shù) 381
20.3  前端項(xiàng)目構(gòu)建 383
20.3.1  創(chuàng)建項(xiàng)目 383
20.3.2  使用oidc-client進(jìn)行認(rèn)證 386
20.3.3  訪問游戲服務(wù)的SignalR Hub 388
20.3.4  編寫客戶端邏輯 392
20.4  交互設(shè)計(jì) 393
20.4.1  交互設(shè)計(jì)原則 393
20.4.2  詩詞游戲的交互設(shè)計(jì) 394
20.4.3  運(yùn)行效果 395
20.5  本章小結(jié) 398
第21章  使用.Net構(gòu)建多種類型客戶端 399
21.1  概述 399
21.2  認(rèn)證 400
21.2.1  IdentityModel.OidcClient介紹 400
21.2.2  控制臺(tái)應(yīng)用的認(rèn)證功能實(shí)現(xiàn) 401
21.2.3  WinForm應(yīng)用認(rèn)證功能實(shí)現(xiàn) 403
21.2.4  Android移動(dòng)應(yīng)用的認(rèn)證功能實(shí)現(xiàn) 408
21.3  Web API的訪問 412
21.3.1  使用HttpClient訪問Web API 412
21.3.2  控制臺(tái)應(yīng)用的Web API訪問 412
21.3.3  WinForm的Web API訪問 413
21.3.4  Android應(yīng)用的Web API訪問 414
21.4  SignalR的訪問 415
21.4.1  SignalR的C#客戶端 415
21.4.2  控制臺(tái)應(yīng)用訪問SignalR Hub 416
21.4.3  WinForm訪問SignalR Hub 417
21.4.4  Android App訪問SignalR 418
21.5  客戶端交互模式與應(yīng)用服務(wù) 420
21.6  本章小結(jié) 420
第22章  微服務(wù) 421
22.1  微服務(wù)簡介 421
22.1.1  基本概念 421
22.1.2  微服務(wù)的優(yōu)點(diǎn) 422
22.1.3  使用微服務(wù)的代價(jià) 422
22.1.4  一個(gè)沒有很好設(shè)計(jì)的微服務(wù)示例 423
22.2  微服務(wù)相關(guān)的技術(shù) 423
22.2.1  容器 424
22.2.2  微服務(wù)編排 424
22.2.3  微服務(wù)相關(guān)的其他技術(shù) 424
22.3  使用微服務(wù)架構(gòu)的詩詞游戲 426
22.3.1  需求分析 426
22.3.2  后端實(shí)現(xiàn) 427
22.3.3  前端實(shí)現(xiàn) 431
22.3.4  使用Docker Compose創(chuàng)建容器 433
22.4  容器化部署 437
22.4.1  單頁面前端的容器化部署 437
22.4.2  Asp.Net Core項(xiàng)目的容器化部署 437
22.4.3  基礎(chǔ)設(shè)施的容器化部署 439
22.4.4  詩詞游戲的容器化部署 440
22.4.5  使用反向代理服務(wù)器整合應(yīng)用的各個(gè)部分 441
22.5  持續(xù)集成 443
22.5.1  持續(xù)集成簡介 443
22.5.2  手工集成過程 443
22.5.3  使用Jenkins完成自動(dòng)集成 445
22.6  本章小結(jié) 447
第23章  詩詞服務(wù)數(shù)據(jù)維護(hù)——非DDD技術(shù)的限界上下文 448
23.1  數(shù)據(jù)驅(qū)動(dòng)開發(fā)簡介 448
23.2  詩詞服務(wù)數(shù)據(jù)維護(hù)的開發(fā) 449
23.3  數(shù)據(jù)驅(qū)動(dòng)開發(fā)與DDD的比較 453
23.4  本章小結(jié) 455
第24章  游戲管理上下文的實(shí)現(xiàn)與CQS模式 456
24.1  游戲管理部分的設(shè)計(jì) 456
24.2  游戲管理部分的領(lǐng)域模型 457
24.2.1  領(lǐng)域模型定義 457
24.2.2  存儲(chǔ)庫的實(shí)現(xiàn) 459
24.3  查詢部分設(shè)計(jì) 462
24.3.1  查詢接口 462
24.3.2  查詢實(shí)現(xiàn) 468
24.4  游戲管理服務(wù)設(shè)計(jì) 469
24.5  游戲管理客戶端設(shè)計(jì) 472
24.6  CQRS簡介 473
24.7  本章小結(jié) 474
第25章  使用成熟的DDD技術(shù)框架 475
25.1  ABP和ABP vNext 475
25.1.1  ASP.NET Boilerplate(ABP) 475
25.1.2  ABP vNext 476
25.2  使用ABP vNext開發(fā)項(xiàng)目 476
25.3  使用輔助工具進(jìn)行開發(fā) 478
25.4  使用技術(shù)框架開發(fā)的優(yōu)勢和代價(jià) 479
25.5  如何使用技術(shù)框架 480
25.6  本章小結(jié) 480
第26章  系統(tǒng)提升與持續(xù)改進(jìn) 481
26.1  模型對需求變化的適應(yīng)性 481
26.1.1  游戲類型的增加 481
26.1.2  增加不同數(shù)據(jù)源的游戲類型 483
26.1.3  限制數(shù)據(jù)范圍 484
26.2  軟件升級時(shí)模型的修改 484
26.2.1  挖掘現(xiàn)有模型的潛力 484
26.2.2  引入新的領(lǐng)域概念 486
26.3  使用語音輸入對系統(tǒng)的影響 488
26.4  架構(gòu)的持續(xù)改進(jìn) 488
26.5  本章小結(jié) 491
后記 492
附錄A  本書使用的開發(fā)工具、開發(fā)環(huán)境介紹 494
A.1  Docker 494
A.2  Git 494
A.3  NuGet 495
A.4  xUnit 495
A.5  SpecFlow 495
A.6  MongoDB 495
A.7  MS SQL Server 496
A.8  RabbitMQ 496
A.9  Kafka 497
A.10  Jenkins 500
A.11  Identity Server 4 admin 500
附錄B  參考文獻(xiàn) 509
附錄C  本書代碼說明 511
 

本目錄推薦

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