.NET 平台负责人Scott Hunter专访:.NET Core 3 给 .NET Core带来了很多新东西

本文要点

  • .NET Core 3 给 .NET Core带来了很多新东西。新版本包括C# 8、WinForms和Entity Framework 6。
  • .NET Core 3 将专门针对微服务,并且是针对云原生应用程序的构建而设计的。
  • 开发人员可以在其ASP .NET Core 3.0应用程序中编写高性能、基于契约的RPC服务。
  • ASP .NET Core 3.0能够使用AOT(提前编译),从而使开发人员的应用程序能够本机化且具有高性能。
  • 对于bug、性能、安全性和未来的标准,微软将继续更新其 .NET框架( .NET Framework)。

本文是探讨 .NET Core优势的系列文章之一,它不仅可以帮助传统的 .NET开发人员,还可以帮助所有想要为市场提供可靠、高性能且经济的解决方案的技术人员。

随着 .NET Core 3.0的发布,微软拥有了通用、模块化、跨平台和开源平台的下一个主要版本,该版本最初是在2016年发布的。 .NET Core最初是为了支持下一代ASP .NET解决方案而创建的,但是现在它驱动了许多其他场景,包括物联网、云和下一代移动解决方案,并且是这些场景的基础。3.0版本增加了许多常用特性,比如对WinForms、WPF和Entity Framework 6的支持。

.NET Core 3.0 在2019年9月23日至25日的 .NET Conf 上正式发布,这是一个免费的虚拟开发者活动。在发布之前,Chris Woodruff与 .NET平台的项目负责人Scott Hunter一起讨论了开发人员对 .NET Core 3的期望。

你在 .NET Core团队中担任什么角色?

Scott Hunter:我是 .NET平台的项目负责人。我有一个项目管理团队,负责监督 .NET Core、 .NET框架、   .NET工具、Web工具、 .NET语言(C#、F#、VB)、ASP .NET、Entity Framework、 https://dot .NET和 .NET社区。团队中的项目经理要确保我们为客户构建的是正确的产品,并且帮助推动 .NET社区的发展。

在我们深入探讨 .NET Core之前,请先介绍一下 .NET Core的背景知识以及该框架的来源。

Hunter: .NET Core是于2014年启动的,当时作为一个团队,我们意识到,要使 .NET紧跟未来20年,我们需要做一些变化,而这些变化无法在 .NET框架中实现。因为 .NET框架是Windows的一部分,而计算机上只能有一个Windows版本。因此,它需要保持高度兼容,这样它才不会破坏世界上10亿多台Windows机器上安装的任何应用程序。作为Windows的一部分,我们一年只能发布两次,这是Windows主要更新的发布周期。同时,开源正在接管软件,所有其他的编程平台都是开源的。我们还看到一些开发人员在使用Mac,一些公司在Linux上托管他们的软件,所以我们需要跨平台。 .NET Core 是 .NET的一个版本,它是开源、跨平台的,并且多个版本可以同时安装在一台计算机上。它的工具被设计成优先使用CLI(Command Line Interface,命令行界面),因此开发人员可以使用任何文本编辑器在任何计算机上使用 .NET Core进行开发。如果使用的是传统工具,如Visual Studio、Visual Studio for Mac和Visual Studio Code,我们也对它进行了很好的支持。

在 3.0 版本中,你们对 .NET Core 有什么计划吗?

Hunter: .NET Core 3 给  .NET Core 带来了很多新东西。有数百万的开发人员使用WinForms和WPF来构建桌面应用程序,因此我们将这两个框架都添加到 .NET Core 中了。许多桌面应用程序使用 Entity Framework 6,所以我们也添加了它。因为 .NET Core一直以来都是基于开源的,所以我们在12月份宣布,我们也将对这两个框架进行开源。此外, .NET Core 3还包括 C# 8、 .NET Standard 2.1等。

你们对ASP .NET Core 3.0有什么计划吗?

Hunter:很多时候,当我们谈论 .NET Core 3.0时,我们都会谈到新的桌面支持,但是它在ASP .NET中也有很多创新。首先,虽然我们没有恢复WCF,但是我们知道许多开发人员希望在他们的应用程序中编写高性能、基于契约的RPC服务。对于这些工作需求,我们正在支持开源的gRPC项目。我们正在努力使 .NET实现成为第一个类,因为它是gRPC,所以它也可以与许多其他编程语言一起工作。有一个新的与微服务相关的Worker Service项目,用于构建轻量级后台worker,它可以在诸如Kubernetes之类的编排器下运行。此外,虽然ASP .NET对构建API已经有了很好的支持,但我们希望能够轻松地将丰富的安全性添加到API上,因此我们正在新增桥接器,以便开源的Identity Server项目能使用我们的API。最后,我们正在研究Blazor,它允许开发人员使用Web Assembly在浏览器和服务器中使用 .NET构建高性能的Web应用程序。

Azure是怎样影响你们 .NET Core计划的呢?

Hunter:Azure不会直接影响我们的 .NET Core计划。但是,我们希望确保 .NET Core是构建云原生应用程序(包括微服务和基于容器的应用程序)的最佳平台。传统上,我们大多会认为 .NET是使用在Web和桌面UI上下文中的,我们希望改变大家的这种看法。虽然大家现在可以构建此类应用程序,但是我们并没有明确说明。我们将为构建Worker Service项目提供 .NET Core 3.0和模板。我们希望该平台可以支持诊断和调试,即使你是在云上以超大规模运行应用程序。

你最喜欢 .NET Core的哪些部分,以及在未来你希望它什么地方有所改变?

Hunter:对于 .NET Core,我最喜欢的部分可能是CLI(命令行界面)、跨平台支持和开源。仅仅依靠一台基于Windows、Mac或Linux的机器,跳转到CLI并使用你选择的编辑器构建一个应用程序,这在过去是你不会想用 .NET来做的事情 。此外,能够访问GitHub并观看由微软和社区共同开发的产品也是很好的。向前看,我总是为 .NET启用新的工作需求而感到兴奋。我对AOT(Ahead of Time Compile,提前编译)感到兴奋,它将为你提供类似于Go语言的小型本机高性能应用程序。

** .NET Core成为OSS有什么惊喜吗?**

Hunter:我们在2014年开源了 .NET Core,这对我们来说在开源领域似乎已经很晚了。我们不确定社区是否会支持这一运动,但是有超过3700家微软之外的公司做出了60000多份贡献,这一运动取得了成功。为了使 .NET Core成为最快的框架之一,社区做了大量的工作。

所有这些对 .NET框架意味着什么呢?

Hunter: .NET框架是Windows操作系统的一个组成部分。Windows依赖于它,微软的许多大型产品和服务也依赖于它,此外还有数百万的客户应用程序也在使用它。因为在Windows上只能安装一个版本,所以它有一个要求非常高的兼容性条栏,并且我们可以在其中进行有限的更改。对于它的bug、性能、安全性和未来的标准,我们将持续更新。未来的创新将发生在 .NET Core中;该平台的并行特性使我们能够快速移动它,且不会有破坏应用程序的风险。

对于在项目中没有使用 .NET和C#的开发人员,为什么应该关注 .NET Core呢?

Hunter:今天,许多开发人员选择使用最适合于对应工作的可用工具。如果你看看TechEmpower基准测试,会发现 .NET Core是最快的框架之一。它是由C#语言驱动的,C#具有诸如异步/等待等令人惊叹的特性,可以使异步编程变得更容易(并且许多其他平台已经复制了它),并且它还支持F#函数语言。它也有一些很棒的开发工具,无论是Visual Studio for Windows、Visual Studio for Mac、Visual Studio Code,还是Jet Brains Rider,都很棒。

关于 .NET Core 2.2、3.0及更高版本,还有什么需要注意的吗?

Hunter:我们谈了很多关于通用平台和一些 .NET的历史。在 .NET中还有一些其他令人兴奋的开发,比如Blazor,它是一种编程模型,允许开发人员在服务端或客户端都能使用 .NET构Web应用程序。在客户端,我们将 .NET编译成Web Assembly,以便在浏览器中获得原生速度,并在客户端和服务端上都具有 .NET的所有强类型。我们还通过ML .NET在 .NET中添加了对机器学习的支持 ,ML .NET是我们的开源 .NET机器学习库。这项技术已经在微软产品中使用很多年了,现在我们正在向公众开放。

受访者介绍

Scott Hunter是微软 .NTE 项目负责人。他致力于Visual Studio和 .NET的工作,包括 .NET Core、 .NET 工具、语言、ASP .NET、实体框架和Web工具。

原文链接: Interview with Scott Hunter on .NET Core 3.0

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/GzcpaNFhWJ9Qy9OUmwYA

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励