.NET Core3.1发布(翻译)
.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版本)。
来源:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
微软官方发布VS2015, .NET 4.6, C# 6.0, F# 4.0正式版下载汇总
-
Asp.net core利用MediatR进程内发布/订阅详解
-
解读ASP.NET 5 & MVC6系列教程(3):项目发布与部署
-
20190705-记IIS发布.NET CORE框架系统之所遇
-
VS2012发布ASP.NET网站到本地IIS的方法
-
小心!ASP.NET网站发布时的那些坑
-
详解ASP.NET Core 网站发布到Linux服务器
-
VS2012发布ASP.NET网站到本地IIS的方法
-
ASP.NET Core程序发布到Linux生产环境详解
-
relaxlife.net发布一个自己开发的中文分词程序