代码改变世界

.NET中的那些受特别对待的类型(CriticalFinalizerObject)

2009-08-09 21:32 by 横刀天笑, 3307 阅读, 收藏, 编辑
摘要: 股票里面有个ST股,就是Special Treatment的意思。就是对那些财务出现异常的上市公司,特别处理,在股票名字前面挂个ST,警示投资者注意风险。 这是题外话,今天我们要谈的是,在.NET的世界里,也有这么一些类型啊,受特别的对待(世界的不公平无处不在啊)。当EE碰到这些类型时,并不是像普通的类型那样去对待。我“龌龊”的给这些类型起个名字: ST Type。那到底有哪些类型呢,就我目前所知道的有...... 阅读全文

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

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

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

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

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

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

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

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

关注底层:IL部分

2009-06-02 11:08 by 横刀天笑, 4114 阅读, 收藏, 编辑
摘要: 园子里两个大牛正争的如火如荼,小生不才,借一下两个名人的名气也来谈一下Microsoft intermediate language (MSIL,就是大家口里的IL)和ASM(这里指针对X86汇编,排除其他一切“高级汇编”)。阅读全文

最近老在触动我心底的一些东西

2009-05-23 18:02 by 横刀天笑, 3380 阅读, 收藏, 编辑
摘要: 最近看了一本书,一本关于交互设计的书:《交互设计之路》。其实这本书以前就看过,但那次没有多少感触。现在重温一遍却觉得以前我做的也许错了。这也逼迫我重新思考什么样子的软件才是用户需要的软件,用户喜欢什么类型的软件。阅读全文

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

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

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

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

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

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