代码改变世界

随笔分类 - 【读书笔记】.NET本质论

【读书笔记】.NET本质论第四章-Programming with Type(Part Two)

2009-08-31 09:17 by 横刀天笑, 2974 阅读, 收藏, 编辑
摘要:上一篇简单的叙说了一下不同类型内存分配的问题,以及如何在源代码上控制内存的布局,以及值类型分配的问题。本篇首先讨论对象的结构,使用Visual Studio + SOS探索一下MethodTable和EEClass可以提供给我们的信息。提供一个感性的认识,为后面从源代码分析提供基础。 阅读全文

【读书笔记】.NET本质论第四章-Programming with Type(Part One)

2009-07-30 10:40 by 横刀天笑, 1028 阅读, 收藏, 编辑
摘要:在上一章中主要探讨的是CTS中的类型,基本上是类型的“静态结构”,本章将主要涉及类型的运行时结构。你定义了一个类型,然后实例化它,那么它在内存中的布局到底是什么样子的呢?声明一个类型到底占多少内存?是分配在堆上还是栈上?等等。 阅读全文

【读书笔记】.NET本质论第三章-Type Basics(Part 3)

2009-07-28 12:29 by 横刀天笑, 830 阅读, 收藏, 编辑
摘要:本文讨论了Base Type相关知识,包括hide-by-signature与hide-by-name,继承树上构造函数的调用等内容。通过本篇文章,期望能对基类和派生类有一个更详细的了解。 阅读全文

【读书笔记】.NET本质论第三章-Type Basics(Part 2)

2009-07-15 20:46 by 横刀天笑, 855 阅读, 收藏, 编辑
摘要:本篇是.NET本质论读书笔记的第三章的第二部分,主要讨论一些静态的东西。将从IL以及Ecma-335等方面聊一聊.net里的静态类,类型初始化器。 阅读全文

【读书笔记】.NET本质论第三章-Type Basics(Part 1)

2009-06-28 22:16 by 横刀天笑, 979 阅读, 收藏, 编辑
摘要:在第二章讨论的是组件(模块、程序集)。当我们考虑如何划分模块的时候,往往考虑更多的是如何组织一个类型,一个类型里该有哪些成员呢?类型才是我们在设计时的最小“思考单元”。本章就是讨论类型的一些基础概念的。 阅读全文

【读书笔记】.NET本质论第二章-Components(Part Four,Assembly Resolver)

2009-05-04 23:55 by 横刀天笑, 1603 阅读, 收藏, 编辑
摘要:这是《.NET本质论》的第二章的第四篇读书笔记,也是本章最后一篇读书笔记。这篇主要讲解Assembly Resolver如何找到正确的程序集。从版本策略开始,到probing结束。从这个探测的过程可以看出,我们在部署程序的时候应该尽量减少歧义,应该唯一的限定程序集,减少加载的时候消耗的时间。 阅读全文

【读书笔记】.NET本质论第二章-Components(Part Three,CLR Loader)

2009-05-01 22:32 by 横刀天笑, 1432 阅读, 收藏, 编辑
摘要:《.NET本质论》读书笔记,这是本书的第二章,讲述程序集的加载。这篇博客主要说明程序集的静态引用和动态引用,Load和LoadFrom的不同。下一篇将详细的说明程序集加载的步骤。 阅读全文

【读书笔记】.NET本质论第二章-Components(Part Two,public key)

2009-04-19 13:45 by 横刀天笑, 1616 阅读, 收藏, 编辑
摘要:接上篇,在上一篇中提到了AssemblyName有一部分是public key token。这里有个public key,实际上public key和private key是成对的。顾名思义,public key就是公钥,private key就是私钥。公钥是公开的,私钥是非公开的,而且密级要很高。 CLR用数字签名的方式防止程序集发布后被篡改,而且还可以唯一的确定发布人。这个签名的方法是使用公... 阅读全文

【读书笔记】.NET本质论第二章-Components(Part One)

2009-04-18 15:50 by 横刀天笑, 2084 阅读, 收藏, 编辑
摘要:所有为CLR编写的程序都放在modules(模块)中,module包括CIL、Metadata、Resource。CIL里保存的就是程序的代码,Metadata描述模块内定义的类型、方法啊、所依赖的类型等方方面面的信息,可以说将module描述的个清清楚楚。Resource里可以包括字符串、图片等,就是一些程序需要使用的资源都打包放在这里。 CLR模块是一个字节流,使用扩展的PE/COFF可执行文... 阅读全文

【读书笔记】.NET本质论第一章 The CLR as a Better COM

2009-04-18 14:17 by 横刀天笑, 2628 阅读, 收藏, 编辑
摘要:COM技术关注的是独立开发和部署的程序之间的契约的问题。COM用type definitions来表达这个契约。在原来这些契约是用functional entry points表示的。 COM既是一个编程模型,也是一个技术平台。 但是COM的契约还是基于物理表示的,必须在编译时确定。我觉得COM 是使用一些“设计模式”的样式设计组件,将变的东西封装在内部。而且COM没有元数据无法更好的描述自己... 阅读全文