1. CLR via C#, 2nd Edition
这本书不用我多说了。Jeffrey Richter的经典之作。条理清晰,深入浅出,绝对是学习.NET/CLR的必读。国内只有翻译版本。
http://www.amazon.com/CLR-via-Second-Pro-Developer/dp/0735621632
2. Essential .NET. Volume 1: The common language runtime
这本书是Don Box和Chris Sells所著。Don Box大家应该都很熟悉了。这本书的特点是对CLR的工作机制讲解比较深入,涉及到较多细节的实现。虽然本书以讲解.NET Framework 1.1为主,但这一点毫不影响本书的价值。毫不夸张地说,我个人认为,就算你不用.NET,也应该看看这本书。国内有影印版。
http://www.amazon.com/Essential-NET-Common-Language-Runtime/dp/0201734117
3. Shared Source CLI essentials
这本书可是基本上在微软CLR Team内部据说是人手一本。这本书主要是讲CLR的一个Shared Source(注意不是Open Source)的实现,叫做Rotor,是CLR的一个子集。这本书以沿序渐进的方式讲解了Rotor的内部实现,包括Type System, Metadata, GC, JIT, PAL等组成部份。由于CLR和Rotor共享大部分代码,因此本书对于研究CLR本身有着极大的参考价值,甚至你如果有一个无法解决的CLR的问题,很有可能都可以在Rotor的代码中找到答案。有兴趣的朋友可以在这里下载研究一下:http://msdn.microsoft.com/net/sscli/。本书适合已经有一定CLR基础以及C/C++编程基础想从源代码角度了解CLR原理的朋友。国内尚未引进。
http://www.amazon.com/Shared-Source-Essentials-David-Stutz/dp/059600351X
4. Common Language Infrastructure, the Annotated Standard
CLI标准的绝对权威参考书籍,是以CLI标准+注释的方式写的。略微有些枯燥,但是却是很好的权威参考资料。国内尚未引进。
http://www.amazon.com/Common-Language-Infrastructure-Annotated-Standard/dp/0321154932
5. .NET and COM: The complete interoperability guide
相信大家在使用CLR的Interop相关功能(P/Invoke,COM Interop)的时候都或多或少遇到过各种问题,加之COM本身又是十分复杂的技术,因此这本书便显得十分必要。本书看书名就知道是讲解.NET / COM之间的Interop(当然也包括P/Invoke)的相关内容。讲解非常清晰,涵盖面也很广。CLR Interop Team内部也是人手一本阿。连Don Box都说:This is the last book that should be written about COM programming. There is nothing left to say.
凡是要和Native代码打交道的.NET程序员都应该有一本。不过遗憾的是本书没有引进。
http://www.amazon.com/NET-COM-Complete-Interoperability-Guide/dp/067232170X
6. Customizing the Common Language Runtime
这本书看书名就知道,和一般的.NET / CLR切入点有所不同。这本书主要的内容是Hosting,也就是在一个Native程序中加载CLR,并自定义CLR的各项功能,所以称为Customizing the Common Language Runtime。由于是自定义CLR,因此本书涉及到的内容通常都比较深入,如Startup/Shutdown,Memory Management,AppDomain,Assemblies,等等。适合想进一步了解CLR工作原理的朋友。本书也没有引进。
http://www.amazon.com/Customizing-Microsoft-Framework-Language-Runtime/dp/0735619883
7. Expert .NET 2.0 IL Assembler
这本书国内有中文版,不过内容比较旧。最新版的是2.0的,尚未引进。本书主要讲解MSIL语言,也就是CLR的汇编。通常大家在用ILDASM来看反汇编代码的时候,旁边放一本这个书就很有参考价值了(当然你用.NET Reflector自动转成C#我也没意见)。此外,学习MSIL也可以对CLR的工作原理有更加深入的了解。除了IL汇编之外,本书还涉及到部分CLR的内部实现,如Managed PE文件结构,MetaData的结构,Signature的结构,等等,值得一看。
http://www.amazon.com/Expert-NET-2-0-IL-Assembler/dp/1590596463
写了这么多,比较遗憾的是很多比较优秀的书籍并没有及时引进到国内,以至于很多朋友不得不到网上下载甚至到Amazon上去购买(运费贵,书更贵)。如果那位计算机出版业的朋友看到这篇文章的话,最好能够考虑尽早引进这些国内尚未引进的书籍,以造福我们广大读者啊。
最后,我原来还推荐过一些C++书籍和Win32/MFC/COM书籍,大家有兴趣的话可以在下面的链接找到:
C++学习推荐书籍
Win32/MFC/COM学习推荐书籍