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

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

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

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

  最下层蓝色部分是.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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119346.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月20日 下午10:00
下一篇 2021年11月20日 下午11:00


相关推荐

  • c语言findwindow函数_findwindow函数

    c语言findwindow函数_findwindow函数转自:http://blog.csdn.net/coolszy/article/details/5523486[DllImport(“User32.dll”,EntryPoint=”FindWindow”)]句柄,是整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的指针,程序不能利用句柄来…

    2022年8月13日
    17
  • latex在大括号里换行_大括号的解决问题

    latex在大括号里换行_大括号的解决问题存在问题:在编译LaTex的时候,会出现存在大括号\left(\right),但是一旦公式过长需要换行时,例如这个时候会用到\\与&来做换行,但如果直接编译的话,会报错,例如解决办法:在换行符前面加入变成\right.\\与&\left.这样就可以解决大括号换行的问题了,一个小点千万别漏写了…

    2022年10月11日
    8
  • 诺基亚S60手机c盘、d盘、e盘、z盘的作用

    诺基亚S60手机c盘、d盘、e盘、z盘的作用诺基亚S60手机c盘、d盘、e盘、z盘里文件夹的用途详细诠释
        一、【C盘】
      手机的C盘如同Windows的C盘,是用来放置SymbianOS的地方,所以我们需要给操作系统预留足够的空间(比如用来存放软件运行时生成的临时文件)。对于已扩充了MMC卡的机器,建议把应用软件和游戏都尽量安装到MMC卡上。
      手机内存和常驻内存的软件有关,如输入法、主题背景开机后就会常驻内存,正在运行的软件和游戏也会占用内存,增加动态内存的办法就是减少常驻内存的程序,用任务管理软件

    2022年7月11日
    27
  • Windows远程桌面连线显示请稍后

    Windows远程桌面连线显示请稍后帮助远程桌面连接

    2026年3月18日
    2
  • 二级指针动态数组,模拟指针数组

    二级指针动态数组,模拟指针数组

    2021年8月18日
    63
  • NV21 旋转+转为NV12

    NV21 旋转+转为NV12yuv420sp的分两种,nv21和nv12。Android取摄像头中的数据,当使用camera1.0时,onPreviewFrame返回的数据yuv420sp的nv21,并且camera中取出的数据显示时是偏转的,需要将其旋转顺时针旋转270或逆时针旋转90,注:旋转后宽高对调/***此处为顺时针旋转270*@paramdata旋转前的数据*@paramima…

    2025年11月30日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号