Visual Studio 2019 v16.10有什么新性能?
咱们很快乐地发表Visual Studio 2019 v16.10 GA 和 v16.11 preview 1公布。此版本使咱们的主题“开发者生产力和便利性”广泛实用于 Visual Studio 用户!咱们增加了c++ 20个性、优化的Git集成、剖析工具,以及许多进步开发效率的个性。
下载最新的Visual Studio版本以尝试16.10中的新个性。判若两人,咱们心愿您通过咱们的开发者社区提供反馈和互动。
装置visual studio 2019 v16.10
C++
咱们的编译器和 STL 当初性能齐备,实用于最新可用的C++20 规范!16.10带来了一些备受期待的个性:日历、时区和 <format>。这些个性都能够在/std:c++latest开关下应用。不过/std:c++20开关还不可用,因为一些个性预期将在缺点报告(ISO c++20 bug修复)中以ABI不兼容的形式进行修改(更多细节请参阅Microsoft/STL Issue #1814)。
<format> 是一种新的基于 fmtlib 的文本格式工具。 它为 iostreams 和 printf 系列提供了一种疾速且平安的代替计划:
auto version = 20;std::format(“STL is now C++{} feature-complete!”, version);
日历和时区是对现有<chrono>工具的扩大。它们提供了一种类型平安和时区感知的形式,来示意和操控日期和工夫。
std::chrono::year_month_day world_bee_day = May/20d/2021ystd::format("Buzz buzz on %F!”, world_bee_day);
此外,咱们还改良了模块、范畴和概念的智能感知体验。“转到定义”既实用于模块自身,也实用于从模块中导入的定义。对于编译器来说,编译器进入范畴是出了名的艰难,然而智能感知当初能够为你做这件事。另外,定义的概念名称会主动补全。
当初,除了x64之外, x86和ARM64也反对 LLVM OpenMP 运行时。通过/openmp:llvm开关来指向它。
如果你想应用c++ 20-style的协程,但指标是c++ 11或c++ 14,你当初能够应用/await:strict开关来取得想要的行为。
咱们改良了协程的调试和可视化。特地是,std::coroutine_handle的可视化当初显示了原始的协程函数名和签名以及以后挂终点。
如果你正在应用咱们的CMake反对,那么你当初能够应用CMakePresets来指定配置,而不是应用cmakessetting .json。这种格局在Visual Studio、Visual Studio Code和任何其余反对这种新规范的工具之间是统一的。
Git生产力
状态栏有一个新的分支选择器,容许您筛选本地和近程分支,并从右键单击快捷菜单执行惯例操作。
当初,当您独自抉择一个分支时,状态栏中的分支选择器以及Git Changes窗口将迁到本地或近程分支。
从状态栏存储库选择器中筛选和切换本地Git存储库。右键单击快捷菜单能够从列表中删除我的项目。
在状态栏点击未push的提交按钮,并在Git菜单同步命令,同步(pull和push) 你的分支到近程。
即便没有传入的提交,也能够从Git Repository窗口历史窗格中获取和pull。从状态栏或键盘快捷键Ctrl+0+Y拜访这些局部。
在Git Repository窗口中抉择一个提交,能够查看它的详细信息和文件更改的比拟,而不用导航到其余窗口。抉择两个提交并右键单击从而在同一个窗口中比拟它们。将细节弹出到它们本人的窗口中全屏显示,从而深刻理解更改。
查看文件中删除和插入的次数,并更改比拟的布局。
当初,您能够从Git Changes窗口执行更多操作。工具栏图标是可定制的,您能够抉择显示哪些操作。您能够从延长菜单与多个近程同步。也能够在浏览器中关上存储库的近程网页。
关上Azure DevOps Git库时,主动从新连贯或提醒建设初始的Azure DevOps连贯。这容许拜访关上的存储库中的工作项和构建。
当解决重建或合并抵触时,合并编辑器和快捷菜单将显示以后和传入分支的分支名称。这修复了混同源和指标术语的问题。
咱们增加了菜单项,这些菜单项是PR创立和列表页面的快捷方式,使创立和查看pull申请变得更容易。菜单是动静的,基于你的存储库是在GitHub还是Azure DevOps上。
Git 设置
咱们在Git > Settings中增加了一些新选项来治理关上和切换存储库。当初,在切换到另一个存储库时,能够放弃以后解决方案为关上状态。
您还能够抉择在关上存储库时不加载存储库根文件夹。这将使解决方案资源管理器为空,您将不会失去解决方案列表。
然而,如果您抉择关上根文件夹,Visual Studio将不再主动加载解决方案。相同,您将在一个列表中看到可用的文件夹视图和解决方案。你能够通过Git > Settings切换复选框来扭转这个行为。
通过双击分支名称,您能够抉择从Git Repository窗口迁出分支。如果你想扭转这个行为,那么在Git > Settings中切换复选框。
性能分析器
Performance Profiler的启动页面当初有一些链接,能够帮忙用户找到在线文档,具体介绍如何应用这些工具以及咱们的工具箱视频系列。您能够应用它们来理解更多对于这些工具的信息,并理解如何更好地辨认代码中的区域以进行优化和验证更改。
Performance Profiler 中的 .NET 对象调配工具是第一个过渡到咱们新的剖析引擎的工具,该引擎速度显著更快并提供更多功能。在收集之后,失去后果并更快地构建调用树(约减少40%)。咱们当初还反对SourceLink来pull源代码,因而您能够确切地看到代码调配的地位,即便它不在您的代码中。
这须要对应代码的符号,能够从微软符号服务器下拉,从调试>选项>符号来启用它。
容器
这个版本为Docker容器工具的用户提供了一些激动人心的个性。您当初能够运行在组合文件中定义的任何服务组合,并在容器窗口中享受改良的容器和映像治理。要理解更多信息,请参阅咱们16.10预览版3博客中的容器新个性布告。
.Net的生产力
咱们的.net团队为您带来了几个个性,以帮忙您继续进步生产力。
咱们减少了性能“删除未应用的援用命令”。这个命令容许您清理未应用的我的项目援用和NuGet包。默认状况下,这个选项是敞开的,然而你能够在菜单工具> Options > Text Editor > c# > Advanced下启用它。在解决方案资源管理器(试验)中抉择删除未应用的援用命令。一旦启用该选项,删除未应用的援用命令将呈现在项目名称或依赖项节点的右键菜单中。
当您抉择删除未应用的援用时,将会关上一个对话框。而后,您能够查看将要删除的所有援用,但您也能够抉择保留您心愿保留的任何援用。
智能感知的实现
当已知类型时,即便没有输出Enum值,也会由Enum值的额定的智能感知实现。咱们还扩大了这个选项,包含强制转换、索引器和操作符的实现。
当初有一个实现选项,可在编写办法调用时主动插入参数。
这个个性默认是敞开的,所以你须要在工具>选项>文本编辑器> c# >智能感知中启用它,而后抉择Tab两次插入参数(试验)。
要应用这个个性,首先编写一个办法调用,而后按两次tab键(tab+tab)。留神,办法调用蕴含基于办法默认值的参数。应用参数信息循环遍历您心愿通过按向上和向下方向键插入的参数列表。开始输出一个参数来调出智能感知实现列表并输出分号,这会提交该参数并在办法调用的开端增加一个分号。
可视化和导航继承链
当初,有一个可视化示意性能,用于导航和查看继承。
默认状况下,这个选项是敞开的,所以你须要在工具> Options > Text Editor > c# > Advanced中关上它,而后抉择Show inheritance margin。启用继承边距将在代表代码实现和重写的边距中增加新的图标。
单击继承边距图标以显示能够导航到的继承选项。
测试资源管理器可拜访性改良
咱们对Test Explorer做了一些更新,进步了键盘的可拜访性和测试细节窗口和日志文件的可用性。无关详细信息,请参见16.10 preview 3博客中的测试体验可拜访性改良。
WinForms更新
咱们曾经重构了Visual Studio 16.10的行为服务。这使得.net Core 5和6的新WinForms设计器的性能失去了显著的改良。这也修复了许多与抉择、拖放多个控件相干的问题。
XAML工具更新
咱们不断改进现有的个性并增加新个性,以使您在开发XAML UI时更有效率。
XAML设计器疾速动作
当初,您能够通过应用为所选控件显示的灯泡前面的弹出菜单,疾速更改控件的属性。
当您在XAML设计器中抉择一个控件时,您将看到一个灯泡。一旦单击该控件,将显示此特定控件最罕用的属性列表,从而节俭您在属性资源管理器中查找这些属性或在XAML编辑器中输出代码的工夫。
反对控件:
- WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox.。
- UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox.
这个个性实用于UWP、WPF Core和WPF Framework(启用“New WPF XAML Designer for . NET Framework”个性标记)。你也能够创立本人的动作,请参阅XAML Designer Extensibility GitHub理解更多。
XAML示例数据
通常,要查看控件应用数据值的外观,必须实现所有数据绑定,用值填充数据库,并且须要运行应用程序。有了这个个性,你就能够在设计器中通过“假”数据看到控件的外观。在ListBox、ListView或DataGrid上设置d:ItemSource='{d:SampleData}'。该控件将主动填充一个与您的datatemplate和BindingPaths匹配的“假”数据。这些数据显示在设计器中,不会影响源代码。
您能够应用ItemCount属性更改生成的我的项目数量,例如:d:ItemSource='{d:SampleData ItemCount=3}',默认状况下它被设置为5。
Visual Studio 2019 v16.11 预览版 1 中的新增性能
.NET 热重载
在此版本中,咱们很快乐提供新的热重载用户体验的第一个版本,可在编辑 WPF、Windows Forms、ASP.NET Core、控制台等应用程序的代码文件时应用。通过热重载,您当初能够在运行时批改您的应用程序治理源代码,无需暂停执行或应用断点。 相同,只需进行受反对的更改并应用工具栏中的新的“利用代码更改”按钮立刻利用它们。
进行更改并热加载WPF应用程序。
在Visual Studio的这次更新中,当你在调试器(F5)下运行你的应用程序时,这个新体验曾经能够应用,它是由编辑和持续(EnC)机制驱动的。. NET热重载也能够与XAML热重载一起工作,使得在桌面应用程序(如WPF或WinUI)中进行UI和代码后盾更改成为可能。
EnC和热重载具备雷同的限度,因而不是每种类型的编辑都被反对。反对或不反对的残缺列表能够在咱们的文档中找到。
热重载当初也能够在.NET 6 Preview3或更高版本的CLI工具下应用,更多细节请参见.NET公布的博客。
这是咱们旅程的开始, 在Visual Studio 2022和.将来的版本.NET 6+中,咱们将寻求并进一步改善这种教训,比方从Visual Studio应用热重载启动应用程序时没有调试器(CTRL-F5)时缩小不受反对的编辑数量,容许编辑Razor页面,反对热重载和.NET MAUI应用程序等。如果您想理解对于咱们对该技术的更多细节,请参阅咱们在. net blog上发表的具体博文。
咱们真的心愿你能在你的应用程序中尝试热重载,并通过Visual Studio的反馈个性提供反馈。
.NET MAUI
Visual Studio 16.11 Preview 1减少了对.NET MAUI的反对! .NET 多平台应用程序UI (MAUI) 将于往年 11 月正式公布,是为 iOS、Android、Windows 和 Mac 编写跨平台应用程序的最佳形式。.NET 6 Preview 4 明天公布了新的 .NET MAUI 性能,包含单个我的项目改良、针对所有受反对平台的能力以及 Blazor 混合桌面反对! Visual Studio 16.11 p1 容许您从 IDE 关上、构建和调试 .NET MAUI 应用程序,并为新的繁多我的项目体系结构增加性能。 此外,您能够应用新我的项目配置向导来创立新的 .NET MAUI 应用程序!
.NET MAUI 演示应用程序 WeatherTwentyOne
应用 .NET MAUI 和 Visual Studio,您的解决方案中只需一个我的项目即可面向挪动设施和桌面。 图像、字体、应用程序信息,甚至启动画面都能够在一个我的项目中定义,并在编译时部署到每个平台。 应用多指标,您能够在任何反对的平台上进行调试,而无需为不同的指标框架保护不同的我的项目。 要理解无关新的 .NET MAUI 繁多我的项目架构的更多信息,您能够观看2021年5月的 Xamarin 社区站会!
应用 .NET MAUI 的繁多我的项目架构从一个我的项目中定位 Android、iOS、Windows 和 Mac。
要立刻试用 .NET MAUI,请下载 Visual Studio 16.11 并依照.NET MAUI 示例存储库中的阐明装置.NET 6预览版 SDK!
无关详细信息,请参阅 .NET MAUI 预览 4。
装置visual studio 2019 v16.11 preview 11
要体验 Visual Studio 2019 必须提供的最新性能,请立刻下载预览版。 不要遗记在开发者社区上报告问题或向咱们提供反馈!同时也能够在微软Q&A论坛上发问任何无关开发的问题。