Unity跨平台基本原理
Unity跨平台基本原理
微软的.Net是什么
微软的 .Net既不是编程语言也不是框架 是类似于 互联网时代、次时代、21世纪、信息时代之类的宣传口号
它是一整套技术体系的统称,或者说它是微软提供的技术平台的代号
包含的内容有
框架体系:.Net Framework、.Net Core、Mono等等
开发语言:C#、VB、F#等等(C#是.Net平台主推的开发语言)
开发工具:Visual Studio、Visual Studio Code 等等
你可以简单理解.Net本质上就是微软为自己的一系列产品取的一个代号
微软做 .Net平台的目的
- 跨语言
只要是面向.NET平台的编程语言(C#、VB、C++、F#等等),用其中一种语言编写的内容可以无缝地用在另一种语言编写的应用程序中
- 跨平台
一次编译,不需要任何代码修改,应用程序就可以运行在任意有**.NET框架实现的操作系统上,即代码不依赖于操作系统,也不依赖硬件环境**
如何实现的.Net跨语言?
CLS(Common Language Specification) 公共语言规范
.Net专门参考每种语言并找出了语言间的共性,定义了一组规则。
与其说是规则,不如说它是一组语言互操作的标准规范
只要开发者都遵守这个规则来编码,那么代码就能被任意.Net平台支持的语言所通用,即可以通过不同的编程语言(C#、VB、J#等等)来创建应用程序
CTS(Common Type System) 公共类型系统
当你需要设计面向.Net的语言时需要遵循一个体系,这个体系就是CTS
刚才提到的CLS公共语言规范就是是CTS公共类型系统的子级
一个编程语言,如果它能够支持CTS,那么我们就称它为**面向.NET平台的语言 **
CLI(Common Language Infrastructure) 公共语言基础结构
是微软将CTS等内容提交给国际组织计算机制造联合会ECMA的一个工业标准
总结
微软为了实现跨语言,制定了一些规范
只要一门语言支持CTS(公共类型系统)的规则
那么我们就能够使用它在.Net平台下开发应用程序 CLS(公共语言规范)是CTS的一个子级,是一组语言互操作的标准规范
我们经常可以看到的CLI公共语言基础结构,它包含CTS公共类型系统 它是微软将CTS等内容提交给国际组织计算机制造联合会ECMA的一个工业标准
Net的跨语言是让各种语言支持.Net的规范CLI(也就是CTS等规范)
早期的.Net系列产品主要是为了给Windows操作系统服务的 并没有跨平台的特性,即使跨语言了
也只是可以使用多语言开发Windows上的应用程序
那么这里就不得不提几个个概念 .Net Framework 、 .Net、Mono
.Net Framework
.Net Framework 在2002年推出1.0版本 .NET Framework 是一个可以快速开发、部署网站服务及应用程序的开发框架 是 Windows 中的一个组件,部分开源,主要用于开发Windows下应用程序
包括 公共语言运行时(Common Language Runtime, CLR) 虚拟执行系统 .NET Framework 类库
.Net Framework的体系结构
制作应用程序
编程语言 + 调用各种类库进行开发 生成程序集
-
只要支持CLS公共语言规范的语言都可以用于 开发Windows下的各种应用程序和网站程序
-
**BCL(基础类库)和FCL(框架类库)**是这个 框架体系中为我们实现好的各种API
-
程序集的表现就是后缀为.dll或者.