欢迎光临本店     登录 注册   加入收藏
  •   
欢迎光临清华大学出版社第三事业部!

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

CLR之美-- 王翔
admin / 2006-10-31

“合抱之木,生于毫末;九层之台,起于垒土”,整个.Net大厦建筑的基础技术上讲就是CLR,它不仅仅是.Net的运行环境,也是.Net程序员所看到的操作系统环境、网络环境和设备环境。CLR是庞大而复杂的,不过同样因为这点决定了上层.Net应用的绚丽多彩。

       CLR给我们带来了JIT、垃圾回收、MSILMeta DataApplication Domain等一系列新的概念,它们共同协作,合力打造了一个与非托管代码完全不同的一个新的开发环境,其中每一个组件如何和谐地与其他组件协作,平稳地运行.Net应用,只有拨开CLR,才能看得清楚。学习和深入了解CLR对于用.Net平台开发高质量的应用和系统软件都有弥足珍贵的重要意义,但如果想深入了解CLR的执行过程,需要跳出贯有的思维方式加以考虑,也就是要采用自下而上的方式分析。要从CLR的执行结果入手分析各种.Net语言的代码如何经过CLR变成程序集。对于多数.Net开发人员而言,面对每天都打交道的这个CLR,就像是一个旅者来到一座没有任何交通指示的繁华城市面前一样,贸然走入无疑会迷失和淹没在这一片繁华之中。

       感谢Jeffrey先生毫无保留地把他与CLR团队多年来朝夕相处所积累的精华沉淀到这本书中。全书以极为严格的条理,借助C#语言,循序渐进地通过各种功能表像剖析每一个CLR功能组件,用丰富和翔实的示例启发读者如何写出.Net程序员与CLR和谐奏鸣的高质量软件。

       与其他绝大多数.Net书籍围绕某个.Net语言本身不同,Jeff先生更多的是把具体的.Net语言作为一个隐含内容给出(有兴趣的读者可以参考本书的姊妹篇《CLR via C++/CLI》),其中介绍的每个内容更多地围绕着CLR来给出。本书只是用上层开发人员所熟悉的C#语言作为功能描述的入口,通过分析IL来揭示CLR的运行本质。本书清晰而明确地给出了.Net Framework中的关键技术的运行方式,其中很多技术即使在MSDN.Net Framework SDK中也很难找到详细的介绍,如下内容在书中进行了重点展开:

l         .Net Framework的结构是如何设计的?相较于以往的COM时代,在这种设计下开发、使用和部署.Net应用程序有何重大变化?

l         一段.Net语言程序是如何转变成IL的?这些IL又是采用何种方式保存,并被CLR提交给不同的运行宿主进程执行的?执行过程中托管代码和非托管代码又是CLR通过何种控制实现的,系统层面的处理器和内存又是如何通过CLR.Net环境联系到一起。

l         为什么要为程序集配置元信息(Meta Data),这些元信息在执行过程中是如何被CLR所使用的?作为应用.Net应用的开发人员,我们如何生成和使用这些元信息。

l         开发中使用的各种数据类型是如何被CLR辨识的,之后他们是如何被CLR所管理和组织的,进而为应用的执行提供支持。

l         类、各种类成员是如何被CLR拼装的,面向对象技术所采用的封装、继承、多态和各种抽象从.Net语言代码翻译到IL的过程是怎样的,所有的类成员和类方法最后又是如何在CLR的控制下组合成一个个可以执行的实例被执行的。

l         异常处理的底层实现是怎么样的?如何实现结构化的异常处理?根据CLR异常实现的原理确定应用该怎么设计,才能更好的捕捉能力所及且有应该处理的异常。

l         内存回收机制的原理是如何的?怎样更好的根据该机制的实现原理控制各类对象的使用,保证我们设计的应用轻装前进。

l         什么是反射机制?CLR是如何实现的。

l         什么是多线程?根据CLR的多线程执行特点,怎样才可以写出高效、可控的.Net多线程应用。

l         如何通过接口和范型定义并更好的重用已有算法

l         如果通过代理声明、使用回调函数

l         如何定义和使用属性(Attribute),并且在应用中发现属性定义的内容

不仅如此,Jeff先生根据自己的经验,在必要的关键之处适当地提醒读者可能遇到的陷阱,同时也考虑到应用情形的不同,对同一功能实现给出多种多样的解决办法。本书面向.Net Framework 2.0C# 编译器8.0,因此个人觉得有点遗憾,Jeffrey先生没有把范型和委托的内容详细展开。但我相信,在了;理解了类及其成员的拼接过程后,再参考相关资料,读者可以自己了解这些特性的CLR实现过程。但即便如此,本人认为仅仅多线程部分一章的介绍实际上对于读者而言,已经很有技术意义了,

此外,本人非常喜欢Jeffrey先生的写作风格,总是一个设问之后紧接着给出答案,读起来每每感到好像正与Jeff先生促膝而谈。本书的启发式行文方式,对于读者下一步的应用具有很好的思维准备作用。读者在了解行文内容的同时应该随时思考:“如何举一反三地把这些技巧应用于自己的下一个项目的开发中”。

       感谢周靖和张杰良将这本书带给国内读者。阅读过程中,我们不难发现他们为中文版付出的心血。他们对原文的理解很透彻,用语也很准确,沿袭了原文浅显易懂、传神达意的风格。

       如果您是一名.Net开发的初学者,那么这本书可以作为一本字典,在进行ADO.NetASP.NetRemotingWeb Service开发中,如果遇到困难,可通过它了解其所以然;如果您已经有23年的.Net平台开发经验,那么本书将是促成您更深入了解.Net、使用.Net的良师;如果您是.Net专家级的人员,相信它会使您爱不释手。简而言之,本书相信将会是每位.Net开发人员必备的一本书。

最后,预祝这本书可以成为国内.Net开发人员提升专业技能的Mr. Right Book

 

                                                    王翔

全国海关信息中心  高级架构师

 

 

下一篇:框架设计(第二版) 读者心声
上一篇:《框架设计(第2版):CLR Via C#》著、译者简介

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha