《CLR via C#(第4版)》针对CLR和.NET Framework 4.5进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。全书5部分共29章。第Ⅰ部分介绍CLR基础,第Ⅱ部分解释如何设计类型,第Ⅲ部分介绍基本类型,第Ⅳ部分以核心机制为主题,第Ⅴ部分重点介绍线程处理。
通过本书的阅读,读者可以掌握CLR和.NET Framework的精髓,轻松、高效地创建高性能应用程序。
© 2014 Tsinghua University Press Limited
Authorized translation of the English edition of Microsoft CLR via C#, 4th Edition.
Copyright © 2012 by Jeffrey Richter. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls of all rights to publish and sell the same.
本书中文版由O'Reilly Media, Inc.授权给清华大学出版社出版发行,未经出版者许可,不得以任何方式复制或抄袭本书的任何部分。
1999年10月,Microsoft的一些人首次向我展示了Microsoft .NET Framework、公共语言运行时(CLR)和C#编程语言。看到这一切时,我惊呆了,我知道我写软件的方式要发生非常大的变化了。他们请我为团队做一些顾问工作,我当即同意了。刚开始,我以为.NET Framework是Win32 API和COM上的一个抽象层。但随着我投入越来越多的时间研究,我意识到它是一个更宏伟的项目。某种程度上,它是自己的操作系统。有自己的内存管理器,自己的安全系统,自己的文件加载器,自己的错误处理机制,自己的应用程序隔离边界(AppDomain)、自己的线程处理模型等。本书解释了所有这些主题,帮你为这个平台高效地设计和实现应用程序和组件。
我写这本书是2012年10月,距离首次接触.NET Framework和C#正好13年。13年来, 我以Microsoft顾问身份开发过各式各样的应用程序,为.NET Framework本身也贡献良多。作为我自己公司Wintellect(http://Wintellect.com)的合伙人,我还要为大量客户工作,帮他们设计、调试、优化软件以及解决使用.NET Framework时遇到的问题。正是因为有了这些资历,所以我才知道如何用.NET Framework进行高效率编程。贯穿本书所有主题,你都会看到我的经验之谈。
本书面向的读者
本书旨在解释如何为.NET Framework开发应用程序和可重用的类。具体地说,我要解释CLR的工作原理及其提供的功能,还要讨论Framework Class Library(FCL)的各个部分。没有一本书能完整地解释FCL——其中含有数以千计的类型,而且这个数字正在以惊人速度增长。所以,我准备将重点放在每个开发人员都需要注意的核心类型上面。另外,虽然不会专门讲Windows窗体、Windows Presentation Foundation(WPF)、Microsoft Silverlight、XML Web服务、Web窗体、Microsoft ASP.NET MVC、Windows Store应用等,但本书描述的技术适用于所有这些应用程序类型。
本书围绕Microsoft Visual Studio 2012/2013,.NET Framework 4.5.x和C# 5.0展开。由于Microsoft在发布这些技术的新版本时,会试图保持很大程度的向后兼容性,所以本书描述的许多内容也适合之前的版本。所有示例代码都用C#编程语言写成。但由于CLR可由许多编程语言使用,所以本书内容也适合非C#程序员。
我和我的编辑进行了艰苦卓绝的工作,试图为你提供最准确、最新、最深入、最容易阅读和理解、没有错误的信息。但是,即便有如此完美的团队协作,疏漏和错误也在所难免。如果你发现了本书的任何错误或者想提出一些建设性的意见,请发送邮件到JeffreyR@Wintellect.com。
Jeffrey Richter,Wintellect联合创始人。数十年如一日痴迷于Windows和.NET的大师,数十年以来影响了若干代程序员的灵魂人物,经典著作《Windows核心编程》和《CLRviaC#》系列版本的缔造者。他崇尚大道至简,注重效率与实用性,尤其热爱化繁为简—去芜存菁。最值得一提的是,他特别擅长授人以渔,能够以通俗易懂、条理清晰的方式将普通读者望而却步的关键概念讲得透彻,讲得精彩。Jeffrey出版过12本Windows/.NET畅销书,曾经担任过MSDN Magazine特约编辑、Win32Q&A专栏作者、NETQ&A专栏作者和Concurrent Affairs(关于并发那些事儿)专栏作者。他还在很多全球性的商业研讨会上发表演讲。作为最懂Windows和NE丁的人,他从1990年开始就以顾问身份为微软提供服务—他写的代码先后被微软的很多产品广泛采用。此外,他还曾经为AT&T、IBM、英特尔、梦工厂、通用和惠普等提供过咨询服务。Jeffrey爱好广泛,他拥有飞机驾照和直升机驾照,是国际魔法师协会成员。他爱好音乐(尤其是20世纪70年代的爵士乐和前卫摇滚乐)、击鼓、火车模型和空手道。他还喜欢旅游和戏剧。目前,他与爱妻Kristin及爱子Aidan和Grant居住在华盛顿州的柯克兰。
周靖,认真、踏实的资深译者。微软MVP(最有价值专家)。
第1部分CLR基础
第1章CLR的执行模型
第2章生成、打包、部署和管理应用程序及类型
第3章共享程序集和强命名程序集
第2部分设计类型
第4章类型基础
第5章基元类型、引用类型和值类型
第6章类型和成员基础
第7章常量和字段
第8章方法
第9章参数
第10章属性
第11章事件
第12章泛型
第13章接口
第3部分基本类型
第14章字符、字符串和文本处理
第15章枚举类型和位标志
第16章数组
第17章委托
第18章定制特性
第19章可空值类型
第4部分核心机制
第20章异常和状态管理
第21章托管堆和垃圾回收
第22章CLR寄宿和AppDomain
第23章程序集加载和反射
第24章运行时序列化
第25章与WinRT组件互操作
第5部分线程处理
第26章线程基础
第27章计算限制的异步操作
第28章I/O限制的异步操作
第29章基元线程同步构造
第30章混合线程同步构造