.NET5发布

摘要:
将Visual Studio 2019更新到v16.8以支持。NET5。

.NET Conf 2020于2020年11月10日举行,会上正式发布.NET 5。.NET 5是.NET平台统一的第一个版本。

.NET 5 SDK和Visual Studio 2019 v16.8版本在11月10日已经提供下载,更新Visual Studio 2019 版本至v16.8以支持.NET 5。

此次更新,更新了很多重要功能。包括但不仅限于以下内容:

1、C# 9.0

  1. 记录
  2. 仅限 Init 的资源库
  3. 顶级语句
  4. 模式匹配增强功能
  5. 本机大小的整数
  6. 函数指针
  7. 禁止发出 localsinit 标志
  8. 目标类型的新表达式
  9. 静态匿名函数
  10. 目标类型的条件表达式
  11. 协变返回类型
  12. 扩展 GetEnumerator 支持 foreach 循环
  13. Lambda 弃元参数
  14. 本地函数的属性
  15. 模块初始值设定项
  16. 分部方法的新功能

2、性能提高

Performance Improvements in .NET 5.0Arm64 Performance in .NET 5.0, 和 gRPC.

3、.NET自带类库增强

Json序列化、正则表达式和and HTTP (HTTP 1.1HTTP/2)。

  • .NET 5.0对System.Text.Json进行了显着改进,以提高性能,可靠性。https://github.com/dotnet/runtime/issues/41313
  • HttpClient类增加了一些扩展方法
  •  改进了对不可变类型的支持
  • 新增JsonSerializer支持record和fields类型

4、P95延迟减少

由于GC,分层编译和其他方面的改进,P95延迟有所减少。https://docs.microsoft.com/en-us/azure/internet-analyzer/internet-analyzer-scorecard

5、增加对Windows ARM64WebAssembly的支持

 .NET应用程序现在可以在Windows Arm64上本机运行。 这是在.NET Core 3.0中添加的对Linux Arm64的支持(对glibc和musl的支持)。 使用.NET 5.0,您可以在Windows Arm64设备(例如Surface Pro X)上开发和运行应用程序。

WPF和Winform目前还不支持运行在Windows Arm64设备上,需要等待后续更新。

此外,Windows ARM64性能也得到了提升,https://github.com/dotnet/runtime/issues/35853

6、Windows Form设计器增强

在Visual Studio 2019 16.8版本中,Windows Form设计器得到了增强(针对.NET Core 3.1和.NET 5)。

现在已经支持全部Winform的控件以及Telerik Winform控件。

设计器现在已经包括:拖放,选择,移动和调整大小;剪切/复制/粘贴/删除控件,与属性窗口集成,事件生成等功能。 数据绑定和对更广泛的第三方控件的支持将会在后续版本中实现

反正这些在.Net Framework版本中很早就已经有了,这次更新也就不算新鲜事了。.NET5发布第1张

.NET5发布第2张

7、TargetFramework已经更新为net5.0

https://www.cnblogs.com/zhaotianff/p/13440107.html这篇WPF的文章中,可以看到以前的TargetFrameWork是netcoreapp3.1,现在已经是net5.0了

.NET5发布第3张

在后续的.NET 6.0版本中,Xamarin项目还能通过TargetFramework来描述操作系统依赖性,定位iOS和Android。

针对桌面项目(WPF、Winform和WinRT),TargetFramework已经被更新为net5.0-windows,还可以指定操作系统版本,如 net5.0-windows7 、net5.0-windows10.0.17763.0 。

这也就意味着在WPF中可以直接引用Winform的类库,不再需要修改.csproj文件。反之亦是如此。

如果需要使用WinRT APIs,就必须指定Windows 10的版本,如net5.0-windows10.0.15063.0(Windows v1703)

.NET5发布第4张

如果有跨平台需求,需要注意以下几点:

  1. net5.0是.NET 5.0的新目标框架(TFM)。
  2. net5.0结合并替代了netcoreapp和netstandard TFM。(https://docs.microsoft.com/en-us/dotnet/standard/frameworks#supported-target-frameworks)
  3. net5.0支持.NET Framework兼容模式
  4. net5.0-windows用于标识使用Windows系统特定的功能(APIs),包括Windows窗体,WPF和WinRT API。
  5. 在.NET 6.0中将添加net6.0-ios和net6.0-android,默认TFM 是net6.0。
  6. 特定于操作系统的TFM可以包含操作系统版本号,例如net6.0-ios14。
  7. 可移植API,如ASP.NET Core将可与net5.0一起使用。 在net6.0中,Xamarin forms也将支持该功能。

说明:

在Visual Studio 2019 16.8/16.8.1版本中,控制台应用程序、WPF、Winform的目标框架仍然是.Net Core 3.1,需要手动修改成.NET 5.0。而ASP.NET项目,默认目标框架已经是.NET 5.0。

8、与WinRT互操作(重大更改)

一个重大更改就是,WinRT APIs现在已经作为.NET 5.0的一部分,现有的WinRT互操作方式已从.NET运行时中删除。 这也就意味着使用了WinRT库函数的.Net Core 3.x应用程序在升级到.NET 5.0时,需要重新构建。

这也就意味着,不再需要手动引用任何组件,导入命名空间就可以直接使用WinRT APIs。

在Windows 8操作系统中,微软推出了WinRT,一种新的运行时。到Windows 10时代,WinRT已经变成UWP,现在又叫回了WinRT,还是那种熟悉的感觉。虽然我不做这方面的开发,但以前读过一本书叫Windows Runtime via C#,当时就觉得WinRT很强。

9、Native Export(原生导出?)

这个功能主要跨平台用,我目前用不到,可访问以下链接获取详细信息https://github.com/AaronRobinsonMSFT/DNNE

10、在Windows上支持(ICU International Components for Unicode)

ICU库用于Unicode和全球化支持,以前仅在Linux和macOS上使用。

11、容器

这一块我目前用不到

12、单文件应用

单个文件应用程序作为单个文件发布和部署。 该应用程序及其依赖项都包含在该文件中。 当应用程序运行时,依赖项直接从该文件加载到内存中。

这个功能目前主要是针对 Linux的。这功能挺好的,坐等支持Windows。

关于.NET 5的详细介绍,可以访问以下链接:

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

免责声明:文章转载自《.NET5发布》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java core dumptextarea中文本高亮选中下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#编写的winform程序脱离.net框架

C#编写的winform程序脱离.net框架的方法不外乎以下几种,今天有空,特意做了一下测试,现在简单介绍下经验。以下所有例子,本人均亲自实验,在xp,2003,vista下都是可以运行的。 本文引用于:http://hi.baidu.com/44498/blog/item/dabd37166a11bd10962b437d.html 1, .Net Lin...

深入Vue

摘要: Vue源码阅读第一步。 原文:深入vue - 源码目录及构建过程分析 公众号:前端小苑 Fundebug经授权转载,版权归原作者所有。 本文主要梳理一下vue代码的目录,以及vue代码构建流程,旨在对vue源码整体有一个认知,有助于后续对源码的阅读。 1. 目录结构 上图是对vue的代码的所有目录进行的梳理,其中源码位于src目录下,下面对...

Android 应用程序之间内容分享详解(一)

一个Andoird应用程序的重要的地方是他们有相互沟通和整合的能力,一个应用程序可以和另一个应用程序交互,接下来我们来看看Android应用之间的内容分享 当你构建Intent的时候,必须要指定Intent的Action触发,定义Intent的Action例如ACTION_SEND,你大概可以猜到指定Action为ACTION_SEND的Intent的作用...

Win7下安装SQL Server 2005遇到的问题

-COM+ 目录要求(警告) 消息 COM+ 目录要求 如果SQL Server安装程序失败,安装程序将回滚所安装的系统,但可能不会删除所有.manifest文件。解决方法是重命名这些文件,然后重新运行安装程序。 有关详细信息,请参阅“如何处理SQL Server安装过程中的COM+检查失败问题”。   此时需要重新安装COM+,具体安装步骤如下: 1)在...

vivo机器如何无需root激活XPOSED框架的流程

在大多运行室的引流或者业务操作中,理论上需要使用安卓的神一般的Xposed框架,上周我们运行室购来了一批新的vivo机器,理论上都是基于7.0以上系统版本,理论上不能够获得root的su权限,虽然一部分能但非常麻烦,甚至也有获得root的su权限后重启设备就恢复无root状态的情况出现,很是焦虑的一件事,导致无能正常激活Xposed框架,从而大多模块也就无...

npm 进阶命令知多少(一)

前言 作为前端模块化扎展现形式的npm包,已经在前端开发中不可或缺,熟练掌握npm相关内容,也是前端开发者的一门必修课,那么除了npm publish这类常见内容之外,还有哪些内容需要我们关注呢,下面就一起深入看看。 npm publish 发布npm包 该命令简单粗暴,执行之后,就会将相关文件上传到远端,并为对应包新增一个对应版本号。那么这里的相关文件和...