图书介绍

修炼之道 .NET开发要点精讲PDF|Epub|txt|kindle电子书版本下载

修炼之道 .NET开发要点精讲
  • 周见智,博图轩编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302393306
  • 出版时间:2015
  • 标注页数:307页
  • 文件大小:43MB
  • 文件页数:319页
  • 主题词:计算机网络-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

修炼之道 .NET开发要点精讲PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 另辟蹊径:解读.NET1

1.1 前.NET时代2

1.2 .NET的组成3

1.2.1 .NET中的语言4

1.2.2 .NET中的框架库5

1.2.3 公共类型系统5

1.2.4 公共语言规范5

1.2.5 公共语言运行时6

1.2.6 .NET程序的运行流程7

1.3 .NET中的程序集8

1.3.1 程序集与EXE文件的区别8

1.3.2 程序集的组成9

1.3.3 程序集的特点10

1.4 .NET的跨平台10

1.4.1 Write Once,Run Anywhere的真实现状10

1.4.2 .NET与Java平台出现的目的11

1.4.3 重新看待.NET12

1.5 .NET平台出现的意义12

1.6 本章回顾14

1.7 本章思考14

第2章 高屋建瓴:梳理编程约定15

2.1 代码中的Client与Server16

2.2 方法与线程的关系17

2.3 调用线程与当前线程19

2.4 阻塞方法与非阻塞方法20

2.5 UI线程与线程21

2.6 原子操作22

2.7 线程安全22

2.8 调用与回调26

2.9 托管资源与非托管资源27

2.10 框架与库28

2.11 面向(或基于)对象与面向(或基于)组件29

2.12 接口30

2.13 协议32

2.14 本章回顾36

2.15 本章思考36

第3章 编程之基础:数据类型37

3.1 引用类型与值类型38

3.1.1 内存分配39

3.1.2 字节序41

3.1.3 装箱与拆箱42

3.2 对象相等判断43

3.2.1 引用类型判等43

3.2.2 简单值类型判等44

3.2.3 复合值类型判等45

3.3 赋值与复制48

3.3.1 引用类型赋值48

3.3.2 值类型赋值49

3.3.3 传参50

3.3.4 浅复制53

3.3.5 深复制55

3.4 对象的不可改变性59

3.4.1 不可改变性定义59

3.4.2 定义不可改变类型60

3.5 本章回顾62

3.6 本章思考62

第4章 物以类聚:对象也有生命65

4.1 堆和栈66

4.2 堆中对象的出生与死亡69

4.2.1 引用和实例69

4.2.2 析构方法71

4.2.3 正确使用对象73

4.3 管理非托管资源75

4.3.1 释放非托管资源的最佳时间75

4.3.2 继承与组合中的非托管资源77

4.4 正确使用IDisposable接口82

4.4.1 Dispose模式83

4.4.2 对象的Dispose()和Close()87

4.5 本章回顾88

4.6 本章思考88

第5章 重中之重:委托与事件91

5.1 什么是.NET中的委托92

5.1.1 委托的结构92

5.1.2 委托链表95

5.1.3 委托的“不可改变”特性101

5.1.4 委托的作用103

5.2 事件与委托的关系105

5.3 使用事件编程107

5.3.1 注销跟注册事件同样重要107

5.3.2 多线程中使用事件107

5.3.3 委托链表的分步调用109

5.3.4 正确定义一个使用了事件的类111

5.4 弱委托116

5.4.1 强引用与弱引用116

5.4.2 弱委托的定义119

5.4.3 弱委托的使用场合121

5.5 本章回顾121

5.6 本章思考122

第6章 线程的升级:异步编程模型123

6.1 异步编程的必要性124

6.1.1 同步调用与异步调用124

6.1.2 异步调用的优点125

6.2 委托的异步调用126

6.2.1 BeginInvoke与EndInvoke126

6.2.2 AsyncCallback128

6.2.3 处理异步调用时的异常131

6.2.4 异步调用的应用132

6.3 非委托的异步调用134

6.3.1 异步方法134

6.3.2 FileStream.BeginRead/FileStream.BeginWrite136

6.4 异步编程时的注意事项137

6.5 本章回顾138

6.6 本章思考138

第7章 可复用代码:组件的来龙去脉141

7.1 .NET中的组件142

7.1.1 组件的定义142

7.1.2 Windows Forms 中的组件142

7.1.3 Windows Forms中的控件143

7.2 容器-组件-服务模型144

7.2.1 容器的另类定义144

7.2.2 容器与组件的合作145

7.2.3 窗体设计器150

7.3 设计时与运行时154

7.3.1 组件的设计时与运行时154

7.3.2 区分组件的当前状态155

7.3.3 组件状态的应用157

7.4 控件157

7.4.1 控件基类157

7.4.2 用户自定义控件158

7.5 本章回顾160

7.6 本章思考160

第8章 经典重视:桌面GUI框架揭秘163

8.1 了解传统Win32应用程序的必要性164

8.2 Win32应用程序的结构165

8.2.1 运行平台决定程序结构165

8.2.2 Windows消息循环167

8.2.3 窗口过程169

8.2.4 创建基于Win32的单窗体应用程序171

8.2.5 创建基于Win32的多窗体应用程序178

8.3 .NET Winform程序与传统Win32程序的关联184

8.4 Windows Forms框架184

8.5 Winform程序的结构187

8.5.1 UI线程188

8.5.2 消息循环189

8.5.3 创建窗体195

8.5.4 窗口过程197

8.6 模式窗体与非模式窗体200

8.7 本章回顾205

8.8 本章思考205

第9章 沟通无碍:网络编程207

9.1 两种Socket通信方式208

9.1.1 IP与端口208

9.1.2 基于连接的TCP通信209

9.1.3 基于无连接的UDP通信211

9.1.4 应用层协议212

9.1.5 .NET中Socket编程的相关类型215

9.2 TCP通信的实现217

9.2.1 定义TCP通信应用层协议218

9.2.2 编写TCP通信服务端219

9.2.3 编写TCP通信客户端225

9.3 UDP通信的实现227

9.3.1 定义UDP通信应用层协议228

9.3.2 编写UDP通信客户端229

9.4 异步编程在网络编程中的应用235

9.4.1 异步发送数据237

9.4.2 异步实现“泵”结构238

9.5 本章回顾241

9.6 本章思考241

第10章 动力之源:代码中的“泵”243

10.1 “泵”的概念244

10.1.1 现实生活中的“泵”244

10.1.2 代码中的“泵”245

10.1.3 代码中“泵”的作用247

10.2 常见的“泵”结构249

10.2.1 桌面GUI框架中的“泵”249

10.2.2 Socket通信中的“泵”250

10.2.3 Web服务器中的“泵”251

10.3 “泵”对框架的意义258

10.3.1 重新回到框架定义258

10.3.2 框架离不开“泵”258

10.4 本章回顾259

10.5 本章思考259

第11章 规绳矩墨:模式与原则261

11.1 软件的设计模式262

11.1.1 观察者模式262

11.1.2 Windows Forms中的观察者模式265

11.1.3 设计模式分类267

11.2 软件的设计原则267

11.2.1 SOLID原则概述267

11.2.2 单一职责原则268

11.2.3 开闭原则270

11.2.4 里氏替换原则272

11.2.5 接口隔离原则275

11.2.6 依赖倒置原则276

11.3 设计模式与设计原则对框架的意义278

11.4 本章回顾279

11.5 本章思考279

第12章 难免的尴尬:代码依赖281

12.1 从面向对象开始282

12.1.1 对象基础:封装282

12.1.2 对象扩展:继承286

12.1.3 对象行为:多态289

12.2 不可避免的代码依赖292

12.2.1 依赖存在的原因292

12.2.2 耦合与内聚294

12.2.3 依赖造成的“尴尬”295

12.3 降低代码依赖297

12.3.1 认识“抽象”与“具体”297

12.3.2 再看“依赖倒置原则”299

12.3.3 依赖注入302

12.4 框架的“代码依赖”305

12.4.1 控制转换305

12.4.2 依赖注入对框架的意义306

12.5 本章回顾306

12.6 本章思考306

热门推荐