在 Microsoft Connect(); 2018 大会上,微软宣布推出.NET Core 3 预览版1。 .NET Core 3 的首次公开面世,震撼的新功能让与全球开发者心潮澎湃。使用 Visual Studio 2019 预览版1、Visual Studio for Mac 以及 Visual Studio Code 均可开发 .NET Core 3应用程序。.NET Core 3 的面世,是一次重大更新,势必给全球科技注入更具前沿的创造力!
.NET Framework 4.8Microsoft Connect(); 2018 上,微软宣布将于明年发布 .NET Framework 4.8。随着支持4K和8K分辨率的显示器的普及,微软正在对 WPF 和 Windows Forms 升级,以对高 DPI 提供更好的支持。目前,许多 .NET Core 应用都是基于旧版本 Internet Explorer 和 Windows Media Player 的浏览器和媒体控件。微软正在添加使用 Windows 10 中最新浏览器和媒体播放器的新控件,并支持最新标准。WPF 和 Windows Forms 应用程序将可以通过 XAML Islands 访问 Windows UI XAML 库(WinUI),以获得现代化的外观和触摸支持。Visual Studio 2019 基于 .NET Framework 并应用了许多此类功能。
Windows 桌面进入 .NET Core.NET Core 的前两个版本主要侧重于支持 Web 应用、Web API、IoT 和控制台应用程序。.NET Core 3 增加了对使用 WPF 和 Windows Forms 框架以及现代控件构建 Windows 桌面应用程序的支持,并能够实现 XAML Islands 从 Windows UI XAML 库(WinUI)构建 Fluent 样式。目前有许多桌面应用使用 Entity Framework 进行数据访问,因此,微软也在 .NET Core 3 中支持 Entity Framework 6。这些框架能够让构建 Windows 桌面应用的开发人员充分利用 .NET Core 中的新功能,例如并行(side by side)部署、自包含应用、CoreFX 的最新改进等等。
开源的 WPF、Windows Forms和WinUI大会上宣布 WPF、Windows Forms 和 WinUI 开源,即三个主要的 Windows UX 技术都将开源。这是史无前例的创举,整个社区都将公开的看到 WPF、Windows Forms 和 WinUI 的进展,第一批代码将在 GitHub 上发布,未来几个月还会发布更多代码,这让全球开发者无比惊喜。
WPF 和 Windows FormsWPF 和 Windows Forms 现在可以与 .NET Core 一起使用。它们出现在一个名为“Windows桌面”的新组件中,该组件是 Windows 版本的 SDK 的一部分。
开发者可以从命令行创建针对 WPF 和 Windows Forms 的新 .NET Core 项目。如:
dotnet new wpfdotnet new winforms
创建项目后,就可以通过 dotnet 来运行它们。下图示出了新的 WPF 应用看起来是什么样子。
Windows Forms 也非常相似,如下图所示。
同时还可以在 Visual Studio 2019 预览版1 中打开、启动和调试 WPF 和Windows Forms 项目。
应用现在默认具有可执行文件.NET Core 应用现在使用可执行文件进行构建。对于使用全局安装的 .NET Core 版本的应用而言,这是一项新功能。到目前为止,只有自包含的应用具有可执行文件。对于这些可执行文件,开发者可以期待它们与其他本地可执行文件具有相同的特性,例如:
您可以双击可执行文件。
您可以从命令提示符下启动应用,而无需使用 dotnet 工具。在 Windows 上使用
myconsole.exe
,在
Linux 和 macOS 上使用./myconsole
。正如以下示例所示。
■ 在 Windows 中:
C:\Users\rlander\myconsole>dotnet build
C:\Users\rlander\myconsole>cd bin\Debug\netcoreapp3.0C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>dir /b myconsole.deps.jsonmyconsole.dllmyconsole.exemyconsole.pdbmyconsole.runtimeconfig.dev.jsonmyconsole.runtimeconfig.jsonC:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>myconsole.exeHello World!C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>dotnet myconsole.dllHello World!
■ 在 Linux 中(在 macOS 中也相似):
root@cc08212a1da6:/myconsole# dotnet buildroot@cc08212a1da6:/myconsole# cd bin/Debug/netcoreapp3.0/root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# lsmyconsole myconsole.dll myconsole.runtimeconfig.dev.jsonmyconsole.deps.json myconsole.pdb myconsole.runtimeconfig.jsonroot@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# ./myconsoleHello World!root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# dotnet myconsole.dllHello World!
提供的可执行文件与您正在使用的 SDK 的环境相匹配。我们还没有启动为其他运行时环境指定 -r 参数的功能。
dotnet build 现在可以复制依赖项dotnet build 现在可以在构建操作期间把应用的 NuGet 依赖项从 NuGet 缓存中复制到构建输出文件夹中。在此版本之前,这些依赖项仅作为 dotnet publish(发布)的一部分进行复制。此更改能够通过 xcopy 命令将构建输出复制到不同的计算机中。
还有一些操作,例如 linking(链接)和 razor page publishing(刀片页面发布),仍然需要发布。
可以在以下示例中看到新体验:
C:\Users\rlander\myconsole>dotnet add package Newtonsoft.jsonC:\Users\rlander\myconsole>dotnet buildC:\Users\rlander\myconsole>dir /b bin\Debug\netcoreapp3.0\*.dllmyconsole.dllNewtonsoft.Json.dll
本地 dotnet 工具
.NET Core 工具已进行了更新,现在包含了一套本地工具场景。微软在 .NET Core 2.1中添加了全局工具。可以从机器上的任何位置为当前用户提供全局工具。这项功能很好,但这不允许根据位置(通常是存储库)来选择版本,而且它们也没有提供一种简单的方法来恢复开发环境或构建工具环境。磁盘上的特定位置现在可以与一组本地工具及其版本相关联。本地工具依赖于名为 dotnet-tools.json
的工具清单文件。我们建议在存储库的根目录中提供工具清单文件。
对于将全局工具添加到工具清单文件(通常是存储库)中以及克隆包含全局工具的存储库,本地工具提供了不同的体验。如果您克隆包含本地工具的 repo(存储库),则只需运行以下命令:
dotnet tool restore
恢复之后,可以使用以下命令调用本地工具:
dotnet tool run
调用本地工具时,dotnet 会在目录结构中搜索清单。当找到工具清单文件后,就在其中搜索所请求的工具。如果找到了该工具,它将包含在 NuGet 全局包位置中查找该工具所需要的信息。
在预览版1之后,微软将提供一种机制来创建工具清单文件,可能会通过 dotnet 新模板来实现。对于预览版1,您必须利用以下内容来创建文件名 dotnet-tools.json:
创建清单之后,可以使用以下命令向其中添加本地工具:
dotnet tool install
要想从工具清单文件中删除工具,请运行以下命令:
dotnet tool uninstall
如果将工具清单文件签入到您的源代码控制中,则克隆您的存储库(repo)的程序员可以如上所述访问正确的工具。
快速收件箱JSON阅读器简介System.Text.Json.Utf8JsonReader
是一款高性能、低分配、仅前向(forward-only)的读取器,用于 UTF-8 编码的 JSON 文本,从 ReadOnlySpan
中读取。Utf8JsonReader
是一种基础性的低级类型,可用于构建自定义解析器和反序列化器。使用新的 Utf8JsonReader 读取 JSON 有效负载比使用 Json.NET 中的读取器快2倍。
Microsoft Connect(); 2018 大会上,.NET Core 3 预览版1的震撼发布和开源 Windows 桌面框架,带给科技行业巨大的冲击,也让更多开发者可以使用微软的最新科技成果。展望未来,微软将提供更出色的体验,帮助全球开发者创造出更大的辉煌!