【转载】“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)

 既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容。

  最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础。.NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石。.NET Framework只不过是对这些前辈们进行了系统的封装和扩充,在这个过程中,吸取了Java框架的很多经验。关于Win32 API与.NET Framework API的对应关系,可以参考Microsoft Win32 to Microsoft .NET Framework API Map

菜谱:除了蓝色部分以外,其他均为.NET Framework的主体。它是基于通用语言基础架构(Common Language Infrastructure,CLI)。它就像一本江湖上失传已久的菜谱。

厨师通用语言运行平台(Common Language Runtime,CLR),是对CLI这个架构在Windows平台的实现。简单地理解就是CLR这个厨师,让CLI这本菜谱发挥了其真正的作用。

  下面我们来尝尝这些佳肴:

食物类库(Framework Class Library,FCL),所有在.NET能够使用的类库。分为两部分,一部分为原料,另一部分为成品菜

  • 原料基类库Base Class Library(BCL) ,顾名思义,其中包含一些基础的类,如:IO,String,Net等等。它们是做菜所必需的原料,当然也可以直接吃。
  • 成品菜FCL中的其他类。这些类库基本上都是引用BCL,在这些类库的基础上做的扩充。如:ADO.NET,ASP.NET,Windows.Forms等等,它们是我们编写程序更加方便,专一。

餐具公共语言规范Common Language Specification (CLS)公共类型系统Common Type System (CTS) ,是CLI的一部分内容,它们的目的是保证各种语言与.NET Framework的兼容性的。就好像有的食客习惯用筷子,有的则喜欢用叉子,像八戒就用九齿钉耙。有了CLSCTS,各路食客就能使用自己喜欢用的餐具吃上可口的食物了。例如:把C#中的int和VB中的Integer统一映射到System.Int32。

食客:各种语言,C#,VB,等等。

  至于食客们是怎么吃这些东西的,可以参考深入探索.NET框架内部了解CLR如何创建运行时对象,这篇文章详细的解释了,.NET是如何运行的,涉及一些底层的东西,大家了解就行,不必深究。

  好了,这是我自己对.NET Framework的一点理解,可能比喻有不恰当的地方,甚至有概念性的错误,希望大家指出来。我毕竟是初学者,大家的批评会帮助我成长。谢谢!

【转自】https://www.cnblogs.com/eshizhan/archive/2010/01/26/1657041.html

时间: 2024-11-03 05:57:26

【转载】“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)的相关文章

【转】“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)

既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容. 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framework只不过是对这些前辈们进行了系统的封装和扩充,在这个过程中,吸取了Java框架的很多经验.关于Win32 API与.NET Framework API的对应关系,可以参考M

“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)

既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容. 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framework只不过是对这些前辈们进行了系统的封装和扩充,在这个过程中,吸取了Java框架的很多经验.关于Win32 API与.NET Framework API的对应关系,可以参考M

.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)

最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framework只不过是对这些前辈们进行了系统的封装和扩充,在这个过程中,吸取了Java框架的很多经验.关于Win32 API与.NET Framework API的对应关系,可以参考Microsoft Win32 to Microsoft .NET Framework API Map 菜谱:除了蓝色部分以外,其

.NET学习笔记 -- 那堆名词到底是啥(CLR、CLI、CTS、CLS、IL、JIT)

什么是CLR? CLR,公共语言运行时(Common Language Runtime)是一个由多种语言使用的“运行时”.他的核心功能包括(内存管理.程序集加载.安全性.异常处理和线程同步),可以被面向CLR的所有语言使用.这里的“运行时”,就是一个运行时环境,就像JAVA虚拟机一样.哦,错了,确切的说是JRE(Java  Runtime Enviromental).JVM确切的说不是一个实体的java虚拟机,而是一个规范,就像CLI一样.会有不同的实现,如:JRockit还是Hotspot(前

CLR、CLI、CTS、CLS之关系

本文参考自:CLR.CLI.CTS.CLS的关系 CLR(公共语言运行库) CLR是一个CLI的实现,包含了.NET运行引擎和符合CLI的类库.我们开发的几乎所有的.NET程序都基于CLR的类库来实现,并且运行在CLR提供的运行引擎之上. CLI(公共语言基础) CLI是微软公司向ECMA提交的一份语言和数据格式规范,CLR是目前为止唯一一个公共语言基础的实现版本.CLI包括了公共类型系统(CTS).公共中间语言(CIL).底部文件格式以及元数据格式等 CTS(公共类型系统) CTS定义了一个能

【转载】深入理解Loadrunner中的Browser Emulation

一:基本介绍 在Loadrunner的使用中,对于Run-time Settings下的browser emulation设置是比较容易让人产生困惑的地方.下面我们结合sniffer来具体看看每个选项的用途,以及对测试的影响. Browser Emulation 图 二:案例和工具 1.测试案例: 打开网站首页两次,对比不同Browser Emulation设置下loadrunner的行为,脚本如下. Action(){web_url("www.primeton.com","

什么是CTS、CLS和CLR

CTS.CLS和CLR是.NET框架的基本概念,但往往成为程序员们忽视的部分.清楚理解三者的概念,有助于.NET程序员编写高效安全的.NET程序. 所涉及到的知识点 •   .NET的基本概念 •   CLS.CTS和常用语言的关系 分析问题    CLR的全称是公共语言运行库(Common Language Runtime),读者可以把CLR理解为一个包含运行.NET程序的引擎和一堆符合公共语言基础结构的类库的集合.CLR是一个规范的实现,我们开发的 几乎所有的.NET程序都基于CLR的类库来

【.NET Framework 基础】——CLR、BCL、DLL、Assembly

.NET FrameWork是用于Windows的新托管代码编程模型,它包含CLR(Common Language Runtime)以及BCL(Base CLass Library)构成. 一.CLR 1.CLR是什么? Common Language Runtime,公共语言运行时,和JVM(Java Virtual Machine,Java虚拟机实现了Java的与平台无关的特性,它屏蔽了平台的具体信息,只需生成在Java虚拟机上运行的目标代码就可以在任何平台上都可以运行.一次编译,到处运行)

CTS,CLS,CLR解释

问题阐述 CTS.CLS和 CLR分别是什么意思? 专家解答 CTS.CLS和 CLR是.NET框架的 3个核心部分,下面分别对它们进行介绍. (1)CTS CTS即通用类型系统,它定义了如何在.NET Framework运行库中声明.使用和管理类型,同时也是.NET Framework运行库支持跨语言集成的一个重要组成部分.通用类型系统主要执行以下功能: .建立一个支持跨语言集成.类型安全和高性能代码执行的框架. .提供一个支持完整实现多种编程语言的面向对象的模型. .定义各语言必须遵守的规则