这几天微软.NET 团队发布了.NET 5 Preview 1, 如约而至。很兴奋,由于.NET Core和.NET Framework终于实现了大一统,同时也很期待,期待.NET 5能给咱们带来哪些好的新特性。正则表达式
让咱们先把时间拨回到2019年...编程
1、2019年.NET 5的提早剧透app
去年2019年 Richard提早剧透了.NET 5 https://devblogs.microsoft.com/dotnet/introducing-net-5/。这篇文章中,咱们先回顾并画一下重点:框架
1. NET Core 3.x以后会统一升级到.NET 5,一个统一的平台 A unified platformide
.NET 5 = .NET Core vNext性能
直接跳过.NET Core 4, 缘由是.NET Core 4.x和.NET Framework 4.*.* 会产生版本上的混淆,索性就直接.NET 5,spa
.NET 5 名字中直接去掉了.NET Core, 为了统一.NET的命名,目标就是只有一个.NET, 操作系统
统一一个运行时和框架,框架能够在任何地方运行,具有统一的运行行为和开发体验翻译
充分利用.NET Core、.NET Framework、Mono、Xamarin来扩展.NET 功能code
统一单个代码库,微软.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. 快速启动、更小的体积和内存使用
2、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, 你们要冷静一下,为何呢?
接下来,咱们详细研究一下.NET 5 Preview 1的新特性:
1. 安装部署
2. 升级现有项目
<TargetFramework>netcoreapp5.0</TargetFramework>
若是是ASP.NET Core项目
5.0.0-preview.1.20124.5
。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 Prevew 1, 你们期待不要过高,毕竟是第一个预览版。能够理解为合并现有代码、修复部分Bug,为.NET 5 打了个基线。
咱们能够继续等待并期待后续更新预览版和GA版本的发布。
以上是.NET 5 Preview 1的深度解读和跟进。分享给你们。
周国庆
2020/3/23