【转载】“菜”鸟理解.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的兼容性的。就好像有的食客习惯用筷子,有的则喜欢用叉子,像八戒就用九齿钉耙。有了CLS和CTS,各路食客就能使用自己喜欢用的餐具吃上可口的食物了。例如:把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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • java线程池参数_线程池参数的合理设置

    java线程池参数_线程池参数的合理设置一:线程池参数简介#E*^.|0X*J(e,|4p!P,^6n-d’U/UThreadPoolExecutor类可设置的参数主要有:Y4~${7r*c.w7?corePoolSize:核心线程)o4N;k;j3w)f-J”^0v1.核心线程会一直存活,及时没有任务需要执行*I8V!t#[%e2.当线程数小于核心线程数时,即使有线程…

    2022年6月6日
  • java数据库图书销售系统_SQL+java数据库课程设计,图书销售管理系统[通俗易懂]

    java数据库图书销售系统_SQL+java数据库课程设计,图书销售管理系统[通俗易懂]【实例简介】SQL数据库课程设计,图书销售管理系统,报告,任务书,挺全的【实例截图】【核心代码】07计本2班_15号_刘思旭_图书销售管理系统└──07计本2班_15号_刘思旭_图书销售管理系统├──07计本2班_15号_刘思旭_图书销售管理系统│├──数据库││├──bookshop_Data.MDF││└──bookshop_Log.LDF│└──…

    2022年6月7日
  • Git的下载安装 (图文教程)

    Git的下载安装 (图文教程)git的下载安装目录git的下载git的安装步骤git的下载如果你还没有下载Git,可直接到git官网进行下载。如图直接按下Downloads选项这是页面会跳转到相应的页面按下Windows或DownloadforWindows选项,页面会自动跳转下载页面,当然其它系统类型根据需要下载相应的版本即可。下载完成双击运行点击运行…

    2022年5月27日
  • LM算法——列文伯格-马夸尔特算法(最速下降法,牛顿法,高斯牛顿法)(完美解释负梯度方向)

    LM算法——列文伯格-马夸尔特算法(最速下降法,牛顿法,高斯牛顿法)(完美解释负梯度方向)首先谈一下应用场景——在拟合的时候进行应用什么是拟合?你有一堆数据点,我有一个函数,但是这个函数的很多参数是未知的,我只知道你的这些数据点都在我的函数上,因此我可以用你的数据点来求我的函数的未知参数。例如:matlab中的fit函数最小二乘法天生就是用来求拟合的,看函数和数据点的逼近关系。它通过最小化误差的平方和寻找数据的最佳函数匹配。拟合我们可以认为是一种试探性的方法,这种方法在计算机出…

    2022年10月1日
  • windows cmd切换盘符_cmd无法切换到d盘

    windows cmd切换盘符_cmd无法切换到d盘在win10中使用cmd命令行进行切换盘符操作时,碰到无反应的情况:解决方法:1.输入路径回车后,再次输入该盘符2.在cd与E:\之间加上/d:原因:windows命令行切换不同盘符时要加强制转换参数/d…

    2022年9月28日
  • vc++菜鸟教程_java如何编写接口

    vc++菜鸟教程_java如何编写接口怎样编写自己的VCL控件    用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者。    VCL控件的开源,给我们带来了享之不尽的好处。不像以前的ole控件以及ActiveX,你完全可以重写Delphhi标准控件,而且网上这方面的资源很多。    关于如何编写VCL控件,和多

    2022年9月24日

发表回复

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

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