这几天微软.NET 团队发布了.NET 5 Preview 1, 如约而至。很兴奋,因为.NET Core和.NET Framework终于实现了大一统,同时也很期待,期待.NET 5能给我们带来哪些好的新特性。

让我们先把时间拨回到2019年...

 一、2019年.NET 5的提前剧透

去年2019年 Richard提前剧透了.NET 5 https://devblogs.microsoft.com/dotnet/introducing-net-5/。这篇文章中,我们先回顾并画一下重点:

   1. NET Core 3.x之后会统一升级到.NET 5,一个统一的平台 A unified platform

.NET 5 = .NET Core vNext

直接跳过.NET Core 4, 原因是.NET Core 4.x和.NET Framework 4.*.* 会产生版本上的混淆,索性就直接.NET 5,

.NET 5 名字中直接去掉了.NET Core,  为了统一.NET的命名,目标就是只有一个.NET,

统一一个运行时和框架,框架可以在任何地方运行,具备统一的运行行为和开发体验

充分利用.NET Core、.NET Framework、Mono、Xamarin来扩展.NET 功能

统一单个代码库,微软.NET 开发团队和社区共同维护、发展

  2. .NET 5 定位与Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly等全平台、全场景开发

  3. .NET 5的新特性

Java互操作性将在所有平台上可用。

在多个操作系统上将支持Objective-C和Swift的互操作性。

CoreFX将得到扩展,以支持.NET的静态编译(ahead-of-time – AOT),更小的占用空间并支持更多的操作系统。

  4. 更高的吞吐量和生产效率

  5. 快速启动、更小的体积和内存使用

二、2020年3月16日 .NET 5 Preview 1 released

前几天,3月16号,Scott Hunter 在博客中发布了一个令人兴奋的消息,.NET 5 Preview 1 第一个预览版发布。

https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/

博文中,Scott Hunter说:“.NET Core 3 has become the fastest adopted version of .NET ever and we’ve gained another million more users in just the last year.”,

翻译:“.NET Core 3成为有史以来最快采用的.NET版本,而仅仅在去年,我们又获得了100万用户。”

这个数据强有力地说明了.NET Core的强大吸引力。同时.NET Core 3.1也是一个LTS版本,包括我们特来电在内的不少公司,都已经升级到了.NET Core 3.1这个版本。

写到这,同时结合2019年的提前剧透,我们对.NET 5 的期待非常高,但是在这里,新发布的.NET 5 Preview 1, 大家要冷静一下,为什么呢?

  • 这是第一个预览版
  • GA一般可用版本讲在2020年11月份发布
  • 目前看Preview 1的新特性有限

接下来,我们详细研究一下.NET 5 Preview 1的新特性:

  1. 安装部署

   2. 升级现有项目

<TargetFramework>netcoreapp5.0</TargetFramework>

如果是ASP.NET Core项目

  • 将所有Microsoft.AspNetCore。*程序包引用更新为5.0.0-preview.1.20124.5
  • 将所有Microsoft.Extensions。*软件包引用更新为5.0.0-preview.1.20120.4

 3. ASP.NET Core 5.0 的更新

貌似只修复和改进几个功能点和些许Bug......

https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-1/

ASP.NET Core in .NET 5 Preview 1 doesn’t include any major new features just yet, but it does include plenty of minor bug fixes. 

   

   4. 正则表达式性能提升

官方:我们尝试过的许多表达式中,这些改进通常可以使吞吐量提高3-6倍,在某些情况下甚至可以提高更多。

5. RyuJIT中代码质量改进

官方:每个版本都对JIT生成的代码进行了一系列性能改进。我们将这些类型的改进称为“ CQ”或代码质量。

 6. 程序集加载诊断添加到事件管道

将程序集加载信息添加到事件管道。方便诊断分析程序集的加载情况(与.NET Framework一起使用Fusion Log Viewer的一部分)。可以使用dotnet-trace通过以下命令来收集此信息:

dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]

   7. 事件管道探查器编程API

事件管道是在.NET Core 2.2中添加的新子系统和API,可以在任何操作系统上执行性能和其他诊断调查。在.NET 5.0中,事件管道已得到扩展,以使探查器能够写入事件管道事件。

这个类似于原来.NET Framework中往事件查看器中写事件的功能。比如说可以用到程序启动、关闭、Crash时的信息记录,方便程序问题跟踪、分析。

   8. GItHub仓库合并

.NET 5中减少了用于构建和打包.NET 的GitHub存储库的数量。  代码合并了,统一了!

dotnet /运行时(是dotnet / corefx,dotnet / coreclr和dotnet / core-setup)
   dotnet / aspnetcore(在aspnet组织中有多个存储库)
   dotnet / sdk(以前是dotnet / sdk,dotnet / cli)

 9. 然而,不包含.NET 5的一些高级目标(不详细展开说了,期待后续预览版本了)

通过上面的梳理和整理,.NET 5 Preview 1, 大家期待不要太高,毕竟是第一个预览版。可以理解为合并现有代码、修复部分Bug,为.NET 5 打了个基线。

我们可以继续等待并期待后续更新预览版和GA版本的发布。

以上是.NET 5 Preview 1的深度解读和跟进。分享给大家。

周国庆

2020/3/23

.NET 5 Preview 1的深度解读和跟进的更多相关文章

  1. 我就是认真:Linux SWAP 深度解读(必须收藏)

    我就是认真:Linux SWAP 深度解读(必须收藏) http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651660097& ...

  2. AI 新技术革命将如何重塑就业和全球化格局?深度解读 UN 报告(上篇)

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 张钦坤 腾讯研究院秘书长蔡雄山 腾讯研究院法律研究中心副主任祝林华 腾讯研究院法律研究中心助理研究员曹建峰 腾讯研究院法律研究中心高级研究员 ...

  3. 如何用区块链技术解决信任问题?Fabric 架构深度解读

    阿里妹导读:区块链技术,随着比特币的兴起而为大家所知.但是具体到技术本身,大家相对熟悉的几个词可能是“数据不可篡改”.“公开链”.“分布式数据”.“共识机制”等. 这篇文章将抛砖引玉,通过深度解读Hy ...

  4. 深度解读 AlphaGo 算法原理

    http://blog.csdn.net/songrotek/article/details/51065143 http://blog.csdn.net/dinosoft/article/detail ...

  5. 重写equal()时为什么也得重写hashCode()之深度解读equal方法与hashCode方法渊源

    今天这篇文章我们打算来深度解读一下equal方法以及其关联方法hashCode(),我们准备从以下几点入手分析: 1.equals()的所属以及内部原理(即Object中equals方法的实现原理) ...

  6. SQL Server 2019 深度解读:微软数据平台的野望

    本文为笔者在InfoQ首发的原创文章,主要利用周末时间陆续写成,也算近期用心之作.现转载回自己的公众号,请大家多多指教. 11 月 4 日,微软正式发布了其新一代数据库产品 SQL Server 20 ...

  7. 【转载】深度解读 java 线程池设计思想及源码实现

    总览 开篇来一些废话.下图是 java 线程池几个相关类的继承结构: 先简单说说这个继承结构,Executor 位于最顶层,也是最简单的,就一个 execute(Runnable runnable) ...

  8. 深度解读Facebook刚开源的beringei时序数据库——数据压缩delta of delta+充分利用内存以提高性能

    转自:https://yq.aliyun.com/topic/58?spm=5176.100239.blogcont69354.9.MLtp4T 摘要: Facebook最近开源了beringei时序 ...

  9. Java并发指南12:深度解读 java 线程池设计思想及源码实现

    ​深度解读 java 线程池设计思想及源码实现 转自 https://javadoop.com/2017/09/05/java-thread-pool/hmsr=toutiao.io&utm_ ...

随机推荐

  1. symbolicatecrash解析crash文件

    导出crash文件 Xcode -> Window -> Devices and Simulators -> View Device Logs ,然后选中导出. 找到.app文件和. ...

  2. /lib64/libc.so.6: version `GLIBC_2.18' not found报错解决

    今日安装一区块链服务时报错:/lib64/libc.so.6: version `GLIBC_2.18' not found,检查后现有的glibc版本是2.17,然后参考https://www.ji ...

  3. Bug,项目过程中的重要数据

    作者|孙敏 为什么要做Bug分析? Bug是项目过程中的一个有价值的虫子,它不只是给开发的,而是开给整个项目组的. 通过Bug我们能获得什么? 积累测试方法,增强QA的测试能力,提升产品质量 发现项目 ...

  4. const define static extern

    const const意味着"只读",欲阻止一个变量被改变,可以使用const关键字 const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p) define #define ...

  5. 论文笔记[Slalom: Fast, Verifiable and Private Execution of Neural Networks in Trusted Hardware]

    作者:Florian Tramèr, Dan Boneh [Standford University] [ICLR 2019] Abstract 为保护机器学习中隐私性和数据完整性,通常可以利用可信 ...

  6. 一个很实用的css技巧简析

    我是小雨小雨,专注于更新有趣.实用内容的小伙,如果内容对大家有一点帮助,那么就请动动手指,给个关注.点赞支持一下吧. ^ - ^ 序言 前两天接到一个需求,其中包括一个有序的列表,我们今天就来看看这个 ...

  7. IP 转发分组的流程

    IP 转发分组的流程 数据路由:路由器在不同网段转发数据包: 网络畅通的条件:数据包能去能回: 从源网络发出时,沿途的每一个路由器必须知道到目标网络下一跳给哪个接口: 从目标网络返回时,沿途的每一个路 ...

  8. Particle Filter Algorithm

    目录 问题提出 算法研究现状 算法原理 问题提出 在现实科研问题中,其中有很多都是非线性的.要想求得问题的解,就需要非线性的算法.所谓非线性滤波,就是基于带有噪声的观测值,估计非线性系统动态变化的状态 ...

  9. Docker实战之Kafka集群

    1. 概述 Apache Kafka 是一个快速.可扩展的.高吞吐.可容错的分布式发布订阅消息系统.其具有高吞吐量.内置分区.支持数据副本和容错的特性,适合在大规模消息处理场景中使用. 笔者之前在物联 ...

  10. echarts优化数据视图dataView中的样式

    在使用echart过程中,toolbox里有个dataView视图模式,里面的数据没有对整,影响展示效果,情形如下:改问题解决方案为,在optionTocontent回调函数中处理,具体代码如下: t ...