.net metadata/IL/BCL
来源:互联网 发布:康熙王朝 1080p 源码 编辑:程序博客网 时间:2024/06/06 10:04
从2003年开始接触.net以来,已经有七年之痒了。看过和研究过的.net书籍、资料已经不计其数,但是总是有点力不从心的感觉;新的framework版本出来,虽然有MSDN总是不尽人意,你总是要去寻求新的专门书籍来学习。
有时候也在想那些书籍的作者是如何研习新的技术的呢。其实03年的时候就接触过serge Lindin的讲解MSIL的书,但是没有深究。直到6月份,将expert .net 2.0 assembly and il深入拜读之后,才豁然开朗。
其实微软的BCL都是开放在那的,你反编译一下就能了解BCL的源代码,解读这些源代码就会对BCL有个深入的了解。当然很多作者其实更进一层,他们参与到.net开发与咨询过程中,有第一手的CLR的C++源代码,所以人家才会有如此的洞察力与深刻的理解。
当然CLR的C++源代码我们是无法接触到了,但是解析BCL的IL也是能够让我们对dotnet platform的理解推进到比较底层的一个位置。
dotnet大致可以分成三个层次:CLR的实现层(运行时引擎的实现,可以类比为java虚拟机实现),metadata/IL层,高级语言层
除非我们想自己实现一个CLR,metadata/IL层已经是.net 平台理念的底层了。metadata/IL提供了.net platform的全部能力,所以是学习使用.net的基石。当然你只是知道高级语言比如C#也可以开发出各种各样的应用程序,但是充其量你只是一个很好的BCL API使用者而已;你的能力很大程度上受到C#的局限,当然你对BCL API也只是知道一个宏观的不详尽的结果,而且但有些API内部实现算法发生变化的时候可能对你来说是致命的:比如Asp.net升级的时候对于用户密码的hash算法变化,导致如果网站升级Asp.net将会导致原有的加密保存的用户密码失效(因为hash算法不一样了,呵呵)。如果你了解IL,你可以将原先.net版本的算法添加到自己的project中,让升级后的程序使用使用这个算法即可解决。所以深入了解metadata/IL可以让你在.net上活力全开,同时你也可以对BCL一览无余(除了部分internalcall和runtime实现之外),你可能再也不需要MSDN或者专家的书籍来告诉你种种BCL的使用方法了。从某种意义上来说,只有深入了解了metadata/IL的人才算得上真正意义上地在.net领域入门了。
我的blog大部分精力将放在剖析BCL的各个基础类上,这个是我学习BCL的方式,当然中间会伴随着各种挫折和收获,愿公诸同好。
- .net metadata/IL/BCL
- 关于枚举的种种 [C#, IL, BCL]
- 关于枚举的种种 [C#, IL, BCL]
- 关于枚举的种种 (Enumeration FAQ) [C#, IL, BCL]
- 详解.NET IL代码
- .Net IL指令速查表
- 详解.NET IL代码
- 详解.NET IL代码
- Expert .NET 2.0 IL Assembler
- .net IL 指令速查
- .net IL 指令速查
- .Net IL中间语言速查表
- .Net IL 指令速查
- 详解.NET IL代码(补充)
- 【.NET 基础】——CLR、BCL、DLL、Assembly
- 理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
- IL
- .NET 技术FAQ(八)-----中间语言 (IL)
- php ajax仿dedecms 验证新闻是否存在
- 关于自动装箱基本类型的值的比较
- Customizing Plone
- Using WebDav to connect to Plone ZODB
- Android 搭建开发之旅
- .net metadata/IL/BCL
- 随便写点,
- 《MFC那点事儿》の访问对话框控件的方式
- php mysql 用户登录
- php ajax仿dedecms 验证新闻是否存在
- php jquery 验证码代码
- PKU 1182
- php 过滤html标签的函数代码
- Android 实例-个人理财工具