.NET 5 Preview 1发布
去年年底,我们发布了.NET Core 3.0
和3.1
。这些版本添加了对桌面应用程序模型:Windows Forms(Winforms)、WPF,用于构建单页应用程序的ASP.NET Blazor
和基于消息传递的跨平台的gRPC
支持。我们还添加了用于构建服务的模版,用于与gRPC
进行通信的客户端代码生成、REST API
服务等等。我们很高兴看到.NET Core 3
成为有史以来最快的.NET
版本,并且在去年又增加了100万用户。
我们与这些版本进行了交流,以结束从.NET Framework
移植到.NET Core 3
应用程序模型的过程,我们已经移植了所有最常用的应用程序模型,并引入了更新的跨平台框架来替代我们未移植的框架。
当我们期待写一个主要版本.NET 5
时,我们将通过在.NET 5
中包含的.NET
移动设备应用程序模型(Xamarin
),继续将.NET
统一到一个平台中。.NET 5
将包含ASP.NET Core
,Entity Framework Core
,WinForms
,WPF
,Xamarin
和ML.NET
。整个平台将首次为所有应用城西模型使用统一的BCL(Base Class Libraries)
。拥有比.NET Core
和.NET Framework
都更高的版本5,这也清楚表明.NET 5
是.NET
的未来,它是用于构建任何类型的应用程序的单个统一平台。
我们已经说过很多次了,但是我们将再次重申。.NET Core
和后面的.NET 5
是你应当使用.NET
构建所有新应用程序。只要在Windows
平台本身,.NET Framework
仍将受到支持。我们将继续提供安全性和错误修复,并保持网络和加密API在最新状态。将较旧的应用程序保留着.NET Framework
上将保持安全并受到支持。
安装.NET 5 Preview 1
今天,我们将发布.NET 5
的第一个预览版,该预览版计划于今年11月下旬发布到GA(一般可用性)。
请参阅.NET 5 Preview 1
中的ASP.NET Core
更新,以了解今天发布的ASP.NET Core
版本。
Preview 1
包括首次对Windows ARM64
的支持。今天发布的版本包括对.NET Core
的运行时。我们希望Preview 2
包含SDK
(ASP.NET Core
,但不包含WPF
或Windows Forms
)。稍后的预览版将包括WPF
和Windows Forms
。对Windows ARM64
的支持也将反向移植到.NET Core 3.1
版本中。
更新现有项目
你可以通过更新目标框架来更新现有项目,如下所示:
<TargetFramework>netcoreapp5.0</TargetFramework>
.NET 5
的高级目标
让我重点介绍.NET 5
的一些高级目标:
- 统一的
.NET SDK
经验:
- 所有
.NET 5
应用程序中的单个BCL(Base Class Libraries)
。现在的Xamarin
应用程序使用Mono BCL
,但是将转向.NET Core BCL
,从而改善了我们应用程序模型之间的兼容性。 - 移动开发(
Xamarin
)已经集成到.NET 5
中。这意味着.NET SDK
将支持移动。例如,你可以使用dotnet new XamarinForms
创建移动应用程序。
- 支持多种平台的原生应用程序:支持应用程序的“单个设备”项目,该应用程序可以使用这些平台上的支持的原生控件在多个设备商运行,例如
Window Desktop
,Microsoft Duo(Android)
和iOS
。 - 支持多种平台的
Web
应用程序:支持应用程序的Single Blazor
项目,该应用程序可以在浏览器中,在移动设备上以及作为本机桌面应用程序运行(例如Windows 10x
)。
云原生应用程序:高性能,单文件(.exe)<50MB的微服务,并支持在本地和在云中构建多个项目(API
,Web
前端,容器)。 - 持续改进,例如:在
BCL
中更快的算法,运行时中对容器的更好支持,对HTTPS3
的支持。
今天的第一个预览版尚未包含支持这些高级目标的所有工作,但我们将在未来的预览版中继续宣布更多功能。
Preview 1
的改进
Preview 1
中有以下改进:
正则表达式性能改进
我们已对Regex
引擎进行了重大改进。在我们尝试过的许多表达式中,这些改进通常可以将吞吐量提高3-6倍,在某些情况下甚至可以提高更多。我们即将发布一篇博客文章,其中将详细介绍这些改进。
RyuJIT
中代码质量的改进
每个版本都对JIT
生成的代码进行了一系列性能改进。我们将这些类型的改进称为CQ
或代码质量。在大多数情况下,这些改进也适用于为准备运行的图像生成的代码。
Preview 1
中有以下改进:
null
检查的改进 - 在更多情况下,通过观察证明不需要使用null
检查的更多模式,无需生成null
检查。- 调整的通用子表达式评估(CSE) -
JIT
查找并折叠只需要评估一次的重复表达式(Wiki)。 - 优化“constant_string”.Length - 优化此模式并将代码折叠为正确的整数值。
JIT
:在变体之前构建基本的pred
列表 - 对JIT
中阶段进行重新排序以允许焦躁使用密钥优化,从而可以提高代码质量,并减少后续阶段的工作量,从而增加JIT
吞吐量(参考PR中的“TP”)。
装配负载诊断已添加到事件管道
我们已将程序集加载信息添加到事件管道。这项改进开始提供类似的诊断功能(与.NET Framework一起使用Fusion Log Viewer的一部分)的开始。现在,你可以使用dotnet-trace
通过以下命令来收集此信息:
dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]
使用事件管道的跟踪程序集加载中介绍了工作流。您可以查看简单测试应用程序的程序集加载信息。
事件管道探测器API
事件管道是我们在.NET Core 2.2
中添加的新子系统和API,可以在任何操作系统上执行性能和其他诊断调查。在.NET 5.0
中,事件管道已得到扩展,以使探查器能够写入事件管道事件。对于以前依靠ETW
监视应用程序行为和性能的分析探查器,此方案至关重要。
GitHub
repo合并
作为.NET 5
版本的一部分,我们减少了用于构建和打包.NET
的GitHub
存储库的数量。Repo边界对项目的许多方面都具有重大影响,包括构建和问题管理。使用.NET Core 1.0
,我们在ASP.NET
,EF
和.NET Core
中拥有超过100个存储库,通过此最新版本,我们现在可以一方面计入主存储库。我们还将几乎所有存储库都移到了dotnet
组织。
查看新的合并仓库:
- dotnet/runtime (是dotnet/corefx,dotnet/coreclr,和dotnet/core-setup)
- dotnet/aspnetcore (aspnet组织中的几个仓库)
- dotnet/sdk ( 是dotnet/sdk, dotnet/cli)
结束语
我们希望你对.NET 5
正在进行的工作感到兴奋!为.NET 5
做准备的最好方法是将所有的.NET Core
应用程序迁移到3.1
- 我们将使从.NET Core 3.1
到.NET 5
的过渡尽可能轻松。而且,如果你仍在.NET Framework
上构建应用程序,请放心将这些应用程序放在.NET Framework
上,但请考虑对所有新应用程序使用.NET Core 3.1
。.NET
有很多令人兴奋的事情!
.NET 5 Preview 1发布的更多相关文章
- [翻译] .NET Core 2.1 Preview 1 发布
[翻译] .NET Core 2.1 Preview 1 发布 原文: Announcing .NET Core 2.1 Preview 1 今天,我们宣布发布 .NET Core 2.1 Previ ...
- 【翻译】.NET 5 Preview 1 发布
.NET 5 Preview 1 发布 去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET B ...
- .NET 6 Preview 2 发布
前言 在 2021 年 3 月 11 日, .NET 6 Preview 2 发布,这次的改进主要涉及到 MAUI.新的基础库和运行时.JIT 改进. .NET 6 正式版将会在 2021 年 11 ...
- .NET 6 Preview 3 发布
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来自于底层,一起来看看都有什么新特性和改进吧. 库改进 新增值类型作为字典值时更快的处理方法 .NET 6 Previ ...
- .NET Core 2.1 Preview 2发布 - April 10, 2018
我们今天宣布发布 .NET Core 2.1 Preview 2.这也是我们在接下来的两到三个月内接近最终发布的版本,该版本现已准备好进行广泛的测试.我们希望您有任何反馈意见. ASP.NET Cor ...
- 【译】.NET Core 2.2 Preview 2 发布
原文出自.Net Blog Announcing .NET Core 2.2 Preview 2 今天,我们宣布推出.NET Core 2.2 Preview 2.我们有很多重要改进要和你分享,而且我 ...
- [翻译] .NET Core 3.0 Preview 7 发布
原文: Announcing .NET Core 3.0 Preview 7 今天,我们宣布推出 .NET Core 3.0 Preview 7 .我们的工作已经从创建新功能过渡到打磨版本.预计剩余的 ...
- [翻译] .NET Core 3.0 Preview 9 发布
原文: Announcing .NET Core 3.0 Preview 9 今天,我们宣布推出 .NET Core 3.0 Preview 9.就像 Preview 8 一样,我们专注于打磨 .NE ...
- .NET Core 3.0 Preview 9 发布
翻译自官方博客 今天,我们宣布推出.NET Core 3.0 Preview 9.就像预览版8一样,我们专注打磨最终版本的.NET Core 3.0,而不是添加新功能.如果这些最终版本看起来不像早期预 ...
- .NET Core 3.1 Preview 1 发布
今天,我们正式发布 .NET Core 3.1 Preview 1..NET Core 3.1将是一个小版本,着重于Blazor和Windows桌面开发的功能改进,同时这也是.NET Core 3.0 ...
随机推荐
- 路由配置(route IP
转载于:http://blog.csdn.net/chenlycly/article/details/52141854 使用下面的 route 命令可以查看 Linux 内核路由表. # route ...
- 利用卷积神经网络实现MNIST手写数据识别
代码: import torch import torch.nn as nn import torch.utils.data as Data import torchvision # 数据库模块 im ...
- Java IO: 序列化与ObjectInputStream、ObjectOutputStream
作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的序列化以及涉及到的流,主要包括ObjectInputStream和O ...
- WEB 安全 - xss 初探
零.参考资料 网络攻击-XSS攻击详解: 前端安全之XSS攻击: 一.概念 跨站脚本攻击Cross-site scripting (XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户 ...
- 关于JavaScript中的==与!的转换问题
最近遇到了一道很有趣的JavaScript试题,感觉很有趣.记录一下免得以后面试遇到 题目是: console.log([]==![],{}==!{},[]==!{},{}==![]) 这道题考察的主 ...
- 对String类型的认识以及编译器优化
Java中String不是基本类型,但是有些时候和基本类型差不多,如String b = "tao" ; 可以对变量直接赋值,而不用 new 一个对象(当然也可以用 new). J ...
- idea快捷键-eclipse
ctrl+shift+R 查找文件ctrl+shift+T 查找class类alt+Enter 导包alt+Shift+P 实现方法
- LG承认手机业务遭到中国厂商碾压!这是输得心服口服的节奏?
近日,关于LG手机业退出中国市场的消息传的沸沸洋洋.不少相关媒体也对此事向LG北京办事处求证,得到的结果确实是手机业务退出中国市场.并且据韩媒报道,LG还将会逐渐取消高端手机业务,也就是说未来V系列和 ...
- Linux下运行命令出现is not in the sudoers file的问题
原因: 用户没有加入到sudo的配置文件里. 解决方法: 1.切换到root用户,运行visudo命令: 2.找到root ALL=(ALL) ALL,在下面添加一行 xxx ALL=(ALL) ...
- ES介绍与实践
一.ES介绍 1.基础概念介绍 1. 索引:Elasticsearch中的“索引”有点像关系数据库中的数据库. 它是存储/索引数据的地方: 2.分片 shard “分片”是Lucene的一个索引. 它 ...