欢迎光临本店     登录 注册   加入收藏
  •   
欢迎光临清华大学出版社第三事业部!

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

当前位置: 首页 > 科技 > 计算机与网络 > 修炼之道:.NET开发要点精讲

浏览历史

修炼之道:.NET开发要点精讲

修炼之道:.NET开发要点精讲

prev next

  • 商品货号:20150423007
  • 所属系列:计算机网络—程序设计
    商品重量:0克
    作者:周见智,博图轩
    出版社:清华大学出版社
    图书书号/ISBN:9787302393306
    出版日期:2015年5月
    开本:16开
    图书页数:320
    图书装订:平装
    图书规格:185mm×240mm
    版次:1-1
    印张:20
    字数:446千字
  • 上架时间:2015-04-23
    商品点击数:1090
  • 定价:¥49.00元
    本店售价:¥49.00元
    注册用户:¥49.00元
    vip:¥46.55元
    黄金等级:¥44.10元
    用户评价: comment rank 5
  • 商品总价:
  • 购买数量:

内容简介:

商品附加资源

内 容 简 介
这是一本注重实际开发、接地气的.NET技术书籍。作者结合多年的开发经验,用通俗易懂的语言,深入浅出地讲解在.NET实际开发工作中的实用知识点。全书分为基础篇和设计篇两大部分。在基础篇,解释了“原子操作”、“阻塞方法与非阻塞方法”、“框架与库”、“调用与回调”等术语,重点阐述.NET开发的三大基础知识点:数据类型、对象的生命期以及委托与事件。在设计篇,主要讲解“泵”结构在一些主流框架中的应用,以及它在Socket网络编程、Web服务器开发等实际项目中起到的关键作用;并从软件设计模式、软件设计原则以及代码依赖3个方面,对软件架构进行了深入浅出的阐释。
本书适合已经入门且有一定编程经验并准备向高手迈进的.NET开发者。本书同时也可作为大中专院校和.NET技术培训机构的参考教材。
 
前   言
“勤于总结”一直都是学习的最好方式之一,学习编程也一样,总结的过程会促使你持续不断地思考,从一个知识点向另一个知识点扩散,对于之前已经了解的知识,你会理解得更加深刻,而对于那些在总结过程中又触发到的新知识,也是一种额外的收获。笔者对此深有体会,一个不会总结的技术开发者是难以成为一名优秀的程序员的。笔者习惯将工作中的技术心得记录在自己的博客中,本书便是笔者从事.NET开发多年来记录在博客中的一些技术总结,经过重新整理、发掘和完善,便形成了本书。希望这些技术总结能够给.NET开发者带来一些帮助。
1.本书特色
.NET技术有着广泛的应用范畴,从Windows 桌面应用,到ASP.NET Web应用,到WCF分布式应用,到Windows Mobile嵌入式应用,到Windows Phone移动应用,到ADO.NET数据库应用,到XML Web Service,.NET无处不在。因此,现在市面上关于.NET开发的书籍可谓之多,但笔者在本书中没有介绍一些平时几乎用不到的高深莫测的技术,如代码安全性或者IL语言这些底层的内容,也避免介绍一些简单的基础内容,例如类型的声明、语法、开发环境或者关键字的介绍等。本书总结了笔者认为在实际 .NET开发工作中比较实用的知识点,如解释了诸如“原子操作”、“阻塞方法与非阻塞方法”、“框架与库”、“调用与回调”等这些常见但没有标准定义的编程术语;重点阐述了.NET开发的三大基础知识点:数据类型、对象的生命期以及委托与事件;详细介绍了“泵”结构在一些主流框架诸如Windows桌面GUI框架中的应用,以及它在Socket网络编程、Web服务器开发等实际项目开发中起到的关键作用;此外在软件架构方面,本书分别从软件设计模式、软件设计原则以及代码依赖3个方面也一一进行了说明。总之,这是一本注重实际开发、接地气的 .NET技术书籍。
2.读者对象
本书适合已经入门,有一定编程经验并准备向高手迈进的 .NET开发者,包括以下人员:
.NET工程师
在校计算机相关专业 .NET方向大学生
从其他面向对象语言转向学习 .NET编程的开发者
3.主要内容
全书共分12章。第1~7章为基础篇,分别涉及 .NET平台介绍、编程术语解释、数据类型、对象生命期、委托与事件、异步编程以及 .NET中的组件;第8~12章为设计篇,主要介绍代码中的“泵”结构、软件设计模式、软件设计原则以及代码依赖。其中第8章和第9章主要是为了引入代码中“泵”的概念,为第10章讲“泵”结构做铺垫。各章的主要内容简述如下。
第1章主要讲述 .NET平台的组成,强调 .NET平台出现的意义是改善了传统Windows的开发模式,而非专门提供一个跨平台的开发支持。
第2章是笔者从这几年的工作经历中总结出来的有关 .NET编程的一些经验,对 .NET实际开发工作有所帮助。
第3章介绍 .NET编程的基础,即数据类型。笔者分别从值类型与引用类型的内存分配、赋值与复制以及对象判等方面进行了说明。
第4章讲述 .NET对象的“从生到死”,以及怎样管理好对象的非托管资源,最后提出正确实现Dispose模式的方法,并说明为什么Dispose一个对象并不代表该对象死亡。
第5章讲述委托的结构以及它在 .NET编程中的重要地位。程序的执行过程就是方法的调用过程,委托作为调用方法的一种手段,贯穿着整个 .NET编程领域,之后说明 .NET中事件与委托的关系,并且提到了事件编程的标准规范。
第6章讲述“异步编程模型”,阐述异步编程的必要性,介绍怎样使用委托去异步调用一个方法,以及异步编程过程中需要注意的一些事项,比如跨线程访问、线程安全等。
第7章介绍 .NET编程中组件的定义,以及组件存在的意义。还介绍了“容器-组件-服务模型”,并提到一般集成开发环境(如Visual Studio)中窗体设计器的原理,之后介绍组件的两种状态:运行时和设计时,以及区分组件当前状态的方法。
第8章主要重温了经典桌面GUI框架,并介绍 “Windows消息”、“消息泵”以及“窗口过程”等概念,本章引入了代码中的“泵”的概念。
第9章介绍两种Socket网络通信模式,即TCP通信与UDP通信,并强调了“泵”结构在网络通信中的应用。
第10章介绍“泵”结构的几个常见应用场景,如Socket通信、桌面GUI框架以及Web服务器的实现等。
第11章介绍软件开发中的设计模式与设计原则。
第12章讲述代码依赖不可完全避免的原因、负面影响以及如何降低代码依赖程度。
4.关于注释与配图
本书配备了大量的图解和代码。为了让读者更好地理解示例代码和配图,笔者在每段代码和配图下面都加上了详细的中文说明文字。因此书中所示代码均为“说明性”代码,并不确保能在编译器中编译通过,代码语言为C#,默认 .NET版本为 .NET Framework 3.5,但笔者认为本书所讲到的内容受 .NET版本及其语言限制对代码影响不大。另外书中以“注”字开头的提示性文字更值得阅读,很多都是笔者认为值得注意的地方。
本书源代码下载地址为http://www.cnblogs.com/cbook/p/3908393.html
5.勘误与支持
本书由周见智、博图轩编著,参与本书编写的还有邓世健、赵晓芳、万建邦、刘耀宗。读者QQ群为440170769,这里将随时发布与本书有关的信息。
由于笔者水平有限,书中难免会出现一些错漏,对此恳请各位读者多提宝贵意见,以便本书再版时能予以修正,意见可发送至邮箱zhouzhi@syxysoft.com与笔者探讨。同时可以访问作者博客:http://www.cnblogs.com/xiaozhi_5638,微博:http://weibo.com/netproduct
编  者 

目  录
第1章  另辟蹊径:解读.NET 1
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  重新看待.NET 12
1.5  .NET平台出现的意义 12
1.6  本章回顾 14
1.7  本章思考 14
第2章  高屋建瓴:梳理编程约定 15
2.1  代码中的Client与Server 16
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与EndInvoke 126
6.2.2  AsyncCallback 128
6.2.3  处理异步调用时的异常 131
6.2.4  异步调用的应用 132
6.3  非委托的异步调用 134
6.3.1  异步方法 134
6.3.2  FileStream.BeginRead/FileStream.BeginWrite 136
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

商品标签

购买记录(近期成交数量0)

还没有人购买过此商品
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha