Flier's Sky

天空,蓝色的天空,眼睛看不到的东西,眼睛看得到的东西
posts - 115, comments - 313, trackbacks - 42, articles - 0

关于 .NET 方向较为深入的书籍

Posted on 2004-07-08 11:12 Flier Lu 阅读(10232) 评论(37)  编辑 收藏
http://www.blogcn.com/user8/flier_lu/index.html?id=1733932&run=.09D4C2F

转眼折腾 .NET 这套东西也有好几年了,从最开始与几个朋友互相转发讨论那聊聊无几的英文介绍文章、到抱着鸟语SDK文档和几十M的设计手册狂啃,再到现在铺天盖地的 .NET 方向的书籍,呵呵,不得不感叹世界发展之快 :D
     不过折腾到现在,抛开纯粹应用层面和技巧性的书籍不谈,就 .NET 方向较为深入的书籍实在不多。就好像 Windows 发展这么多年,真正常备案头的除了 MSDN 以外,其实也就不超过 5 本。
     下面把我觉得有志于研究 .NET 架构的朋友必备的几本书籍大致列一下,顺便把电子版的共享出来,以免后来者遭遇我以前学习时无人讨论无资料可看的窘境 :P

     首先 Jeffrey Richter 的 Applied Microsoft .NET Framework Programming是绝对必备的,呵呵。虽然这本书不是那种 interlnal 的书籍,但是其覆盖的知识点之全,以及解释时的度的把握之准确,非 Jeffrey Richter 不能完成。清华出版社翻译出版了此书的中文版,质量还算过得去,呵呵。如果英文好的朋友,建议直接阅读影印版或者电子版。

 
  Applied Microsoft .NET Framework Programming [/url]

 
 
 Microsoft .NET框架程序设计(修订版) 

 
  Applied Microsoft .NET Framework Programming(影印版)  

     其次当属 Don Box 的 Essential .NET, Volume I: The Common Language Runtime一书。从 COM 到 .NET 再到 SOAP, Don Box 一直是走在 MS 技术最前沿的人。如果说 Jeffrey Richter 的 Applied Microsoft .NET Framework Programming 较为偏重使用,则此书更为偏重实现和原理,是在读完前面那本之后,进一步了解 CLR 原理的最佳途径。电力出版社翻译出版了此书的中文版,翻译质量只能说尚可,需要对照英文原版一起看,呵呵
     
 
  Essential .NET, Volume I: The Common Language Runtime [/url]    

 
 
 .NET本质论 第1卷:公共语言运行库
 

     在通读上面两本书之后,你会发现要真正理解 CLR 的原理,Metadata 结构和 IL 代码的了解是必不可少的。而 Serge Lidin 的 Inside Microsoft .NET IL Assembler正是弥补了这个问题。书中对静态的 Metadata 和动态的 IL 执行机制做了非常细致的分析,可以说是真正深入理解 CLR 机制的必备书籍。机械工业出版社翻译出版了此书的中文版,翻译质量还行。
     
 
  Inside Microsoft .NET IL Assembler [/url]

 
 
 Microsoft.NET IL汇编语言程序设计 

     在完全理解这三本书的内容之后,如果还是吃不饱,呵呵,那就只能进一步研究 CLI 规范的内容了。.NET Framework SDK 的 Tool Developers Guidedocs 目录下有非常详细的设计文档,其中 Partition I Architecture 是结构性的介绍,必读;Partition II Metadata 介绍了 Metadata 的静态结构,是理解 CLR 核心结构组织的基础;其他的文档基本上都是针对某个方面的,可以根据兴趣选择性阅读。
     
     The Common Language Infrastructure Annotated Standard一书是阅读 CLI 规范的最好手册,针对 CLI 规范中疑难或者设计实现方法的很多地方做了非常详细的解释。

     
  The Common Language Infrastructure Annotated Standard [/url]


     而 
 Shared Source CLI Essentials  一书则是针对 CLI 规范的一个示范性实现 SSCLI (Rotor) 进行针对性的分析,非常有参考价值。只可惜现在国内还没有引进此书,也弄不到电子版 :(
     
     以上介绍的都是针对 .NET 方向通用实现层面较为深入的书籍。此外还有不少针对某个特殊应用的好书,如 Microsoft .NET RemotingMicrosoft ADO.NET等等。
     
 
  Microsoft .NET Remoting [/url]

 
 
 Microsoft ADO .NET [/url]

     只是临时整理了一下,难免有所遗漏,欢迎大家补充 :D

 btw: 因为这些电子版书籍的分发涉及到版权问题,请下载者勿用于商业用途,仅供学习研究。短期内可以通过下面的连接下载:

 Applied Microsoft .NET Framework Programming
 Essential .NET, Volume I: The Common Language Runtime
 Inside Microsoft .NET IL Assembler
 The Common Language Infrastructure Annotated Standard
 

0
0
(请您对文章做出评价)
« 上一篇:用WinDbg探索CLR世界 [3] 跟踪方法的 JIT 过程
» 下一篇:用WinDbg探索CLR世界 [4] 方法的调用机制之静态结构

Feedback

#1楼   回复  引用    

2004-07-09 14:09 by hBifTs
Good.多谢推荐的图书:)
可惜在电脑上看不爽,要不真是high死了:)

#2楼   回复  引用    

2004-07-23 17:54 by xuyo
前面两本快看完,呵呵

#3楼   回复  引用    

2004-09-09 13:11 by sunny
非常感谢!

#4楼   回复  引用    

2004-09-13 09:46 by wayfarer
谢谢阿!

#5楼   回复  引用    

2004-09-15 07:59 by joiswood
非常感谢你共享了这么多的好书,我们作为.NET初学者,有这么好的指导文章看真是幸福啊

#6楼   回复  引用  查看    

2004-10-14 22:47 by caca      
第1本是好书呀

#7楼   回复  引用    

2004-11-09 11:24 by zz
非常感谢指导

#8楼   回复  引用    

2004-11-12 11:12 by dreaminit
非常感谢!

个人感觉 Applied Microsoft .NET Framework Programming还是翻译得相当不错的,而不是"质量还算过得去",我建议阅读中文版.

#9楼   回复  引用    

2004-12-07 08:59 by sunlight
非常感谢!!

#10楼   回复  引用    

2004-12-07 16:50 by 赵行德
谢谢楼主:)

#11楼   回复  引用  查看    

2004-12-08 17:20 by 小诈      
非常好人!感谢!!

#12楼   回复  引用    

2004-12-24 17:30 by QuitGame
老大 这么多书怎么看得完啊?

#13楼   回复  引用    

2005-01-14 14:48 by cocozhd
Microsoft .NET框架程序设计(修订版) 的电子版有下载吗?

#14楼   回复  引用    

2005-02-22 08:55 by someone5
非常感谢!好人哪!

#15楼   回复  引用    

2005-02-25 11:21 by 阿飞
太感谢了,找这些书好久了,你简直就是我们穷人的好模范阿!顶!!!中国有了你这些人的话,IT肯定会飞速发展的....

#16楼   回复  引用    

2005-03-30 12:00 by 周江涛[未注册用户]
NND,楼主真是好人!谢谢!!

#17楼   回复  引用    

2005-04-12 16:31 by jeal
"在完全理解这三本书的内容之后"???
  谁敢说他完全理解了那三本书????

#18楼   回复  引用    

2005-05-09 15:50 by Insight
非常感谢!

#19楼   回复  引用    

2005-05-17 19:42 by a
我已经下了,太感谢了,找这些书好久了。

#20楼   回复  引用    

2005-06-07 11:22 by helix[未注册用户]
太谢谢楼主了~
可惜我的E文太菜了,啃这样的大布头还真的..汗~!
那也要看!因为我喜欢.net.

#21楼   回复  引用  查看    

2005-06-18 21:35 by       
这么多好书啊!
可惜只看过一本。

#22楼   回复  引用    

2005-08-06 15:58 by 吴健锋[未注册用户]
谢谢老大
我找 Applied Microsoft .NET Framework Programming 找了好久
今天终于找到了
真的很感谢你

#23楼   回复  引用    

2005-09-01 12:38 by 鲍[未注册用户]
刚接触这玩艺,一下子找到这么多资料,会消化不良的。8:>
太感谢了!

#24楼   回复  引用    

2005-11-22 11:21 by 路[未注册用户]
偶是潜水者 今天被楼主的慷慨感动 有这么多好书 偶也忍不住顶一下了

#25楼   回复  引用    

2006-01-27 11:06 by Good[未注册用户]
我在网上找了好久才逛到这,多谢啦

#26楼   回复  引用    

2006-06-12 10:51 by 我是菜鳥[未注册用户]
好人啊。世界上怎么會有這么好的人呢﹖﹖我在現實中怎么沒有見到呢﹖
真是太感謝了

#27楼   回复  引用    

2006-11-03 13:17 by idda[未注册用户]
受益了, 多谢!

#28楼   回复  引用    

2006-11-10 10:31 by CCC[匿名][未注册用户]
为什么几本CHM的书不能看呢?

无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器设置。

--------------------------------------------------------------------------------

怎么回这样..

#29楼   回复  引用    

2006-11-10 10:31 by CCC[匿名][未注册用户]
为什么几本CHM的书不能看呢?

无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器设置。

--------------------------------------------------------------------------------

怎么会这样..

#30楼   回复  引用    

2006-11-10 10:31 by CCC[匿名][未注册用户]
为什么几本CHM的书不能看呢?

无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器设置。

--------------------------------------------------------------------------------

怎么会这样..

#31楼   回复  引用    

2006-12-13 14:51 by yolaiyoqu[未注册用户]
谢谢,受益匪浅

#32楼   回复  引用  查看    

2007-11-13 14:17 by 阿多斯      
李建忠翻译的Applied Microsoft .NET Framework Programming真的不能算“质量还过得去”,而是“相当过得去”,只要看看他在译注中纠正了原作者多少个错误就知道了,如今的译作中有几本能够做到这样的?
强烈推荐这本!

#33楼   回复  引用  查看    

2007-11-13 14:22 by 阿多斯      
看完这篇博文,顺便google了一下,有如下一篇文章,李建忠与CLR via C#第二版擦肩而过,中国的出版社真是令人气愤!
http://book.csdn.net/subject/1102lijianzhong/

#34楼   回复  引用  查看    

2008-01-10 16:19 by DotPro.Net      
看了博客内容我有些启示,我想你应该知道.NET的执行引擎(EE)的运作过程。
我为了发一篇硕士研究生的论文而做一个实验,现在想获得每一个执行动作的动态流程,不知您可否给些建议,我也可由此不要走弯路。谢谢!
列举一个例子如下:

假定方法A()执行时需要几个输入。
给定一个输入集合inputs,方法A()开始执行,在执行过程中A调用了方法B和C,B又调用了方法D,E...然后执行完毕。

请问怎么样获取这个动态的调用轨迹?

这里还有三个条件:
1、要检测的方法是属于一个已经编译好的软件中的一部分,故不可以通过在每个方法中添加log来跟踪;
2、必须是动态的跟踪,不可通过反编译成IL代码或者微软提供的一个现成的“CLRProfiler”工具来静态获得;
3、也不可通过多次输入同样的输入集合,每次截获JITCompilationStarted来归纳出可能的轨迹。因为jit编译是每次一方法,这样也跟静态获取差不多了。

我的一个猜测或者意图:
请问当IL代码被编译成本地代码并存储在内存中以后,是不是此时的执行就跟本地程序的执行过程一样了?是不是可以在JIT之后方法执行之时获取每个方法到底调用了什么其他方法呢?是.NET的执行引擎(EE)负责JIT之后的执行过程吗?那是否可以截获EE来获得执行轨迹呢?具体又如何做呢?
呵呵,不好意思,问了你很多问题。

#35楼[楼主]   回复  引用  查看    

2008-01-10 21:56 by Flier Lu      
@DotPro.Net
CLR本身就提供了Profiler相关的接口可以完成你所说的功能
你可以在.NET SDK文档里面查看ICorProfilerCallback相关接口
MSDN网站上有个例子可以在他的基础上直接进行修改
http://www.microsoft.com/downloads/details.aspx?FamilyId=A362781C-3870-43BE-8926-862B40AA0CD0&displaylang=en

#36楼   回复  引用  查看    

2008-07-10 14:40 by Andy Huang      
工作net开发4年了,对上面的书籍也只是看了最开始的一本,非常惭愧!!
看来有到了拼命进修的时间了.