- 定价:¥99.00
- 校园优惠价:¥79.20 (80折) (马上了解)
- 评分:
(已有116条评价)
- 促销活动:
- 此商品暂时缺货(可留下联系方式,到货将第一时间通知您)
基本信息
- 原书名:CLR via C# (Dev-Pro)
- 原出版社: Microsoft Press
编辑推荐
深入、全面探讨.NET Framework、CRL和多核编程
广泛讨论FrameworkClassLibrary(FCL)核心类型
对泛型和线程处理等深奥难懂的开发概念提供权威、实用的指导
内容简介
作译者
目录
译者序
读完这本书,你的心灵会受到巨大的震撼。原因很简单,以前许多似懂非懂的关键概念,现在都变得清晰明了;以前自以为是的一些做法,现在都得到彻底纠正;以前艰苦摸索的一些编程技巧,现在变得就像1+1一样简单。
Jeffery最擅长的就是把最基本的东西讲清楚。你以前或许知道1+1等于2,但他会把1+1为什么等于2讲得明明白白。最终你会有一种顿悟的感觉,然后自动地就会知道1+2等于几,2+2等于几。不需要再去翻阅其他教科书查询结果。
如果不出意外,这当是Jeffery的封笔之作。原因很简单,他付出了实在太多。为了保证这本书(以及他的其他许多著作)的含金量,他在写作的时候非常投入,而且每一句话,每一个知识点的组织,他都会做到尽善尽美。也许你也曾经有过这样的体验,那就是在专心做一些事情的时候,对身边发生的其他事情反应可能非常迟钝。因此,必然有可能冷落了家人,或者耽误了自己的其他一些事情。
本书基于CLR via C#,2nd Edition,在保持上一版精华内容的同时,进行了大量修订,并添加了大量和C# 4.0的新特性以及线程处理有关的内容。翻译这一版的过程中,我对上一版也进行了勘误,其中有许多都是热心读者提交的。在此要对他们表示感谢!
一本没有后期维护的书,不算是一本好书。即使如本书原版,也维护了一份很长的勘误表,我本人也为其贡献良多。本书中文版将延续我一直以来坚持的风格,建立专门的页面对它进行维护,以提供资源下载和勘误等服务。请大家继续前往我的博客(http://transbot.blog.163.com),发表关于本书的意见和建议。
翻译过程中,感谢我的家人和朋友的诸多关怀和帮助,尤其要感谢我的乖女儿周子衿。这个学期,对她来说至关重要!
最后,如同往常一样,我要说所有的功劳都要归于作者,所有的错误都要归于译者。欢迎大家批评指正。
——周靖@北京
前言
我花费了大量时间专注于线程处理、并发执行、并行结构、同步等方面的研究。如今,随着多核计算机越来越普遍,这些主题的重要性日益凸显。几年前,我决定专门写一本讲线程处理的书。然而,事情一件接着一件,我的想法一直没有实现。当我有时间修订本书的时候,我决定将所有线程处理的内容集成到其中。所以,本书除了全面讨论.NET Framework的CLR和C#编程语言,还嵌入了我的关于线程处理的书(第Ⅴ部分“线程处理”)。
我是2009年10月开始写作本书的,距离第一次接触.NET Framework和C#正好十年。十几年来,我作为Microsoft的一名顾问,开发过各种各样的应用程序,对.NET Framework本身也贡献良多。作为我自己的公司(Wintellect,http://Wintellect.com)的一名合伙人,我还要为大量客户工作,帮他们设计软件、调试软件、优化软件和解决他们使用.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(http://www.ecma-international.org/)接纳了C#编程语言、一部分CLR以及一部分FCL作为标准。因而形成的标准文档允许其他组织为其他CPU架构和其他操作系统构建这些技术的ECMA相容版本。事实上,基于ECMA规范,Novell已开发出了Moonlight(http://www.mono-project.com/Moonlight),它是Silverlight (http://Silverlight.net)的一个开源的实现,主要用于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的编辑和制作支持。
本书支持
我们尽最大努力保证本书的准确性。一旦有勘误或更改,它们会添加到一篇Microsoft知识库文章中,可通过Microsoft帮助和支持网站访问。Microsoft Press通过以下网址提供支持(包括如何查找知识库文章的指示):
http://www.microsoft.com/learning/support/books/
如果访问以上网站或者查看知识库文章解决不了你的问题,请通过电子邮件把它们发送给Microsoft Press:
mspinput@microsoft.com
注意,上述邮件地址并不提供产品支持。
序言
但是,关于这本书,没人知道得比我更多。我是说,泽塔琼斯也许会教你如何在路上补妆,但我知道关于反射和异常的所有事情,我还知道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 (Jeffrey之老婆)
2009年11月24日
Richter家的标准家庭早餐