导航

Essential .NET 读书笔记 [第一部分]

Posted on 2005-11-24 18:09  InterMa  阅读(1749)  评论(2编辑  收藏  举报
 

一.前

去年的这个时候读了Don Box的《Essential .NET Volume 1: CLR》(《.NET 本质论 卷一:CLR》),当时囫囵吞枣似的匆匆读完,没有认真咀嚼大师的思想,有点暴殓天物的感觉。今日又在图书馆拿出这本书,心中有很多体会,也许就像他本人所说,Don Box的书不应该只读一遍的。

在这篇读书笔记中,我将原书的中一些重点摘抄下来,同时对书中的一些观点也会提出自己的思考。好了,废话不说,让我们开始吧。(本人才疏学浅,难免有许多疏忽和错误之处,希望大家能进行指正)

 

二.第一章 CLR是一个更好的COM

1.组件技术强调程序之间的约定(contract),COM之间的组件约定是基于二进制的,同时没有一种标准的描述形式。(受到现实环境所累)

2COM为什么消亡了?COM是一个编程模型,但是支持它的平台技术太薄弱了,最终使得COM变成了一个理念或编程准则,因此COM时代终结了。

3.NET3个主要的组成部分:CLR,公共类库,ASP.NET

4.NET Framework包括2个核心的集成技术:[1] CLR(虚拟机,作为托管代码的宿主,将他们集成到一个单独的OS进程中)[2] Web Services (异构系统集成)

5CLI包括了:CTS, CIL, 元数据和底层文件。CLI已经提交给了ECMAC#好像也已经提交给了ECMA了吧,版本是1.0 还是2.0 ?)。目前的CLI实现有:MS CLRMono

6CLR本质是一个虚拟运行环境,一个加载器,它将你的组件加载入一个OS进程中。

7CLR是组件软件的一个发展阶段,所有组件之间的约定都是基于逻辑结构的。

8CLRWeb Services强调组件之间的强类型协定,用来描述组件之间的关系与依赖。有2种关键概念为上述目标提供了基础:[1] 元数据(机器可读,可扩展) [2] 虚拟化。

9CLR中组件之间的约定具有完全规范的格式(元数据),同时约定根据的是类型的逻辑结构(物理结构等到首次被运行时加载的时候再确定)。这2点与COM的约定完全不同,是对它的重要改进。

10CLR是类型安全的,一切都是类型,对象或值。这些类型在托管代码在CLR上运行的时候依然存在,并可以被CLR或其它程序所解析。(因为有元数据来描述这些类型)

11CIL只会包含元数据的引用,这些引用基于名称,而不是位置或偏移量等二进制信息。直到被CLR翻译为本机代码才会确定它的二进制信息。

       12.任何语言只要具有能够发射(EmitCIL代码和CLR元数据的编译器,就能被CLR 所解析。

13.当程序员面临生产率和可控性的选择时,随着时间的推移,在大多数应用场合,能够让他们拥有更高生产率的技术更有可能胜出。      

 [待续...]