大家好,今天这篇文章不是由我来跟大家讲解什么技术,而是我们一起来探讨.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有研究的高手能指点一二;谢谢
分享到:
相关推荐
本文将深入探讨CLR(Common Language Runtime,公共语言运行时)如何实现虚方法的多态调用,并解答一系列相关疑问。 #### 虚方法与多态性 在面向对象编程中,多态是指允许不同类的对象对同一消息作出响应的能力。...
标题“框架设计 CLR Via C# 中文版 第5部分”中暗示了本部分将专注于阐述.NET框架中的公共语言运行时(CLR)的高级特性,并以C#作为编程语言示例。该标题指出了学习的重点是CLR的实际应用和C#语言在开发.NET应用程序...
CLR(Common Language Runtime)是微软.NET框架的核心组成部分,它为应用程序提供运行环境,负责代码的执行、内存管理、类型安全以及异常处理等。在.NET框架下,开发人员可以通过使用多种编程语言(如C#、VB.NET、...
《CLR via C#(第3版) 》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft ...
CLR(公共语言运行库)是.NET Framework 提供的运行时环境,它运行代码并提供使开发过程更轻松的服务。 XML 技术及其应用 XML 技术可以应用于保存配置、站与站之间的交流、WEB SERVICE 以及与数据库的数据交互等...
另外我发现论坛上学习Java的人都非常的有个性,当有人问起学习哪种语言更好时,他会打出几百个“JAVA”来,填满整个屏幕,也不说是为了什么。我觉得这样做未免有些太霸道了,如果你说这叫偏执狂我也不反对,虽然我...
《CLR via C#(第3版) 》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft ...
《CLR via C#(第3版) 》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft ...
《CLR via C#(第3版) 》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft ...
公共语言运行库是.NET Framework 的基石,它负责在运行时管理代码,提供诸如内存管理、线程管理、远程处理等服务。CLR 通过强制执行类型安全和其他形式的代码准确度,确保了代码的安全性和可靠性。它类似于Java的...
.NET的核心组件之一是公共语言运行时(CLR),它负责执行编译后的代码,并提供各种服务,如内存管理、垃圾收集和安全性检查等。 **1.2 什么是CLI (Common Language Infrastructure)** CLI是.NET框架的一个关键部分...
CLR(公共语言运行库)是.NET框架的核心,它实现了CTS和CLS,提供了类型安全、内存管理以及代码执行的环境。 以上是.NET面试题中涉及的一些关键知识点,涵盖了C#语法、ASP.NET应用、算法以及.NET框架的基础概念。...
这些语言编写的代码最终都被编译为IL,这是.NET平台的通用语言,能够在CLR(公共语言运行库)上运行。这种语言无关性赋予开发者更大的灵活性,可以根据团队喜好或项目需求选择合适的开发语言。 4. **运行在公共语言...
4. 公共语言运行库(CLR):作为.Net Framework的基础,CLR是所有.Net程序的运行环境,它负责代码的执行、内存管理、线程管理、远程处理和安全性控制,确保了代码的可靠性和安全性。 .Net Framework的关键技术特点...
.NET环境中的内存管理由公共语言运行时(CLR)的垃圾回收器自动处理。CLR通过托管堆来管理内存,当对象不再被引用时,垃圾回收机制会自动释放内存。这与.NET的内存管理策略紧密相关,其内存泄漏风险远低于传统非托管...
该框架由两大部分构成:公共语言运行时(CLR)和框架类库。公共语言运行时包括CLS(公共语言规范)和CTS(通用类型系统),为多种编程语言提供了一个共同的基础,确保了代码的互操作性。框架类库则提供了大量预定义...
该框架的主要组成部分包括公共语言运行时(Common Language Runtime, CLR)和.NET Framework 类库(Class Libraries)。CLR 提供了一个执行环境,使得程序员可以创建跨平台的应用程序;而类库则提供了一系列预编写的...
在.NET Framework中,公共语言运行时(CLR)是核心部分,它提供了诸如内存管理、类型安全、异常处理和代码执行优化等服务。C#编译后的代码会转换成中间语言(IL),由CLR负责解释和执行。这种设计使得不同语言编写的...