C# 編程魔法書
內容描述
以兩個綜合案例貫穿全書,從語法到多線程/並行編程,
從簡單開發到分佈式系統,示例代碼均為實戰所需,可拿來即用。
《C#編程魔法書》共8章,涵蓋以下知識點。
如何在Windows與Linux平台安裝和使用.NET框架。
常用.NET框架的基本類庫,以及一些基本的文件處理、編碼國際化等內容。
以封裝交易所接口為例,講解面向對象、依賴注入等常見的編程思想。
反射技術、代碼生成和C#對動態語言的支持。
C#讀寫數據庫,特別是從代碼反向生成數據庫,
以及版本迭代中自動對數據庫結構執行升級、降級操作。
基於多線程版的高頻交易程序介紹多線程編程、同步機制、無鎖編程等。
並行編程的技巧及其與多線程編程的異同。
利用消息隊列進行簡單的分佈式處理,
並通過一個交易所撮合引擎案例介紹分佈式編程的基本技巧。
目錄大綱
目錄
前言
第1章 快速認識C#
1.1 創建helloworld
1.1.1 使用文本編輯器和命令行編譯器創建
1.1.2 使用Visual Studio Community創建
1.1.3 helloworld源碼解讀
1.1.4 C#腳本語言
1.2 C#語言特性
1.3 C#與.NET框架
1.4 多操作系統支持
1.4.1 在Ubuntu 14.04上安裝和使用.NET Core
1.4.2 跨平台運行.NET Core程序
1.4.3 在Ubuntu 14.04上安裝和使用Mono
1.5 本章小結
第2章 C#編程基礎
2.1 字符串操作
2.1.1 格式化字符串輸出
2.1.2 $符號:字符串內插
2.1.3 字符串比較
2.1.4 修改字符串
2.1.5 字符編碼
2.2 正則表達式
2.2.1 構造分組
2.2.2 反向引用
2.2.3 替換
2.3 訪問文件
2.3.1 文件和文件夾基本操作
2.3.2 流處理
2.3.3 管道
2.3.4 內存映射文件
2.4 編碼國際化
2.5 時間和日期
2.6 本章小結
第3章 C#面向對象編程
3.1 面向對象
3.1.1 RESTful編程
3.1.2 WebSocket編程
3.1.3 面向對象封裝
3.1.4 使用接口
3.1.5 使用繼承
3.2 讀寫日誌
3.2.1 使用Debug和Trace記錄日誌
3.2.2 使用第三方日誌庫記錄日誌
3.2.3 使用Microsoft.Extension.Logging記錄日誌
3.2.4 記錄日誌的推薦方法
3.3 依賴注入
3.4 配置文件
3.4.1 .NET框架配置文件
3.4.2 .NET Core配置文件
3.5 程序案例
3.6 本章小結
第4章 反射與動態編程
4.1 反射
4.1.1 獲取類型信息
4.1.2 動態加載
4.1.3 序列化
4.1.4 使用特性
4.1.5 版本控制
4.2 代碼生成和動態執行
4.2.1 CodeDOM生成源碼
4.2.2 Reflection.Emit
4.2.3 IL語言
4.2.4 多模塊組裝件
4.3 dynamic關鍵字
4.4 動態語言運行時
4.4.1 IronPython
4.4.2 DLR
4.5 本章小結
第5章 數據處理編程
5.1 ADO.NET
5.1.1 使用ODBC連接數據源
5.1.2 在線讀寫數據
5.2 Lambda和LINQ
5.2.1 匿名方法和Lambda表達式
5.2.2 本地方法
5.3 LINQ
5.3.1 LINQ to Object
5.3.2 LINQ to SQL和Entity Framework Core
5.3.3 LINQ部分源碼解讀
5.3.4 可空引用類型
5.4 Entity Framework
5.4.1 使用EF Code First構建和映射數據庫
5.4.2 使用EF遷移數據庫
5.4.3 EF對關係的映射
5.4.4 EF的性能考量
5.5 本章小結
第6章 多線程編程
6.1 多線程編程基礎
6.1.1 創建和使用多線程
6.1.2 使用線程池
6.2 多線程同步
6.2.1 阻塞式等待
6.2.2 鎖
6.2.3 信號
6.2.4 屏障
6.3 主動取消等待
6.3.1 在線程中主動響應取消請求
6.3.2 統一的取消任務等待操作
6.4 其他多線程元素
6.4.1 Lazy
6.4.2 線程本地存儲
6.4.3 定時器
6.5 無鎖編程
6.5.1 內存屏障和volatile關鍵字
6.5.2 使用無鎖編程
6.6 本章小結
第7章 並行編程
7.1 並行編程基礎
7.1.1 使用Task類型實現並行
7.1.2 使用Parallel.For實現並行
7.2 硬件特性
7.2.1 內存訪問順序
7.2.2 偽共享
7.3 基於數據並行
7.3.1 Parallel.For和Parallel.ForEach
7.3.2 跳出循環
7.4 基於任務的並行
7.4.1 網絡異步編程的適用場景
7.4.2 使用連續任務
7.4.3 Thread.Sleep和Task.Delay的區別
7.5 async和await關鍵字
7.5.1 使用async和await異步編程
7.5.2 使用狀態機實現async方法
7.5.3 async方法實現機制
7.5.4 擴展async方法
7.5.5 async方法執行上下文
7.6 函數式編程
7.6.1 函數式編程簡介
7.6.2 高階方法
7.6.3 偏函數應用
7.6.4 柯里化方法
7.6.5 數據封裝
7.6.6 錯誤處理
7.6.7 模式匹配
7.7 本章小結
第8章 分佈式編程
8.1 C#對分佈式編程的支持
8.1.1 Web服務技術
8.1.2 Remoting技術
8.1.3 RESTful API
8.1.4 gRPC
8.2 分佈式系統舉例
8.2.1 消息隊列
8.2.2 ZeroMQ
8.2.3 系統架構
8.2.4 交易所各模塊
8.2.5 測試交易所繫統
8.3 本章小結
作者介紹
資深軟件工程師和測試工程師,擁有近10年軟件行業從業經驗,精通iOS、Android以及Windows Phone應用程序調試、測試技術。
曾經為NET Developer Platform部分框架代碼的提供測試服務,團隊負責的微軟開發框架產品有:
CLR, NET BCL, WPF, Silverlight, ASPNET, NET兼容性測試。