当前位置:首页 > Windows程序 > 正文

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