既然要学.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的一点理解,可能比喻有不恰当的地方,甚至有概念性的错误,希望大家指出来。我毕竟是初学者,大家的批评会帮助我成长。谢谢!

[转]“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)的更多相关文章

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

    既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容. 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基 ...

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

    原文地址:http://www.cnblogs.com/eshizhan/archive/2010/01/26/1657041.html 既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西 ...

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

    既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容. 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基 ...

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

    最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framewor ...

  5. [No0000151]菜鸟理解.NET Framework中的CLI,CLS,CTS,CLR,FCL,BCL

    最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framewor ...

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

    既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容. 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基 ...

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

    什么是CLR? CLR,公共语言运行时(Common Language Runtime)是一个由多种语言使用的“运行时”.他的核心功能包括(内存管理.程序集加载.安全性.异常处理和线程同步),可以被面 ...

  8. Ecma335、CLR、CLI、CTS、 IL、.net 以及他们之间的关系

    以上是个人对他们直接关系的理解:图片是原创 CLI 通用语言基础架构(Common Language Infrastructure), CLI是一个开放型的技术规范,它定义了一个语言无关的跨体系结构的 ...

  9. 什么是CTS、CLS和CLR

    CTS.CLS和CLR是.NET框架的基本概念,但往往成为程序员们忽视的部分.清楚理解三者的概念,有助于.NET程序员编写高效安全的.NET程序. 所涉及到的知识点 •   .NET的基本概念 •   ...

随机推荐

  1. 深度剖析:PHP中json_encode与json_decode

    一.json_encode() 对变量进行JSON编码, 语法: json_encode ( $value [, $options = 0 ] ) 注意:1.$value为要编码的值,且该函数只对UT ...

  2. Linux系统运维笔记(二),Linux文件编辑命令

    Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...

  3. spark优化之数据结构(减少内存)

    官网是这么说的: The first way to reduce memory consumption is to avoid the Java features that add overhead, ...

  4. php 会话控制(关于cookie的维护与生命周期)

    cookie是在服务器端被创建并写回到客户端浏览器,浏览器接到响应头中关于写cookie的指令则在本地临时文件中. cookie内容的存储是键值对的方式,键和值都只能是字符串. 函数原型:setcoo ...

  5. SQL中的坑

    一.where,group by,having --group by 和having 解释:前提必须了解sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等.这些函数 ...

  6. WebStorm failing to start with 'idea.system.path' error

    WebStorm failing to start with 'idea.system.path' error Ask Question up vote 2 down vote favorite   ...

  7. odoo国际化翻译

    翻译功能简述 每个模块的翻译文件放在该模块目录下i18n目录里. 模块内相关字符串一般用英语写成,然后通过翻译模板导出功能,导出一个翻译模板po文件. 翻译人员使用翻译软件(poedit)进行翻译后, ...

  8. 性能优化:使用SparseArray代替HashMap<Integer,Object>(转)

    HashMap是java里比较常用的一个集合类,我比较习惯用来缓存一些处理后的结果.最近在做一个Android项目,在代码中定义这样一个变量,实例化时,Eclipse却给出了一个 performanc ...

  9. 添加Godaddy二级域名子域名方法

    我们在申请注册了Godaddy域名后,如果需要开通二级域名,方法简单只需要在Godaddy添加二级域名(子域名)只要在域名管理后台添加A记录或CNAME别名(Aliases)即可.但我们如果需要添加二 ...

  10. PostgreSQL代码分析,查询优化部分,canonicalize_qual

    这里把规范谓词表达式的部分就整理完了.阅读的顺序例如以下: 一.PostgreSQL代码分析,查询优化部分,canonicalize_qual 二.PostgreSQL代码分析,查询优化部分,pull ...