.Net Core的总结

1、什么是.NET Core

.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,而且能够在硬件设备,云服务,和嵌入式/物联网方案中进行使用。编程

.NET Core的源码放在GitHub上,由微软官方和社区共同支持。windows

因为.NET Core的开发目标是跨平台的.NET平台,所以.NET Core包含一些.NET Framework的类库(在.NET Core 3 .0以后,再也不从.NET Framework中移植任何功能了 ),但与 .NET Framework不一样的是.NET Core采用包化 (Packages) 的管理方式,应用程序只须要获取须要的组件便可,若是是以前封装的dll则须要打包,打包方式:在nuget包管理控制台执行: dotnet pack,将生成的.nupkg文件拷贝到包目录中,安装一下,就完成了打包的过程。。浏览器

2、为何要了解.NET Core

若是你如今是一名.NET开发人员,或者你正在学习.NET,又或者你之后打算从事.NET方向的开发工做,那么.NET Core 是必不可少,也能够说是必须的一项技能。服务器

.NET Core 是 .NET 的将来,它也是.NET发展中的一个重大转折,并且 .NET Core已经出如今了不少.NET岗位的招聘需求上,这也说明了.Net Core逐渐发展成熟。架构

3、.NET Core 特性

一、跨平台

能够在 Windows、macOS 和 Linux 操做系统上运行。框架

二、跨架构

在多个架构(包括 x6四、x86 和 ARM)上以相同的行为运行代码。less

三、支持命令行

包括用于本地开发和持续集成方案中的易于使用的命令行工具。异步

四、部署灵活

能够包含在独立应用、用户环境或者计算机环境中(好比对于Windows系统来讲,IIS、windows服务和控制台),也可搭配 Docker 容器使用。编程语言

五、兼容性强

.NET Core经过 .NET Standard与 .NET Framework、Xamarin(跨平台开发框架,目标是 用C#开发iOS、Android和Windows Phone原生应用程序)和Mono(一个致力于开创.NET在Linux上使用的开源工程) 兼容。编辑器

六、开源

.NET Core是一个开放源平台,使用MIT开源协议和Apache 2许可证。

4、与.NET Framework关系

.NET Core & .NET Framework 都是 .NET Standard Library 的实现,前者是跨平台,然后者是Windows下特有的,除了实现 .NET Standard Library外 .NET Core 和 .NET Framework 都有各自特有的实现。

对于.Net Core来讲,.NET Standard Library 是跨操做系统的关键所在,它定义了一组接口,而每一个操做系统有各自的实现,.NET Core经过nuget能够动态下载当前操做系统的实现,从而实现跨操做系统。

从将来发展的角度来看,.NET Core 是 .NET Framework 的下一代产品,目前 .NET Framework 还在 4.8 版本,.NET Core 是 3.1 版本。微软已经宣布,.NET Core 3.1 的下个版本就是 .NET 5,也就是说.NET 5是.NET Core的下一版本。

 

.Net Framework 和 .Net Core 的架构图

 

5、.NET Core 发展路线

.NET Core是由Microsoft开发,目前在.NET Foundation(一个非营利的开源组织)下进行管理。.NET Core是用C#和C++编写的,并采用MIT协议做为开源协议。第一个版本的.NET Core 1.0是在2016年发布的,功能有限。NET Core 2.0于2017年8月14日发布。在这个版本中发布的两个核心框架是ASP.NET Core2.0和 Entity Framework Core 2.0。下一个稳定版本.NET Core 2.1和2.2于2018年5月和12月发布。.NET Core的当前版本为3.1。

下表总结了.NET Core的主要里程碑:

版本

发布日期

关键特征/产品

.NET Core 1.0

6/27/2016

Visual Studio 2015 Update 3支持的.NET Core的初始版本。

.net Core 1.1.1

3/7/2017

.NET Core Tools 1.0受Visual Studio 2017支持

.NET Core 2.0

8/14/2017

Visual Studio 2017 15.3,ASP.NET Core 2.0,实体框架2.0

.NET Core 2.1

5/30/2018

ASP.NET Core 2.1,EF Core 2.1

.NET Core 2.2

12/4/2018

ASP.NET Core 2.2,EF Core 2.2

.NET Core 3.0预览3

3/6/2019

经过VisualStudio2019支持ASP.NET Core 3.0、EF Core3.0、UWP、Windows窗体、WPF

.NET Core 3.1

19年8月

对3.0新增功能的优化

6、.NET Core 3.0 新增功能

一、C# 8.0 也是该版本的一部分,它包含可为空引用类型功能、异步流。

二、支持 WinForms 和 WPF

这是否意味着它在Linux和Mac上运行?

不!因为WinForms和WPF在后台仅使用Windows技术,所以没法在Linux或Mac上运行,它依赖于Windows。在.NET Core上运行它的意义在于提高性能而且独立于任何框架。.NET Core针对性能进行了优化,所以您能够在云中运行超快的Web应用程序。.NET Core也独立于计算机上安装的框架。只需将运行时与应用程序一块儿部署便可。

三、ASP.NET Core 3.0

四、EF Core 3.0

五、.NET Core 是在云原生背景下诞生一个开发平台,而在.NET Core 3.0 更加完善,具体内容:

  • 体积更小:对于微服务分布式架构而言,更小的体积意味着更少的下载带宽,更快的分发下载速度,.NET Core 的镜像体积都很小。
  • 启动速度更快:对于传统单体应用,启动速度与运行效率相比不是一个关键的指标。缘由是,这些应用重启和发布频率相对较低。然而对于须要快速迭代、水平扩展的微服务应用而言,更快的的启动速度就意味着更高的交付效率,和更加快速的回滚。尤为当你须要发布一个有数百个副本的应用时,缓慢的启动速度就是时间杀手。对于 Serverless 应用而言,端到端的冷启动速度则更为关键,即便底层容器技术能够实现百毫秒资源就绪,若是应用没法在 500ms 内完成启动,用户就会感知到访问延迟。
  • 占用资源更少:运行时更低的资源占用,意味着更高的部署密度和更低的计算成本。.NET Core的 CLR启动速度很是快,下降启动时资源消耗,能够减小资源争抢。
  • 支持水平扩展:.NET Core 3.0 更好的支持Docker资源限制,官方团队也在努力让.NET Core成为真正的容器运行时,使其在低内存环境中具备容器感知功能并高效运行。随着内存成本的降低和虚拟化的流行,大内存配比已经成为趋势。因此咱们通常是采用水平扩展的方式,同时部署多个应用副本,在一个计算节点中可能运行一个应用的多个副原本提高资源利用率。

.NET Core 3.0 是快速的。与.NET Framework和.NET Core 2.2及之前的版本相比,.NET Core 3.0的速度很快。.NET Core比其余服务器端框架(如Java Servlet和Node.js)快得多。

 

7、.NET Core 3.1 变化

.NET Core 3.1 中的更改​​主要集中在 Blazor 和 Windows Desktop,这是 .NET Core 3.0 中的两个新增特性

(Blazor是一个WebUI框架,可经过WebAssembly在任意浏览器中运行.Net.)

NET Core 3.1要求Visual Studio 2019 16.4才能充分利用其全部功能。.NET Core 3.1在早期版本的Visual Studio中将没法正常工做。

8、.NET Core构建哪些类型的应用程序

.NET Core是一个通用的软件开发框架。它容许开发人员构建各类软件,包括Web,桌面,移动,云,游戏,物联网等。与其余框架不一样,.NET Core并不局限于单一的编程语言,它支持C#、VB.NET、F#、XAML和TypeScript。

 

.NET Core更适合跨平台需求。.NET Core应用程序支持在Windows,Linux和macOS上运行。Linux和macOS上也都支持Microsoft流行的开源代码编辑器Visual Studio Code。VS Code支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如Sublime,Emacs和VI)都支持.NET Core。

相关文章
相关标签/搜索