一、什么是.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 是由 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 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 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 应用程序支持在 Windows,Linux 和 macOS 上运行。Linux 和 macOS 上也都支持 Microsoft 流行的开源代码编辑器Visual Studio Code。VS Code 支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如 Sublime,Emacs 和 VI)都支持.NET Core。
转自:刺眼
cnblogs.com/cuigzh/p/12106508.html