Visual Studio 2022 有哪些新功能?

x33g5p2x  于2022-02-12 转载在 其他  
字(2.4k)|赞(0)|评价(0)|浏览(552)

Visual Studio 2022现已与它支持的 .NET 6 一起正式发布。它包括许多新功能和改进,例如可以为您自动完成代码块的 AI IntelliCode。

您可以 从他们的网站下载安装程序。虽然它仍然是新的,但它仍然是 Visual Studio,所以除非您依赖尚未更新的扩展,否则不要害怕尝试一下。

我们将介绍我们发现的最重要的更改,但如果您想逐行阅读补丁说明,可以从 Microsoft 的文档中进行。还有一个描述总体方向的路线图。

终于64位了

Visual Studio 一直是 32 位的,这意味着它在主进程中被限制为 4 GB 的 RAM。对于正常项目,它通常不会超出此预算,但某些用户可能会在使用特别大的解决方案时遇到 Out-Of-Memory 异常。

在 VS 2022 中,它已修复,现在是 64 位应用程序。微软已经用 1600 个项目和 300k 个文件测试了项目,并且运行良好。

64 位理论上应该运行得更快,而且它在启动时间上似乎确实快了一点,但微软也一直在努力提高性能,所以很难说这实际上对它有多大影响。无论哪种方式,一个很好的改变。

当然,你仍然可以使用 VS 2022 开发 32 位应用程序。这只适用于编辑器。

AI IntelliCode 是惊人的

Visual Studio 2022对其 IntelliCode 自动完成引擎进行了重大升级。它能够自动完成整行代码和代码块,而且效果很好。

它与GitHub 的 Copilot有点不同,后者做着类似的工作。Copilot 将生成整个代码片段,并且最适合具有清晰解决方案的小型包含函数。这很棒,但它也有自己的问题,主要是它生成的代码甚至不能保证是你想要的(并且可以从随机的 GitHub 存储库中逐字提取代码,这完全是另一个问题)。

IntelliCode 采用了更受限制的方法,只需完成一行,同时考虑以下一些因素:

  • 变量名和位置
  • 您正在使用的库
  • 周边代码中的函数
  • IntelliSense 下拉列表,您实际上可以向下按标签来为 IntelliCode 提供更多建议

使用两周后,真的是需要自己去尝试一下了。它非常聪明,很多次在使用它时我发现自己在想“哇,我正要打字!”
例如,编写一个从 1 到 12 的函数:

为了理解和提供这个结果,IntelliCode 所做的不仅仅是自动完成语法;它知道我期待一个异常,很明显我正在输入“throw”,并且它可以确定只有在整数大小比较失败时才会抛出这个异常。它知道这Width是在代码运行之前检查的参数,并且我抛出异常是因为参数有问题。

知道这一切后,它需要对我的意图进行非常准确的猜测,并ArgumentOutOfRangeException 在我开始输入“new”之前确定我必须输入的内容。

而且,如果您向下翻页,您可以填写不同选项的结果。它仍然有点不一致(它决定硬编码“宽度”,然后再使用 nameof),但总的来说,它运行良好。

IntelliCode 一直在运行,您只需按 tab-tab 键接受它,否则,您可以继续输入。目前,它仅适用于 C#,但更多语言“即将推出”。

.NET 6 支持

.NET 6 是最新版本。VS 2022 内置支持它及其所有功能,新项目默认使用 .NET 6。
最值得注意的是,VS 2022 完全支持 .NET MAUI 或多平台应用程序 UI,这是微软跨平台原生应用程序开发的新标准。

.NET 热重载

编程中最烦人的事情之一就是盯着你的屏幕,等待你的应用程序编译和启动,并使用最新的更改进行更新。热重载是许多其他语言(如 JavaScript)的一项功能,并且已被 React 等 Web 框架用于进行快速更改。不过,到目前为止,还没有针对 .NET 的标准化解决方案。

它不是完全通用的,并且需要特定的项目设置,但 VS 2022 包括针对“WPF、Windows 窗体、.NET MAUI 预览、ASP.NET Core 应用程序代码隐藏、控制台应用程序、WinUI 3 等”的热重载。这不包括其他应用程序使用的类库。

某些类型的更改可能无法正确应用,这将提示您进行正确的重新启动。您可以在此处查看它们的完整列表,但其要点是:

  • 没有修改方法签名
  • 不添加 using 语句
  • 无需修改接口
  • 不得重命名任何类型的成员

基本上,您可以用任何方法编辑代码,但是一旦开始接触项目结构,您可能必须重新启动。

它很好地集成到了 VS 调试体验中,带有一个用于触发热重载的“应用代码更改”的新图标。您还可以使用新dotnet watch 命令在文件更改时自动热重载。
Razor/Blazor Web 应用程序当前可以使用热重载。

远程测试

VS 2022 包含一个实验性预览,允许您在其他环境中运行测试,包括 Linux 容器、WSL,甚至通过 SSH。

它有一些设置,您当然需要确保您的环境配置为正确运行您的代码,但是一旦设置好,您就可以在运行测试时选择不同的环境。

一般改进

补丁说明中有很多小改动,因此我们将在此处列出一些最有趣的改动。

调试已经看到了一些生活质量的改进,为更高级的断点提供了新的上下文选项,以及“强制运行到光标”,它将忽略所有现有的断点并停止在您选择的代码行上。如果您想在不删除每个断点或手动跳过所有内容的情况下测试某些内容,这将非常有用。

VS 的 Git 集成现在支持每个解决方案的多个存储库,并且现在跨多个存储库提交更容易。

所有图标都经过重新设计以保持一致性。

XML 注释现在支持保留空白和 CDATA 块的多行注释。

在多目标项目中,“查找所有引用”不再产生垃圾重复输出。

Razor Pages/Blazor 已经获得了大量的编辑集成,现在可以更好地与 IntelliSense、语法突出显示和 @code 块中的更好格式配合使用。您现在还可以在 Razor 文件中使用“查看代码”,这在一段时间内一直是一个令人讨厌的限制。

还有一些项目模板,包括 ASP.NET Core 托管的 Angular 和 React 应用程序,它们可以通过 API 自动集成来实现。

相关文章