注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計C/C++及其相關像C#高手一樣編程

像C#高手一樣編程

像C#高手一樣編程

定 價:¥129.00

作 者: [美]Jort Rodenburg著,毛鴻燁 吳曉梅 譯
出版社: 北京航空航天大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


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

內容簡介

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

作者簡介

  Jort Rodenburg是一名專門從事C#的軟件工程師,他為許多領域的應用構建軟件。同時,Jort還是一名教授,他指導并教授面向對象編程的課程,以幫助開發(fā)人員掌握C#和.NET。

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號