欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.Net Core的总结

程序员文章站 2022-06-29 10:46:14
一、什么是.NET Core .NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。 .NET Core的源码放在GitHub上,由微软官方和社区共同支持。 由于.NET ......

一、什么是.net core

.net core是一个开源通用的开发框架,支持跨平台,即支持在window,macos,linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。

.net core的源码放在github上,由微软官方和社区共同支持。

由于.net core的开发目标是跨平台的.net平台,因此.net core包含一些.net framework的类库(在.net core 3 .0之后,不再从.net framework中移植任何功能了 ),但与 .net framework不同的是.net core采用包化 (packages) 的管理方式,应用程序只需要获取需要的组件即可,如果是之前封装的dll则需要打包,打包方式:在nuget包管理控制台执行: dotnet pack,将生成的.nupkg文件拷贝到包目录中,安装一下,就完成了打包的过程。。

二、为什么要了解.net core

如果你现在是一名.net开发人员,或者你正在学习.net,又或者你以后打算从事.net方向的开发工作,那么.net core 是必不可少,也可以说是必须的一项技能。

.net core 是 .net 的未来,它也是.net发展中的一个重大转折,而且 .net core已经出现在了很多.net岗位的招聘需求上,这也说明了.net core逐渐发展成熟。

三、.net core 特性

1、跨平台

可以在 windows、macos 和 linux 操作系统上运行。

2、跨架构

在多个架构(包括 x64、x86 和 arm)上以相同的行为运行代码。

3、支持命令行

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

4、部署灵活

可以包含在独立应用、用户环境或者计算机环境中(比如对于windows系统来说,iis、windows服务和控制台),也可搭配 docker 容器使用。

5、兼容性强

.net core通过 .net standard与 .net framework、xamarin(跨平台开发框架,目标是 用c#开发ios、android和windows phone原生应用程序)和mono(一个致力于开创.net在linux上使用的开源工程) 兼容。

6、开源

.net core是一个开放源平台,使用mit开源协议和apache 2许可证。

四、与.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 的架构图

 .Net Core的总结

.Net Core的总结

五、.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新增功能的优化

六、.net core 3.0 新增功能

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

2、支持 winforms 和 wpf

这是否意味着它在linux和mac上运行?

不!由于winforms和wpf在后台仅使用windows技术,因此无法在linux或mac上运行,它依赖于windows。在.net core上运行它的意义在于提升性能并且独立于任何框架。.net core针对性能进行了优化,因此您可以在云中运行超快的web应用程序。.net core也独立于计算机上安装的框架。只需将运行时与应用程序一起部署即可。

3、asp.net core 3.0

4、ef core 3.0

5、.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)快得多。

 .Net Core的总结

七、.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中将无法正常工作。

八、.net core构建哪些类型的应用程序

.net core是一个通用的软件开发框架。它允许开发人员构建各种软件,包括web,桌面,移动,云,游戏,物联网等。与其他框架不同,.net core并不局限于单一的编程语言,它支持c#、vb.net、f#、xaml和typescript。

 .Net Core的总结

.net core更适合跨平台需求。.net core应用程序支持在windows,linux和macos上运行。linux和macos上也都支持microsoft流行的开源代码编辑器visual studio code。vs code支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如sublime,emacs和vi)都支持.net core。