.net core3.1发布

我们很高兴宣布.net core 3.1的发布。实际上,这只是对我们两个多月前发布的.net core 3.0的一小部分修复和完善。最重要的是.net core 3.1是长期支持(lts)版本,并且将支持三年。和过去一样,我们希望花一些时间来发布下一个lts版本。额外的两个月(在.net core 3.0之后)使我们能够选择和实施在已经非常稳定的基础上进行的正确改进。

您可以下载适用于windows,macos和linux的.net core 3.1:

  • .net core 3.1 sdk和运行时
  • docker容器映像
  • snap安装程序
  • asp.net core和ef core也在今天发布。

visual studio 2019 16.4也于今天发布,其中包括.net core 3.1。这是将.net core 3.1与visual studio一起使用所必需的更新。对于visual studio 2019用户,我们建议仅将visual studio更新到16.4,而不是单独下载.net core 3.1。

visual studio for mac在visual studio for mac 8.4预览通道中还支持并包括.net core 3.1。您需要选择使用preview通道才能使用.net core 3.1。

发行说明:

  • .net core 3.1发行说明
  • .net core 3.1问题的github问题
  • github发布

.net core 3.1中的更改​​主要集中在blazor和windows desktop,这是.net core 3.0中的两个新增功能。这包括对c++/ cli的支持,这是针对windows的开发人员的常规要求。

在我们了解.net core 3.1的新功能之前,让我们快速了解一下.net core 3.0的关键改进,这是.net core 3.1需要考虑的大部分重要内容。

.net core 3.0更新概述

.net core 3.0提供了以下关键改进。我们已经从从事大型网站的开发人员那里听说,它对他们来说运作得非常好。

  • .net core 3.0已经在dot.net和bing.com上托管了几个月,已经通过了测试。其他许多microsoft团队很快将在生产中的.net core 3.1上部署大型工作负载。
  • 性能有很大的提高跨许多部件,并在将详细描述在.net core 3.0性能改进和硬件内在函数在.net core。
  • c#8添加了异步流,范围/索引,更多模式和可为空的引用类型。nullable使您可以直接针对导致的代码缺陷nullreferenceexception。框架库的最底层已被注释,以便您知道何时可以期待null。
  • f#4.7致力于通过隐式yield表达式和一些语法放松使某些事情变得容易。它还包含对的支持langversion,并nameof在预览中附带并打开了静态类。f#核心库现在还针对.net standard 2.0。您可以在发布f#4.7中阅读更多内容。
  • .net standard 2.1增加了可以在.net core和xamarin都可以使用的代码中使用的类型集。.net standard 2.1包括.net core 2.1以后的类型。
  • .net core现在支持windows窗体和wpf(和开放源代码)的windows桌面应用程序。wpf设计器是visual studio 2019的一部分。windowsforms设计器处于预览状态,可以下载。
  • 现在,.net core应用程序默认情况下具有可执行文件。在过去的发行版中,需要通过dotnet命令来启动应用,例如dotnet myapp.dll。现在可以使用特定于应用程序的可执行文件(例如myapp或)启动应用程序./myapp,具体取决于操作系统。
  • 添加了高性能json api,用于reader/writer,对象模型和序列化方案。这些api从头开始构建,span并在幕后使用utf8而不是utf16(例如string)。这些api最小化分配,从而提高了性能,减少了垃圾收集器的工作。请参阅尝试新的system.text.json api。
  • 默认情况下,垃圾收集器使用较少的内存,通常少得多。对于许多应用程序托管在同一服务器上的情况,此改进非常有用。垃圾收集器也进行了更新,以更好地利用64核以上的机器上的大量核。请参阅在具有64个以上cpu的计算机上为gc更好地配置cpu配置。
  • .net core已针对docker进行了强化,以使.net应用程序在容器中可预测且有效地工作。已将容器配置为有限的内存或cpu时,垃圾收集器和线程池已更新为更好地工作。.net core docker窗映像较小,尤其是sdk映像。请参阅:在小型容器场景中使用服务器gc运行第0部分,在小型容器场景中使用服务器gc运行第1部分-gc堆的硬限制以及同时使用.net和docker-dockercon 2019更新。
  • 现在支持raspberry pi和arm芯片以支持iot开发,包括使用远程visual studio调试器。您可以使用新的gpio api部署可监听传感器的应用程序,并在显示器上打印消息或图像。asp.net可用于将数据公开为api或允许配置iot设备的站点。

支持平台

以下操作系统支持.net core 3.1:

  • alpine: 3.9+
  • debian: 9+
  • opensuse: 42.3+
  • fedora: 26+
  • ubuntu: 16.04+
  • rhel: 6+
  • sles: 12+
  • macos: 10.13+
  • windows client: 7, 8.1, 10 (1607+)
  • windows server: 2012 r2 sp1+

注意:windows窗体和wpf应用程序仅在windows上起作用并受支持。

芯片支持如下:

  • windows,macos和linux上的x64
  • windows上的x86
  • windows和linux上的arm32
  • linux上的arm64(内核4.14+)

注意:请确保.net core 3.1 arm64部署使用linux内核4.14版本或更高版本。例如,ubuntu 18.04满足此要求,但16.04不满足。

windows窗体控件删除
以下windows窗体控件已从.net core 3.1中删除:

  • 数据网格
  • 工具栏
  • 上下文菜单
  • 菜单
  • 主菜单
  • 菜单项

早在2005年,这些控件就被.net framework 2.0中更强大的控件所取代。默认情况下,多年来,visual studio designer工具箱中都没有提供这些控件。结果,我们决定删除这些控件,而只关注新控件。

建议使用以下替代产品:

旧控件(api) 建议更换 其他关联的api已删除
datagrid datagridview datagridcell,datagridrow,datagridtablecollection,datagridcolumncollection,datagridtablestyle,datagridcolumnstyle,datagridlinestyle,datagridparentrowslabel,datagridparentrowslabelstyle,datagridboolcolumn,datagridtextbox,gridcolumnstylescollection,gridtablestylescollection,hittesttype
toolbar toolstrip toolbarappearance
toolbarbutton toolstripbutton toolbarbuttonclickeventargs,toolbarbuttonclickeventhandler,toolbarbuttonstyle,toolbartextalign
contextmenu contextmenustrip
menu toolstripdropdown,toolstripdropdownmenu menuitemcollection
mainmenu menustrip
menuitem toolstripmenuitem

是的,这是一个不幸的重大变化。如果您使用的是我们在应用程序中删除的控件,则会看到构建中断。另外,如果在最新版本的.net core windows窗体设计器中打开.net core 3.0应用程序,则在使用这些控件时会看到错误。

我们建议您将应用程序更新为.net core 3.1,然后移至其他控件。更换控件是一个简单的过程,本质上是“查找并替换”。

首先,我们应该在发布.net core 3.0之前进行这些更改,对此我们表示赞同。我们尝试避免过时的更改,甚至避免突破性更改,这使我们很痛苦。

随着我们进一步进入windows forms设计器项目,我们意识到这些控件与创建现代应用程序不符,并且永远不应该成为windows forms的.net core端口的一部分。我们还看到,他们需要我们更多的时间来支持而不是合理的。

我们的目标是继续改进windows窗体,以实现更高的dpi,可访问性和可靠性,并且需要后期更改才能使我们专注于交付。

c ++ / cli

我们在visual studio 2019 16.4中增加了对创建可与.net core 3.0+一起使用的c ++ / cli(又称为“托管c ++”)组件的支持。您需要安装“带c ++的桌面开发”工作负载和“ c ++ / cli支持”组件,才能使用c ++ / cli。

该组件添加了几个可以使用的模板:

  • clr class library (.net core)
  • clr empty project (.net core)

如果找不到它们,只需在“新建项目”对话框中搜索它们。

c++ / cli仅在windows上启用。您不能将目标为.net framework的c ++ / cli组件与.net core一起使用,反之亦然。

结束

我们建议您尽快迁移到.net core 3.1。这是一个很棒的版本(很大程度上是由于3.0),它对.net core的许多方面进行了改进。这也是一个长期支持(lts)版本,将支持三年。

生命周期更新:

  • .net core 3.0将于今天(到2020年3月3日)维护三个月。
  • .net core 2.2的整个维护周期都将在12月23日结束。
  • .net core 2.1的支持将一直持续到2021年8月(这也是lts版本)。

来源:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。