.NET简谈CLR(公共语言运行时)到底藏在哪?

  1. 云栖社区>
  2. 博客>
  3. 正文

.NET简谈CLR(公共语言运行时)到底藏在哪?

技术小胖子 2017-11-07 16:16:00 浏览964
展开阅读全文

大家好,今天这篇文章不是由我来跟大家讲解什么技术,而是我们一起来探讨.NETFrameWork中的重要部件CLR的秘密,众所周知CLR是所有非托管代码的运行时环境,.NET技术平台发展到今天已经经历了近10年的风风雨雨,各大书店数不胜数的.NET技术书籍,大部分都是讲解一些怎么运用.NET平台来发开某种应用软件,如:B/S的ASP.NET、C/S的Winform等等,本人苦于想寻找一本能讲解平台背后故事的技术书籍,对一些初学者来说可能对传统的B/S和C/S的软件应用方式有点搞不清楚,他们到底有什么不同,很多人都认为他们都是差不多的,但是作为我们有兴趣挖掘平台背后故事的人来说,他们的相同点是在我们VisualStudio开发环境中的开发方式差不多,都是运用事件驱动模型来编写软件,但是随着我们深入的研究会发现B/S和C/S两者之间有天大不同,这样的理解可能有点片面,我们要站在不同的角度、不同的层次上来看他们的不同点和相同点,如果我们仅仅是把自己当成一名技术工人来看的话,我们对着一套工具开发、编译、部署、运行OK,都是差不多的,各大软件平台厂商也考虑到了,如果他们将不同的软件开发方式都以不同的方式体现给我们那我们程序员不如去做死了,今天一套明天一套,天大的精力也受不了这样的折腾啊;所以他们竟可能的将不同的东西通过层层中转层层封装的方式,为我们展示那些背后其实很复杂但是用起来极为简单的开发工具,我们要时刻反省自己如果我们长期这样下去,是不是我们的饭碗很不可靠,工具越来越简单,面向开发人员的门槛越来越低,随便找个培训班上个一段时间就成了我们的竞争对手,我们的核心竞争力在哪里,我们凭什么要跟领导谈加工资的事情,你要开5000,领导随便在外面培训班找两三个过来加在一起才5000,反正干的事情都差不多,无非就是用现成的工具来开发软件,比你差的可能仅仅就是业务了;[王清培版权所有,转载请给出署名]

上面有点扯远了,我是为了下面的内容做一个引导吧,我们要成为那些培训班里出来的开发员觉得高不可攀的高手,这句话读起来有点别扭;我们要向下走,我们要去研究为什么这么好的软件我们为什么不能开发出来,VisualStudio也是用.NET开发的,为什么我们开发的东西仅仅是那些控件平凑起来的傻瓜式的应用软件,应用软件基本上都是一些对数据库的增、删、改、查操作,我的领导曾经也说过软件不就是那些东西增、删、改、查嘛,有什么难得,虽然我觉得领导的话可能点打击我们程序员,但是我们开发的东西就是这些,没什么技术含量,稍微懂点技术的人,你别想忽悠他,他扣扣手指就能算出你成本多少,有无技术含量;现在的应用层技术太多了,你一天学一样都学不完,我们程序员都是人对不对,我们也要生活,我们不可能为了技术抛开自己所有的生活,人活着短短的几十年,我们是靠着对技术的一片痴心才支撑到最后,如果整天的工作都比较饱和,就算我们的意志力说:“我可以坚持”,但是我们的身体已经被我们折腾的奄奄一息;我们作为.NET开发人员是否去研究一些那些看不见的东西;请看图:[王清培版权所有,转载请给出署名]
 

1:

我来解释一些上图中的大概意思,我们的VisualStudio工具本身的启动也是需要依赖.NETCLR运行时环境的,当它启动成功后我们就可以在它里面进行开发了,所有的过程都是一环套一环,我们在来看一副图:

2:

这幅图介绍了我们在开发阶段的过程;

3:

这幅图介绍了我们程序开发完成后的运行过程;

我似乎有点跑题,只是为了进一步跟大家讲解我的疑惑,也就是我们要探讨的问题;图1中的一个问号所表达的意思就是今天我们所要探讨的主题,“CLR(公共语言运行时)到底藏在哪?”,原理我想看过几本.NET书籍的人都能说的出来,但是我就疑惑了,它到底是什么,是不是一个DLL或者一系列的DLL文件组成,毫无疑问的是CLR肯定是由非托管底层C++、C、汇编之类的代码所编写,我们如何下手去研究它,到哪里能找到相关的技术文档,从.NetFramework2.0到现在最新的4.0,一直没变的是CLR,为什么它那么强大,以不变因万变呢?在今天各大博客园里的高手或者世外高人是不是已经参透其中的奥秘还是处于研究期,能否将自己的研究心得或者一些经验跟我们这些垂涎欲滴的“色狼”分享一下;技术的海洋里,有些东西是高深莫测,以不变因万变,那种未卜先知的神奇力量真的让人向往,想想看我们的软件多么的“垃圾”;事实摆在面前,我们要想在技术的海洋里有属于自己的一艘航母,就必须沉淀下去,研究那些海底下不动声色的“怪物”,这篇文章我也是想给各位朋友提一下,我们共同的敌人是谁“CLR”,我们要把它挖掘出来大家一起分享,不管是在底层也好,不管是C++、C、汇编、机器码也好,我想我们的这股激情是用不削弱的,兄弟们我们要一起战胜那些住当我们前进的对手;

总结:似乎今天的文章没能突出主题,也许我是太激动了或者是太急于想搞懂某些问题,希望对CLR有研究的高手能指点一二;谢谢







 本文转自 王清培 51CTO博客,原文链接:http://blog.51cto.com/wangqingpei557/591008,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注