当前位置: 首页 > news >正文

.Net--CLS,CTS,CLI,BCL,FCL

1.什么是CLS

所以.NET专门为此参考每种语言(例如C# ,VB,F#)并找出了语言间的共性,然后定义了一组规则,开发者都遵守这个规则来编码,那么代码就能被任意.NET平台支持的语言所通用。
而与其说是规则,不如说它是一组语言互操作的标准规范,它就是公共语言规范 - Common Language Specification ,简称CLS

 CLS(公共语言规范)类型、命名、事件、属性、数组等方面对语言进行了共性的定义及规范。这些东西被提交给欧洲计算机制造联合会ECMA,称为:共同语言基础设施

于是你对其它人这样说,我总结出了一门语言很多必要的东西如两种主要类别:值类别和引用类别五个主要类型:类、接口、委托、结构、枚举我还规定了,一个类型可以包含字段、属性、方法、事件等成员,我还指定了每种类型的可见性规则和类型成员的访问规则,等等等等,只要按照我这个体系来设计语言,设计出来的语言它能够拥有很多不错的特性,比如跨语言,跨平台等,C#和VB.net之所以能够这样就是因为这两门语言的设计符合我这个体系。

2.什么是CTS

当你需要设计面向.Net的语言时所需要遵循一个体系(.Net平台下的语言都支持的一个体系)这个体系就是CTS(Common Type System 公共类型系统),它包括但不限于:

  • 建立用于跨语言执行的框架。
  • 提供面向对象的模型,支持在 .NET 实现上实现各种语言。
  • 定义处理类型时所有语言都必须遵守的一组规则(CLS)。
  • 提供包含应用程序开发中使用的基本基元数据类型(如 Boolean、Byte、Char 等)的库。

上文的CLS是CTS(Common Type System 公共类型系统)这个体系中的子集。
一个编程语言,如果它能够支持CTS,那么我们就称它为面向.NET平台的语言。

3.什么是CLI

微软已经将CTS和.NET的一些其它组件,提交给ECMA以成为公开的标准,最后形成的标准称为CLI(Common Language Infrastructure)公共语言基础结构。
所以有的时候你见到的书籍或文章有的只提起CTS,有的只提起CLI,请不要奇怪,你可以宽泛的把他们理解成一个意思,CLI是微软将CTS等内容提交给国际组织计算机制造联合会ECMA的一个工业标准。

4.什么是基础类库BCL?

当你通过VS创建一个项目后,你这个项目就已经引用好了通过.NET下的语言编写好的一些类库。比如控制台中你直接就可以用ConSole类来输出信息,或者using System.IO 即可通过File类对文件进行读取或写入操作,这些类都是微软帮你写好的,不用你自己去编写,它帮你编写了一个面向.NET的开发语言中使用的基本的功能,这部分类,我们称之为BCL(Base Class Library), 基础类库,它们大多都包含在System命名空间下

基础类库BCL包含:基本数据类型,文件操作,集合,自定义属性,格式设置,安全属性,I/O流,字符串操作,事件日志等的类型

5.什么是框架类库FCL?

有关BCL的就不在此一一类举。.NET之大,发展至今,由微软帮助开发人员编写的类库越来越多,这让我们开发人员开发更加容易。由微软开发的类库统称为:FCL(Framework Class Library.)NET框架类库,我上述所表达的BCL就是FCL中的一个基础部分,FCL中大部分类都是通过C#来编写的。

在FCL中,除了最基础的那部分BCL(基础类库-通用)之外,还包含我们常见的 如 : 用于网站开发技术的 ASP.NET类库该子类包含webform/webpage/mvc,用于桌面开发的 WPF类库、WinForm类库,用于通信交互的WCF、asp.net web api、Web Service类库等等

http://www.lryc.cn/news/402911.html

相关文章:

  • Stable Diffusion:质量高画风清新细节丰富的二次元大模型二次元插图
  • 数读MEME之争:以太坊获更高价值共识,抢占热点成Solana流量密码
  • python的with语句
  • Selenium原理深度解析
  • 算法复杂度<数据结构 C版>
  • 【XSS】
  • Go网络编程-RPC程序设计
  • Linux 性能优化:轻松入门
  • C++相关概念和易错语法(22)(final、纯虚函数、继承多态难点)
  • 状态管理的艺术:探索Flutter的Provider库
  • 玩转HarmonyOS NEXT之IM应用首页布局
  • GPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建
  • 记录些MySQL题集(4)
  • pdf提取其中一页怎么操作?提取PDF其中一页的方法
  • godot使用ws
  • Windows FFmpeg 开发环境搭建
  • 链路聚合概述
  • 【链表】算法题(二) ----- 力扣/牛客
  • 合成复用原则
  • 安卓自带camera hal3 实例README.md翻译
  • ActiViz实战:ActiViz中的自己实现鼠标双击事件
  • Linux-交换空间(Swap)管理
  • 扫描某个网段下存活的IP:fping
  • 【深度学习】PyTorch框架(3):优化与初始化
  • Go-知识测试-子测试
  • .net core IConfiguration 读 appsettings.json 数据,举例
  • 全球Windows机器蓝屏,作为量化人,我的检讨来了
  • 部署和运维
  • 微信小程序基本语法
  • 测试用例的设计方法