.NET Core 3.0的新特性与改进

.NET Core 3.0是微软于2019年9月23日发布的一个重大更新,它带来了许多新特性和改进。这篇文章将详细讨论这些变化,帮助开发者更好地理解和利用.NET Core 3.0。

Windows桌面应用支持

.NET Core 3.0首次引入了对Windows桌面应用的支持,包括WinForms和WPF。这意味着开发者现在可以使用.NET Core来开发Windows桌面应用。虽然WinForms设计器目前还在预览阶段,并不完全支持.NET Framework中的所有特性,但微软表示,大多数WinForms和WPF应用可以在.NET Core 3.0上“即插即用”,无需修改代码。

原生可执行文件

.NET Core 3.0生成的原生可执行文件可以直接运行,无需使用dotnet命令。这一特性之前只在自包含应用中可用,现在框架依赖应用也支持了。需要注意的是,生成的原生代码只能在特定的操作系统和CPU架构上运行。

JSON API

.NET Core 3.0新增了JSON API,包括读取器/写入器、对象模型和序列化场景。这些API减少了内存分配,提高了性能,减轻了垃圾回收器的工作负担。这些API基于Span构建,并在底层使用UTF8而不是UTF16(如字符串)。

更好的垃圾回收器

.NET Core 3.0的垃圾回收器默认情况下使用更少的内存,这对于在同一服务器上托管多个应用的场景非常有益。垃圾回收器还更新了,以更好地利用多核处理器,特别是在拥有超过64个核心的机器上。

性能提升

.NET Core 3.0带来了许多性能提升。完整的性能改进列表和性能基准测试可以在这里查看:。

Docker增强

针对Docker的.NET Core应用现在在容器中运行得更加可预测和高效。当容器配置了有限的内存或CPU时,垃圾回收器和线程池的表现也更好。.NET Core的Docker镜像也更小了,特别是SDK镜像。

ARM64支持

.NET Core 3.0支持ARM64,这使得为IoT设备编写代码变得更加容易。此外,.NET Core 3.0还支持Raspberry Pi和ARM芯片,可以使用远程Visual Studio调试器来调试应用。

物联网支持

.NET Core 3.0通过支持GPIO、PWM、I2C和SPI协议,为物联网开发提供了支持,使得读取传感器数据、在显示屏上打印消息、与无线电交互等操作成为可能。

密码学

.NET Core 3.0支持AES-GCM和AES-CCM密码,实现了认证加密(AE)和认证加密与关联数据(AEAD)。此外,现在可以从标准格式导入和导出非对称公钥和私钥,而无需使用X.509证书。

API差异

.NET Core 3.0与.NET Core 2.2相比,API有了很多变化。完整的API差异列表可以在这里查看:。

语言和框架增强

随着.NET Core 3.0的发布,相关的语言和框架也发布了新版本。

C# 8带来了许多新特性和改进,使得用C#编写代码变得更加有趣。一些主要变化包括:

  • 异步流(迭代器和异步方法的结合)
  • 范围和索引类,使得处理数组更加容易
  • 可空引用类型,优雅地处理空值
  • 接口可以有方法的默认实现
  • using声明可以限定到变量,避免代码缩进
  • switch语句支持模式匹配,现在返回表达式

F#是一个成熟的、开源的、跨平台的、以函数为先的编程语言,完全通过开放的RFC(请求评论)过程开发。有关最新版本语言的所有变化,请访问:。

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

Entity Framework Core 3.0包含了600多项产品改进,包括主要功能、次要增强和bug修复。有关主要变化的详细讨论,请访问:。

IDE要求

使用Visual Studio的开发者必须安装或升级到Visual Studio 2019 16.3,这是在Windows上使用.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)版本,即至少支持3年。现在采用.NET Core 3.0将使能够轻松迁移到2019年11月发布的.NET Core 3.1。

支持的平台

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

.NET Core 3.0将在RHEL 8的Red Hat Application Streams中提供,这是微软和Red Hat多年合作的结果。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485