2020年你应该学习 .Net Core

一、什么是.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 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 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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对表头指针、表头结点,单链表删除的理解

https://blog.csdn.net/weixin_46678290/article/details/105309156

C# WPF发票打印

C# WPF发票打印内容目录实现效果业务场景编码实现本文参考源码下载1.实现效果发票界面PDF打印结果2.业务场景界面作为发票预览,按客户需求可打印成发票纸张给客户。3.编码实现3.1 添加Nuget库站长使用 .Net Core 3.1 创建的WPF工程,创建“Invoice”解决方…

dotNET知音,19年归档

2019年下半年开通公众号,尝试着分享和技术交流,也很高兴认识很多NETer同行。为了方便阅读,进行归档,如果之前有错过的文章,这是一个很好的补课机会。.NETCore3.0:《.Net Core3.0 配置Configuration》《.Net…

阿里如何应对亿级高并发大流量?如何保障高可用和稳定性!

作者:丁浪,目前在创业公司担任高级技术架构师。曾就职于阿里巴巴大文娱和蚂蚁金服。具有丰富的稳定性保障,全链路性能优化的经验。架构师社区特邀嘉宾!阅读本文,你将会收获: 高并发、大流量场景的常见问题和…

动手造轮子:写一个日志框架

动手造轮子:写一个日志框架Intro日志框架有很多,比如 log4net / nlog / serilog / microsoft.extensions.logging 等,如何在切换日志框架的时候做到不用修改代码,只需要切换不同的 loggingProvider 就可以了,最低成本的…

【C】@程序员,我们送给你一个成熟的Excel导入导出组件

程序员的显著特点有一天跟一位同事跟我闲聊,讨论起过去若干年软件行业的感受,他问了个问题:你觉得一个好的软件工程师最显著的特点是什么?我想了一会,说:大概是坐得住吧。某种意义上来说,在互联…

SummerBoot,将SpringBoot的先进理念与C#的简洁优雅合二为一

哈哈哈哈,大家好,我就是高产似母猪的三合,好久没写博客了,因为最近几个月在不断的加班,加班时长平均每个月120小时以上。今天是2020年的第一天,作为一条程序汪,觉得不做点啥好像对不起这个特别有…

C#刷遍Leetcode面试题系列连载(6):No.372 - 超级次方

点击蓝字“dotNET匠人”关注我哟加个“星标★”,每日 7:15,好文必达!前文传送门:C# 刷遍 Leetcode 面试题系列连载(1) - 入门与工具简介C#刷遍Leetcode面试题系列连载(2): No.38 - 报数C#刷遍Le…

使用 Postman 测试你的 API

使用 Postman 测试你的 APIIntro最近想对 API 做一些自动化测试,看了几个工具,最后选择了 postman,感觉 postman 的设计更好一些,我们可以在请求发送之前和请求获取到响应之后都可以自定义脚本,很灵活。而且 postman 的…

使用 postman 给 API 写测试

使用 postman 给 API 写测试Intro上次我们简单介绍了 使用 postman 测试 API,这次主要来写一些测试用例以检查请求的响应是否符合我们的预期以及如何使用脚本测试使用 postman 内置的随机变量postman 内置的有一些产生随机值的变量,在发送请求时随机生成…

ASP.NETCore编程实现基本认证

HTTP基本认证在HTTP中,HTTP基本认证(Basic Authentication)是一种允许浏览器或其他客户端程序使用(用户名,口令)请求资源的身份验证方式,不要求cookie,session identifier、login page等标记或载…

计算机原理(计算机系统漫游)

计算机五大组成部件:运算器(ALU),控制器,存储器,输入部件,输出部件 1.控制器 2.运算器 逻辑运算(判断事物的对与错) 数学运算(11) 控制器运算器中央处理器(CP…

使用ASP.NET Core 3.x 构建 RESTful API - 4.2 过滤和搜索

向Web API传递参数数据可以通过多种方式来传给API。 Binding Source Attributes 会告诉 Model 的绑定引擎从哪里找到绑定源。 共有以下六种 Binding Source Attributes: [FromBody] 请求的 Body [FromForm] 请求的 Body 中的 form数据 [FromHeader] 请求的 Header […

360浏览器linux版本_360安全浏览器崩溃解决方案

360安全浏览器崩溃解决方案方案一:打开360安全浏览器,按键盘上的F1调出浏览器医生界面,点击一键修复即可。如图所示:方案二:360浏览器打开了太多标签占用内存,并且随着浏览器开着的时间越长,占用…

.NET 开源软件开发BIM工具包xBIM

一、xBIM 简介BIM(Building Information Modelling)建筑信息模型,xBIM(eXtensible Building Information Modelling)可扩展的建筑信息模型。它是一个.NET 开源软件开发BIM工具包,支持BuildingSmart数据模型…

2019(dotNet全栈开发)公众号回顾

2019年已经过去,人口红利已经逐渐消失,也许这是这10年互联网史上最糟糕的一年,也可能这是未来10年互联网史上最好的一年关于公众号,我其实很早就开始注册了,只是一直没怎么运营(ps:不知道怎么推…

CSS padding margin border属性讲解

把所有网页上的对象都放在一个盒(box)中 ,设计师可以通过创建定义来控制这个盒的属性,这些对象包括段落、列表、标题、图片以及层。 盒模型主要定义四个区域: 内容(content) 内边距(…

【实战 Ids4】║ 客户端、服务端、授权中心全线打通!

1、经过元旦两天的全力整改,终于在这新的一年,完成了我的布道生涯的第一个大步走 —— 那就是客户端(VUE)、服务端(ASP.NET Core API)、授权中心(IdentityServer4)的大融合&#xff…

补丁 检测系统_大云制造 | BCLinux For ARM64 V7.6操作系统正式发布

友情提示:全文3000多文字,预计阅读时间10分钟概述大云企业操作系统(BC-Linux,BigCloud Enterprise Linux)是中移(苏州)软件技术有限公司借助开源社区优势,通过定制化手段研发的高性能、安全可靠、自主可控的企业级Linux操作系统。…