C# .NET .NET Framework .NET CORE 等的关系简介
2019新的一年,祝大家新年快乐,工作生活一帆风顺,心想事成!诸事大吉!
这篇文章是我今年的第一篇博客,主题是:C# .NET .NET Framework .NET CORE 等这些名词之间有什么关联关系。
费话不多说,直接进入主题。
.NET的正式诞生:2002年2月13日微软正式推出.NET的开发工具--Visual Studio.NET 2002。
.NET平台结构图:
我们看上图,我们一一来做解释:
硬件设备和操作系统我就不做解释了,这是软件运行的载体或环境,计算机行业的基础。
.NET Framework(以下简称.NET 框架):
.NET Framework是安装和运行在操作系统上的,是.NET最基础的框架,开发.NET应用程序的核心基础。
常用的版本是:
.NET Framework 3.5 2006年11月21日
.NET Framework 4.0 2010年4月12日
.NET Framework 4.5 2012年8月16日
最新的版本:.NET Framework 4.7 2017年4月
它提供了创建、部署和运行.NET应用的环境,主要包含三个关键的组成元素:
CLR:公共语言运行时(Common Language Runtime)
FCL:框架类库(.NET Framework Class Library)
DLR:动态语言运行时(Dynamic Language Runtime)
基于.NET框架可以支持多种语言进行开发,如 C#,VB.NET,C++等,也就是我们俗称的跨语言开发
开发和运行一个.NET 应用程序必须安装.NETFramework。
结构图:
.NET 框架的用途:
1、提供了一个面向对象的编程环境,完全支持面向对象编程。
提高了的可复用、可扩展性、可维护性、灵活性
2、对Web Service(WEB服务)的支持
3、实现SOA,支持云计算(windows Azure)
4、支持构建.NET程序的炫彩UI (WPF)
……
CLR:公共语言运行时
CLR是.NET框架的基础,它提供了所有.NET应用程序运行时环境,是所有.NET应用程序都要使用的编程基础。
CLR也可以看作是一个在执行时管理代码的代理,管理代码是CLR的基本功能,能够被托管的代码称为托管代码,
反之称为非托管代码。托管代码以“CLR”为目标,非托管代码以“操作系统”为目标
CLR包含三个组成部分:
CLS:公共语言规范(Common Language Specifcation):
是一种最低的语言标准,它制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其它.NET语言之间实现互操作所需要的完整特性。
凡是遵守这个标准的语言在.NET框架下都可以实现互相调用。简单说:就是把各种语言转换成统一的语法规范。
CTS:通用类型系统(Common Type System)
解决不同语言数据类型不同的问题,如C#中的整形是int,而VB.net中的整形是Integer,通过CTS我们把它们两个编译成通用的类型Int32。
所有的.NET语言共享这一类型系统,在它们之间实现对接,简单说:就是把各种语言中的不同数据类型,转换成统一的通用的数据类型。
JIT:即时编译器(Just In Time)
将用于转换之后的微软中间语言编译为二进制语言,交给CPU执行
CLR的编译过程:
.NET所有编写的源代码都不被编译成本地代码,而是由各自语言的编译器,编译成微软的中间代码(Microsoft Intermediate Language,MSIL).
中间语言MSIL或IL,再由JIT编译器转换成机器代码(操作系统专用代码)
注:
IL我们通常称之为程序集语言,因为.NET程序集需要由.NET运行时加载才能运行,所以IL代码也叫做托管代码(Managed Code),
它是一种比高级语言低,比机器语言要高的中间语言,基于堆栈,又支持面向对象。
所有能被编译为IL的语言都可以被.NET Framework托管,其它语言要被.NET Framework托管,则需要第三方编译器支持。
FCL:框架类库:
FCL:一个综合性的面向对象的可重用类型集合
从功能上来看,可以将FCL框架类库划分成以下几层。
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/9754.html