摘要: 本系列使用SOS来Debug示例代码,让我们一起看看自己编写的代码,编译后的程序集以及CLR运行时的真实面貌,从而更加深入的了解.net.本系列将围绕下面这张图,来和大家一起分享.net的真实世界.本人能力有限,难免会有理解错误的地方,欢迎大家指正. 由于某些媒体和个人喜欢拿来主义,所以笔者加了水印,见谅见谅。。。不影响大家看就是了,字比较小,可将浏览器放大。探索CLR原理系列(1):类型探索CLR原理系列(2):字段探索CLR原理系列(3):方法元数据和IL 探索CLR原理系列(4):继承关系中的方法探索CLR原理系列(5):方法表探索CLR原理系列(6):接口虚表与方法偏移探索C...
阅读全文
posted @ 2011-10-12 11:16 徐 磊 阅读(1144) 评论(4)
编辑
摘要: 上一篇文章我们探索了类型,每一个类型在元数据的Typedef表中,会分配一个MdToken(类型标记),当你写的方法需要访问这个类型时,也是使用MdToken到相关Dll的元数据表去加载它到Load Heap,LoadHeap是用来存放类型的空间,它并不保存类型的实例.我们可以为类型定义一系列成员,包括:字段,属性,方法,事件和嵌套类,但我们跟踪类型的EEclass,发现类型中只有两类成员,字段(事件就是一个委托,而委托只是一个类型,所以事件就是一个字段而已,但表现有些特殊后续介绍)和方法(属性实际就是方法). 这篇文章就让我们一起来探索类型中很重要的一部分:字段.首先来说明一下为什么类型需.
阅读全文
posted @ 2011-10-08 09:24 徐 磊 阅读(1592) 评论(19)
编辑
摘要: CLR是整个Dotnet的灵魂,CIL则是这个灵魂可以发挥其跨越平台,穿越语言,跳跃....的保证.其实有很多书籍和文章都介绍了什么是CLR,什么是CIL,CTS,CLS这样的一大堆概念,可是他们具体的表现形式,以及运作的原理是大部分人都想知道的秘密,却没有什么太好的途径来获取这些信息.本系列将从C#代码->CIL->CLR来探索我们编写的C#代码,最终如何成为本地机器语言,并且执行.过程中会使用...
阅读全文
posted @ 2011-09-19 09:26 徐 磊 阅读(3744) 评论(90)
编辑
摘要: 前面的客户端程序中,遍历部门时,有个对部门还是人员的判断,然后按照不同的类型输出不同的结果,这样增加了客户端的复杂度,如果出现另一种情况,那么就要修改客户端,因为客户端程序大部分都不是出现在一个调用中,所以这样的修改十分可怕,如果输出有所变化,比如多加几个字,或者显示员工福利工资,那么就不得不修改客户代码所有出现的输出的地方.那么我们如何来封装这个变化呢?
阅读全文
posted @ 2008-08-22 09:39 徐 磊 阅读(2126) 评论(12)
编辑
摘要: 在前面的文章中,我们设计完成了员工工资,福利以及按照部门来区分员工,以及遍历统计部门人员成本等业务逻辑,这些设计基本上可以满足我们所设定的场景的变化,可是创建部门及人员树的时候太复杂了,而且这种创建很容易发生变化,比如加入分公司,或者部门层级变动添加了层级的时候,创建的代码一定就要修改.那么如何避免,封装这个创建时的变化呢?
阅读全文
posted @ 2008-08-20 14:52 徐 磊 阅读(1922) 评论(12)
编辑
摘要: 前面我们设计完成了统计部门工资,这样的一个需求,但是在我们设计遍历员工信息的方法是固定不变的,也就是说是硬编码在PersonComposite类中的,由于Composite设计模式相当于一个树或者图的数据结构,那么他的遍历就会出现变化,比如在遍历部门和小组的时候采取不同的方法,以减少遍历的时间,那么如何去解决这个问题呢?
阅读全文
posted @ 2008-08-19 12:10 徐 磊 阅读(2660) 评论(17)
编辑
摘要: 前面两篇中,完成了客户所提的"我们的系统要管理人员的工资.(为了模拟真实的开发场景,这里暂时先定义一个功能)人员分为实习员工和正式员工,他们的基本工资是不同的,工资包括基本工资和绩效工资."这样的一个系统需求.我们设计并完成了他,今天客户由于公司要给员工福利,而来追加需求"按照不同的职位,给与不同的福利,一个人可能身兼几个职位".
阅读全文
posted @ 2008-08-12 11:51 徐 磊 阅读(3284) 评论(38)
编辑
摘要: 众所周知,DotNet框架是非常庞大的,光项目创建时的种类就有WPF,WCF,WF这三种最新的技术,还有以前的Web,WinForm,Service,Mobile等等. 这么复杂和庞大的框架,用文字来描述是远远不够的,所以我准备写一系列图文并茂的文章,把我所知道的所有Net框架中的东西全部串联起来(WPF,WCF,WF...),希望可以给大家一个DotNet框架的知识图,本人能力有限,难免有理解错误和表达不清的地方,望大家谅解并指教.
阅读全文
posted @ 2008-08-06 12:05 徐 磊 阅读(7524) 评论(32)
编辑
摘要: System.IO,要操作IO,就需要,确定储存媒介,打开,然后读取或者写入
阅读全文
posted @ 2008-07-21 15:36 徐 磊 阅读(3399) 评论(5)
编辑
摘要: 前面我们学习了.net的运行引擎,知道了Appdomain要承载各种dll,那么我们就来学习一下最基本的system.dll,这个任何代码都要引用的大家伙.
阅读全文
posted @ 2008-07-21 11:35 徐 磊 阅读(3458) 评论(12)
编辑
摘要: 众所周知,DotNet框架是非常庞大的,光项目创建时的种类就有WPF,WCF,WF这三种最新的技术,还有以前的Web,WinForm,Service,Mobile等等.
这么复杂和庞大的框架,用文字来描述是远远不够的,所以我准备写一系列图文并茂的文章,把我所知道的所有Net框架中的东西全部串联起来(WPF,WCF,Silverlight,Remoting...),希望可以给大家一个DotNet框架的知识图,本人能力有限,难免有理解错误和表达不清的地方,望大家谅解并指教.
阅读全文
posted @ 2008-07-21 11:34 徐 磊 阅读(5895) 评论(28)
编辑
摘要: 众所周知,DotNet框架是非常庞大的,光项目创建时的种类就有WPF,WCF,WF这三种最新的技术,还有以前的Web,WinForm,Service,Mobile等等.
这么复杂和庞大的框架,用文字来描述是远远不够的,所以我准备写一系列图文并茂的文章,把我所知道的所有Net框架中的东西全部串联起来(WPF,WCF,Silverlight,Remoting...),希望可以给大家一个DotNet框架的知识图,本人能力有限,难免有理解错误和表达不清的地方,望大家谅解并指教.
阅读全文
posted @ 2008-07-21 11:34 徐 磊 阅读(4404) 评论(31)
编辑