.NET Core v3.0 稳定版正式发布附下载-开源计算机软件框架

一年一度的 .NET 开发者盛会 .NET Conf 2019 在昨日(举办时间为 9.23-9.25)正式开始了。大会第一天最重磅也是最激动人心的消息莫过于 .NET Core 3.0 稳定版的发布。.NET 项目管理总监 Scott Hunter 在大会宣布了这则消息,并在主题演讲环节围绕 .NET Core 3.0 的新特性和社区展开了介绍。

.NET Core v3.0 稳定版正式发布附下载-开源计算机软件框架

.NET Core是适用于 windows、linux 和 macos 操作系统的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 [1],它经常也会拿来和现有的开源 .NET 平台 Mono 比较。

由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 打包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。

.NET Conf 2019 直播地址:https://www.dotnetconf.net/

作为一个大版本更新,.NET Core 3.0 引入了大量改进和新特性,例如新增加的 Windows Forms 和 WPF、新的 JSON API、对 ARM64 架构的支持,以及全面提升的性能。对了,C# 8 也是 .NET Core 3.0 本次更新的一部分,其中包括可空引用类型(nullable)、异步流(Async Streams)和更多的模式。

除了 C# 8,.NET Core 3.0 的更新内容还包括 F# 4.7,此版本主要是对语法进行改进,并将目标平台升级至面向 .NET Standard 2.0。

.NET 团队表示 .NET Core 3.0 会兼容之前的版本,所以大家现在就可以将项目升级至 .NET Core 3.0。

.NET Core 3.0 的一些“新料”

在深入探究 .NET Core 3.0 的所有新功能之前,先来看看一些重要的改进,其中提及到了 C# 8、F# 4.7、.NET Standard 2.1、在其他发行版上的支持情况等。

  • 在 .NET Core 3.0 稳定版发布前,它已在 dot.net 和 Bing.com 这两个网站上运行了数月,并已通过严格的测试。微软的团队也将很快在生产环境中将工作负载部署到 .NET Core 3.0 上
  • 许多组件的性能都获得了巨大提升,详情可查看介绍 .NET Core 3.0 性能改进的内容
  • C# 8 增加了异步流(async streams)、范围类型和索引类型(range/index)、更多的模式以及可空引用类型。可空引用类型主要用于帮助我们处理无处不在的空引用异常(NullReferenceException),另外,框架库的底层已被注释,编译器会分析代码流,因此我们能查看null值是否可以将其用于当前位置。
  • F# 4.7 主要是通过使用隐式的yield表达式来简化一些操作,以及语法。此外还分享了对LangVersion的支持、新增nameof关键字,和处于预览阶段的静态类。F# 核心库的目标平台为 .NET Standard 2.0,详情点此了解
  • .NET Standard 2.1增加了可以在代码中使用的类型集,它们也可同时用于 .NET Core 和 Xamarin。
  • .NET Core 现在已为 Windows 桌面应用分享支持同时支持 Windows Forms 和 WPF(已开源)。WPF 设计器已属于 Visual Studio 2019 16.3 的一部分。Windows Forms 设计器则仍处于预览阶段,可从 VSIX 进行下载
  • .NET Core 应用现在默认情况下就具有可执行文件。在之前的版本中,需要通过dotnet命令来启动应用,如dotnet myapp.dll。不过从这个版本开始,我们可以使用特定于应用程序的可执行文件(例如 myapp./myapp, )来启动应用程序,具体取决于操作系统。
  • 新增高性能的 JSON API,用于读取器/写入器、对象模型和序列化方案。这些 API 基于Span从头开始构建,使用 UTF8 来替代 UTF16(如 string),另外由于这些 API 使用了最小化的内存分配,因此带来了更好的性能,减少了垃圾回收器的工作。详情请查看 The future of JSON in .NET Core 3.0
  • 默认情况下,垃圾回收器使用更少的内存。对于许多应用程序托管在同一服务器上的情况,此改进非常有用。此外,新版本中 GC 能更好地利用具有 64 核(或大于)的机器的核心数量。
  • .NET Core 强化了对 Docker 的支持,以使 .NET 应用程序在容器中能按预期且有效地运行。当容器被配置为有限的内存或 CPU 时,垃圾回收器和线程池会更好地进行适应已分享最具优化效果的运行方式。.NET Core 的 Docker 镜像体积也更小 —— 尤其是 SDK 镜像。
  • 支持 Raspberry Pi 和 ARM 芯片,以助力 IoT 开发。其中包括远程 Visual Studio 调试器。这就意味着我们可以使用新的 GPIO API 来部署可监听传感器的应用程序,并在显示器上打印消息或图像。ASP.NET 可用于将数据暴露为 API,或作为一个在 IoT 设备启用配置的站点。
  • .NET Core 3.0 会被 11 月发布的 .NET Core 3.1 取代,因为后者才是LTS 版本(至少会获得三年的技术支持),不过官方还是建议大家先升级到 .NET Core 3.0,然后知识兔再升级到 3.1,这样过渡起来更方便。
  • .NET Core 2.2 将于今年 12.23 到达 EOL 阶段。查看 .NET Core support policy
  • .经过与 Red Hat 的多年合作,.NET Core 3.0 将随 RHEL 8 在 Red Hat Application Streams 中一起分享。
  • Visual Studio 用户如需在 Windows 上使用 .NET Core 3.0,需要升级至 Visual Studio 2019 16.3。
  • Visual Studio 用户如需在 macOS 上使用 .NET Core 3.0,需要升级至 Visual Studio for Mac 8.3。
  • Visual Studio Code 用户则需要使用最新版本的 C# 扩展,以确保最新的方案能够正常工作,包括针对 .NET Core 3.0 的目标平台。
  • .NET Core 3.0 的 Azure App Service 部署目前正在进行中。
  • .NET Core 3.0 的 Azure Dev Ops 部署即将推出。

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

要注意的是,Windows Forms 和 WPF 应用仅支持在 Windows 上运行。

对芯片的支持情况如下:

  • x64 on Windows, macOS, and Linux
  • x86 on Windows
  • ARM32 on Windows and Linux
  • ARM64 on Linux (kernel 4.14+)

注意:

请确保 .NET Core 3.0 在 ARM64 上的部署使用 Linux Kernel 4.14 或更高版本。例如,Ubuntu 18.04 能满足此要求,但 16.04 却不满足。

官网下载地址

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看下载!

如何免费获取密码?

点击下载

评论