Build 2018 大会:.NET 概述和路线图

  • Michael Stiefel
  • 刘嘉洋

2018 年 5 月 27 日

话题:.NET语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在 Microsoft Build 2018 大会上,.NET 项目管理主管 Scott Hunter 和.NET 社区主管 Scott Hanselman 举行了一场有关.NET 未来发展的会谈。会谈指出,未来.NET 平台将可以搭建任何类型的应用程序:桌面程序、web 程序、云程序、移动应用、游戏应用、物联网应用或是人工智能应用。你可以将自己熟悉的编程语言应用到新的领域中来。

.NET 的当前状况 

每个月都有接近一百万的新用户在 Visual Studio 平台使用.NET Framework 和.NET Core。由于该软件是开源的,除了 Microsoft 之外,有来自 3700 多个企业的 19000 名社区成员做出了贡献。Samsung 将.NET Core 应用在 ARM32 中,并应用于 Raspberry Pi。Illlyriad Games 在性能方面做出了许多贡献。虚拟.NET Conference将于今年 9 月 12-14 日举行,Microsoft 和社区成员将讨论有关.NET 的许多内容。

.NET Core 2.1 候选版本发布。RTM 版本有望在 5 月底发布。Visual Studio 的内部构建一直做得很好,因此 CLI 的构建也将得到改善。ASP.NET Core 和 EF Core 之间的差距越来越少,在提升.NET Framework 兼容性的同时也提高了可移植性。ASP.NET Core 将完全支持GDPR,对于微服务和 Azure 的支持也将提升。在发布的时候,.NET Core 2.1 工具性能将比现在快 10 倍。实际上,你还可以继续使用.NET Core 2,然后通过使用.NET Core 2.1 工具获得性能的提升。在数据库方面,性能已经得到了大大提升。

为了更好地支持物联网,.NET Core 2.01 现在可以运行在 Raspberry Pi 2、Linux(Ubuntu 18.04 和 Alpine 3.7) 以及 Win 10 IoT,也支持容器。同时,支持 Azure IoT Hub。Samsung 推出了一款拥有.NET 启动屏幕的智能电视。

由于引入了span<T>,.NET Core 将提升内存的性能。为了提升速度性能,Sockets 进行了重写。ER Core 添加了延迟加载、值转换、查询类型以及数据填充。Razor UI 成为了 ASP.NET Core 中的一款库,并添加了对于 Azure 中SignalR的支持。这款服务实现了完全管理,不需要再担心规模、容量分配或持久连接问题。你也可以使用 ASP.NET Core 构建本地实时 SignalR 应用程序。

.NET Core 2 致力于 Web 和云,而.NET Core 3 添加了对桌面应用、物联网和人工智能的支持。甚至 WinForms 和 WPF 也将运行在.NET Core 3 之上。XAML Islands 允许 WinForms 和 WPF 托管UWP。XAML Controls 可以实现 WinForms 和 WPF 浏览器以及媒体 UWP 控制。对于 WinForms 进行了 DPI 修复。要做到这个,必须修改 WinForms。但是由于在.NET Core 中有并排支持,这些需要使用 WinForms 的应用程序可以和其他对于.NET Core 的使用分开。通常来说,并排支持可以保证.NET Core 和.NET Framework 的单独发展。你也可以单独地开发应用程序。

你可以通过.NET Core 访问到所有 Windows 10 APIs,比如 Win RT。.NET Core App Builder 可以让你预编译一个小的应用程序,以实现快速启动,去除所有不用的依赖,创建一个独立的可执行文件。

预计在今年能推出.NET Core 3.0 预览版。当然今年晚些时候会发布.NET Core 2.2。

Visual Studio 2017 

在 Visual Studio 15.7 版本中改善了对重构的支持。包括 foreach 到 for,for 到 foreach,LINQ 查询到 for 循环,以及 var 和显示类型之间的转换。15.8 版本将给出更多 LINQ 重构的改善。Editorconfig 的改善将在 15.7 和 15.8 版本中都有体现。同时,也会在 Test Explorer 中添加进度图标。

有关 Web 开发方面,15.8 版本中将会大大改善 Razor formatting 和 Razor 文件的重构。Kubernetes 可以通过一款扩展程序得到支持。你也可以通过一款扩展发布到非容器的 Linux 应用程序服务。你还可以通过一款扩展发布到 Azure 容器服务。

Visual Studio for Mac 7.5 将支持 Razor、 TypeScript 和 JavaScript。.NET Core 不仅支持 Azure Functions,还支持基于.NET Standard 2.0 的 Xamarin.Forms。C# 7.2、EditorConfig 和.NET Core 2.1 RC 也将被支持。可以预览 Team Foundation Version Control。两款 IDE 都使用相同的代码库。

.NET 与机器学习 

Azure Cognitive Services是预先构建的机器学习模块,开发人员可以直接使用。可以通过代码中的 REST API 使用视觉、语音和语言的模块。你也可以准备好数据,构建训练自定义的模块。除了几种传统的模块构建方式之外,Microsoft 还引入了 ML.NET,基于例如 Bing 和 Office 等内部应用的技术。它可以与其他的 AI 库,如 Accord.NET 和 CNTK 一起工作。已经有预览版可供参考。

Blazor 

Blazor是一款基于 Razo 和.NET,通过WebAssembly运行在浏览器中的实验性 web UI 框架。旨在简化可以运行在任何浏览器中快速搭建单页应用程序的工作。你不需要了解 AngularJS、 React 或 Vue 等技术,但你可以使用开放 web 标准在客户端运行使用.NET 搭建的 web 应用程序。Blazor 使用Mono版本.NET 编译到 WebAssembly。它可以利用本地性能运行于所有的浏览器之上。它不需要插件和代码编译转换

查看英文原文Build 2018: .NET Overview & Roadmap

感谢冬雨对本文的审校。

.NET语言 & 开发