标题：CLR via C#开发
基本信息
原书名：CLR via C# (Dev-Pro)
原出版社： Microsoft Press
作者：(美)Jeffrey Richter 
译者：周靖
丛书名： 微软技术丛书
出版社：清华大学出版社
ISBN：9787302232599
出版日期：2010 年9月
开本：16开
页码：777
版次：3-1
编辑推荐
深入、全面探讨.NET Framework、CLR和多核编程
广泛讨论FrameworkClassLibrary（FCL）核心类型
对泛型和线程处理等深奥难懂的开发概念提供权威、实用的指导
内容简介
本书针对clr和.net framework 4.0进行深入、全面的探讨，并结合实例介绍了如何利用它们进行设计、开发和调试。全书5部分29章。第Ⅰ部分介绍clr基础，第Ⅱ部分解释如何设计类型，第Ⅲ部分介绍基本类型，第Ⅳ部分以实用特性为主题，第Ⅴ部分花大量篇幅重点介绍线程处理。
通过本书的阅读，读者可以掌握clr和.net framework的精髓，轻松、高效地创建高性能应用程序。
作译者
Jeffrey Richter是全球享有盛誉的技术作家，Wintellect公司的创办人之一。该公司专门从事培训、调试和咨询，帮助客户构建更好、更快的软件。他在Wirldows/NET领域有着杰出的贡献。他的经典著作《Witldows高级编程指南》和《Windows核心编程》是Wirdows程序设计领域的颠峰之作，培育了几代软件开发设计人员。Jeffrey从1 999年10月以来，一直为Microsoft NET Framework团队担任顾问，与他们一起经历着.NET的孕育、诞生和发展，对.NET细节的了解程度，是其他任何作家无法望其项背的。他还担任MSDN杂志.NET专
目录
第Ⅰ部分 clr基础
第1章 clr的执行模型
第2章 生成、打包、部署和管理应用程序及类型
第3章 共享程序集和强命名程序集
第Ⅱ部分 设计类型
第4章 类型基础
第5章 基元类型、引用类型和值类型
第6章 类型和成员基础
第7章 常量和字段
第8章 方法
第9章 参数
第10章 属性
第11章 事件
第12章 泛型
第Ⅲ部分 基本类型
第13章 接口
第14章 字符、字符串和文本处理
第15章 枚举类型和位标志
第16章 数组
第17章 委托
第18章 定制attribute
第19章 可空值类型
第Ⅳ部分 核心机制
第20章 异常和状态管理
第21章 自动内存管理(垃圾回收)
第22章 clr寄宿和appdomain
第23章 程序集加载和反射
第24章 运行时序列化
第Ⅴ部分 线程处理
第25章 线程基础
第26章 计算限制的异步操作
第27章 i/o限制的异步操作
第28章 基元线程同步构造
第29章 混合线程同步构造
译者序
从事软件开发的人，都是耐得住寂寞的人。Jeffery不仅耐得住寂寞，还在自己的专业领域取得了很高的造诣。取得了很高的造诣不说，他还愿意将自己的所得与大家分享。愿意和大家分享不说，他还非常实诚，真心想把自己的全部知识都清楚地交待给读者。字里行间，全是殷殷叮嘱。无浮夸之文字，倾心血而写就，近十年之所悟，尽展现于本书。
读完这本书，你的心灵会受到巨大的震撼。原因很简单，以前许多似懂非懂的关键概念，现在都变得清晰明了；以前自以为是的一些做法，现在都得到彻底纠正；以前艰苦摸索的一些编程技巧，现在变得就像1+1一样简单。
Jeffery最擅长的就是把最基本的东西讲清楚。你以前或许知道1+1等于2，但他会把1+1为什么等于2讲得明明白白。最终你会有一种顿悟的感觉，然后自动地就会知道1+2等于几，2+2等于几。不需要再去翻阅其他教科书查询结果。
如果不出意外，这当是Jeffery的封笔之作。原因很简单，他付出了实在太多。为了保证这本书(以及他的其他许多著作)的含金量，他在写作的时候非常投入，而且每一句话，每一个知识点的组织，他都会做到尽善尽美。也许你也曾经有过这样的体验，那就是在专心做一些事情的时候，对身边发生的其他事情反应可能非常迟钝。因此，必然有可能冷落了家人，或者耽误了自己的其他一些事情。
本书基于CLR via C#，2nd Edition，在保持上一版精华内容的同时，进行了大量修订，并添加了大量和C# 4 0的新特性以及线程处理有关的内容。翻译这一版的过程中，我对上一版也进行了勘误，其中有许多都是热心读者提交的。在此要对他们表示感谢！
一本没有后期维护的书，不算是一本好书。即使如本书原版，也维护了一份很长的勘误表，我本人也为其贡献良多。本书中文版将延续我一直以来坚持的风格，建立专门的页面对它进行维护，以提供资源下载和勘误等服务。请大家继续前往我的博客，发表关于本书的意见和建议。
翻译过程中，感谢我的家人和朋友的诸多关怀和帮助，尤其要感谢我的乖女儿周子衿。这个学期，对她来说至关重要！
最后，如同往常一样，我要说所有的功劳都要归于作者，所有的错误都要归于译者。欢迎大家批评指正。
序言
刚开始，当Jeff要我给他的新书作序时，我还觉得挺高兴！我想，他肯定是尊重我。但我错了。女士们，这是我们因为想当然而常犯的错误之一——相信我，他并不是尊重你。在他的候选序言作者列表中，我排在大概是第14位吧！他最后找上我，完全是迫不得已。显然，其他候选人(比尔·盖茨、史蒂夫·鲍尔默、凯瑟琳·泽塔琼斯……)对他都不是特别感冒。不过还好，他至少带我出去吃了一顿大餐。
但是，关于这本书，没人知道得比我更多。我是说，泽塔琼斯也许会教你如何在路上补妆，但我知道关于反射和异常的所有事情，我还知道C#语言的更新，因为他这几年说得最多的就是它。这是我们家餐桌上的标准对话！其他人会谈论天气或者他们在饮水机旁边听到其他事儿，但我们谈论的是 NET。甚至我们6岁的儿子Aidan，也会问Jeff关于书的事情。不过大多数时候，他是问爸爸什么时候写完了能和他玩一些“cool”的游戏。Grant(2岁)还不会说话，但他说的第一个词极有可能是“Sequential”。
如果你想知道这一切是如何开始的，我可以大概地讲给你听。大概10年前， Jeff去微软参加了一次“秘密会议”。微软向一帮行业专家(是真正的专家喔，要不然怎么会有这本书呢？相信我，这本书体现的绝不是Jeff大学时候的水平)揭示了COM的下一代，即 NET。那天晚上在床上(咳，我们俩在床上讨论的就是这种话题)，他给我讲了COM之死。此后他就着迷了。是真的神魂颠倒！那段时间，他成天泡在微软雷蒙德园区42号楼，希望深入了解这个令人着迷的 NET。他和 NET的热恋至今还没有结束，这本书便是铁证！
Jeff跟我讲了好多年的线程处理。他真的很喜欢这个主题。有一次，在新奥尔良，我们俩手牵着手散了两个小时的步。一路上，他一直在说他有好多内容可以写一本有关线程处理的书，甚至连名字都想好了，叫什么《线程处理的艺术》。人们对Windows线程处理的误解是多么地深。所思、所想、所说，全部都是线程。它们都去了哪里？既然都没有计划，为何还要创建呢？这些问题在Jeff脑海中盘旋，占据着Jeff的全部身心，成了他更深层次的生存意义。最后，他将自己的思考所得全都写入这本书中。是的，没有丝毫保留！相信我，朋友，如果你想知道线程处理，Jeff绝对是最佳人选，没有人比他了解得更多，没有人有他研究得更多。耗费了他生命中很多宝贵时间(这些时间是他捡不回来的)的那些成果就摆在你的面前，任你任意使用。请读一读这本书吧！然后给他写封电子邮件，谈谈书中这些知识是如何改变您的一生的。否则，他将不过是众多可悲的作家中的一个，没有任何价值或成就地结束生命，一杯接一杯地喝着低糖汽水了却余生。
本书的这一版甚至包括了关于运行时序列化器的全新的一章。实践证明，这不是给孩子们的一款新的早餐食品。当我发现它更像是和计算机有关，而不是我食品清单上的东东时，我立即非常气愤地把它赶出了我的清单。嗯，所以我不知道这一章真的讲的是什么，但它的确包含在这一版中，而你应该读一读它(嗯，就着一杯牛奶)。
我希望他已经在理论上讨论好了垃圾收集，可以实际着手我们家的垃圾收集，然后把它们带去马路边了。对于一个如此认真的人，这件事情怎么就如此之难？
朋友们，这是Jeffrey Richter的鸿篇巨制。到此为止。以后不会再写书了。当然，每次他写完一本书，我们都这样说，但这一次，我们是认真的。所以，在写过大约13本书之后，这将是Jeff的收官之作，也是他的巅峰之作。大家请注意了，数量有限，欲购从速。机不可失，时不再来喔。(听起来是不是有点儿像电视购物频道里奸商们的吆喝？)
唉，终于可以回到我们的现实生活了，我们可以讨论很多重要的事情，比如孩子们今天又弄坏了什么，该谁给孩子换尿片了，诸如此类的东西。
Kristin Trace 
2009年11月24日
Richter家的标准家庭早餐
前言
1999年10月，Microsoft的一些人首次向我展示了Microsoft NET Framework、公共语言运行时(CLR)和C#编程语言。看到所有这一切时，我震惊了，我知道我写软件的方式要发生非常大的变化了。他们请我为团队做一些顾问工作，我当即就同意了。刚开始，我以为 NET Framework是Win32 API和COM上的一个抽象层。然而，随着我投入越来越多的时间研究它，我意识到它是一个更宏伟的项目。在某种程度上，它是它自己的操作系统。它有自己的内存管理器，自己的安全系统，自己的文件加载器，自己的错误处理机制，自己的应用程序隔离边界(AppDomains)、自己的线程处理模型等。本书解释了所有这些主题，帮助你为这个平台高效地设计和实现软件应用程序及组件。
我花费了大量时间专注于线程处理、并发执行、并行结构、同步等方面的研究。如今，随着多核计算机越来越普遍，这些主题的重要性日益凸显。几年前，我决定专门写一本讲线程处理的书。然而，事情一件接着一件，我的想法一直没有实现。当我有时间修订本书的时候，我决定将所有线程处理的内容集成到其中。所以，本书除了全面讨论 NET Framework的CLR和C#编程语言，还嵌入了我的关于线程处理的书(第Ⅴ部分“线程处理”)。
我是2009年10月开始写作本书的，距离第一次接触 NET Framework和C#正好十年。十几年来，我作为Microsoft的一名顾问，开发过各种各样的应用程序，对 NET Framework本身也贡献良多。作为我自己的公司的一名合伙人，我还要为大量客户工作，帮他们设计软件、调试软件、优化软件和解决他们使用 NET Framework时遇到的问题。正是因为有了这些资历，所以我才知道人们在使用 NET Framework进行高效率编程时，可能会在什么地方遇到麻烦。贯穿本书的所有主题，你都会看到我的这些经验之谈。
本书面向的读者
本书旨在解释如何为 NET Framework开发应用程序和可重用的类。具体地说，我要解释CLR的工作原理及其提供的功能。另外，我还要讨论Framework Class Library(FCL)的各个部分。没有一本书能完整地解释FCL——其中包含数以千计的类型，而且这个数字正在以惊人的速度增长。所以，我准备将重点放在每个开发人员都需要注意的核心类型上面。另外，虽然本书不专门讲Windows窗体、Windows Presentation Foundation(WPF)、Silverlight、XML Web服务、Web窗体等，但本书描述的技术适用于所有这些应用程序类型。
本书是围绕Microsoft Visual Studio 2010， NET Framework 4 0和C# 4 0展开的。由于Microsoft在发布这些技术的新版本时，会试图保持很大程度的向后兼容性，所以本书描述的许多内容也适用于以前的版本。所有示例代码都用C#编程语言来演示各种功能的行为。但是，由于CLR可由许多编程语言使用，所以本书内容还是很适合非C#程序员的。
Microsoft提供了CLR的几个版本。有桌面/服务器版本，在Microsoft Windows的32位(x86)和64位(x64/IA64 )版本上运行。还有Silverlight版本，它是用和 NET Framework CLR的桌面/服务器版一样的源代码库来生成的。所以，本书描述的一切也适用于生成Silverlight应用程序，只是Silverlight加载程序集的方式有一些区别。 NET Framework有一个“简化”版本，称为 NET Compact Framework，它适合Windows手机和运行Windows CE操作系统的其他设备。本书许多内容也适合用于为 NET Compact Framework开发应用程序，但该平台不是本书的重点。
2001年12月13日，ECMA International接纳了C#编程语言、一部分CLR以及一部分FCL作为标准。因而形成的标准文档允许其他组织为其他CPU架构和其他操作系统构建这些技术的ECMA相容版本。事实上，基于ECMA规范，Novell已开发出了Moonlight，它是Silverlight 的一个开源的实现，主要用于Linux和其他基于UNIX/X11的操作系统。本书相当多的内容是围绕这些标准展开的；所以，如果想实现符合ECMA标准的“运行时”(runtime)和库，本书也是相当有用的。
献辞
献给Kristin 千言万语，难以描述我们在一起的日子。我爱我们的家，珍惜我们在一起的所有日子。每天都因为对你的爱而感到充实。
献给6岁的Aidan和2岁的Grant 你们两个是我灵感的源泉，是你们教会我游戏和找乐子。看着你们两个人的成长真是令我骄傲和快乐。能和你们共同生活，我感到非常幸运。我对你们的爱和感谢，远远超乎你们的想象！
致谢
没有许多人的帮助和技术援助，我是不可能写好这本书的。尤其要感谢我的家人。为了写一本书，所投入的时间和精力是无法衡量的。我只知道，没有我的妻子Kristin和两个儿子Aidan和Grant的支持，根本不可能有这本书的面世。多少次，我们想花些时间一家人小聚，都因为本书而放弃。现在，本书总算告一段落，我们终于有时间做大家爱做的事情了。
针对本书的修订，我真的得到了一些“高人”的帮助。Christophe Nasarre参与了我的几本书的出版，在审阅本书并确保我能以最恰当的方式来表达的过程中，表现出了非凡的才能。他对本书的质量有着至关重要的影响。和往常一样，我和Microsoft Press的教育出版团队进行了令人愉快的合作。特别感谢Ben Ryan，Valerie Woolley和Devon Musgrave。另外，感谢Jean Findley和Sue McClung的编辑和制作支持。