目录

介绍

主要变化

Windows桌面支持

本机可执行文件

JSON API

更好的垃​​圾收集器

性能改进

Docker增强

ARM64支持

物联网支持

密码学

与.NET Core 2.2的API差异

语言和框架增强

C#8

F#4.7

ASP.NET Core 3.0

EF Core 3.0

IDE要求

当前版本与长期支持版本

支持平台

发行说明

路线图和未来计划

结论


介绍

.NET Core是.NET Framework的开源和跨平台的表亲,于2016年首次发布,支持Windows,Linux和Mac。最新版本.NET Core 3.0于2019年9月23日发布,其中包含了大量的更改和改进。本文讨论了最重要的变化。

主要变化

Windows桌面支持

桌面开发人员一直在等待.NET Core中的WinFormsWPF支持。随着.NET Core 3.0的发布,开发人员现在可以为.NET Core开发WinForms和WPF应用程序。

WPF设计器是Visual Studio 2019 16.3的一部分。Windows窗体设计器可作为VSIX下载单独提供。它仍处于预览状态,并且不支持.NET Framework中WinForms开发的所有功能。开发人员对WinForms设计器的反馈与一些称其为“胡思乱想的”混在一起。Microsoft不建议您将WinForms应用程序迁移到.NET Core 3.0。

根据Microsoft的说法,向后兼容性是设计目标之一,大多数WinForms和WPF应用程序均按原样使用.NET Core 3.0,而无需进行任何代码更改。请注意,桌面应用程序仅在Windows上运行。

您可以使用.NET CLI从命令行中创建和构建桌面应用程序。例如,要快速创建新的Windows窗体应用程序,请执行以下操作:

dotnet new winforms -o mywinformapp
cd mywinformapp
dotnet run

要创建新的WPF应用,请使用:

dotnet new wpf -o mywpfapp
cd mywpfapp
dotnet run

本机可执行文件

.NET Core 3.0生成无需执行dotnet命令即可直接运行的本机可执行文件。它较早仅适用于自包含应用程序,并且是依赖于框架的应用程序的新功能。

#.NET 2.1 and older
dotnet myapp.dll#.NET 3.0
myapp.exe -- on Windows
./myapp -- on Linux/MacOS

由于生成的可执行文件是本机代码,因此它将仅在为其编译的操作系统和CPU类上运行。例如,为Windows生成的可执行文件将无法在Linux上运行,而为x64生成的可执行文件将不会在ARM上运行,依此类推。如果愿意,您可以像往常一样继续使用dotnet命令启动应用程序。

JSON API

添加了用于读写器、对象模型和序列化场景的JSON API。这些API最小化了分配,从而提高了性能,并减少了垃圾收集器的工作。这些API是在Span<T>之上从头开始构建,并在后端使用UTF8而不是UTF16(例如string)。

更好的垃​​圾收集器

默认情况下,垃圾收集器使用较少的内存,通常要少得多。对于许多应用程序托管在同一服务器上的情况,此改进非常有用。垃圾收集器也进行了更新,以更好地利用大于64核的机器上的大量核心。

性能改进

.NET Core 3.0具有许多性能改进。在此处查看完整的列表和性能基准:.NET Core 3.0中的性能改进。

Docker增强

现在,以Docker为目标的.NET Core应用程序可以在容器中高效且可预测地工作。为容器或内存有限配置容器后,垃圾收集器和线程池会更好地工作。.NET Core docker镜像较小,尤其是SDK映像。

ARM64支持

.NET Core 2.1和2.2分别引入了对Linux和Windows的ARM32支持。.NET Core 3.0支持ARM64,这使编写IoT代码变得容易。

物联网支持

通过对Raspberry Pi和ARM芯片的支持,实现了对物联网开发的支持。您还可以使用远程Visual Studio调试器来调试应用程序。.NET 3.0支持GPIO,PWM,I2C和SPI协议,以支持读取传感器数据,在显示器上打印消息,与无线电进行交互等。可以使用ASP.NET上托管的API通过微型站点来配置IoT设备。

密码学

.NET Core 3.0支持通过– AES-GCM和AES-CCM密码进行身份验证加密(AE)和关联数据身份验证加密(AEAD)的算法,通过System.Security.Cryptography.AesGcm和System.Security.Cryptography.AesCcm实现。

现在可以从标准格式导入和导出非对称公钥和私钥,而无需使用X.509证书。添加了对检查PKCS#8文件和检查/操作PFX / PKCS#12文件的支持。

与.NET Core 2.2的API差异

有关.NET Core 2.2中所有API更改的列表,请查看以下链接(遵循标准的diff格式):

  • https://github.com/dotnet/core/blob/master/release-notes/3.0/api-diff/3.0.0.md

语言和框架增强

作为.NET Core 3.0版本的一部分,对语言和框架进行了相关的发布。

C#8

C8进行了大量更改和语言改进,使用C#编写代码比以往任何时候都更加有趣。一些主要更改包括:

  1. 异步流(迭代器和异步方法的组合)
  2. 范围和索引类使使用数组变得更容易。
  3. 可空引用类型,用于优雅地处理空代码。
  4. 接口可以具有方法的默认实现。
  5. using 声明的作用域可以设置为变量,以避免代码缩进。
  6. switch 语句支持模式匹配,现在返回一个表达式。

另有一篇文章正在详细讨论C#8。

F#4.7

F是一种成熟的、开源的、跨平台的和功能优先的编程语言,完全通过开放的RFC(注释请求)过程开发。有关该语言最新版本的所有更改的列表,请访问宣布F#4.7

ASP.NET Core 3.0

ASP.NET Core 3.0引入了Blazor,这是一个使用.NET Core构建交互式客户端Web UI的新框架。有关更多信息,请访问ASP.NET Core 3.0中的新增功能。

EF Core 3.0

EF Core 3.0包含600多项产品改进,包括主要功能,次要增强功能和错误修复。请查看此链接,以获取有关主要更改的详细讨论。

  • 宣布Entity Framework Core 3.0和Entity Framework 6.3的一般可用性

IDE要求

Visual Studio用户必须安装或升级到Visual Studio 2019 16.3,这是在Windows上使用.NET Core 3.0所必需的更新。

对于要使用.NET Core 3.0的Mac用户,它将是Visual Studio for Mac 8.3

对于使用Visual Studio Code开发人员,只需将C#扩展名更新为最新版本即可使用.NET Core 3.0。

当前版本与长期支持版本

.NET Core 3.0是“当前”版本,将由.NET Core 3.1取代,后者是长期支持(LTS)版本,即至少受三年支持。现在采用.NET Core 3.0,将使您可以轻松迁移到.NET Core 3.1(2019年11月发布)。

支持平台

以下平台支持.NET Core 3.0:

  • 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+

经过Microsoft和Red Hat的多年合作,.NET Core 3.0将在RHEL 8的Red Hat Application Streams中可用。

发行说明

在此处查看官方发行说明:

  • https://github.com/dotnet/core/tree/master/release-notes/3.0

路线图和未来计划

可在以下位置找到.NET Core 3.0和.NET Framework 4.8的路线图和未来计划的摘要:

  • .NET Core 3.0和.NET Framework 4.8的更新

结论

.NET Core即将实现最初打算的.NET Framework的目标,但不能实现:类似于Java的真正跨平台执行。尽管.NET Core的初始版本存在很多问题,但当前版本已成功消除了主要瓶颈,并使我们能够使用.NET编写真正的跨平台代码。容器和物联网支持使其成为.NET开发人员编写下一代应用程序的最理想平台。

.NET Core 3.0中的新功能和增强功能相关推荐

  1. .NET Core 3.0 中的新变化

    译者:楚人Leo 译文:http://www.cnblogs.com/leolion/p/10585834.html 原文:https://msdn.microsoft.com/en-us/magaz ...

  2. 在.Net Core 3.0中尝试新的System.Text.Json API

    .NET Core 3.0提供了一个名为System.Text.Json的全新命名空间,它支持reader/writer,文档对象模型(DOM)和序列化程序.在此博客文章中,我将介绍它如何工作以及如何 ...

  3. ASP.NET Core 3.0中使用动态控制器路由

    原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...

  4. .NET Core 3.0中的数据库驱动框架System.Data

    虽然没有得到很多关注,但System.Data对于.NET中任何关系型数据库的访问都至关重要.因为其前身是ActiveX Data Objects,所以它也被称为ADO.NET.System.Data ...

  5. 避免在 ASP.NET Core 3.0 中为启动类注入服务

    本篇是如何升级到ASP.NET Core 3.0系列文章的第二篇. Part 1 - 将.NET Standard 2.0 类库转换为.NET Core 3.0 类库 Part 2 - IHostin ...

  6. .NET Core 3.0 中的数据库驱动框架 System.Data

    虽然没有得到很多关注,但System.Data对于.NET 中任何关系型数据库的访问都至关重要.因为其前身是 ActiveX Data Objects,所以它也被称为 ADO.NET.System.D ...

  7. ASP.Net Core 2.0中的Razor Page不是WebForm

    随着.net core2.0的发布,我们可以创建2.0的web应用了.2.0中新东西的出现,会让我们忘记老的东西,他就是Razor Page.下面的这篇博客将会介绍ASP.Net Core 2.0中的 ...

  8. net应用程序中发生了未经处理的异常怎么办_介绍一些在.NET Core 3.0中引入的诊断改进工具...

    编者按:即使.NET Core3.1.5已经发布,在进行.NET Core的性能诊断时,我们有时依然不知该从何处下手,那这篇介绍.NET Core3.0中引入的诊断工具,或许能为我们提供参考. 在.N ...

  9. 使用内存数据库的.NET Core 3.0中基于身份(Identity-Based)的身份验证

    目录 介绍 背景 先决条件 创建Web应用程序的步骤 第1步 第2步 第3步 第4步 第5步 第6步 运行您的应用程序 总结 下载源9.5 MB 介绍 身份验证是根据系统或用户的身份确定或给予其个人访 ...

最新文章

  1. 大学计算机信息技术一级考题,大学计算机信息技术一级试题新.pdf
  2. React Native debug debugger
  3. 音视频技术开发周刊 70期
  4. ASP.NET CORE 微服务(简化版)实战系列-没有比这性价比再高的实战课程了
  5. 前端面试题Vue-cli目录汇总
  6. 敏捷开发系列学习总结(2)——Bug修改流程
  7. java数据同步视频,Oracle从入门到精通 oracle数据库 全程同步视频教学 内含Oracle Java项目实战教...
  8. 凝心聚力 数字未来 | 企企通出席石家庄医药行业数字化转型沙龙
  9. 行人重识别论文阅读6-低分辨率的行人重识别研究
  10. 笔记本linux系统重装步骤(Centos7.0)
  11. MentoHUST的使用教程
  12. linux centos7下源码 tar安装mysql5.7.22或mysql5.7.20 图文详解
  13. 树莓派CM4 装系统和换源
  14. 转载:java面试题(一)
  15. 基于 移远 BC26 移柯BL620的NB模块调试流程
  16. 一篇文章学会使用 CompletableFuture(JDK9)
  17. shell批量修改文件名
  18. i春秋-misc3-哒哒哒哒,你知道什么是键盘坐标密码吗?---flag{QAZIJCV}
  19. 论文初稿导师会查重吗?
  20. wpf中textblock竖立显示文本

热门文章

  1. oracle archivelog满了,Oracle archivelog占用100%如何处理?
  2. java输出hello word,教你如何配置java环境输出"hello word!"?
  3. 绝美自然风光风景壁纸,心旷必然神怡
  4. 设计灵感在哪里?集设网海纳百川,智慧的聚集地
  5. 平面设计模板素材|越发流行的霓虹渐变趋势
  6. 制图折断线_无锡春华教育AutoCAD家具制图/机械/工程制图
  7. python3.7.4怎么运行_记一次win7在python3.7.4环境启动ride报错解决
  8. __builtin_apply/__builtin_apply_args
  9. Linux内核 eBPF基础:Tracepoint原理源码分析
  10. 分布式定时器的实现原理