注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計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)有代碼庫的網(wǎng)絡服務配置文件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設置和配置網(wǎng)絡服務84
5.2.1配置一個.NET5網(wǎng)絡服務84
5.2.2創(chuàng)建和使用HostBuilder86
5.2.3創(chuàng)建Startup文件89
5.2.4使用存儲/服務模式作為網(wǎng)絡服務架構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驗證輸入?yún)?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輸入?yún)?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驗證服務層方法的輸入?yún)?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 ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號