注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)像C#高手一樣編程

像C#高手一樣編程

像C#高手一樣編程

定 價(jià):¥129.00

作 者: [美]Jort Rodenburg著,毛鴻燁 吳曉梅 譯
出版社: 北京航空航天大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

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

內(nèi)容簡(jiǎn)介

  如果你已經(jīng)精通一些類似于Go、C、JavaScript、Python或其他一些主流編程語言,通過認(rèn)真學(xué)習(xí)本書內(nèi)容,你將能夠編寫完整、地道的C#代碼,如果你已經(jīng)使用過C#,本書將會(huì)“提升”你的C#技能。 無論你是在構(gòu)建面向用戶的業(yè)務(wù)應(yīng)用程序,還是在編寫數(shù)據(jù)密集型的后端服務(wù),本書中基于經(jīng)驗(yàn)的實(shí)用技術(shù)都將把你的C#技能提升到一個(gè)新的水平。本書將教你如何編寫適合企業(yè)應(yīng)用程序的、簡(jiǎn)潔的C#代碼。在本書中,你將應(yīng)用最新的C#技術(shù)重構(gòu)舊的代碼庫,你還將探索Entity Framework Core等工具,學(xué)習(xí)依賴項(xiàng)注入等技術(shù),測(cè)試代碼等實(shí)際應(yīng)用。主要知識(shí)點(diǎn)單元測(cè)試和測(cè)試驅(qū)動(dòng)開發(fā)重構(gòu)代碼庫代碼簡(jiǎn)潔之道使用LINQ和Entity Framework Core查詢和操作數(shù)據(jù)庫

作者簡(jiǎn)介

  Jort Rodenburg是一名專門從事C#的軟件工程師,他為許多領(lǐng)域的應(yīng)用構(gòu)建軟件。同時(shí),Jort還是一名教授,他指導(dǎo)并教授面向?qū)ο缶幊痰恼n程,以幫助開發(fā)人員掌握C#和.NET。

圖書目錄

第1部分使用C#和 .NET第1章C#和.NET相關(guān)概念及使用說明3
1.1 C#的優(yōu)勢(shì)4
1.1.1 C#的經(jīng)濟(jì)性5
1.1.2 C#的可維護(hù)性5
1.1.3C#的易于操作性6
1.2為什么有時(shí)不使用C#7
1.2.1操作系統(tǒng)開發(fā)7
1.2.2嵌入式開發(fā)7
1.2.3數(shù)值計(jì)算8
1.3C#使用入門8
1.4本書涉及C#的主要內(nèi)容10
1.5本書不涉及的C#的內(nèi)容11
1.6總結(jié)12
第2章.NET及其編譯13
2.1.NET框架14
2.2.NET514
2.3兼容CLI的語言的編譯15
2.3.1C#代碼(高級(jí)語言)的編譯17
2.3.2通用中間語言(匯編層)的編譯19
2.3.3本地代碼(處理器層)的處理26
2.4練習(xí)27
2.5總結(jié)28
第2部分現(xiàn)有代碼庫第3章這個(gè)代碼有多糟糕33
3.1飛翔荷蘭人航空公司簡(jiǎn)介34
3.2應(yīng)用代碼庫的基本要求35
3.2.1映射對(duì)象關(guān)系35
3.2.2GET/flight 終端地址——檢索所有航班的信息36
3.2.3GET/flight/ 終端地址——獲取特定航班信息37
3.2.4POST/booking/終端地址——預(yù)定航班38
3.3保存部分現(xiàn)有代碼40
3.3.1評(píng)估現(xiàn)有數(shù)據(jù)庫架構(gòu)及數(shù)據(jù)表40
3.3.2現(xiàn)有代碼庫的網(wǎng)絡(luò)服務(wù)配置文件41
3.3.3查看現(xiàn)有代碼庫中的模型和視圖47
3.4總結(jié)54
第4章非托管資源管理55
4.1FlightController——GET/flight56
4.1.1GET/flight終端地址以及它的功能56
4.1.2方法簽名——響應(yīng)類型的含義和typeof58
4.1.3使用集合收集航班信息60
4.1.4使用連接字符串的弊端61
4.1.5使用IDisposable釋放托管資源61
4.1.6使用SqlCommand查詢數(shù)據(jù)庫63
4.2FlightController: GET/flight/{flightNumber}66
4.3FlightController: POST/flight69
4.4The FlightController: DELETE/flight/{flightNumber}74
4.5練習(xí)75
4.6總結(jié)76
目錄像C#高手一樣編程第3部分?jǐn)?shù)據(jù)庫訪問層第5章使用Entity Framework Core設(shè)置項(xiàng)目和數(shù)據(jù)庫79
5.1創(chuàng)建.NET5解決方案和項(xiàng)目80
5.2設(shè)置和配置網(wǎng)絡(luò)服務(wù)84
5.2.1配置一個(gè).NET5網(wǎng)絡(luò)服務(wù)84
5.2.2創(chuàng)建和使用HostBuilder86
5.2.3創(chuàng)建Startup文件89
5.2.4使用存儲(chǔ)/服務(wù)模式作為網(wǎng)絡(luò)服務(wù)架構(gòu)92
5.3構(gòu)建數(shù)據(jù)庫訪問層93
5.3.1Entity Framework Core和逆向94
5.3.2DbSet和Entity Framework Core工作流程96
5.3.3配置方法和環(huán)境變量97
5.3.4Windows中環(huán)境變量設(shè)置98
5.3.5macOS中環(huán)境變量設(shè)置99
5.3.6通過代碼檢索運(yùn)行環(huán)境變量99
5.4練習(xí)102
5.5總結(jié)103
第4部分存儲(chǔ)層第6章測(cè)試驅(qū)動(dòng)開發(fā)和依賴注入107
6.1測(cè)試驅(qū)動(dòng)開發(fā)108
6.2CreateCustomer方法112
6.2.1驗(yàn)證輸入?yún)?shù)113
6.2.2使用arrange、act和assert流程編寫單元測(cè)試114
6.2.3無效字符的驗(yàn)證115
6.2.4具有[DataRow]屬性的內(nèi)聯(lián)測(cè)試117
6.2.5對(duì)象初始化器和自動(dòng)生成代碼118
6.2.6構(gòu)造器、反射和異步編程120
6.2.7lock鎖、mutex互斥鎖和semaphore信號(hào)量122
6.2.8同步執(zhí)行轉(zhuǎn)換到異步執(zhí)行123
6.2.9Entity Framework Core測(cè)試124
6.2.10依賴注入控制依賴關(guān)系的使用126
6.3練習(xí)132
6.4總結(jié)133
第7章對(duì)象比較134
7.1GetCustomerByName方法135
7.1.1可空類型及其應(yīng)用137
7.1.2LINQ和擴(kuò)展方法137
7.2C#的由來142
7.2.1應(yīng)用EqualityComparer創(chuàng)建“比較器”類144
7.2.2覆蓋Equals測(cè)試等價(jià)性146
7.2.3重載等價(jià)運(yùn)算符147
7.3練習(xí)150
7.4總結(jié)151
第8章stub泛型和耦合153
8.1Booking存儲(chǔ)庫的實(shí)現(xiàn)154
8.2關(guān)注點(diǎn)分離與耦合156
8.3對(duì)象初始化器的使用160
8.4stub單元測(cè)試的使用163
8.5泛型編程的使用167
8.6使用可選參數(shù)提供默認(rèn)參數(shù)169
8.7條件語句、Func和switch表達(dá)式171
8.7.1三元條件運(yùn)算符171
8.7.2使用函數(shù)數(shù)組進(jìn)行分支172
8.7.3switch語句和表達(dá)式173
8.7.4Entity Framework Core中的待處理更改查詢174
8.8練習(xí)177
8.9總結(jié)179
第9章擴(kuò)展方法、流和抽象類181
9.1Airport存儲(chǔ)庫的實(shí)現(xiàn)182
9.2Airport對(duì)象的獲取——通過機(jī)場(chǎng)ID數(shù)據(jù)庫183
9.3AirportID輸入?yún)?shù)的驗(yàn)證185
9.4輸出流186
9.5Airport對(duì)象的獲取——通過數(shù)據(jù)庫查詢191
9.6Flight存儲(chǔ)庫的實(shí)現(xiàn)199
9.6.1IsPositive擴(kuò)展方法和“魔法數(shù)字”201
9.6.2數(shù)據(jù)庫中航班的獲取206
9.7練習(xí)209
9.8總結(jié)210
第5部分服務(wù)層第10章反射和模擬213
10.1回顧存儲(chǔ)/服務(wù)模式214
10.1.1服務(wù)類的用途是什么?215
10.2實(shí)現(xiàn)CustomerService216
10.2.1為成功做準(zhǔn)備——創(chuàng)建類骨架216
10.2.2刪除自己代碼的方法217
10.3BookingService的實(shí)現(xiàn)219
10.3.1跨架構(gòu)層的單元測(cè)試223
10.3.2stub和mock的區(qū)別224
10.3.3Moq庫模擬類的使用225
10.3.4存儲(chǔ)庫調(diào)用231
10.4練習(xí)233
10.5總結(jié)236
第11章運(yùn)行類型檢查回顧和錯(cuò)誤處理237
11.1驗(yàn)證服務(wù)層方法的輸入?yún)?shù)238
11.1.1is和as運(yùn)算符的運(yùn)行類型檢查241
11.1.2is運(yùn)算符的類型檢查242
11.1.3as運(yùn)算符的類型檢查243
11.1.4驗(yàn)證服務(wù)層方法總結(jié)244
11.2BookingServiceTests類清理244
11.3服務(wù)類中的外鍵約束247
11.3.1Flight存儲(chǔ)庫的調(diào)用248
11.4練習(xí)260
11.5總結(jié)261
第12章IAsyncEnumerable和yield return的使用262
12.1程序需要AirportService類嗎?263
12.2FlightService類的實(shí)現(xiàn)264
12.2.1通過FlightRepository獲取特定航班信息264
12.2.2數(shù)據(jù)流視圖組合268
12.2.3trycatch代碼塊與yield return使用276
12.2.4GetFlightByFlightNumber的實(shí)現(xiàn)281
12.3練習(xí)287
12.4總結(jié)288
第6部分控制器層第13章中間件、HTTP路由以及其響應(yīng)293
13.1存儲(chǔ)/服務(wù)模式中的控制器類294
13.2決定要實(shí)現(xiàn)的控制器類別296
13.3FlightController的實(shí)現(xiàn)297
13.3.1HTTP響應(yīng)(GetFlights)的返回298
13.3.2使用中間件將依賴項(xiàng)注入控制器301
13.3.3GET/Flight/{FlightNumber}終端地址實(shí)現(xiàn)310
13.4將HTTP請(qǐng)求路由至控制器和方法314
13.5練習(xí)319
13.6總結(jié)320
第14章 JSON序列化/反序列化以及自定義模型的綁定321
14.1BookingController類的實(shí)現(xiàn)322
14.1.1數(shù)據(jù)反序列化簡(jiǎn)介323
14.1.2使用[FromBody]特性反序列化傳入的HTTP數(shù)據(jù)327
14.1.3自定義模型綁定器及其對(duì)應(yīng)方法特性的使用328
14.1.4CreateBooking終端地址方法邏輯的實(shí)現(xiàn)332
14.2驗(yàn)收測(cè)試及添加Swagger中間件337
14.2.1OpenAPI的手動(dòng)驗(yàn)收測(cè)試338
14.2.2生成OpenAPI規(guī)范342
14.3結(jié)束語348
14.4總結(jié)348
附錄A練習(xí)答案349
附錄B整潔代碼檢查表355
附錄C安裝指南357
附錄DOpenAPI360
附錄E閱讀列表363

本目錄推薦

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