C# .NET .NET Framework .NET CORE 等的关系简介

2019新的一年,祝你们新年快乐,工做生活一路顺风,心想事成!诸事大吉!web

这篇文章是我今年的第一篇博客,主题是:C#  .NET  .NET Framework   .NET CORE  等这些名词之间有什么关联关系。编程

费话很少说,直接进入主题。windows

 

.NET的正式诞生:2002年2月13日微软正式推出.NET的开发工具--Visual Studio.NET 2002。api

 .NET平台结构图:安全

咱们看上图,咱们一一来作解释:网络

硬件设备和操做系统我就不作解释了,这是软件运行的载体或环境,计算机行业的基础。并发

 

.NET Framework(如下简称.NET 框架):app

.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应用的环境,主要包含三个关键的组成元素:异步

  1.    CLR:公共语言运行时(Common Language Runtime)
  2.    FCL:框架类库(.NET Framework Class Library)
  3.    DLR:动态语言运行时(Dynamic Language Runtime)

 基于.NET框架能够支持多种语言进行开发,如  C#,VB.NET,C++等,也就是咱们俗称的跨语言开发

开发和运行一个.NET 应用程序必须安装.NETFramework。

结构图:

.NET 框架的用途:
一、提供了一个面向对象的编程环境,彻底支持面向对象编程。
提升了的可复用、可扩展性、可维护性、灵活性
二、对Web Service(WEB服务)的支持
三、实现SOA,支持云计算(windows Azure)
四、支持构建.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框架类库划分红如下几层。
  • 最底层,由BCL的大部分组成,主要做用是对.NET框架、.NET运行时及CIL语言自己进行支持,例如基元类型、集合类型、线程处理、应用程序域、运行时、安全性、互操做等。
  • 中间层,包含了对操做系统功能的封装,例如文件系统、网络链接、图形图像、XML操做等。
  • 最高层,包含各类类型的应用程序,例如Windows Forms、Asp.NET、WPF、WCF、WF等。

FCL的内容被组织成一个树状的命名空间(Namespace Tree),每一个命名空间能够包含许多类型及其它命名空间,

在使用FCL时,咱们须要引入其相应的命名空间。

核心命名空间简介:

System:此命名空间包含全部其余的命名空用,在 System命名空间中包含了定义NET中使用的公共数据类美型,如 Boolean,

                DateTime和lnt 32等。此命名空间中还有一个很是重要的数据类型" Object", Object类是全部其余NET对象继承的基本类

System Collections. Generic:支持泛型操做,是.NET 2.0新增的内容.

System IO:支持对文件的操做、如复制,粘贴、删除及对文件的读写等

System.Net:支持对网络协议的编程

System.Dat提供对表示 ADO. NET结构的类的访问

System.Windows. Fonns:用于开发 Windows应用程序,引入这个命名空间才能使用 Win forms的控件和各类特性。

System.Drawing:支持GDI+基本图形操做

 

 DLR:动态语言运行时

在NET Framework 4.0中新增了动态语言运行时DLR(Dynamic Language Runtime),相对于CLR微软提供了DLR

用来向CLR中添加了一组专门用于知足动态语言的服务, 借助于DLR,能够开发在.NET  Framework 上运行的动态语言,

并且可使用C#,VB.NET等语言方便地与动态语言交互,目前比较出名的DLR应用有IronPython。

 

.NET Framework的版本跌代:

 

.NET Framework 3.0版本是一个分水岭:
在以前,.NET Framework只提供Asp.net web开发、WinFrom窗体应用程序开发等基本的功能。
在此以后,引入了许多新的特性:
一、WPF:
微软Vista操做系统的核心开发库之一,是一个图形引擎
做用:实现界面显示与程序代码更好的分离
 
二、WCF:
把Web服务、.NET Remoting等技术统一到单个面向服务的编程模型中,以实现真正的分布式计算。
 
三、WF:
WF是一个普遍通用的工做流程框架,从下到上在每一个级别都针对扩展性进行了设计。
 
四、Windows CardSpace:
是微软公司取代用户名和密码成为验证网络使用有者身份的新方法。
 
五、LinQ:
查询集成语言,简化不一样数据源对象查询操做。
 
六、Ado.net Entity Framework
简称EF,是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案( ORM框架),早期被称为 ObjectSpace,

该框架在version 6以后从.NET Framework分离出来。

七、Parallel linq

简称并行 LINQ (PLINQ) 是 LINQ to Objects 的并行实现。

 PLINQ 将 LINQ 语法的简洁和可靠性与并行编程的强大功能结合在一块儿。 就像面向任务并行库的代码同样,PLINQ 查询会根据主计算机的能力按比例调整并发程度。

在许多状况下,PLINQ 可经过更有效地使用主计算机上的全部可用内核来显著提升 LINQ to Objects 查询的速度。 这一性能提高使桌面具有高性能计算能力。

 

八、Task parallel library

简称任务并行库 (TPL) 是 System.ThreadingSystem.Threading.Tasks 空间中的一组公共类型和 API。

TPL 的目的是经过简化将并行和并发添加到应用程序的过程来提升开发人员的工做效率。

TPL 动态缩放并发的程度以最有效地使用全部可用的处理器。 此外,TPL 还处理工做分区、ThreadPool 上的线程调度、取消支持、状态管理以及其余低级别的细节操做。

经过使用 TPL,你能够在将精力集中于程序要完成的工做,同时最大程度地提升代码的性能。

 

九、Modern UI Runtime

简称Modern UI,是一个专一于用户界面设计的框架

 

十、Task-Based Async Model:基于任务的异步模型

 

最新版的.Net Framework 4.7主要带来了如下方面的提高:

  1. Win10窗体应用带来了高DPI支持;
  2. 为Win10上的WPF程序带来了触控支持;
  3. 加强了加密支持;
  4. 提高性能和稳定性。

 

 介绍完.NET Framework,再来讲说.NET平台最新发布的.NET Core。

结构图以下:

相关文章
相关标签/搜索